センサー一覧

ベランダENV微調整

自宅待機なので改良。
1個め。気圧を整数値のみで送っていたが、グラフにするとあまりにもカクカクだったので、小数点以下第一位まで送るように変更。
2個め。CDSのベースを0に近づくよう調整。RTC持ってれば深夜の測定値をベースにできるのだけれども、XBee3のRF版にはRTC無いです。
3個め。室内のBLEゲートウェイをpizero wからpi3+に変更。
新規でm5stickCで室内環境センサを置き換えた。これもBLEで送信するように今後改善予定。


ベランダ気温・湿度・気圧・照度センサ XBee3版 プロトタイプ

Fritzingで適当に下書きしてブレッドボードに作成したのが上の画像。BME280ブレイクアウトにピンヘッダはんだ付けしてたら、固定用に挿してたブレッドボードをコテの根本側があたって焦がしてしまった。麻痺側右手でハンダゴテ持ってます。動く健側左手はハンダをいいタイミングで当て外しで使うからね。
で、microPythonでCDSのADCもi2cも動作はしたのでまず安心。microUSBの5V-3.3V電源モジュールを入れるべく、またFritzingで修正。ブレッドボードも普通のhalf+に変更。図面だけ書いて時間切れで実装は次回に持ち越し。


新雨センサー 稼働開始

 だいぶ日にちが掛かったが、雨センサーの弐号機を設置した。乾電池を単2から単1に変えて容量が倍になったので1年以上もつことを期待する。
 画像で左にあるのが初号機。紫外線でケースが脆くなってひび割れたからジップロックでカバーしてる。XBeeの腹がわの金属ケースもサビサビ。のちほどお役御免とする。
 
 2代目で変わったのは Xbee3で通信をBLEにしてMycroPythonを使ってるのと、ケースはタカチの1000円の防水のしっかりした物にした事。今回、自分だけで電池ケースにリードをはんだ付けしました。まだ、2.54mmピッチだと無理かな。また、どうせだからベランダで温度・湿度・気圧・明るさを測っているESP32もXBee3に変更を目論んでいる。まぁまだまだESP32いっぱいあるのだよねぇ。こないだ予備に2つ買い足したし。
 


雨センサー sleep関連

 電池電圧が右肩下がりだった雨センサープロトタイプXBee3 BLE版。
 今、稼働してるXBee2と同じ4:Cyclic Sleepにしてみたがうまく再起動しなかった。で、Sleep Modeに 6:micropython sleepにしてみた。
 sleepは sleep_now(millisec)を使用。電源電圧のグラフ見ても短期的には上がったり下がったりでそれほど電池を消費しなくなった。一旦これで仕込もうかな。

 昨日、Cyclic Sleepが駄目だったので、方針変更用にESP32Sのちっちゃいブレークアウトを2個ほどゲットしています。BLEのアドバタイズのメッセージ仕様をあわせて、どちらでも使える様にするのもありだね。


雨センサダミーテスト

センサ基板はつけてない状態で稼働させてベランダに置いておいた。
無事にベランダから部屋内のpi zerowまで電波は届いて、BLEで受信は出来てた。
で、電池電圧のグラフをみたらずーと右下がり。こりゃちゃんとsleep出来てないな。
というわけで、cycle sleepするように変更しよう。


BLE雨センサーのobserver側のテスト

 まず、今の雨センサーの受信側としてXBee2をUSB-UARTでつないで使ってるraspberry piでテストをやろうとしたがうまく行かない。よく見てみたらpi2じゃん。bluetooth載ってませんよ。
 つづいてpi3でやったがなんかライブラリーの不整合やらでこれもだめ。
 pizero wでやったら無事成功しました。大体の目処がついたのでコードのブラッシュアップをしてからケースなどを準備したい。アドバタイザーの方も手をいれて、温度と電池電圧を取得するようにした。これは1時間に1回くらいの別のアドバタイズでいいかな。あ、リモートから外のセンサーのXbee3のpythonコードを直す方法はないか調べよう。ESP32をarduinoで使ってるとOTAでのコード書き込みできるからね。まぁ、雨センサはそういじる必要もないけれど。


定期通院と新雨センサー動作実験

 本日脳外科定期通院日。前日確認したら、今日は良い方の医師だったので気が楽だった。

 朝からpycharmをインストールしたりやってて、通院で途切れてしまったが、新雨センサーのセンサー部のテストは完了した。ちゃんとDIO1を入力にした櫛形基板で、濡らせば0, 乾いていると1を得られた。で、この値をBLEのアドバタイズデータに入れて飛ばして、androidの「BLE Scanner」で見られました。濡らせばちゃんと値も変わる。最初「BlueFruit」というアプリで観測してたけど、こいつは1回見つけてしまうとそのアドバターザーからのデータは更新しないようで使えなかった。
 センサー側は基本行けそうなので、次は piでBLEオブザーバーを書きます。


ベランダセンサーを入れ替え

 連休前半はベランダのセンサーの作り替え。
 明るさ(CDS)、気圧、温度、湿度(BMP280)だけにした。データは今まではプルだったのを5分おきのプッシュに変更。この変更を入れたので、google home&ifttt&raspberry piでやってた外の気温レポートを修正した。いままではベランダセンサーに気温を聞いていたところをambientから取得するように切り替えでOK。リアルタイムのデータは取れないけど、5分毎だからまぁ良いだろう。多少データにスパイクがあるものの動作はしている。
 あ、あとOTAでのプログラムコード書き込みに対応させたので「ベランダに出てボードを外して来て書き換えてまた戻す」といった作業が基本的には要らなくなった。部屋の中からプログラムコード書き換えができる。バグってループさせたりしなければ大丈夫な筈。


湿度センサつけました

昨日テストしておいた通りに、午前中にベランダからセンサーブレッドボードを持ってきてAM2302を配線した。(画像の右上の白いのがAM2302。)データ入力ピンは25ピンからセンサーに近い13に変更した。
 湿度センサ、長くもってくれるといいのだが。次に試すのなら本来今回使いたかったAM2320ですね。


ベランダの湿度センサが調子悪くて

 ここんとこベランダの湿度センサの調子が悪く、値が100%を超え1000くらい出ることがあった。なので昨日一旦湿度センサを引っこ抜いて引退させた。
 ただセンサを引っこ抜いただけだと、コードで変な値が取れてしまいrebootを繰り返してしまうようだ。「ようだ」と書いたがそういう風にコードを書いたのは自分だが。
 コードを書き直して、存在しない湿度センサを読みに行かないようにして値は常に−1を返すようにしておいた。
 併せて違う湿度センサも入手済みでというか。AM2302(DHT22)だよ!。本当はインターフェイスにi2cが使えるAM2320がほしかったのに間違えた。もったいないからAM2302の1wireもどきのインターフェイスで対応とした。テスト用ESP32で正常動作を確認できたので明日ベランダのブレッドボードにセンサーを取り付けよう。ついでだがESP32のコンパイル環境もLinuxLite上につくった。Liteであとやり残してるのは、・BlueToothスピーカの自動接続 ・スマホとUSB接続したときに安定してストレージが見えるように ・Ubuntu派生系なら環境整備を自動化できるように ってところかと。