Raspberry Pi WHを購入したのでセットアップしていきます。
初期設定はほとんどこちらの記事で紹介した内容と同じです。
GUIで操作できるDesktop版ではなく主にサーバーや開発用で利用されるLite版のOSを利用します。
ヘッドレスなので本体にキーボードやマウスをつなぐ必要がありません。
初期設定後、でRaspberry Pi WH を使った温度湿度気圧のモニタリングができるようにしていきます。
Raspberry Pi WH のスペック
Raspberry Pi WH 以下 RPi WH
仕様 (スイッチサイエンスより)
- メモリ: 512 MB RAM
- USB 2.0 ポート: microB(OTG接続)
- 映像出力: miniHDMI(ひとまわり小さいHDMI!!)
- ストレージ: microSDメモリーカードスロット(SDIO対応)
- 低レベル周辺機器: 27 × GPIO、UART、I2C、SPIと二つのチップセレクト、+3.3 V、+5 V、GND
- カメラコネクタ: Raspberry Pi Zero用カメラケーブルコネクタ(Raspberry Pi 3とはサイズが異なります)
- 電源ソース: 5 V / USB Micro-Bコネクタ または GPIOコネクタ
- 無線通信機能
- 802.11 b/g/n wireless LAN
- Bluetooth 4.1

Raspberry Pi W Zero との違いはピンがすでに取り付けられている点です。
この商品は32GBのMicroSDカードとケースがついているのでOSをインストールするだけですぐに使えます。すでにMicroSDカードを持っている場合はMicroSDなしのものを選択しましょう。

RPi WHのセットアップ
SDカードを用意してOSを書き込む
今回は 公式のOS Raspbian を利用します。
GUIのないLite版をダウンロードしましょう。

SD Card Formatter でSDカードをフォーマットした後

Etcher で Raspbian をMicroSDに書き込みます。

3〜5分くらいで完了します。書き込み後は一度SDカードが排出されるので再度差し込み直してください。
SDカード内に
空の「ssh」フォルダと、「wpa_supplicant.conf」ファイルを作成します。
sshフォルダはSSHを利用するために作成し、wpa_supplicant.confを作ることで自動的にRPi WHがWiFiに接続するようにします。
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP
network={
ssid="WiFiのSSID"
psk="パスワード"
key_mgmt=WPA-PSK
}

SDカードを抜いてRPi WHへ挿入して、電源につないだMicroUSBケーブルを接続します。
SSHで初期設定
はじめはRPi WHのローカルIPアドレスがわかりません。
Macでは LANscan などでRPi WH のIPアドレスを確認
SSH クライアントでssh接続します。
WindowsのPowerShell やMacのTerminal を使う場合は
ssh [email protected] (RPiのIPアドレス)
初期ユーザーのパスワードを変更
pi@raspberrypi:~ $ passwd
現在のパスワードと新しいパスワードを入力
root のパスワードを設定
$ sudo passwd root
# 利用するパスワードを入力
$ su
root に切り替え
# apt update && apt upgrade -y
アップデート
よりセキュリティを高める
必須ではありませんが、乗っ取りリスクを下げるためにセキュリティ対策をしておきましょう。
SSH の設定
ssh で利用する22番ポートは攻撃されやすいので別の推測されにくいポートへ変更します。
nano エディタは Ctrl +x で編集を終了した後Enterで保存できます。
nano /etc/ssh/sshd_config
Port 10890
#PermitRootLogin prohibit-password
rootログイン不可。鍵ファイルがあってもログインできません。
一般ユーザーでログイン後 sudo や su を利用します。
#PubkeyAuthentication yes
PubkeyAuthentication yes
鍵認証がオフになっているので鍵認証に対応させます。
パスワードによる認証をオフにします。
service ssh restart
パスワードのみの認証を無効にして鍵認証へ変更
# su ユーザー名
## ユーザーのホームディレクトリへ移動
cd ~
## .sshフォルダ (隠しフォルダ)を作成
$ mkdir .ssh
## ユーザーのみ利用できるようにパーミッションを変更
$ chmod 700 .ssh
## 認証鍵作成。必要に応じてパスワードを設定する(空でもOK)
$ ssh-keygen -t rsa
mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
mv ~/.ssh/id_rsa ~/.ssh/privkey.pem
id_rsa を xxx.pem にしてプライベートキーを保存
次回からSSH クライアントで鍵ファイルを指定するなどしてログインします。
ufw で必要なポートのみ開放
iptablesは設定が難しいので、より簡単にポートの制限ができるufwをインストールします。
$ sudo apt install ufw -y
## 必要なポートのみallow(許可)する
$sudo ufw allow 80
$sudo ufw allow 443
## ufw を有効化
$sudo ufw enable
## 有効化したポート以外拒否
$sudo ufw DENY default
その他のポートを拒否
おまけ
sshログイン時に出すメッセージを変更
表示させたい文字列を作成して /etc/motd へコピペ
$ sudo nano /etc/motd

温度湿度気圧モニタリング
Raspberry Pi WHの初期設定が終わったところで、環境センサーを取り付けていきます。
必要なもの
気温湿度気圧センサー

秋月電子通商 BME280 を使います。
ピンが2つ余分なので取り付ける際は端の2つを折って外しましょう。
ジャンパピンはセンサーとRaspberry Pi を接続するコードです。20cmでは長かったので10cmくらいがちょうどよいです。

はんだごては安いものでも問題ないですが、できれば温度調整のできるものを買いましょう。

はんだは電子工作用のものでOKです。
Raspberry Pi Zero WHのピンを取り付け
まずは、bme280側のピンをはんだづけします。慣れないと難しいですがはんだがきちんと乗っていないと認識しないので落ち着いてやりましょう。

GPIO Pinout Orientation RaspberyPi Zero W

それぞれ対応するピンを確認します。
あとはジャンパピンをRaspberry Piの該当のピンに差し込むだけです。はんだづけは不要です。

ジャンパピンが長すぎて不格好ですが一応完成です。動かないよう固定するなりします。

Raspbian 設定
raspbian でl2c通信できるように設定
SSHでRaspberry Pi WHにログイン
sudo raspi-config
5. Interfacing options を選んで

l2c をonにする

$sudo nano /boot/config.txt
dtparam=i2c_arm=on
nano /etc/modules
i2c-dev
ソフトをインストール
$ sudo apt-get update
$ sudo apt-get install i2c-tools
$ sudo apt-get install python-smbus
通信テスト
i2cdetect -y 1

0x76で通信していることが確認できました。
気温湿度気圧値を取得
センサの値を見てみる
cd ~
wget https://raw.githubusercontent.com/SWITCHSCIENCE/BME280/a43306ece7e17f3009748599e1ca4d0160729559/Python27/bme280_sample.py
python bme280_sample.py

Webページでグラフ表示
数値だけ取得するのは味気ないので、データを保存してグラフで表示できるようにします。
$ sudo apt install nginx -y
$ sudo apt install php7.0-fpm
$ sudo nano /etc/nginx/sites-available/default
# 44行目あたりを変更
index index.php index.html index.htm index.nginx-debian.html;
# 56行目 #を外す
location ~ .php$ {
# 57行目 #を外す
include snippets/fastcgi-php.conf;
# 60行目 #を外す
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
# 71行目 #を外す
php-fpmとnginxを再起動
$ sudo /etc/init.d/php7.0-fpm restart
$ sudo /etc/init.d/nginx restart
あとはこちらのページを参考にさせてもらってスクリプトを
/var/www/html/
以下に配置します。
http://192.168.xxx.xxx/bme280.php
http://192.168.xxx.xxx/bme280-2.php
にアクセスしてデータとグラフが表示できればOKです。


cronに登録して自動で記録するようにしておきます。パスは環境によって変えてください。
$sudo nano /etc/crontab
*/5 * * * * root python /var/www/html/env/bme280/bme280.py
Cronを再起動
service cron restart

ケース内に設置
外にも置けるようにケースに入れてみました。
100円4パック

USBケーブルと換気用の穴をドリルで開けて完成
発熱があるのでモバイルバッテリーなどは中に入れず別のところに設置します。

中はRaspberry Pi WH を置いただけ

安い防水透湿シートが売っているので内側に張ってみようと思います。

参考リンク
Raspberry Pi + BME280モジュールで自動で温度・湿度・気圧を測定してグラフ化する