HN公開: コンポスト監視技術をオープンソース化
(github.com/gtls64)Monty Home Device Hacking Guide
Monty Home Device Hacking Guide は、Raspberry Pi を使って Monty Home BLE デバイスの機能を拡張する方法を案内するリポジトリです。このデバイスはもともとコンポストの監視のために設計されており、温度、湿度などの環境データを収集します。このガイドを通じて、データを取得、表示、自動化する方法を学べます。
概要
- このガイドは、BLE デバイス、IoT アプリケーション、環境モニタリングに関心のある人向けに設計されています。
- Monty Home デバイスは、BLE を通じてリアルタイムデータ(温度、湿度、バッテリー残量など)を提供します。
- Python、BLE、Raspberry Pi を使用して Monty Home デバイスとやり取りする 3 つのプロジェクトが含まれています。
プロジェクト
プロジェクト 1: 温度ベースの LED 制御
- 目的: Monty Home デバイスの温度データを使って Raspberry Pi の LED を制御します。温度が特定のしきい値を超えると、LED が警告を表示します。
- 習得できる技術: GPIO 制御の設定、BLE データのクエリ、基本的な Python プログラミングと条件処理
- 必要なハードウェア: BLE 対応 Raspberry Pi、LED、および 330 オーム抵抗
プロジェクト 2: I2C ディスプレイに温度と湿度を表示
- 目的: Monty Home デバイスのリアルタイムの温度および湿度データを、Raspberry Pi に接続された OLED 画面に表示します。
- 習得できる技術: I2C デバイスの操作、SSD1306 OLED ディスプレイを使った動的データ表示、BLE データ取得とディスプレイ更新の実装
- 必要なハードウェア: BLE 対応 Raspberry Pi、SSD1306 OLED ディスプレイ
プロジェクト 3: IFTTT による温度アラート
- 目的: Monty Home デバイスの温度が特定のしきい値を超えたときに、Raspberry Pi が IFTTT 経由で通知を送るように設定します。
- 習得できる技術: IFTTT との IoT 自動化統合、
requestsライブラリを使った HTTP リクエスト送信、BLE データとクラウドベース通知の組み合わせ - 必要なハードウェア: Wi-Fi 対応 Raspberry Pi、IFTTT アカウント
セットアップ
ハードウェア要件
- Raspberry Pi (Zero 2 または BLE 対応モデル)
- Monty Home BLE デバイス
- 各プロジェクトに必要な追加ハードウェア(LED、OLED ディスプレイ、IFTTT アカウントなど)
ソフトウェア要件
- Raspberry Pi OS: Raspberry Pi OS Lite(ヘッドレス)または Raspberry Pi OS with Desktop(グラフィカルインターフェース)をインストール
- Python 3: Python 3 と
pipをインストール - ライブラリ:
- Bleak: BLE 通信用
- Requests: IFTTT 統合用
- Adafruit CircuitPython SSD1306: OLED 制御用
- Pillow: OLED 画像操作用
BLE コマンド
- Monty Home デバイスとやり取りするために使用されるコマンドです。各コマンドは特定のデータを要求したり、操作を実行したりします。
- 例:
;QT\r\nは NTC センサーの温度読み取り値を返します。
コードの実行
- 各プロジェクトには、BLE 接続を設定し、クエリを送り、データを処理する Python スクリプトが含まれています。
- スクリプトの実行方法:
- Raspberry Pi でターミナルを開く
- プロジェクトフォルダへ移動:
cd /path/to/project - スクリプトを実行:
python3 project_script.py
カスタマイズ
BLE コマンドの調整
- Monty Home デバイスからさまざまな種類のデータを取得するために、コード内の BLE コマンドを変更できます。
通知ハンドラの拡張
- 複数の種類のデータを処理するために、
notification_handler関数内に条件を追加して、さまざまな読み取り値をデコードして表示できます。
他プラットフォームとの統合
- リアルタイムのデータ可視化、ロギング、追加の自動化のために、IoT プラットフォームやダッシュボードへデータを統合することを検討できます。
追加資料
- Raspberry Pi での Python
- Raspberry Pi での BLE ガイド
- IFTTT Webhooks ドキュメント
- Adafruit CircuitPython SSD1306 ガイド
貢献
- プルリクエストの提出、問題報告、機能提案などを歓迎します。このガイドを改善し、新しいプロジェクトを追加することに貢献できます。
1件のコメント
Hacker Newsの意見
あるユーザーは、馬小屋から出た堆肥の山でジャガイモとニンジンを育てた経験を共有し、ジャガイモはよく育ったが、ニンジンは水不足であまり育たなかったと述べている
別のユーザーは、電子的なモニタリングによって堆肥の品質を改善できる規模について疑問を示し、かなり大規模で行う必要がありそうだという意見を述べている
さらに別のユーザーは、安価なセンサーを使った環境モニタリングの経験を共有し、センサーの再現性の問題とCO2センサーのノイズ耐性の問題に言及している
あるユーザーは、小規模な堆肥モニタリングのスケーラビリティを歓迎し、Gathering for Open Ag Techコミュニティに関心を持つかもしれないと言及している
別のユーザーは、堆肥の温度を測るシンプルな方法を好み、温度が45度以上であれば好熱性細菌が活動中だと分かると説明している
さらに別のユーザーは、植物モニタリングシステムを作りたいという考えを共有し、土壌組成、栄養レベル、湿度などを測定するセンサーの推薦を受けたいと述べている
あるユーザーは、堆肥モニタリングで得られるセンサーデータの実用性について疑問を示し、温度と湿度以外に、ガス組成がC/N比に与える影響や、堆肥が嫌気状態になりつつあるかどうかを確認できるのかと質問している
Monty Monitor製品に関する追加情報を提供している
あるユーザーは、堆肥モニタリングのために熱電対を探していたと言及している
HomeAssistantとの統合に向けた作業が進行中かどうかを知りたがっているユーザーがいる