科学・技術
Weathergotchi – オープンソースの気候タマゴッチ
Weathergotchi – an open-source climate Tamagotchi (github.com)
要約
このプロジェクトは、オープンソースでバッテリー駆動の温度・湿度データロガーで、常時表示されるe-paperディスプレイを備えています。環境条件を記録し、不揮発性メモリに保存して、履歴グラフと共に現在のデータを表示します。小型Li-Poバッテリーで1週間以上の動作を目指して設計されており、ハードウェア、ファームウェア、ケースデザイン全体がオープンソースで公開されています。
全文翻訳
Weathergotchi - E-Paper気候ロガー
このプロジェクトについて
これはオープンソースでバッテリー駆動の温度・湿度データロガーで、常時表示されるe-paperディスプレイを備えています。周囲の状況を時間とともに記録し、読み取り値を不揮発性メモリに保存し、現在のデータと履歴グラフを表示します。このデバイスは低消費電力で設計されており、小型のLi-Poバッテリーで1週間以上の動作が可能です。
主な特徴:
ESP32-S3 (ディープスリープ & RTCタイマーによるウェイクアップ)
温度・湿度センサー (外部EEPROMによるロギング)
正確なバッテリー監視と充電管理
電源ボタンコントローラー (オン/オフ用)
1.54インチe-paperディスプレイ
カスタムPCB & 3Dプリントケース
プロジェクト全体がオープンソースであり、ハードウェア回路図、PCBレイアウト、ファームウェア、エンクロージャーCADファイルが含まれます。詳細なビルドビデオはYouTubeで公開されています: E-Paper Climate Logger。
YouTube動画
リポジトリ構造
E-Paper-Climate-Logger/
├── CAD/ # 3Dケースデザイン (OpenSCADソースとSTLエクスポート)
├── PCB/ # KiCadハードウェアデザイン、回路図、データシート、リファレンス
├── firmware/ # PlatformIOファームウェア (ESP32-S3、Arduinoフレームワーク)
├── LICENSE # ライセンスファイル
└── README.md # このファイル
CAD
フロントとバックのケースハーフ用のパラメトリックOpenSCADモデル、アセンブリファイル、3Dプリント用のエクスポート済みSTLが含まれています。デザインは完全にパラメトリックであり、定数 (constants.scad) を編集することで寸法を調整できます。
PCB
カスタムメインボード (templog_mainboard) のすべてのハードウェアデザインファイルが含まれています。このディレクトリには以下が含まれます:
KiCadプロジェクトファイル (.kicad_sch, .kicad_pcb, .kicad_pro)
電源管理とディスプレイドライバーの回路図シート
コンポーネントフットプリントと3Dモデル
すべての主要IC (充電器、燃料ゲージ、RTC、センサーなど) のデータシート
SparkFunとWaveshareからのリファレンス回路図
PCBデザインを表示または変更するには、KiCad 9以降をインストールしてtemplog_mainboard.kicad_proを開いてください。
ファームウェア
Arduinoフレームワークを使用したESP32-S3用のPlatformIOプロジェクトです。センサー読み取り、時刻同期、EEPROMへのデータロギング、e-paperディスプレイの更新、ボタン処理、電源管理 (ディープスリープ、ウェイクアップソース) を処理します。詳細なビルドとフラッシュ手順については、firmware/README.mdを参照してください。
始め方
ハードウェアの前提条件
組み立て済みのE-Paper Climate Logger PCB (または手はんだ付けされたプロトタイプ - 多くのコンポーネントは小さく、リフローはんだ付けが必要になる場合があります)
1.54インチe-paperディスプレイ (Waveshareピンアウトと互換性があるもの)
3Dプリントケース (CAD/export/内のファイル)
Li-Poバッテリー (例: 400 mAh、シングルセル)
充電およびプログラミング用のUSB-Cケーブル
ファームウェアのビルド
PlatformIO Coreをインストールします (またはVS CodeのPlatformIO拡張機能を使用します)。
ファームウェアディレクトリに移動します。
デバイスをUSB-C経由で接続します。
実行します: pio run --target upload
シリアル出力の監視 (オプション): pio device monitor
フォルダ構造、ドライバーの詳細、低消費電力動作を含む詳細なファームウェアドキュメントについては、firmware/README.mdを参照してください。
エンクロージャーの組み立て
CAD/export/のSTLファイルを高解像度FDMプリンター (0.1 mmレイヤー高さ推奨) を使用して印刷します。ケースはM2ヒートセットインサートとM2ネジを使用します。PCBとバッテリーを挿入し、フロントとバックのハーフをネジで固定します。
ハードウェア概要
すべてのI2Cペリフェラル (SHT45、DS3231、24LC512、BQ27441) は同じバスを共有します。e-paperディスプレイはSPI経由で駆動され、LTC2954ソフトパワースイッチはBQ24075を介してシステム電源オフを制御します。完全な回路図とPCBレイアウトについては、PCB/templog_mainboard/でKiCadプロジェクトを開いてください。
電源管理と低消費電力動作
デバイスは小型バッテリーで1週間以上の動作を目指して設計されています:
ディープスリープ中、ESP32-S3は20 µA未満を消費します。DS3231とBQ27441は、無視できる電流でアクティブなままです。DS3231アラームは、設定可能な間隔 (デフォルト: 1分) でESP32をウェイクアップさせます。ESP32はウェイクアップし、読み取り値を記録し (50 mAで約400 ms)、ディスプレイを更新し、スリープに戻ります。LTC2954は真のオン/オフ機能を提供します。
問題点
バッテリー精度の問題: テストでは、報告されるバッテリー残量 (State of Charge) が正確ではありません。これはBQ27441の設定ミスが原因だと考えています。
低バッテリー問題: テストでは、バッテリー残量が少なくなった場合 (3.4V)、電源が入れられなくなる回復不能な状態に陥ることがあります。これはバッテリーを取り外し、外部で充電してから再接続しないと修正できません。これは私が使用しているAliexpress製の安価なバッテリーが原因かもしれないと考えています。
制限事項
取り扱い中の温度精度: ESP32はアクティブ時に熱を発生するため、SHT45の読み取り値に影響を与える可能性があります。ファームウェアは、このエラーを最小限に抑えるために、ウェイクアップ直後にセンサーを読み取ります。長時間のメニューブラウジングやデバイスの保持は、周囲の読み取り値を数分間歪めます。
ディスプレイの低温制限: e-paperモジュールは0°C以上での動作が規定されています。凍結以下では、画面が確実に更新されない場合があります。データロギングはバックグラウンドで継続され、温度が上昇するとディスプレイ機能が再開します。
ワイヤレス接続なし: バッテリー寿命を最大化するため、このバージョンにはBluetoothまたはWi-Fiのデータエクスポート機能は含まれていません。データはデバイス画面でのみ表示できます。
貢献
問題、プルリクエスト、提案を歓迎します。既存のコードスタイルに従い、ハードウェアまたはファームウェアへの変更はすべて文書化してください。
ライセンス
ライセンス条件については、ルートディレクトリのLICENSEファイルを参照してください (オープンソース、パーミッシブライセンス)。
謝辞
SparkFun (バッテリーベビーシッターリファレンスデザイン)
Waveshare (e-paperディスプレイモジュールおよびドライバー回路図)
PlatformIOおよびGxEPD2コミュニティ
質問や議論については、GitHubでイシューを開くか、YouTube動画のコメントをご覧ください。