2019年3月3日日曜日

NOOBS+Raspberry PiにRaspbian+Node-REDを入れてDHT11で温度測定

NOOBSがSDカードにプリインストールされているRaspberry Piのキットが売られているようです。
これを使ってRaspbian、Node-REDをセットアップします。
さらにNode-RED上でDHT11の値を取得してクラウドにデータを送るところまでやってみます。

材料

Raspberry Pi 3B+ に NOOBS プリインストール SD カードがセットになっているスタータキット。
ハードウェア的には一通り揃っていますが、OS (Raspbian) が動くようにするまで一手間かかります。

激安の小型ブレッドボード。
6個も何に使うんだよ、という気もしますが。

DHT11 温湿度センサ。
A/Dコンバータが内蔵されているのでとりあえずセンサを扱いたい時におすすめ。
ただし、Node-REDを使う場合はライブラリを別途入れる必要があります。

発光ダイオードの5色セット。100個入り!
電光掲示板でも作るつもりかよ、と言いたくなる量ですが、少量で買っても別に安くならないのでまとめ買い推奨。
DHT11とは関係ないですがGPIOの動作確認用。

各種抵抗600本入り!
多いことは美しい。

NOOBSとは?

NOOBSをSDカードにファイルとして書き込んでおくことで、初回起動時にRaspbianのインストーラが起動します。
Raspbian以外のOSもインストールできるようですが、Raspbianであればネットワーク不要でインストールできます。
NOOBSのオリジナルファイルはここからダウンロードし、WindowsやMacであらかじめSDカードに書き込んでおきましょう。
(キットを購入した場合は書き込み済み。)

NOOBSからRaspbianをインストールする際は1時間くらい掛かるので要注意。

NOOBSでRaspbianをインストール

あらかじめSDカードに設定を書き込んでおくと、Raspbianのインストールをヘッドレス(モニタなし)でできます。
やり方はこのあたりのブログで詳しく説明されています。
Tom's Hobby「【ラズパイ】Raspberry Pi NOOBS Wifi設定、VNCインストールなど事前設定しておく【インストール】」

NOOBSからRaspbianをインストールする方法はこのあたりを参照。
このステップでかなり時間がかかります。
第56回「改めましてラズベリーパイの基本!(1) Raspberry Pi NOOBSインストール 2017年度版」

WiFi設定してSSHを有効化する

Raspbianセットアップが済んだSDカードにMacやWindowsから設定ファイルを書き込んでおくと、Raspberry Piにモニタをつながなくても続きの作業ができるようになります。

●Macで設定する場合
「Raspberry Pi Zero W をヘッドレスでWiFi対応セットアップする」

●Windowsで設定する場合
Macの場合と同様に次の2つのファイルを書き込めばOKです。

(1) {SDカードのドライブ名}¥boot¥wpa_supplicant.conf
通常は設定済みのRaspberry Piから/etc/wpa_supplicant/wpa_supplicant.confをコピーするのが簡単です。
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
        ssid="{SSIDを書く}"
        #psk="{WiFiパスワード}"
        psk=暗号化したWiFiパスワード
}
(2) {SDカードのドライブ名}¥boot¥ssh
このファイル名で空ファイルを置きます。

●セットアップ中のRaspberry Piにモニタを繋いで設定する場合
「Raspberry Pi3 に液晶モニタを付けて一体型 PC に」
SSHは「sudo raspi-config」コマンドから「5 Interfacing Options」でSSHを有効化すれば使えるようになります。

WindowsからSSH接続する

まず、Raspberry PiのIPアドレスを調べます。
Raspberry Piのターミナル上で次のコマンドを打てばIPアドレスがわかります。
$ ifconfig

WindowsでSSHを頻繁に使う場合はTeraTermをインストールします。
一時的にSSH接続したいだけの場合はDOSプロンプトでも大丈夫です。

Windows上で次のように進めるとWindowsからRaspberry PiにSSH接続できます。
(1) WindowsでDOSプロンプトを開く。(タスクトレイで「DOS」と検索すると出てきます。)
(2) 次のコマンドを実行。
ssh pi@{Raspberry PiのIPアドレス}
(3) 初回は何か質問されるのでYESを答える。 (4) piユーザのデフォルトパスワードは「raspberry」

パスワードを変更する

デフォルトパスワードのまま公衆WiFiなどに接続するとあっさり乗っ取られます。
(そもそもRaspberry Piで公衆WiFiにつなぐなよ、という気もしますが。。。) 次のコマンドでパスワードを変更。
$ passwd

Node-REDをセットアップする

ここまででようやくRaspberry Piをコマンドラインで操作できるようになりました。
Node-REDをセットアップして、ブラウザからRaspberry Piの動作を定義できるようにします。
最近はRaspbianに標準でインストールされていますが、バージョンが古いなど問題がある場合はアップデートした方が良いかもしれません。

Node-REDのセットアップについては過去記事、、、と言いたいところですが、以下のコマンドをSSHで実行するだけです。
$ bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)

Node-REDでLチカ

Node-REDとGPIOの動作確認としてLチカさせます。
※Lチカ=LEDをチカチカさせること。ソフトウェアで言うところの「Hello World」みたいなもの。
世の中には詳しいブログがたくさんあるのでそっちを見てください。
oh-maker「Raspberry PiとNode-REDでLチカ」

Node-REDでDHT11をつかえるようにする

Node-REDでGPIOを使えることが分かったので、DHT11と繋ぎます。
DHT11から値を取得するには、SSH接続(もしくはローカルのターミナル)で少し準備が必要です。
設定方法はこのブログが分かりやすいです。
EPIPE「Raspberry Pi + Node-RED + DHT11 で温度・湿度取得」

ノードのつなぎ方はここを参考に。
ラズパイで始めるIoTハンズオン

ちなみに、GPIOのピン番号はRaspberry Piの公式サイトにドキュメントがあります。
GPIO - Raspberry Pi Documentation

Node-REDで取得した温度をクラウドに飛ばす

Node-RED のノードリストの「ソーシャル」にある email ノードを使うと簡単にメールを飛ばせます。
デフォルトで Gmail の SMTP サーバ(メール送信サーバ)が指定されているので、自分のGoogleアカウントの情報を設定するだけです。

もう少し頑張りたい場合は Twitter に飛ばすこともできますが、事前にTwitter API keyを取得しておく必要があります。
Qiita Twitter のAPIキーの取得方法が変わった

Node-REDからTwitterにダイレクトメッセージを飛ばす方法はここで解説されています。
Qiita「Node-RED で Twitter ダイレクト・メッセージ を送る場合の備忘録」

0 件のコメント:

コメントを投稿