「I2C-VFDモジュール+環境センサー」の最後に紹介した基板を使い、環境情報表示時計を作成しました。 製作期間の大半をソフトウェア開発に費やしました。使いながら様子を見て機能を増やしていったのですが、 その過程でC++らしさを意識し(Arduino環境での、あるいは組み込みでの)、クラス設計を楽しみました。
マイコンはESP32-C3。VFDの制御、センサー読み取り、Webクライアント(NTPサーバーへアクセス)、簡易Webサーバー(AP)の処理を担っています。 VFDドライバーはHV5812(回路図ではDIP品のUCN5812)。VFDのグリッド電圧はMAX662Aで生成した12V、フィラメント電圧は3.3V。 回路図ではPWMでフィラメント電圧を生成するようになっていますが、そうする必要はなく単に3.3Vで動作するので、完成後にジャンパーを飛ばしています。
PlatformIOでボードに「ESP32-C3-DevKitC-02」を指定した適当なプロジェクトを作り、上記zip内のフォルダとplatformio.iniを上書きコピーしてください。
また、別途「chart.umd.js」を用意し、ESP32のSPIFFSへ書き込む必要があります。
※リンク先からGitHubへ移動し、chart.js-4.x.x.tgzをダウンロードし、解凍。/package/distフォルダ内にあり。
環境情報表示時計。機能追加とかで何か月もソフトをいじっていたが区切りを付けて完了とする。表示項目、消灯時間帯、NTP関連を自由に設定できるようにした。 pic.twitter.com/nLYjdKmdaI
— 『昼夜逆転』工作室 (@jsdiy) February 15, 2025
まずVFDありき。共立エレショップで販売されている9桁蛍光表示管「FIP9B8」が主役です。
基板に実装した「HV5812」のパッケージはSOICですが、マルツではDIP品「HV5812P」も扱っているようです。
照度センサーは「TSL2561」でも動作実績があります。ただしプログラムの変更が必要です(github)。
部品名 | 部品番号 | 値/型番 | 個数 | 参考価格/備考 |
---|---|---|---|---|
マイコン | U2 | ESP32-C3-WROOM-02-N4 | 1 | 340円(秋月) |
VFDドライバー | U3 | HV5812WG | 1 | 740円(マルツ) |
VFD(蛍光表示管) | U4 | FIP9B8 | 1 | 387円(共立エレショップ) |
昇圧DC-DCコンバータ | U5 | MAX662A | 1 | 320円(秋月) |
環境センサー | -- | BME280 | 1 | I2C動作の4ピンモジュール |
照度センサー | -- | BH1750 | 1 | I2C動作の4ピンモジュール |
日常使いすることを考えて機能を増やしていった結果、満足する作品ができました。 製作にあたってはハードウェア面よりソフトウェア面で楽しめました。