【RaspBerryPi】DHT-11 温湿度を測定 (Nord-Red版)
Raspberry Piでセンサーを接続し、部屋の温度・湿度を測ります。 今回は「DHT-11」という温湿度センサーを使用します。
DTH-11について
DHT-11は、価格も安価で入手し易い温湿度センサーです。
開発環境
ラズパイ Raspberrypi 3B
温度湿度センサー DHT-11
開発言語 NordーRed
回路を組む
使用するのはDHT-11のセンサー単体のものです。
DHT11のピン構成は、 1番:5V、2番:GPIO、
3番:NC(Non-Connected = 使用していない)
4番:GND という構成になっています。
1番ピン、4番ピンにRaspberry Piの5V、GNDを接続し、
2番ピンに任意のGPIOの端子を割り当てて情報を取得する、ということになります。
温度・湿度を取得するプログラムでピンの番号が重要になりますので、
ピンの位置は間違えないように注意してください。
準備
-ラズパイ
-Node-RED(ラズパイ3にNode-RED環境を構築する)
–DHT-11センサ
配線
ラズパイ | DHT-11 |
---|---|
5V(PIN2) | VCC |
GPIO04(PIN7) | DATA |
GND(PIN30) | GND |
Node-REDにDHT11ノードをインストール
Npde-REDのパレット管理から「node-red-contrib-dht-sensor」を追加する。
DHT-11ノードを設定する。
左側のノード一覧より「Raspberry Pi」→「rpi dht22」を選択し、フローに配置する。
各項目を下表のように設定する。
設定項目 | 設定値 |
---|---|
Sensor model | DHT-11 |
Pin numbering | BCM GPIO |
Pin number | 4 |
処理周期を決める
周期設定する
1秒ごとに繰り返す設定にする。
DHT11からデータを取得する。
DHT-11で取得したデータはmsgオブジェクトで出力される。
「debug」ノードを「rpi-dht22」ノードに接続し、msgオブジェクト全体を取得する。
デバッグ情報から「payload」に温度、「humidity」に湿度が文字列でセットされている。
ダッシュボードに出力する
Node-REDには出力結果を表示するダッシュボードがある。
温度のゲージを設定する。
温度情報は、msg.payloadにセットされているので、「value format」に設定する。
それ以外は適切に設定する。
湿度のゲージを設定する。
湿度情報は、msg.humidityにセットされているので、「value format」に設定する。
ダッシュボード画面を表示する
全体のフロー
Node-REDはフローをJSONで表現することができる。
[{“id”:”46b259d0.6696e8″,”type”:”tab”,”label”:”フロー 1″,”disabled”:false,”info”:””},{“id”:”5b2c5419.7052ec”,”type”:”ui_gauge”,”z”:”46b259d0.6696e8″,”name”:””,”group”:”2fb4fd33.8cdef2″,”order”:1,”width”:4,”height”:2,”gtype”:”gage”,”title”:”温度[℃]”,”label”:”℃”,”format”:”{{msg.payload}}”,”min”:”-5″,”max”:”45″,”colors”:[“#00b500″,”#e6e600″,”#ca3838″],”seg1″:”25″,”seg2″:”35″,”x”:520,”y”:140,”wires”:[]},{“id”:”ab6090c7.4d72b”,”type”:”ui_gauge”,”z”:”46b259d0.6696e8″,”name”:””,”group”:”2fb4fd33.8cdef2″,”order”:4,”width”:4,”height”:2,”gtype”:”gage”,”title”:”湿度[%]”,”label”:”%”,”format”:”{{msg.humidity}}”,”min”:”20″,”max”:”80″,”colors”:[“#00b500″,”#e6e600″,”#ca3838″],”seg1″:”40″,”seg2″:”70″,”x”:520,”y”:200,”wires”:[]},{“id”:”c3c64c67.521b1″,”type”:”rpi-dht22″,”z”:”46b259d0.6696e8″,”name”:””,”topic”:”rpi-dht22″,”dht”:”11″,”pintype”:”0″,”pin”:”4″,”x”:320,”y”:80,”wires”:[[“5b2c5419.7052ec”,”ab6090c7.4d72b”,”72eea165.55a95″]]},{“id”:”dec320d9.e064c”,”type”:”inject”,”z”:”46b259d0.6696e8″,”name”:””,”props”:[{“p”:”payload”},{“p”:”topic”,”vt”:”str”}],”repeat”:”1″,”crontab”:””,”once”:true,”onceDelay”:0.1,”topic”:””,”payload”:””,”payloadType”:”date”,”x”:130,”y”:80,”wires”:[[“c3c64c67.521b1”]]},{“id”:”72eea165.55a95″,”type”:”debug”,”z”:”46b259d0.6696e8″,”name”:””,”active”:true,”tosidebar”:true,”console”:false,”tostatus”:false,”complete”:”true”,”targetType”:”full”,”statusVal”:””,”statusType”:”auto”,”x”:490,”y”:80,”wires”:[]},{“id”:”2fb4fd33.8cdef2″,”type”:”ui_group”,”z”:””,”name”:”センサ”,”tab”:”21ab0c69.4ac974″,”order”:1,”disp”:true,”width”:11,”collapse”:false},{“id”:”21ab0c69.4ac974″,”type”:”ui_tab”,”z”:””,”name”:”温度・気温”,”icon”:”dashboard”,”order”:1,”disabled”:false,”hidden”:false}]