ボクにもわかる電子工作

Raspberry Pi、IchigoJam、Wi-Fi、BLE、XBee、RN-42、ESP-WROOM-02、ESP32

ESP8266+ESP32

[ リスト | 詳細 ]

記事検索
検索

全7ページ

[1] [2] [3] [4] [5] [6] [7]

[ 次のページ ]

Espressif製Wi-FiモジュールESP32-WROOM-32を使い、シンプルな超簡易的周辺回路で動作する「IoTセンサの実験」を行ったところ、295日間(9.7か月)の動作が確認できました。

イメージ 1
超シンプルな回路で、単3アルカリ乾電池2本で、295日間(9.7か月)の長期間動作を実現した。

実証結果

下図は、モノタロウ製の単3アルカリ乾電池2本をESP32-WROOM-32モジュールへ直結し、送信間隔60分で動かしたときの、乾電池2本分の電圧の推移です。295日(9.7か月)にわたって動作し続けました。

イメージ 2
単3アルカリ乾電池2本をESP32モジュールへ直結することで、295日(9.7か月)の動作(送信間隔60分)が行えた。縦軸が電池電圧、横軸が経過月数。

上図の横軸の先頭「12/29」は、実験の開始日2017年12月29日を示します。横軸の主目盛の間隔は1か月、補助目盛は1週間です。
3月末までは徐々に電圧が下がり、4〜5月は2.8V付近を維持します。その後、ふたたび徐々に下がり、2.65Vで停止しました。
3月末の1週間ほどの期間には、2.8V前後を約0.03Vの変動を繰り返しています。この期間は、ESP32-WROOM-32モジュール内のレギュレータが2つの動作状態をもっており、そのどちらかをとっていたため考えられます。

超シンプル回路の背景

この実験を行った背景を説明します。
(興味の無い方は、次節の「実験方法」へ進んでください)

ESP32-WROOM-32モジュールのディープスリープ時の待機電力は、旧モデルESP-WROOM-02の60μAに対して20μAと低い点、プロセッサの高速化により処理時間を短く出来る点などから、旧モデルと同等以上の動作期間が実現できると言われています。

しかし、実使用状態では、起動時の突入電流の大きさから、旧モデルの半分以下の期間しか動作しないことが多くありました。突入電流が生じている状態で適切に起動させるには、500mA以上の供給能力がある電源レギュレータと、大容量の低ESRコンデンサが必要ですが、こういった部品の多くは、待機電流が大きく、また電圧降下により電池の終止電圧を高めてしまいます。(失敗例=https://t.co/8LAyYYyoEv
待機電流は、製作段階で確認することができます。しかし、電池の消耗とともにESP32モジュールが起動しなくなり、電池を使い切ることなく停止してしまうので、製作段階で確認した待機電流から電池寿命を試算しても、期待通りの結果が得られません。

そこで、「どうせ電池を使いきれないのであれば」と、
割り切った回路が、「直列2本の乾電池を直結するシンプル回路」です。

ところで、かつて(2016年12月時点)のESP32-WROOM-32のデータシートには、乾電池2本直結による動作の可能性が示されていました(電源電圧の入力範囲が2.2V〜3.6Vとなっていた)。
しかし、実測では2.7Vを下回ると動作しなくなるので、実際に乾電池2本直結で動かした例は見当たりませんでした。
さらに、2017年9月には、データシート上の動作電圧も2.7V〜3.6Vに訂正され、乾電池2本の直結動作が難しいことが明らかになりました。多くの乾電池駆動の機器は、乾電池1本あたり1V前後まで動作します。1本あたり1.35Vまでしか動作しないESP32-WROOM-32は、電池を使い切らない状態で停止してしまいます。

始めから無駄だと分かっている実験
それを行うのは、良いアイデアが思いつかないボクだけかも

イメージ 4
電池の開放電圧が2.9Vのときは起動するが、2.7V以下だと起動に失敗し、リセット処理が繰り返される様子

このような背景で実験に着手しました。
電源回路を省略することで、待機電力の大幅な削減と、電圧降下の抑制効果が図れます。

その結果として、一般的なレギュレータ(秋月などで手軽に手に入るレギュレータ)を使用するよりも、長寿命化することができました。

実験方法

実験に使用したESP32-WROOM-32は、秋月電子通商製のDIP化キットAE-ESP-WROOM-32です。
単3乾電池2本用の電池ボックスの電源コード(赤)をESP32-WROOM-32の3V3へ、電源コード(黒)をGNDへ接続し、低ESRのコンデンサ1000μFをこれらの端子へ並列に挿入しました。
また、電圧モニタ用に、電源端子を150kΩの抵抗2個で1/2に分圧して、IO34へ入力しました。

製作したプログラムは下記からダウンロード出来ます。
製作したプログラム:
プログラム12行目〜15行目を①手持ちのWi-Fiアクセスポイント、②Ambientで得たIDとライトキーへ変更し、③19行目の「#define SLEEP_P」を60分(60*60*1000000)に書き換えてから、ESP32-WROOM-32へ書き込んでください。分圧比は考慮されていませんので、考慮したい場合は、変数adcに2を乗算してください。

実験中の電圧の推移は、Ambientへ送信して蓄積することにより、下図のようなグラフで確認することが出来ます。外出中もスマホで確認が出来て、便利です。

イメージ 3

また、UDPのパケットをモニターすることで、電池切れを速やかに検出することも出来ます。
下記のスクリプトの「DEVS=」内にある「adcnv_1」の数字は、電池切れの判定時間(分)です。180を設定しておけば、電池が切れてから約3時間以内に検出することが出来ます。
また、メールで通知を行うために、muttをインストールし、「MAILTO=」にメールアドレスを入力してください。
電池切れを検出し、メールを送信するスクリプト:

GMailで送信するためのインストール・設定用スクリプト:

ESP-WROOM-02なみの電池寿命を達成

旧モデルのESP-WROOM-02では、単3アルカリ乾電池3本(送信間隔30分)で、1年間の動作が可能であることが分かっていました。
ESP-WROOM-02・単3アルカリ乾電池3本で1年間
https://t.co/GHN0yf5jIC
今回は、単3アルカリ乾電池2本なので、8か月(12か月×2本÷3本)以上の動作が出来れば、ESP-WROOM-02なみと言えるでしょう。ただし、ESP-WROOM-02の実験に比べて、送信間隔を2倍の60分にしています。
そこで、これまでの実験の結果を試算式の係数へフィードバックし、送信間隔が30分のESP32-WROOM-32を単3アルカリ乾電池2本で動作させた場合の動作期間を試算してみたところ、約9か月(3本で13か月相当)となることが分かりました。
以上から、ESP-WROOM-02なみの長時間動作を達成したとみなしました。
(引き続き、検証を行ってゆく予定です。)

実験を行うときの注意点(実験を行うときは必ずご覧ください)

今回の回路には、電源の保護回路が入っていません。例えば、ブレッドボード上やモジュール内で電源がショートしてしまった場合、発熱や発火の恐れがあります。少なくとも、以下の点に注意してください。
  1. ポリカーボネート製のケースなどに入れること
    ※燃えやすいプラスチックやレンジ用の耐熱容器は危険なので使用しない
  2. 周囲に燃えやすいものが無く、安定した場所に設置すること
  3. 部品やコードが外れないように耐熱テープ(ポリイミド)などで固定すること
  4. ブレッドボードや電池ボックスを両面テープやネジでケースへ固定すること
    ※機器が落下したときなどに外れないように
  5. 動作(送信)しなくなったら、すぐに電池を外すこと
    ※電池が減って、送信できなくなると、回路に電流が流れ続け、発熱します
    電池には残量が残っているので、発熱量が大きい点に注意してください
  6. 突入電流によってコンデンサの上面が破裂する場合があることを想定しておくこと
    ※ケースに開口穴を設ける、許容電流の高いコンデンサを選定するなど
  7. 異常が発覚したときに、速やかに電池を外せる状態にしておくこと
機器が発火した場合を想定し、発火しても燃え広がらない対策を、必ず、行ってください。

なお、製品として販売するような場合は、保護回路が必要です。
少なくともリセッタブル・ヒューズを使用し、内部発熱や発火を防止してください。

by ボクにもわかる電子工作
https://bokunimo.net/

この記事に

開く コメント(0)

ESP32シリーズを使用して、8か月のIoTセンサ動作が確認できましたので、報告いたします。

電源には、単3アルカリ乾電池4本と、村田製LXDC55を搭載した秋月電子通商製のAE-LXDC55-3.3Vを使用し、60分に1度、IoT用クラウドサービスAmbientへ送信しました。

ESP32-WROOM-32モジュールの起動時の突入電流と、Wi-Fi動作時の消費電流が大きいので、手軽な電源回路を実現するのに苦労しました。
写真右側の黒色の基板には、もともとDCDCコンバータや、リチウムイオン電池を搭載可能な電池ボックス(基板裏面)が搭載されていました。しかし、これらの消費電力が大きかったので、電源パターンを切断し、左側の赤色の基板に実装された村田製DCDCコンバータを使用しました。

イメージ 1
ESP32-WROOM-32を単3アルカリ乾電池4本で動作させる実験の様子

村田製DCDCコンバータを使用したときの本システム全体の消費電力は約2mW、単3アルカリ乾電池で247日(約8か月・送信間隔=60分)、動作しました。

IoT用クラウドサービスAmbientを使ったので、動作の様子を確認しながら実証検証を行うことができました。
また意外と手間やコストのかかる取得データの保管もAmbient(無料で利用可能)なら手軽です。


動作期間8か月の電池電圧の推移

下図は、8か月間の電池電圧の推移です。

イメージ 2
ESP32-WROOM-32+村田製作所製LXDC55の組み合わせで、2017年12月29日から2018年9月2日までの247日(8.1か月)の動作が行えた

グラフをみると、7月に4.7Vから4.5Vへ落ち込む様子が見られます。下図は、その拡大図です。2日間かけて、電圧が激しく変動していたことが分かります。
これは、村田LXDC55のDCDCコンバータが4.75V以上の入力で動作し、それを下回ると、LDOの動作に切り替わった様子だと思います。
また、LDOの変換効率がDCDCよりも悪く、約0.2Vの電圧降下をまねいたということも分かります。

イメージ 3
4.75V以下でDCDCコンバータがLDOに切り替わった。また、変換効率の低下によって0.2Vの電圧降下も生じた。

試算通りの動作を達成させるための工夫

ESP32-WROOM-32の電池の持ち時間を、試算通りに達成させることは難しいです。前回は、試算120日の構成にも関わらず、70日しか持ちませんでした。それ以前の実験では、半分以下しか達成できないこともありました。
試算120日にも関わらず、70日しか動作しなかった例:

今回: 試算248日 実証実績247日 (達成率 100%)
前回: 試算118日 実証実績70日 (達成率 59%)
今回、試算通りの動作を確認するために、以下の2点について、考慮しました。
  1. 降圧型DCDCコンバータを使用(消費電力150μA)
  2. 1000μFの低ESRコンデンサ×2個(計2000μF)を追加
降圧型にしたのは、電池電圧が下がったときの消費電流増大に伴う起動不具合を防止するためです。
ESP32-WROOM-32の起動時は、1Aもの突入電流が数十μ秒発生し、その後、電流200mAが10ms、さらに約1秒後に電流200mAが100ms、流れます。とくに、最後の200mA×100msの電流量の負担により、電池の終止電圧を高めてしまう(電池寿命を短くしてしまう)ということが分かりました。そこで、電池を4本直列にして、電圧を引き上げておき、降圧型で使用することで、終止電圧の高まりを抑えました。
大容量のコンデンサも、突入電流によるESP32マイコンへの供給電圧の低下を下げるためです。

なお、1000μFのコンデンサは、リーク電流が発生する場合があります。リーク電流は個体差があるので、少し、多めに買って、リーク電流の少ないコンデンサを使用すると良いでしょう。
本製作例での平均動作電力は約2mWです。もし仮に、1mAのリーク電流が発生したとすると、電池寿命は2か月程度まで落ち込むことになります。

CQ出版のIoT Express基板を使って製作してみても良いでしょう。
IoT Express基板へ村田製LXDC55を実装した例:

課題

課題も残っています。旧モデルESP-WROOM-02を使った場合、単3アルカリ電池3本で1年間の動作実績があり、電池の数が少ないにも関わらず、4か月も本機が負けていました。
この課題については、全く異なる方法で対策し、すでに良好な結果を得ています。
ESP32-WROOM-32・単3アルカリ乾電池2本で9.7か月

ESP-WROOM-02・単3アルカリ乾電池3本で1年間
https://t.co/GHN0yf5jIC

by ボクにもわかる電子工作

この記事に

開く コメント(0)

Espressiff 製 Wi-FiモジュールESP-WROOM-32(以下ESP32)を使い、アルカリ乾電池による長時間動作の実験を行っています。
今回は、TI製の昇圧DCDCコンバータ TPS61020を使って実験してみました。

昇圧DCDCコンバータ TI製TPS61020

TPS61020はわずか25μA(Typ)で動作可能な昇圧型DCDCコンバータです。入力電圧0.9V〜6Vに対して定電圧(3.3V)で最大800mA(最小電圧時200mA)の出力を行うことができます。降圧時はレギュレータとして動作します。

30分ごとに温湿度を送信するESP32搭載Wi-Fiセンサを用い、単4電池2本で何か月の動作が可能かを実験してみました。

想定した条件で試算すると、単4電池2本で4か月(単3電池2本だと10か月間)の動作が可能です。
しかし、実際には70日(2.3か月)しか持ちませんでした。

ESP-WROOM-32に単4アルカリ乾電池2本を接続

イメージ 1
単4アルカリ乾電池2本で4か月の動作を見込んで製作したWi-Fi温湿度センサ(センシリオン製SHT31使用)だが、実験の結果、2.3か月しか持たなかった。DCDC出力には1000μF+330μFのコンデンサを実装した。

ハードウェアの構成は以下の通りです。
Wi-Fiモジュール:Espresiff製 ESP-WROOM-32
昇圧DCDC電源:TI製 TPS61020
温湿度センサ:センシリオンSHT-31
電源用コンデンサ:330μF+1000μF
アルカリ乾電池:モノタロウ製 単4乾電池 2本
使用した昇圧DCDC電源TPS61020のモジュールはストロベリー・リナックス製です。
モバイルパワーXBee変換モジュール 「MB-X」
https://strawberry-linux.com/catalog/items?code=12041
測定データは、IoTセンサのグラフ表示が可能なクラウドサービスAmbientへ送信しました。
Ambient (チャネル141)

測定結果の詳細:レギュレータからDCDC動作へ変わるようす

測定完了後にダウンロードした電池電圧の測定結果を以下に示します。縦軸は電池電圧、横軸は1目盛1週間の経過時間です。
最初の1週間から10日ほどは、レギュレータとして動作し、その後、数日から1週間ほどで、DCDC動作へ切り替わる様子が分かります。

イメージ 2
電池電圧の変化の様子(縦軸=電圧V)
2018年6〜8月(図・上段)と、2018年4〜6月(図・下段)に実験を行った。横軸の目盛は7日毎で、最初の1.5週間ほどは電源ICがレギュレータとして作用し、その後、DCDCへ徐々に切り替わり、2週間目からDCDC動作となったことが分かる。電池末期の終止電圧は1.3〜1.4Vだった。

レギュレータ動作時は、電池の内部抵抗による電圧の下がり具合が大きいことから、電源ICの効率が悪いことが覗えます。しかし、その後、電圧が上昇していることから、徐々にDCDC動作が主体となりました。

電池寿命の末期となる終止電圧は1.3〜1.4Vでした。ESP32の起動時の突入電流の影響で、電源IC仕様の0.9V動作までは引き出せませんでした。終止付近でのグラフの変化が急襲なので、もし、0.9Vまで動いたとしても、あまり変わらないと思います。

単3電池2本で目標 6〜8 か月間

試算値と実験結果とでは、たいてい齟齬が発生します。とくにESP32では、その齟齬が大きく、これまでも苦戦しています。その原因は、起動時の突入電流です。突入電流によるエネルギーは電池容量に比べて十分に小さいものの、大電流が流れることによる電池への負担や電源回路への影響が出ているものと考えています。

今回は単4アルカリ乾電池を使用しましたが、容量が2倍となるの単3アルカリ乾電池へ変更した場合、以下のとおり、6か月以上の動作時間が期待できます。また、単4に比べると、電池の内部抵抗も半分になるので、試算の齟齬は少なくなると予想しています。
単4アルカリ乾電池2本 試算値 4か月  → 実測2.3か月(今回の実験結果)
単3アルカリ乾電池2本 試算値 10か月 → 推測5.8か月(これからの実験予定)
経験上、電池寿命の末期が冬季になると、推測値を下回ることが多くありますが、春に差し掛かれば伸びる傾向があります。このため、ちょうど今から開始すれば、8〜9か月間くらいの動作が出来る可能性もあります。

以上から、最小目標6か月、最長8か月を目指し、単3アルカリ乾電池での実証に着手しようと思います。

また、すでに2年に渡り、様々な形態で実験を行っており、条件は異なりますが、単3アルカリ乾電池2本で2017年12月から8か月以上の動作しつづけているサンプルもあります。こちらについても、終了した時点で、報告したいと思います。

ボクにもわかるESP-WROOM-32

by ボクにもわかる電子工作
https://bokunimo.net/

この記事に

開く コメント(0)

単3アルカリ乾電池で実際に1年間、動かしてみました。

Wi-Fi温湿度センサの長期間動作の実験を2017年4月4日に開始し、本日でちょうど1年間、電池交換せずに動作しつづけました。
下図は、単3アルカリ乾電池3本と、Wi-FiモジュールESP-WROOM-02を使用し、IoT用クラウドサービスAmbient(https://ambidata.io)へ、約30分の間隔で送信したときの電池電圧(3本分)の変化の様子です。

イメージ 1
1年間、動作し続けたWi-Fi温湿度計の電池電圧の推移


消費電流からの試算で1年の動作を達成していても、実際に実証検証を行ってみると、想定していなかった不具合が生じることがあります。
元となる回路とソフトウェアは、トランジスタ技術2016年9月号に掲載したものに電圧測定機能を付与したものでした。しかし、これまでの最長記録は332日と、1年を達成することが出来ませんでした。

そこで、今回の検証では、コンデンサの容量を2倍の2000μFに変更して、電池の終止付近での延命に挑戦してみました。また、同じ1000μFのコンデンサを6個、購入し、その中からリーク電流の最も少ない2個を選択しました。

下図のような構成で、ようやく1年の長期間動作を実際に達成することが出来ました。

イメージ 2
1年間の実証を終え、記念撮影

しかし、残念なこともあります。
実験を開始してから1年も経つと、こういった情報の価値も下がってきてしまいました。

Wi-FiモジュールESP-WROOM-02は、すでに新モデルのESP-WROOM-32に変わろうとしており、また低消費電力駆動の肝となったレギュレータXC6202P332や、温湿度センサAE-HDC1000の秋月での取り扱いも終了してしまいました。

当たり前のことですが、
1年間の動作を確認するには、1年を要する
ということです。

ちなみに、最初の検証は6か月で、その次に11か月の検証、さらに今回の12か月と、総期間は実に2年半にも及びました。他にも並行して様々な方法で実証検証を行っていますが、ESP-WROOM-02を使った実験については、それぞれ目標を達成した時点で停止し、ESP32などの新しいデバイスでの実証に切り替えてゆきます。

ボクにもわかるESPモジュール

by ボクにもわかる電子工作
https://bokunimo.net/

この記事に

開く コメント(0)

Raspberry Pi+Node-REDを使えば、IoT用のゲートウェイを簡単に製作することが出来ます。
本ブログでは、トラ技2017年3月号と2016年9月号で紹介した各種ワイヤレスセンサ用のIoTゲートウェイを、Node-REDを使って製作する方法について紹介します。

下図はワイヤレスセンサの一例です。本センサは、トラ技2016年9月号に紹介した温度と湿度をUDPで送信するIoTセンサ機器のひとつです。送信間隔を60分にすれば、電池交換無しで最大1年間ほど動作が可能です。

イメージ 1
トラ技2017年3月号と2016年9月号で紹介したワイヤレスセンサの一例(温湿度センサ)

下図はRaspberry Pi上で動作するNode-REDの画面の様子です。左上のノード「UDP 1024」で受信したデータを、右下のノード「Ambient」へ受け渡します。(ノード=Node-RED上に表示されたブロック)

イメージ 2
左上のノード「udp 1024」が受信したCSV形式の文字列データを、ノード「csv」にてNode-REDで利用しやすいのオブジェクトへ変換し、ノード「grep_device」で温湿度センサのみを選択し、ノード「d(n):col(n+1)」でAmbient用のJSON形式へ変換し、ノード「Limit 1 msg/30s」で帯域制限を行ってから、ノード「Ambient」へ渡す。

必要なもの

この実験に必要なものは、以下の通りです。パソコン、Micro SDカード、電源(ACアダプタ、乾電池)などの各種周辺機器や備品なども必要です。
  • Raspberry Pi 3およびその周辺機器
  • ESP8266またはESP32用ワイヤレスセンサ
  • 無線LANアクセスポイント(インターネット接続済)

インストール方法

OS(Raspbien Stretch)がセットアップされたRaspberry Piより、以下のコマンドを実行して、Node-REDのセットアップ(すでにインストールされているNode-REDのバージョンアップ)を行います。インストール後、下記の3つ目のコマンドでNode-REDを起動します。
pi@raspberrypi:~ $ sudo apt-get update
pi@raspberrypi:~ update-nodejs-and-nodered
〜更新にに10分から60分くらいかかる〜
pi@raspberrypi:~ node-red-start &
2018年6月27日版のRaspbien(Raspberry Pi用のOS)をお使いの場合は、下記のコマンドを実行してください。
pi@raspberrypi:~ $ sudo apt-get update
〜更新にに10分から60分くらいかかる〜
pi@raspberrypi:~ node-red-start &
node-red-start コマンドによる起動時の一例を下図に示します。

イメージ 3

起動に必要な時間は、1分以内です。メッセージ内に「Server now running」が表示されたら、Node-REDの準備完了です。パソコンのインターネットブラウザまたはRaspberry Pi内ブラウザから「point a browser at」に続くURLへアクセスしてください。上記の場合、http://192.168.0.15:1880へアクセスします。

Node-REDでUDPを受信してみよう

まずは、Node-REDでセンサから送られてきた値を受信してみましょう。以下の手順で、Node-RED用の設定を行います。

1. Node-REDの右上のメニューアイコン(3本の横線)をクリックし、「読込み」→「クリップボード」を選択してください。

イメージ 4

2. インターネットブラウザの別ウィンドウで下記へアクセスし、JSON形式のテキストデータを[Ctrl]+[A]で全選択し、[Crtl]+[C]でクリップボードに保持してください。
UDP Logger BASIC フロー:
3. 下図の中央のグレーのエリアに[Ctrl]+[V]でペーストし、[読込み]をクリックしてください。

イメージ 5

4. フロー図が選択された状態で表示されるので、ウィンドウのフロー1と書かれたシート内の適当な位置をクリックすると、下図のようにフロー図が固定されます。

イメージ 6

5. 本フロー図を動作させるには、画面右上の赤色の「デプロイ」をクリックします。また、右側の子画面で「デバッグ」をクリックすると、受信したUDPデータが表示されます。子画面が表示されていないときは[Ctrl]+[SPACE]キーを押してください。

イメージ 7

動作確認が出来たら、各ノードをダブルクリックし、それぞれのノードを確認してみましょう。
深緑のノードは、デバッグ出力用です。他のノードに繋ぎ変えると、各ノードの出力を確認することが出来ます。
  • ノード「udp 1024」
    • UDPポート1024で受信したCSV形式の文字列データを出力します
  • ノード「add_date」
    • 日付・時刻を受信データの先頭に付与します
  • ノード「csv」
    • CSVデータをNode-REDで利用しやすいのオブジェクトへ変換します
  • ノード「grep_device」
    • デバイス名が5文字+_(アンダースコア)+1文字に一致するデータを通過させます
      (その他のデータは通過しない)
    • 送信側も同じ書式にすることで、無関係なパケットを通しにくくします
  • ノード「/home/pi/log_udp.csv」
    • 受信データをファイルへ出力します
  • ノード「msg.payload」
    • デバッグ出力用です
    • 右側のウィンドウのタブ「デバッグ」へ出力します

IoT用クラウドサービスAmbientへデータを送信する

こんどは、IoT用クラウドサービスAmbientへデータを送信してみます。
Node-REDの左側ウィンドウには、利用可能なノードが表示されています。初期状態では基本的なノードしか登録されていないので、以下の手順で、Ambient用のノードを追加します。

1. Node-REDの右上のメニューアイコン(3本の横線)から「パレットの管理」を選択してください。

イメージ 12

2. タブ「ノードを追加」を選択し、検索欄に「ambient」と入力すると、Ambient用のノードが見つかります。内容を確認し、右下のボタン「ノードを追加」を押すと、インストールが始まります。インストールには数分以上の時間が、かかります。

イメージ 11

2. 下記へアクセスし、内容を[Ctrl]+[A]で全選択し、[Crtl]+[C]で保持し、Node-REDの右上のメニューアイコン(3本の横線)をクリックし、「読込み」→「クリップボード」を選択し、ウィンドウ内に[Ctrl]+[V]で貼り付けてください。本ブログの冒頭から2枚目の写真のようなフロー図が表示されます、
UDP Logger Ambient フロー:
3. フロー図内のノード「Ambient」をダブルクリックし、IoT用クラウドサービスAmbient(https://ambidata.io/)で取得したIDとWrite Keyを下記の赤枠に入力してください。

イメージ 8

4. ノード「grep_device」をダブルクリックし、「matches regex」の欄を確認してください。予め「humid_1」が入力されていますが、IoTセンサに登録した名前に合わせてください。

イメージ 9

5. デプロイを実行すると、動作し始めます。IoT用クラウドサービスAmbient(https://ambidata.io/)へアクセスし、データが正しく送信されているかどうか確認してください。

イメージ 10

各ノードの動作内容は、以下の通りです。
  • ノード「udp 1024」
    • UDPポート1024で受信したCSV形式の文字列データを出力します
  • ノード「csv」
    • CSVデータをNode-REDで利用しやすいのオブジェクトへ変換します
  • ノード「grep_device」
    • デバイス名「humid_1」の温湿度センサのデータを選択します(その他のデータは通過しない)
  • ノード「d(n):col(n+1)」
    • Ambient用のJSON形式へ変換します
    • CSV形式の先頭から順にデバイス名がcol1に、一つ目の値がcol2、以降、col3、4と続きます
    • Ambientでは8つのグラフ用データとして、d1〜d8に割り当てます
  • ノード「Limit 1 msg/30s」
    • 30秒以内にデータ送信を行おうとしたときに、そのデータを破棄します
    • Ambientは1日あたり3000サンプルまでしか保存できないので、そのための制限です
  • ノード「Ambient」
    • IoT用クラウドサービスAmbientへデータを送信します

Node-REDの使用感

Node-REDをIoTゲートウェイ用に使用すると、フロー図化により、データの選択やフィルタリング、出力先などの見やすさが向上します。とくに、複数のIoT機器を連携動作させるための処理を分かりやすく記述することが出来る点で優れています。IoTゲートウェイとしての設定管理を行うためのツールとして、とても有効でしょう。

例えば、各種IoT機器の連携処理内容や機器間の関連付けは、変更することも多いと思います。そういった場合であっても、各ノードの組み換えが簡単です。必要なノードの設定変更箇所を、すぐに見つけることができます。
下図は、UDPで受信したデータのデバイス名に応じて、3種類のフローに分岐し、データを分別して保存したり、HTTPリクエストを他のデバイスへ送信したりするフロー図の一例です。

イメージ 13

Node-REDの欠点は、ノードをダブルクリックしないと個々の処理内容の記述が見えない点と、フロー図だけでは処理が組めない(スクリプトの記述が必要な)点です。
とはいえ、細部の動きは分かりにい場合は、各ノードに具体的な処理名の名前をつけて、処理内容を分かりやすくすることができます。スクリプトが必要なな点についても、Node-REDを使わなければ、どのみちスクリプトを記述することになります。どちらも、たいした問題では無いでしょう。

参考情報

IoTセンサの一部はCQ出版社からダウンロードできます

各センサ用のプログラムは下記で公開しています

ボクにもわかるESP8266・ESP32

by ボクにもわかる電子工作
https://bokunimo.net/

この記事に

開く コメント(0)

全7ページ

[1] [2] [3] [4] [5] [6] [7]

[ 次のページ ]


.


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事