連休前半はベランダのセンサーの作り替え。
明るさ(CDS)、気圧、温度、湿度(BMP280)だけにした。データは今まではプルだったのを5分おきのプッシュに変更。この変更を入れたので、google home&ifttt&raspberry piでやってた外の気温レポートを修正した。いままではベランダセンサーに気温を聞いていたところをambientから取得するように切り替えでOK。リアルタイムのデータは取れないけど、5分毎だからまぁ良いだろう。多少データにスパイクがあるものの動作はしている。
あ、あとOTAでのプログラムコード書き込みに対応させたので「ベランダに出てボードを外して来て書き換えてまた戻す」といった作業が基本的には要らなくなった。部屋の中からプログラムコード書き換えができる。バグってループさせたりしなければ大丈夫な筈。
「マイコン」一覧
電力スマートメータ表示機を変更
今までmbedでやってたスマートメータからBルートで現在消費電力を持って来て使う工作。最近になってソースコードを変更したら動かない。まぁ、ベースの消費電力表示は動けども、他のサービスと連携するコードがだめだ。もうコードが古いから。
ということで環境変更。ESP32でやってみていたけどもUARTが化けたりふんづまったりで安定しなかった。どうもロームのBP35A1はシビア臭い。前にESP-WROOM-02で試したときもそうだっった。
で、raspberry piに環境を再変更。piならほかサービスとの連携部分が作りやすい。BP35A1との接続はUART−USB変換して繋いでみた。とんとん拍子で作成完了です。あとはGoogleの BigQueryからデータスタジオへの連携を作ればOK。
ベランダの湿度センサが調子悪くて
ここんとこベランダの湿度センサの調子が悪く、値が100%を超え1000くらい出ることがあった。なので昨日一旦湿度センサを引っこ抜いて引退させた。
ただセンサを引っこ抜いただけだと、コードで変な値が取れてしまいrebootを繰り返してしまうようだ。「ようだ」と書いたがそういう風にコードを書いたのは自分だが。
コードを書き直して、存在しない湿度センサを読みに行かないようにして値は常に−1を返すようにしておいた。
併せて違う湿度センサも入手済みでというか。AM2302(DHT22)だよ!。本当はインターフェイスにi2cが使えるAM2320がほしかったのに間違えた。もったいないからAM2302の1wireもどきのインターフェイスで対応とした。テスト用ESP32で正常動作を確認できたので明日ベランダのブレッドボードにセンサーを取り付けよう。ついでだがESP32のコンパイル環境もLinuxLite上につくった。Liteであとやり残してるのは、・BlueToothスピーカの自動接続 ・スマホとUSB接続したときに安定してストレージが見えるように ・Ubuntu派生系なら環境整備を自動化できるように ってところかと。
雨センサーの電池交換 2018
日曜くらいから値が取れなくなっていたベランダ設置の雨センサーの電池を交換した。交換したらXBee通信中のLEDも点くようになって無事に値が取れるようになった。換えた電池は単2のエボルタNEOを直列2本。交換したての状態でXBeeの電源ADCでの計測値は3.113V。前回電池交換したのは2017/9/13。ほぼ1年です。雨センサはESPで2代目作成を計画してるので、出来たらどっちが電池がもつか比較したい。
pi2 aptで壊れて再構築
宅内IoTにしてるraspberry piの一つが壊れた。ベランダセンサーからデータを取得したり雨センサーからの通知をxbeeで受け取ったり、そしてそのデータを別マシンのRDBに書き込む役割をしていた。こいつのソフトアップデートしとこうと木曜帰宅後にapt updateしてapt upgradeした。いつもより時間がかかる。1つのアプリで数時間かかりそうなのがあったので、キャンセルしてみた。で、再起動して再度aptを実行すると E: Error reading the CPU tableでどうにもならん。
というわけで再インストール。昨晩、最新のRASPBIAN STRETCH LITEをダウンロードさせながら寝たので別microSDにインストール。もとのSDも読める部分はあるのでLinux Liteからpythonアプリのコードを無事退避。raspbianの初期設定(password変更、ホスト名変更、locale変更, timezone変更、ipv6禁止、ipv4固定化、swap禁止、vim-tyny消して普通のvimを導入 など)を実施。この辺り、自動化させないとなぁと思いつつしてない。(仕事でも自動化させたいブツが入りそうだがWindowsなんだよなぁ)。
改めてapt update, apt upgradeを実施。pythonコードを戻して、pip3でライブラリをインストール。手起動でpythonコードの動作確認してcron登録して復帰完了。左手だけでも1時間半くらい。SDにイメージ焼くのとaptが時間かかる。
さて、自動化のために ansibleのplaybook書くかね。