編集履歴一覧に戻る
ttks007のアイコン画像

ttks007 が 2021年01月03日18時28分45秒 に編集

タイトル画像を付け加えました.

メイン画像の変更

メイン画像が設定されました

本文の変更

1.はじめに  以前から懸案であった,「ソーラーゆらゆら パンダ」を M5StickC から動かした.せっかくなので,MH-Z19 で CO2 濃度を測定し,基準値より高ければゆらゆら踊って知らせることとした.また,測定データは定期的に Ambient に送信し,変化を確認できるようにした.  新型コロナ感染拡大による在宅勤務と子供のオンライン授業で,家族の間のコミュニケーションは増えたが,大丈夫とは思っていても閉め切った家の中での生活は不安が伴う.また,なんとなく眠気が襲うことも多く,CO2濃度が上がったからだと言い訳をしたいためでもある. 2.MH-Z19による測定  MH-Z19B は Amazon 等で入手がしやすく,Ambient のサイトの記事より比較的正しい値で測定できることがわかった.今回は Amazon で一番安そうなものを購入したのだが,買ってみたら表面の丸い凸状の部分が無く,やや不安ではあるが使用上は問題なさそうと感じている. 「[CO2センサー、空気品質センサーの測定値を比較する(Ambient Data)](https://ambidata.io/samples/temphumid/airqualitysensors/)」  M5StickC に接続し,Arduino IDE で開発する.J.Dempsey 氏の MH-Z19 ライブラリをインストールし,UARTで接続してデータを読み込む.M5StickC への接続は2種類試した. (1) HATコネクタ側:G0(RX), G26(TX), 5V, GND (2) GROVE互換コネクタ側:G32(RX), G33(TX), 5V, GND どちらも動作するが,パンダをつなぐ関係で(2)を選んだ. 3.Ambeint へのデータ送信  Ambient Data 製の Ambient ESP32 ESP8266 lib をインストールし,Ambeint.io へ10分に一度データを送信するように設定した.以前利用した際は,送信後 Deep Sleep モードへ移行するようにしていたが,MH-Z19 は長時間使っていないと安定しないとのことだったので,常時稼働するようにした. 4.パンダの分解  ソーラーゆらゆらシリーズはいろいろあるが,今回はパンダを利用することにした.白黒のパンダが揺れると視認性が良いのと,普段あまり活躍していないことから分解するのに抵抗が無いからである.  細いマイナスドライバを使い,裏蓋を丁寧にこじ開けた.内部には太陽電池(VIMUN SC-3012-2A),電解コンデンサ(220μF, 10A)のついた小さなモールド基盤,細い線を巻いたコイルがあるので,丁寧に外す.  太陽電池のマイナス側に接続されているケーブルにマークをつけ,接続されているケーブルを切り離した.太陽電池の出力を測定したところ 1.2V 程度だったので,切り離した回路に 1.5V 電池を接続し,パンダが動くことを確認した.太陽電池を取り外した穴からケーブルを外に出した.その後,M5StickC で簡単なサンプルプログラムを作成し,G26 をデジタル出力としてパンダが動作することを確認した. ![パンダの足元](https://camo.elchika.com/b2bcd70c14ba15dd1232e90528e39ee34c348cff/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f62666239643264622d303231662d346233612d383036302d3930313131646335373938662f32376438613139302d333338652d343231372d626337362d643933623563393131643539/) ![太陽電池,基盤,コイル](https://camo.elchika.com/8e172c192835715163cdafcb06a4ca9165e82793/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f62666239643264622d303231662d346233612d383036302d3930313131646335373938662f62613762613933322d386336392d346439342d613839392d343031383633333538646663/)

-

![パンダの接続](https://camo.elchika.com/32e326a6884a65ad03ac9895e3424fa22f1412df/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f62666239643264622d303231662d346233612d383036302d3930313131646335373938662f37626633386232662d366464612d343238612d393064372d653863636135326533316164/)

+

5.プログラムの構成 (1)setup()  M5SctickC,G26 pin,MH-Z19の初期化に続き,WiFi の初期化,RTC の設定を行う. (2)loop()  予め millis() で時刻を取得しておき,RTC での時刻取得,MH-Z19 での CO2 濃度測定を行い,LCD に表示する.続いて,Ambient 送信時刻を過ぎたかチェックし,過ぎていたら送信と次回送信時刻の更新を行う.さらに CO2 濃度が設定されたしきい値を上回っていた場合には G26 pin を 5 秒だけ HIGH にして,PANDA に踊ってもらう.次の測定まで 10 秒待つ. (3)その他  NTPサーバから時刻を取得し,RTC に設定する.RTC への設定は,M5StickC/Basics/RTC や次の記事を参考にして作成した. 「[M5StickCのRTCをNTPサーバーからセットする (Lang-ship)](https://lang-ship.com/blog/work/m5stickc-rtc-ntp/)」 6.完成して ![キャプションを入力できます](https://camo.elchika.com/4233c0200f10125a84e752f8b0e1e3415b1bc9d1/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f62666239643264622d303231662d346233612d383036302d3930313131646335373938662f30356530313733632d346162642d343930312d393537392d636661643264663363353237/)  普段室内ではあまり動かなかったパンダが,強制的にでも動くようになり良かった(ペンギンや招き猫は室内でも結構動いている).計測したリビングの CO2 濃度については,夜間に下がり続けた後,朝食の準備で一気に上がることがわかった,また,値が安定するためには1日くらいは必要に思えるが,室外でキャリブレーションをかけてから使用する方法,オートキャリブレーションモードを利用する方法があるようなので,使いやすい方法がないか検討してみたい. 使用した部品: M5StickC, MH-Z19, ソーラーゆらゆら パンダ, GROVE - 4ピン-ジャンパメスケーブル, その他