らずらいと姫の挑戦日記(第43回)~お手軽IoTにチャレンジ~
2017-06-29
Hall Sensor(磁石)、EnvSensor(温度・湿度)、CT Sensor(電流値)をまとめて測定して、誰にでも出来るお手軽IoTにチャレンジしてみます♪
前回までにButton、EnvSensor、HallSensor、ProximitySensor、CT Sensorをそれぞれ1つずつ動かしてきました。
今回は、それらをまとめて測定して、node-redで状態を見て、グラフ化してみたいと思います。
node-config
node-red-contrib-lazuriteに、『lazurite-node-config』という非常に便利なノードが追加されました。HallSensor、ProximitySensor、EnvSensor、Button、CT Sensorの設定が全て入っていて、『node-config』を1個配置すれば、あとは線で繋ぐだけで簡単に測定して結果をみる事ができます。
下の図は、Hall Sensor(磁石)、EnvSensor(温度・湿度)、CT Sensor(電流値)をまとめて測定しているnode-redの画面です。
『node-config』の右側にある出力ボタンとそれぞれのセンサーを繋いでグラフ表示をしています。
サンプルプログラムとnode-configの関係をまとめた表です。
出力番号は上から順になっています。
HallSensorは上2個、EnvSensorはそのあとの5個、CT Sensorはそのあとの2個で、それぞれ出力されるデータが変わります。
実際にセンサを動かしながら確認してみましょう♪
HallSensor
磁気に反応したら、【磁石を検出→1】、【磁石が離れた→0】といったデータが出力されます。
今回は、【磁石を検出→1】の回数を累計してグラフ化してみます。
Lazuriteの設定
接続の仕方など詳細は前回ブログを確認して下さい。
Lazurite IDEを立ち上げます。
サンプルプログラムの07.SwitchSience→HallSensorShieldHall_subghzを使用します。
無線の設定をして、マイコンボードへ転送してLazuriteの設定は終了です。
Raspberry Piの設定
次にRaspberryPiの設定です。Lazurite用のNode-RED用のライブラリ(node-red-contrib-lazurite)と、グラフツール(node-red-dashboard)がインストールされていない場合、前回ブログをご覧ください。
インストールされている場合は、node-redを立ち上げて下さい。
node-redの設定
画面左側から①lazurite Rxと②debugを選択・配置します。
『検索』部分に配置したいノードの文字をいれると出てきます。
lazurite Rxの設定後、③線で結び、④Deployをクリックします。
無線が繋がり、磁石を基板にくっつけたり離したりすると、画面右側のdebugに【磁石を検出→1、磁石が離れた→0】という結果が出ています。
次に、⑤lazurite node configを配置します。
この時点繋いでいるのは、Hall Sensorだけなので、出力ボタンは表のとおり、2個だけです。
⑤lazurite node configをダブルクリックで開きます。
⑥Hall Sensorの基板にセットしたLazurite920Jのアドレス下4桁を入力し(先頭に0xをつける)、⑦のプルダウンから07.hallを選択します。
⑧の『Done』をクリックします。
次に、⑨lazurite calcuratorを配置します。
⑨averageをダブルクリックして開きます。
⑩modeでしたい事を選択します。
今回は1の値【磁石を検出した】の累積を見たいので、のプルダウンから『count』を選択します。
⑪のminの最小値を『0.5』にセットします。最小値を『0.5』にセットすることで、0の値【磁石が離れた】はカウントしません。
⑫の『Done』をクリックします。
ノードの名前が⑨averageに変わります。
次は、磁石を検出した累計をグラフで表示させます。
まず、⑬chartを配置し、ダブルクリックして開きます。
『node-config』、『 count』、『 chart』を線で繋ぎます。『node-config』はHallSensorの結果を見たいので出力番号1と繋ぎます。
⑰のUpdate→⑱のDoneの順にクリックして、chartの設定を終了します。
最後に『Deploy』をクリックします。
グラフ表示用のnode-red-dashboardを立ち上げます。
新しいブラウザを立ち上げて、node-redのアドレスの後ろに、「ui」を入力→enter
でグラフが表示されます。
一定時間磁石を検出しませんでしたが、磁石を検出した回数が増加しているのがわかります。
Hall Sensor Shieldをドアなどにとりつけて、ドアが開く回数や、どの時間帯に開閉が多いなどの結果を知る事が出来ますね。
Env SensorとCT Sensor
環境センサーは温度・湿度・気圧・明るさ、CTセンサーは使用している電流値をそれぞれグラフ化してみます。
Lazuriteの設定
Lazurite IDEを2つ立ち上げて、サンプルプログラムの07.SwitchSience→EnvSensorShield_subghzと、05.Other→CT_Sensor_subghzを使用します。それぞれ、無線の設定をします。
node-redの設定
既に配置してある『node config』をダブルクリックで開きます。
②EnvSensorとCT Sensorそれぞれのアドレス下4桁を入力し、③のプルダウンから07.Envと05.CTを選択します。
④の『Done』をクリックします。
⑤のnode-configの出力ボタンが2個から9個に増えています。
環境センサーとCTセンサーの値をグラフ表示してみます。
環境センサーは温度と湿度の結果をそのまま線グラフに表示させたいと思います。
⑥のchartを配置して、chartをダブルクリックして開きグラフの設定をします。
上の表から、⑦の温度は上から3番目、⑧の湿度は5番目なので、それぞれ線で繋ぎます。
さらに、CTセンサーの値から電流が流れているときは使用中、電流が流れていない時は未使用と判断して、その値から稼働率を計算して半円グラフに表示させたいと思います。
Hall sensorと同様に、⑨lazurite calcuratorと、⑩Gaugeを配置し線で繋ぎます。
⑨のlazurite calcuratorをダブルクリックで開きます。
⑪のmodeで『capacity』を選択します。
⑫のminの最小値を『0.05』にセットします。
⑬の『Done』をクリックします。
ノードの名前が⑨capacityに変わります。
最後に『Deploy』をクリックします。
Hall sensorのグラフの下に、Env sensorとCT sensorのグラフが追加されています。
『node-config』に全て設定されているので、あとは選んで線で繋ぐだけで簡単モニタリングが出来ました♪
あとは、何を知りたい・見たいかを『lazurite calcurator』で選択していけば自分好みのモニタリングが出来上がりです。グラフの種類・レイアウトもそれぞれ自分好みに変更できます。