TTGO T-Cameraの温度・湿度・気圧センサが廃止になりました。

以前に紹介したTTGO T-Cameraですが、現在、販売されている新バージョンでは、温度・湿度・気圧センサBME280が廃止となりました。

温度・湿度・気圧センサBME280が廃止となった TTGO T-Camera
写真=TTGO-Camera販売者Xin Yuan (LilyGO)販売サイトより

前回の記事:
https://bokunimo.net/blog/esp/12/

私のところに入ってきた情報によると、2月23日に注文したものは既に廃止となっていたそうです。
また、現在、商品を販売しているページにも赤文字で「Note: TTGO T-Camera has been updated to a version without BME280」と書かれていました。(私が情報を発信した2月22日以降に修正されたようです。)

同社の販売状況を見ると、2月22日~23日に多くの購入があったことが分かり、私の情報をもとに購入された方が不快な思いをされているかと思い、情報を展開させていただきました。

『超特急Web接続!ESPマイコン・プログラム全集』書籍連動キット

CQ出版社から「新人教育用IoT実習キット」という形で、ESP-WROOM-02(ESP8266)やエナジーハーベスト対応のEnOcean送受信モジュールが含まれた部品セットが発売になります。
発売中の書籍に連動したキットです。
手っ取り早く一通りのパーツを手に入れたい方や、勉強会、セミナーなどで活用したい方は、ぜひ検討していただければと思います。

『超特急Web接続!ESPマイコン・プログラム全集』書籍連動キット

新人教育用IoT実習キット
価格19,980円(税込)
2019年3月10日発売予定
※書籍やラズベリーパイと周辺機器は付属しません
※書籍に掲載した多くの実験が可能ですが、対応していないものもあります)
Wi-Fiカメラの実験のようす:キットに含まれるパーツで製作可能なWi-Fiカメラ(書籍P.89)。乾電池による間欠動作も可能。
HTTPサーバを実装することで、防犯カメラ(書籍P.129)として動作させてみたときのようす。この場合は、ACアダプタ(別売)で動作させることを想定
キット専用の説明書も作成しました。CQ出版社のホームページからダウンロードすることが出来ます。
本セットに含まれるパーツのリスト
超特急Web接続!ESPマイコン・プログラム全集
サポートページ(筆者)

2000円のTTGO T-Camera:Wi-Fi+広角レンズ付カメラ+OLED+人感+温度+湿度+気圧センサ

以下の機能がつまったTTGO T-Camera が、$17.6(2019/2/22日時点で1,948円)。
広角レンズと2MピクセルJPEG出力機能つきカメラで自作の防犯カメラに活用できそうです。
本ブログでは動作確認方法について説明します。
  • ESP32マイコン搭載 Wi-FiモジュールESP32-WROVER-B(〒マーク付)
  • 広角レンズ付きカメラ(JPEG出力あり・OV2640)
  • モノクロ有機ELディスプレイ(OLED・SSD1306)
  • 人感センサ(AS312)
  • 温度・湿度・気圧センサ(Bosch BME 280)
    現在、販売されている新バージョンでは、温度・湿度・気圧センサBME280が廃止となりました。
    (Note: TTGO T-Camera has been updated to a version without BME280)
    2019/3/10 追記
広角レンズ付きカメラ、モノクロ有機ELディスプレイ(OLED)、人感センサ、温度・湿度・気圧センサ、ESP32マイコンESP32-WROVER-B(〒マーク付)を搭載した製品 TTGO-Cameraがなんと2000円(2019/2/22現在)

さっそく、動作確認 ①センサ情報

USB端子から電源を供給すると、予めインストールされているソフトウェアが起動し、有機ELディスプレイ(OLED)にセンサ値などが表示されます。
電源を入れるだけで、センサ情報が表示される(OLED画面2)

交互に表示される画面で動作確認 ②人の動きを検知する人感センサ

約6秒ごとに2つの画面が交互に切り替わります。先に紹介した前述のセンサ値の画面は「OLED画面2」です。
下図の「OLED画面1」の上部には「AS312 Trigger」と表示されています。この表示は人感センサが人体などの動きを検知したときに表示されます。動作確認時は、(どちらかといえば)自分の身体をじっとした状態で、この表示が消えることを確認することになります。
人感センサが人体などの動きを検知すると「AS321 Triger」と表示される。赤マーク部にはIEEEアドレスの末尾2バイトが表示される(OLED画面1)

スマホで動作確認 ③カンタンWi-Fi接続

こんどは、Wi-Fi機能の動作確認を行います。
上図のOLED画面1はWi-FiのSSIDとIPアドレスの表示画面です。
本機のSSIDが画面中央に「TTGO-CAMERA-XX:XX」のように表示されるので、スマホのWi-Fi設定で、検索し、接続してください。
接続後、OLED画面下部に表示されているIPアドレス「2.2.2.1」へアクセスします。スマホのブラウザのURL入力欄に「http://2.2.2.1/」のように入力してください。接続が出来れば、Wi-Fi動作確認の完了です。
Wi-Fiモジュールには、日本の電波に関する技術基準適合証明の認証マーク(技適マーク)が表示されています(下図の金属シールドの部品)。
本機の裏面に実装されているESP32-WROVER-Bには、国内向けの技術基準適合証明(技適)マークが印字されている

メイン機能の動作確認 ④広角カメラで写真、動画をスマホで確認

Wi-Fi接続が確認できたら、下図のような画面が表示されます。「Get Still」で写真撮影、「Stream」で動画が表示されます。
写真=TTGO-Camera販売者Xin Yuan (LilyGO)より

もちろん、DIYで活用できるソフトウェア開発環境 Arduino IDE 対応

デモ用のプログラムはGitHubで公開されています。
簡単に改造して、自分だけのカメラ活用が可能です。
TTGO-Camera用デモソフトのソースコード:
簡単に全機能が動作確認できるのは、安心です。
春節明けにも関わらず、注文から到着まで1週間ほどで届きました。
動作確認を終えたら、Ali ExpressのConfirmと5つ星の付与も、お忘れなく。
(なお、ボクと出店者とは無関係です)
ご注意:
プリインストールされているデモ用ソフトのWi-Fiにはセキュリティがかけられていません。
電源を入れっぱなしにしていると、外部からの侵入者が内蔵カメラの映像を閲覧することが出来、自分自身や他人のプライバシー、秘密情報などを漏洩してしまう恐れがあります。
by ボクにもわかる電子工作

超特急Web接続!ESPマイコン・プログラム全集[CD-ROM付き]

Wi-FiモジュールESP-WROOM-02をブレッドボード基板に実装し、様々なIoT機器を製作するための書籍「超特急Web接続!ESPマイコン・プログラム全集」が、CQ出版社から発売になりました。
一つ一つのIoT機器は、比較的、簡単に製作できるものです。
特長はサンプルの多さです。また、基本的な動作確認から、作成した複数の機器を連携するまでの一連の方法についても説明しています。
先日まで、Amazonでの在庫が無く、注文後納期がかかってしまっていましたが、現在は、すぐにお買い求めいただけるようになっています。
興味がありましたら、目次だけでも見ていただければと思います。

ラズベリーパイ&IchigoJam対応
LED/スイッチからカメラ/LCDまで
なんでも3分Wi-Fi接続
超特急Web接続!
ESPマイコン・プログラム全集
[CD-ROM付き]
出版社: CQ出版 (2019/1/22)
ISBN-10: 4789847047
ISBN-13: 978-4789847049
発売日: 2019/1/22
下記の情報も参考にしていただければと思います。
サポートページ:

超シンプル回路!乾電池で295日間動作するESP32-WROOM-32

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

実証結果

下図は、モノタロウ製の単3アルカリ乾電池2本をESP32-WROOM-32モジュールへ直結し、送信間隔60分で動かしたときの、乾電池2本分の電圧の推移です。295日(9.7か月)にわたって動作し続けました。
単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は、電池を使い切らない状態で停止してしまいます。
始めから無駄だと分かっている実験
それを行うのは、良いアイデアが思いつかないボクだけかも
電池の開放電圧が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へ送信して蓄積することにより、下図のようなグラフで確認することが出来ます。外出中もスマホで確認が出来て、便利です。
また、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/

8か月以上の長期間動作を確認! 超省エネIoTセンサESP32-WROOM-32

ESP32シリーズを使用して、8か月のIoTセンサ動作が確認できましたので、報告いたします。
電源には、単3アルカリ乾電池4本と、村田製LXDC55を搭載した秋月電子通商製のAE-LXDC55-3.3Vを使用し、60分に1度、IoT用クラウドサービスAmbientへ送信しました。
ESP32-WROOM-32モジュールの起動時の突入電流と、Wi-Fi動作時の消費電流が大きいので、手軽な電源回路を実現するのに苦労しました。
写真右側の黒色の基板には、もともとDCDCコンバータや、リチウムイオン電池を搭載可能な電池ボックス(基板裏面)が搭載されていました。しかし、これらの消費電力が大きかったので、電源パターンを切断し、左側の赤色の基板に実装された村田製DCDCコンバータを使用しました。
ESP32-WROOM-32を単3アルカリ乾電池4本で動作させる実験の様子
村田製DCDCコンバータを使用したときの本システム全体の消費電力は約2mW、単3アルカリ乾電池で247日(約8か月・送信間隔=60分)、動作しました。
IoT用クラウドサービスAmbientを使ったので、動作の様子を確認しながら実証検証を行うことができました。
また意外と手間やコストのかかる取得データの保管もAmbient(無料で利用可能)なら手軽です。

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

下図は、8か月間の電池電圧の推移です。
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の電圧降下をまねいたということも分かります。
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 ボクにもわかる電子工作

失敗続きのESP32を使った長時間動作実験 TI製DCDC TPS61020編

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本を接続

単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動作へ切り替わる様子が分かります。
電池電圧の変化の様子(縦軸=電圧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/

1年間の実証完了!単3アルカリ電池で長期間動作するESP8266

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

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


消費電流からの試算で1年の動作を達成していても、実際に実証検証を行ってみると、想定していなかった不具合が生じることがあります。
元となる回路とソフトウェアは、トランジスタ技術2016年9月号に掲載したものに電圧測定機能を付与したものでした。しかし、これまでの最長記録は332日と、1年を達成することが出来ませんでした。
そこで、今回の検証では、コンデンサの容量を2倍の2000μFに変更して、電池の終止付近での延命に挑戦してみました。また、同じ1000μFのコンデンサを6個、購入し、その中からリーク電流の最も少ない2個を選択しました。
下図のような構成で、ようやく1年の長期間動作を実際に達成することが出来ました。
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/

Node-REDで簡単ESP8266/ESP32 ワイヤレスセンサ用IoTゲートウェイ

Raspberry Pi+Node-REDを使えば、IoT用のゲートウェイを簡単に製作することが出来ます。
本ブログでは、トラ技2017年3月号と2016年9月号で紹介した各種ワイヤレスセンサ用のIoTゲートウェイを、Node-REDを使って製作する方法について紹介します。
下図はワイヤレスセンサの一例です。本センサは、トラ技2016年9月号に紹介した温度と湿度をUDPで送信するIoTセンサ機器のひとつです。送信間隔を60分にすれば、電池交換無しで最大1年間ほど動作が可能です。
トラ技2017年3月号と2016年9月号で紹介したワイヤレスセンサの一例(温湿度センサ)
下図はRaspberry Pi上で動作するNode-REDの画面の様子です。左上のノード「UDP 1024」で受信したデータを、右下のノード「Ambient」へ受け渡します。(ノード=Node-RED上に表示されたブロック)
左上のノード「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 コマンドによる起動時の一例を下図に示します。
起動に必要な時間は、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本の横線)をクリックし、「読込み」→「クリップボード」を選択してください。
2. インターネットブラウザの別ウィンドウで下記へアクセスし、JSON形式のテキストデータを[Ctrl]+[A]で全選択し、[Crtl]+[C]でクリップボードに保持してください。
UDP Logger BASIC フロー:
3. 下図の中央のグレーのエリアに[Ctrl]+[V]でペーストし、[読込み]をクリックしてください。
4. フロー図が選択された状態で表示されるので、ウィンドウのフロー1と書かれたシート内の適当な位置をクリックすると、下図のようにフロー図が固定されます。
5. 本フロー図を動作させるには、画面右上の赤色の「デプロイ」をクリックします。また、右側の子画面で「デバッグ」をクリックする
と、受信したUDPデータが表示されます。子画面が表示されていないときは[Ctrl]+[SPACE]キーを押してください。
動作確認が出来たら、各ノードをダブルクリックし、それぞれのノードを確認してみましょう。
深緑のノードは、デバッグ出力用です。他のノードに繋ぎ変えると、各ノードの出力を確認することが出来ます。
  • ノード「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本の横線)から「パレットの管理」を選択してください。
2. タブ「ノードを追加」を選択し、検索欄に「ambient」と入力すると、Ambient用のノードが見つかります。内容を確認し、右下のボタン「ノードを追加」を押すと、インストールが始まります。インストールには数分以上の時間が、かかります。
2. 下記へアクセスし、内容を[Ctrl]+[A]で全選択し、[Crtl]+[C]で保持し、Node-REDの右上のメニューアイコン(3本の横線)をクリックし、「読込み」→「クリップボード」を選択し、ウィンドウ内に[Ctrl]+[V]で貼り付けてください。本ブログの冒頭から2枚目の写真のようなフロー図が表示されます、
UDP Logger Ambient フロー:
3. フロー図内のノード「Ambient」をダブルクリックし、IoT用クラウドサービスAmbient(https://ambidata.io/)で取得したIDとWrite Keyを下記の赤枠に入力してください。
4. ノード「grep_device」をダブルクリックし、「matches regex」の欄を確認してください。予め「humid_1」が入力されていますが、IoTセンサに登録した名前に合わせてください。
5. デプロイを実行すると、動作し始めます。IoT用クラウドサービスAmbient(https://ambidata.io/)へアクセスし、データが正しく送信されているかどうか確認してください。
各ノードの動作内容は、以下の通りです。
  • ノード「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リクエストを他のデバイスへ送信したりするフロー図の一例です。
Node-REDの欠点は、ノードをダブルクリックしないと個々の処理内容の記述が見えない点と、フロー図だけでは処理が組めない(スクリプトの記述が必要な)点です。
とはいえ、細部の動きは分かりにい場合は、各ノードに具体的な処理名の名前をつけて、処理内容を分かりやすくすることができます。スクリプトが必要なな点についても、Node-REDを使わなければ、どのみちスクリプトを記述することになります。どちらも、たいした問題では無いでしょう。

参考情報

IoTセンサの一部はCQ出版社からダウンロードできます
各センサ用のプログラムは下記で公開しています
ボクにもわかるESP8266・ESP32
by ボクにもわかる電子工作
https://bokunimo.net/

冷凍庫に入れた温度センサを常温に戻す方法

温度センサの値を取り扱うプログラムにおいて、氷点下を下回ったときに、不具合や誤作動が発生してしまったことはありませんか?
 動作確認には手間がかかるし、実際のところ室内限定であれば、マイナス値になることは滅多にないので、氷点下を考慮せずに運用してしまっていることも多いでしょう。
 例えば、動作確認を簡単に行う方法として、急冷剤が販売されており、温度センサに噴射すると-55℃以下まで冷却することが可能です。手軽に使えますが、噴射した周囲の空気も冷却され、結露が発生してしまうので、例えば温湿度センサなどのデバイスを傷めてしまうこともあります。
 そんななか、IoT用クラウドサービスAmbientの運営者である下島さんより、「冷凍庫に入れてマイナス値の動作確認を行った」との情報をいただき、早速試してみました。
 以下のグラフのように、ぐんぐんと温度が下がり、マイナス20℃近くにまで達しました。
 「こういった実験でのグラフによる可視化は、とても便利ですね。」
 などと感じながら、ふと、デバイスを取り出すときの方法を考えていなかったことに気づきます。普通に取り出してしまうと、センサが結露し、(おそらく)湿度が100%近くに達してしまうでしょう。
 下図は15:30くらいに、デバイスを冷凍庫から、取り出したときの様子です。あれっ!? 湿度の上昇が、抑えられていることが分かりますね。また、気圧が、低くくなっていることにも、気づいたでしょうか?
 いったい、どのように取り出したのでしょう。
 ボクの行った方法は、下図のように、冷凍庫から取り出したデバイスをすぐに真空保存用の専用ビニール袋に入れて、中の空気をポンプで吸い出す方法です。気圧を下げることで露点を下げ、結露しにくくしたのです。
温度センサの実験には、台所用品がかかせないですね。
使用したもの:
  • ワイヤレス環境センサ(自作品)
  • 通常の冷蔵庫(冷凍庫を利用)
  • 食品保存用の真空ビニール袋
  • IoT用クラウドサービスAmbient
なお、冷蔵庫の冷媒に引火性のガスが使われている場合があります。冷媒が漏れて庫内に溜まっている状態で電子機器が動作すると、火災など、人命に関わる事故が発生する恐れがあります。また、急冷剤についても、可燃ガスが使われている場合があります。実験を行う場合は、これらのガスへ引火する可能性を十分に認識したうえで、安全に配慮してください。当方は、一切の責任を負いません。
ボクにもわかるESP8266+ESP32
by ボクにもわかる電子工作
https://bokunimo.net/