「イベント出るから IoT っぽいこと何かやってよ」と言われたので「何か」をやることにした。
LoRa でやろうかとも思ったけど制限多いし市内にゲートウェイあんま無いから使い物にならんなってことで Wi-Fi にした。
Wi-Fi 温度計(Wi-Fi Temperature Measurement)
ESP-WROOM-02 と汎用温度センサー LM61CIZ を使った Wi-Fi 温度計。ESP-WROOM-02 の TOUT は 1 V までしか扱えないので分圧等の対応が必要だが LM61CIZ は 0 ℃が 600 mV で 1 ℃ ごとに 10 mV 増えるので 1 V になるのは 40 ℃。つまり「会場が 40 ℃ を超えなければ問題ない!」ということで手抜きで Vo をそのまま TOUT に突っ込んである。データは MQTT で飛ばして Node-RED で表示。外付けの ADC を使えばいいのだけどこの程度の装置に付けるのはちょっとね。
アンテナ部分に貼ってあるテプラはチップ ID。複数の ESP-WROOM-02 があるとどれがどのデバイスかわからなくなるので ESP.getChipId()
でチップ ID を取得して MQTT のトピックとして使っている。
Wi-Fi 土壌湿度計(Wi-Fi Moisture Measurement)
市販の土壌湿度計もあるけど割高なので自作。回路は土壌の抵抗値をトランジスタで変換するだけなので単純。これも TOUT の上限 1 V までになるように分圧で調整。土壌の抵抗値は土質によるが数百オームから数メガオームくらいまで変化するので抵抗の分圧だけで測定しようと思うと難しい(湿っているか乾いているかくらいざっくりしたものならトランジスタも使わなくていいと思う)。
試作品なので縦付け抵抗とワニ口クリップを使う。0 Ω 抵抗は見た目を合わせるだけに使ってる。
金メッキプラグで試してみたことがあるが腐食してしまうので今回は 2 mm の鉛筆芯を使うことにした。手持ちには 2H もあるのだけど B の方が抵抗値が少なかったので B を採用。芯自体の抵抗値は 7 Ω くらいだった気がする。
土がなかったのでメラミンスポンジで実験。
金メッキプラグを使用していたときはヘデラを育てていたのだけどプラグが腐食し始めてからプラグに近い部分の茎から徐々に枯れていったので植物に悪影響を及ぼしていそう。錫は錆にくいみたいだけど錫メッキされたものなら植物に影響を与えずに電極棒として使えるのかなぁ…。
IoT コンセント
手元にソリッドステートリレーが転がっていたので作ってみた。これと水槽用エアポンプ、ペットボトル、ソフトチューブを組み合わせて自動水やりができるようにした。自動水やりと言うとよく汲み上げ式のポンプを使っているのを見るのだけど、エアポンプでタンク内の圧力を高めて押し出す方が多分楽だと思う(霧吹きの原理)。
中継には PVK ボックスを使った。が、屋外用の大きめのボックスを使った方が 3.3 V の AC アダプターも中に入れておけたのでは…と後悔。コンセントを二系統にしたので SSR が二つになってかなり窮屈になった。
Node-RED のダッシュボードを FireTV のウェブブラウザから弄って水を出してみる。
という感じでぼくのなつやすみのじゆうけんきゅうはこれで終わり(にしたい)。
ESP-WROOM-02 のプルアップ抵抗ってだいたい 10 kΩ を使っている例が多いと思うけど 10 kΩ だとたまに起動しないことがある。今回は一番面倒な PVK ボックス内の ESP-WROOM-02 が突然起動しなくなったので EN
のプルアップ抵抗を 1 kΩに変えたら動くようになった。今後は 4.7 kΩ くらいを使おうかな。
ネットで ESP8266 や ESP-WROOM-02 の使い方を見ているとよく IO0
や IO2
をプルアップしている例が見つかるが、ESP-WROOM-02 のデータシートを見てみると IO0
も IO2
もフローティングでいいっぽい(UART Download モードの場合は IO0
をプルダウンする必要はある)。
https://www.espressif.com/sites/default/files/documentation/0c-esp-wroom-02_datasheet_en.pdf
考えてみればスイッチサイエンスのピッチ変換基板シンプル版だと IO0
と IO2
をプルアップもしくはプルダウンしてしまうと何も接続できない。
余計な配線も減らせるしもっと早くデータシート見ておけばよかった。