Arduino駆動GrowBoxコントローラー - オープンソースファームウェア&ハードウェアガイド
必要な部品と材料
| 部品 | 数量 |
|---|---|
| Arduino Mega 2560 | 1 |
| Arduino Ethernet Shield 2 | 1 |
| DHT22温湿度センサー | 2 |
| Adafruit防水DS18B20デジタル温度センサー | 2 |
| Arduino 4リレーシールド | 1 |
| Seeed Grove - RTC(リアルタイムクロック) | 1 |
必要な工具と機械
- はんだごて(汎用)
使用するアプリとオンラインサービス
- EmonCMS(エネルギー監視・データ可視化プラットフォーム)
プロジェクト概要
Arduino GrowBox ControllerをGitHubで公開しました。長年開発してきたGrowBox用ファームウェアをGPL v3ライセンスで共有します。
私のウェブサイトでは、GrowBoxの構築過程、改良履歴、植物栽培の写真などをすでに公開しています。
Arduino Mega 2560 Rev.3を使用し、このオープンソースファームウェアは以下の機能を提供します:
- 設定用の小規模Webサーバー
- EmonCMSインスタンスへのデータ送信
- SDカードへのデータロギング(CSV形式、Webページからダウンロード可能)
環境パラメータ制御
GrowBox温度制御
加熱の閾値を設定可能:
- 最小温度: この閾値を下回るとヒーターを作動
- 最大温度: この閾値を超えるとヒーターを停止
湿度閾値
加湿器の閾値を設定可能:
- 最小湿度 (%RH): この閾値を下回ると加湿器を作動
- 最大湿度 (%RH): この閾値を超えると加湿器を停止
地中/砂温度
- 最小地中温度: 地中温度がこの閾値を下回ると加熱を作動(内部温度も最小閾値を下回っている場合)
- 最大地中温度: 内部温度が加熱を要求していても、地中温度がこの閾値を超えると加熱を停止。鉢と根へのダメージを防ぐため
照明制御
- 開始時刻(時・分): ライト点灯時刻
- 終了時刻(時・分): ライト消灯時刻
例: 6:30点灯、22:30消灯の場合 → 開始時6時30分、終了時22時30分に設定
ネットワーク設定
- IPアドレス: 任意の固定IP
- サブネットマスク
- ゲートウェイIPアドレス
- DHCP: チェックすると上記設定は無視されDHCP使用
ファン制御
ランプが発熱するため、「夜間(ライトOFF)」と「日中(ライトON)」で異なるプログラムを設定可能:
- ライトON時: 作動時間(分)、作動間隔(時間)
- ライトOFF時: 作動時間(分)、作動間隔(時間)
リアルタイムクロック(RTC)
ローカル時刻を設定し、正確なログ記録と停電後のプログラム再開を可能にします。
取得・ログ記録頻度
取得頻度とログ記録頻度を分離しています。コントローラーは高速に反応できますが(高速取得)、全データを記録する必要はないためログ頻度は低く設定。ログ頻度を上げるとCSVファイルが肥大化し、EmonCMSへの送信量増加、ダウンロード時間増加の原因になります。
- サンプリングレート: 秒単位。コントローラーの反応速度を決定
- 送信・ログレート: 分単位。CSV更新とEmonCMS送信の間隔
Arduino GrowBox Controller用PCB(シールド)
Arduino Mega用の「シールド」基板を設計し、Ethernetシールド、リレー、センサーを簡単に接続できるようにしました。Eagleで設計し、ソースファイルはGitHubで公開しています。
今後の予定
3年目になりますが、まだ実装したい機能があります:
- SSR(ソリッドステートリレー)を使用したPID制御ヒーティングで、エネルギー効率と温度制御精度を向上
- MQTT対応でホームオートメーションシステムやThingsBoard.io等のIoTプラットフォームと統合
- NTPでRTCを自動同期し、時刻ズレを防止
- 予備加熱: ライト消灯前に加熱開始し、温度安定性を向上
- サンプル鉢プローブによる灌水制御
このプロジェクトを楽しんでいただけたら幸いです! 皆さんの栽培成果もシェアしてください!
コード
Arduino GrowBox Controller
ファームウェア: GitHubリポジトリ
回路図・PCB設計
Arduino GrowBox Shield
Eagle回路図とPCB設計(未製造): GitHubリポジトリ
製造プロセス
- ILI9341 2.4インチTFTタッチシールドでのビットマップアニメーション実装ガイド
- Web制御DMX照明システム:Arduino Megaマスターコントローラー
- Bluetooth操作のArduinoスパイボットを自作する
- DIY Arduino USBゲームコントローラー - 高性能ゲームパッドを自作
- Unopad: Ableton Live連携シームレスなArduino MIDIコントローラー
- Android加速度センサーで操作するラジコン車両:Raspberry Pi・Arduino・モーターシールド連携
- Arduinoベースの蛍光表示管(VFD)コントローラーキット
- Alexa対応Arduinoホームコントローラー:音声でスマートホーム自動化
- ワイヤレスArduinoプログラミングシールド – HC-05 BluetoothでUSBケーブル不要に
- PS2コントローラーで操作するリモコンバトルボットの作り方
- Arduino Nano用 高性能2.8インチTFTシールド - 320×240 SPIディスプレイ