Raspberry Pi WH セットアップ と 温度湿度気圧モニタリング-->

アイキャッチ

Raspberry Pi WHを購入したのでセットアップしていきます。

初期設定はほとんどこちらの記事で紹介した内容と同じです。

ラズパイ RaspberryPi 3Bの初期設定をしてみる

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版をダウンロードしましょう。

raspbian

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

フォーマット

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

Etcher

3〜5分くらいで完了します。書き込み後は一度SDカードが排出されるので再度差し込み直してください。

 

SDカード内に

空の「ssh」フォルダと、「wpa_supplicant.conf」ファイルを作成します。

sshフォルダはSSHを利用するために作成し、wpa_supplicant.confを作ることで自動的にRPi WHがWiFiに接続するようにします。

wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP
network={
ssid="WiFiのSSID"
psk="Your Address"
key_mgmt=WPA-PSK
}

ssh

SDカードを抜いてRPi WHへ挿入して、電源につないだMicroUSBケーブルを接続します。

SSHで初期設定

はじめはRPi WHのローカルIPアドレスがわかりません。

Macでは LANscan などでRPi WH のIPアドレスを確認

SSH クライアントでssh接続します。

WindowsのPowerShell やMacのTerminal を使う場合は

SSH
ssh [email protected] (RPiのIPアドレス)

初期ユーザーのYour Addressを変更

コード
[email protected]:~ $ passwd

現在のYour Addressと新しいYour Addressを入力

root のYour Addressを設定

SSH
$ sudo passwd root

利用するYour Addressを入力

SSH
$ su

root に切り替え

SSH
# apt update && apt upgrade -y

アップデート

よりセキュリティを高める

必須ではありませんが、乗っ取りリスクを下げるためにセキュリティ対策をしておきましょう。

SSH の設定

ssh で利用する22番ポートは攻撃されやすいので別の推測されにくいポートへ変更します。

nano エディタは Ctrl +x で編集を終了した後Enterで保存できます。

コード
nano /etc/ssh/sshd_config

Port 10890

#PermitRootLogin prohibit-password

rootSubmit不可。鍵ファイルがあってもSubmitできません。

一般ユーザーでSubmit後 sudo や su を利用します。

 

コード
#PubkeyAuthentication yes

PubkeyAuthentication yes

鍵認証がオフになっているので鍵認証に対応させます。

コード
#PasswordAuthentication yes

PasswordAuthentication no

Your Addressによる認証をオフにします。

 

service ssh restart

Your Addressのみの認証を無効にして鍵認証へ変更

コード
su ユーザー名

ユーザーへ変更

コード
cd ~

ユーザーのホームディレクトリへ移動

コード
mkdir .ssh

.sshフォルダ (隠しフォルダ)を作成

コード
chmod 700 .ssh

ユーザーのみ利用できるようにパーミッションを変更

コード
ssh-keygen -t rsa

Your Addressは空でもOKだがYour Addressを設定しておくとよりよし

 

コード
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 クライアントで鍵ファイルを指定するなどしてSubmitします。

ufw で必要なポートのみ開放

iptablesは設定が難しいので、より簡単にポートの制限ができるufwをインストールします。

コード
apt install ufw -y

必要なポートのみallow(許可)する

コード
ufw allow 80

ufw allow 443

ufw enable

# ufw を有効化

ufw DENY default

その他のポートを拒否

 

おまけ

sshSubmit時に出すメッセージを変更

Text to ASCII Art

表示させたい文字列を作成して /etc/motd へコピペ

コード
sudo nano /etc/motd

welcome メッセージ

 

温度湿度気圧モニタリング

Raspberry Pi WHの初期設定が終わったところで、環境センサーを取り付けていきます。

必要なもの

気温湿度気圧センサー

bme280

秋月電子通商 BME280 を使います。

ピンが2つ余分なので取り付ける際は端の2つを折って外しましょう。

 

ジャンパピンはセンサーとRaspberry Pi を接続するコードです。20cmでは長かったので10cmくらいがちょうどよいです。

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

はんだは電子工作用のものでOKです。

Raspberry Pi Zero WHのピンを取り付け

まずは、bme280側のピンをはんだづけします。慣れないと難しいですがはんだがきちんと乗っていないと認識しないので落ち着いてやりましょう。

bme280側ピン

GPIO Pinout Orientation RaspberyPi Zero W

それぞれ対応するピンを確認します。
RPIWHピン

あとはジャンパピンをRaspberry Piの該当のピンに差し込むだけです。はんだづけは不要です。

ピン配置

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

完成

Raspbian 設定

raspbian でl2c通信できるように設定

SSHでRaspberry Pi WHにSubmit

SSH
sudo raspi-config

5. Interfacing options を選んで

raspi-config

l2c をonにする

l2cをオンに

Ubuntuなどの場合
SSH
nano /boot/config.txt
dtparam=i2c_arm=on

nano /etc/modules
i2c-dev

ソフトをインストール

SSH
$ sudo apt-get update
$ sudo apt-get install i2c-tools
$ sudo apt-get install python-smbus

通信テスト

SSH
i2cdetect -y 1

0x76で通信していることが確認できました。

気温湿度気圧値を取得

センサの値を見てみる

SSH
cd ~

wget https://raw.githubusercontent.com/SWITCHSCIENCE/BME280/a43306ece7e17f3009748599e1ca4d0160729559/Python27/bme280_sample.py

python bme280_sample.py
センサー値取得

Webページでグラフ表示

数値だけ取得するのは味気ないので、データを保存してグラフで表示できるようにします。

SSH
sudo apt install nginx -y

sudo apt install php7.0-fpm
SSH
sudo nano /etc/nginx/sites-available

# 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を再起動

SSH
sudo /etc/init.d/php7.0-fpm restart

sudo /etc/init.d/nginx restart

あとはこちらのページを参考にさせてもらってスクリプトを

/var/www/html/

以下に配置します。

ラズパイ+BME280でIoT環境センサー構築(その3)

 

http://192.168.xxx.xxx/bme280.php

http://192.168.xxx.xxx/bme280-2.php

にアクセスしてデータとグラフが表示できればOKです。

センサー表

センサーグラフ

 

cronに登録して自動で記録するようにしておきます。パスは環境によって変えてください。

SSH
nano /etc/crontab

*/5 * * * *    root    python /var/www/html/env/bme280/bme280.py

Cronを再起動

SSH
service cron restart

ケース内に設置

外にも置けるようにケースに入れてみました。

100円4パック

seria ケース

USBケーブルと換気用の穴をドリルで開けて完成

発熱があるのでモバイルバッテリーなどは中に入れず別のところに設置します。

穴

中はRaspberry Pi WH を置いただけ

ケース内

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

 

参考リンク

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

KUSANAGIにSSHでつなぐためにセキュリティを強化する

ラズパイ+BME280でIoT環境センサー構築(その3)

Raspberry Pi にWebサーバ入れてphp動かす

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です