トップ > 興味のあること > コンピュータ > ハードウェア > マイクロコンピュータ

更新情報

2019年5月18日 Amazon Mastercardゴールド申込
2019年5月12日 INA226で太陽発電システムをモニタ
2019年5月11日 FITハイブリッド自動車税納付
2019年5月8日 Johnny-FiveでBME280
2019年5月5日 FreeBSDのnode.jsでserialport
2019年5月1日 ESP32を単三電池で駆動
2019年3月18日 発電量
2019年3月16日 ARDUINO
2019年2月22日 洗面台水栓交換
2019年2月17日 浴室混合水栓交換
モッピー!お金がたまるポイントサイト
日々の生活にhappyをプラスする|ハピタス

ESP32

2019年4月29日

Wi-FiとBluetoothを備えたワンチップマイコン。 ArduinoのIDEを流用して、 ほぼ同じ感覚でプログラミングできる。 電源と無線LANを確保すれば、 単体でネットワークにつながるのがミソ。

秋月電子温湿度気圧センサと組み合わせて使ってみた。 BME280とESP32をI2Cで接続するという記事は結構あるが、 一番参考になったのはhttps://trac.switch-science.com/wiki/BME280である。 基本的な部分は丸パクリした。 センサのジャンパはすべて半田ブリッジして、 I2Cで通信するように設定した。 接続はセンサの4番ピンをESP32の21番ピン、 センサの6番ピンをESP32の22番ピンで、 Wireライブラリで読み書きする。 ちなみにGPIO34を電源端子につないで、 電圧も測っている。

データを読み出した後の計算は、 前述のページにあったプログラムそのままだ。 で、Wi-Fiにつないでambientに投げて、 グラフ化は丸投げする。 300秒Deep Sleepするのがちょっと工夫したくらいか。 これとて先人の努力の成果なのだが。

https://gist.github.com/tom-a/8f95230c25b903f54492387ffe499888

11行近辺のchannelID、writekey、ssid、 passwordは各人の環境にあわせて変更する必要がある。

2019年5月1日

何も考えず単三乾電池を2本直列にして、 3.3V端子とGND端子に接続。 一応動いているようだが、 どのくらい持つだろうか。

写真:ESP32とBME280

2019年5月12日

ストロベリー・リナックスのモジュールを使って、 太陽発電システムのモニタを試してみた。 太陽電池パネルからコントローラー、 コントローラーから鉛蓄電池までの配線に、 モジュールを割り込ませる。

写真:ESP32でINA226

ソフトウェアに関しては、 今回も先人の成果を拝借した。

https://gist.github.com/tom-a/dc6ed3a380a8f8158f8ca080974fee1d

書き換えたのは、

  1. モジュールを二つ使うので、セットアップや読み出しをアドレスで区別して行えるようにした。
  2. wordで読み込んだデータはintに代入してもunsignedのままなので、MSBが1だったら0x10000を引いて負数にした。I2Cでレジスタを読み出す関数はwordを返す。で、wordはunsigned shortなので、電流値を計算する式の中でshortにキャストした。
  3. 1分deep sleepする。
  4. ambientにデータを投げる。

くらいか。 とりあえず動くようになったので、 ResetReasonに応じた処理などリファクタリングしたいところ。

2019年5月14日

11:00を最後に、 BME280でモニタしているデータの送信が途絶えた。 電池は1.2V程度の電圧だったが、 Wi-Fiの起動には耐えられなかったのか? エネループに交換してみる。