Pimoroni Enviro+ からGrafana(1/2)
室内環境を計測しようと、RPi用のセンサーボードを購入。
構想
RPI3 は、もともと自宅のIoT環境のHUBとしてNode-REDを利用しているので、全てのmetricsデータを一旦集約するのにちょうどいい。
ただし、RPi3 なのでデータはなにかのひょうしに壊れることを覚悟しなくてはいけない。
いつか、Cloud上のサーバに移行しよう。
Pimoroni Enviro+ のsetup
本家のページは、以下。
https://learn.pimoroni.com/tutorial/sandyj/getting-started-with-enviro-plus
いつものようにRPiをsetupして、WIfi + ssh login ができるようになったら、install
sudo apt-get install git -y
git clone https://github.com/pimoroni/enviroplus-python
cd enviroplus-python
sudo ./install.sh
10分くらいかかったかも。
install.sh が完了すると、以下の場所にサンプルプログラムがある。
cd $HOME/Pimoroni/enviroplus/examples/
いくつかサンプルがあるければ、今回はMQTT publisher となる mqtt-all.py
を利用する。
ただし、先に MQTT Broker を起動すべきなので、一旦そっちの手順に移る。
MQTT broker のsetup
Environ+ とは別のRPiを準備して、MQTT broker をsetupする。
sudo apt install mosquitto
sudo systemctl enable mosquitto
sudo systemctl start mosquitto
テストのためには、client もいれたほうがいい。
sudo apt-get install mosquitto-clients
Enviro+ サーバからMQTT のpublish
データの識別子 TOIPC
、今回は Enviro
とする。
あんまり細かく測ってもしょうがないけど、 10秒
間隔にする。
cd Pimoroni/enviroplus/examples/
python3 mqtt-all.py --broker BrokerのIP --topic enviro --interval 10 >/dev/null &
上記の例では、command の出力結果を捨てているが、実際はこんな感じ
mqtt-all.py - Reads Enviro plus data and sends over mqtt.
broker: BrokerのIP
client_id: raspi-0000000026885ac9
port: 1883
topic: enviro
Press Ctrl+C to exit!
No PMS5003 sensor connected
RPi serial: 0000000026885ac9
Wi-Fi: connected
MQTT broker IP: BrokerのIP
connected OK
{'temperature': 13, 'pressure': 69230, 'humidity': 88, 'oxidised': 27, 'reduced': 351, 'nh3': 142, 'lux': 16, 'serial': '0000000026885ac9'}
mid: 1
これで、 Enviro+ を付けた RPi zero と MQTT Broker の接続はOK。
続きはこちら。