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

アイキャッチ

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

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に接続するようにします。

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP
network={
ssid="WiFiのSSID"
psk="パスワード"
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 [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
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にログイン

sudo raspi-config

5. Interfacing options を選んで

raspi-config

l2c をonにする

l2cをオンに
Ubuntuなどの場合
$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/

以下に配置します。

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

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パック

seria ケース

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

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

穴

中はRaspberry Pi WH を置いただけ

ケース内

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

参考リンク

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

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

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

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

アイキャッチ

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

気になるガジェットやサービスをレビュー!日常生活のアップデートを目標に役に立つ情報を掲載していきます。

仕事のご依頼などはお問い合わせからどうぞ。

目次