工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

HydroMazing スマートガーデンシステム – IoTで実現する高度な植物栽培管理

必要な部品と材料

必要な工具

使用するアプリとオンラインサービス

プロジェクト概要

「植物を最適な環境で育てたい」というシンプルな願いから始まったプロジェクト。市販のプログラマブルサーモスタットコンセントをArduinoで置き換える試みから、無線制御コンセント+433MHz送信機による家電制御、nRF24L01による無線モニタリング、Raspberry Pi経由のWebインターフェース・アラート通知まで、段階的に進化した総合的なスマートガーデンシステムです。

ホームオートメーションへのアプローチ

最初はリレー直結を試みましたが配線が煩雑に。無線制御コンセントのリモコンをハックし、Arduinoから433MHzでON/OFF信号を送る方式に転換。RCSwitchライブラリでリモコンのコードを解析・再送信することで、確実に家電(換気扇、ヒーター、加湿器、ポンプ等)を制御できるようになりました。

プログラミング設計: 「TheDecider」アルゴリズム

センサー読み取りと閾値に基づき家電を制御する独自アルゴリズム「TheDecider」を実装。タイマー管理、センサーオブジェクト、家電オブジェクトをモジュール化し、水耕栽培・キノコ栽培など様々な環境に対応できる汎用設計としています。Arduino Unoのプログラム容量制限 (32KB) に直面し、効率的なコード設計とカスタムライブラリ化、さらに2台目のArduino Nano追加で機能分散を図りました。

インターネット非依存の無線モニタリング

nRF24L01でベースステーション (LCDシールド付きArduino) と通信。センサー値、家電状態、アラートをローカル表示。クラウド不要で動作する自立システムとして設計されています。

インターネット監視 (Raspberry Pi連携)

Raspberry Pi + nRF24L01でデータ受信。ログファイル・現在値・アラートをファイル出力し、PHPでWeb表示、Pythonでメール/SMS通知。データベース蓄積による分析・レポート生成も可能。独自の「HydroMazing Garden Wizard」で栽培ガイドも提供。

養液モニタリング (水耕栽培向け)

養液レベル低下を検知し給水ポンプで「トッピングオフ」(濃度調整)。pH・ECセンサー連携で養液管理を自動化し、調整が必要なときのみ通知します。

コア設定 (CoreSettings.h 抜粋)

// nRF24L01 ネットワーク設定
const uint64_t nRFbaseAddress = 1034834473100;
uint64_t tx_pipes[3] = { 0xF0F0F0F0F8LL, 0xF0F0F0F0F7LL, 0xF0F0F0F0F6LL };
uint64_t rx_pipes[3] = { 0xF0F0F0F0F1LL, 0xF0F0F0F0F2LL, 0xF0F0F0F0F3LL };

// 433MHz ワイヤレスコンセント コード (ETEKCITY #0319 例)
uint8_t totalSwitches = 5;
unsigned long mySwitchOn[]  = {24,333107,333251,333571,335107,341251};
unsigned long mySwitchOff[] = {24,333116,333260,333580,335116,341260};

// タイマー定義 (ミリ秒)
Timer Timer_txData        = { TIMER_TX_DATA,        30000UL, true, false, 0, NULL };
Timer Timer_Lcd           = { TIMER_LCD,           12000UL, true, false, 0, &Timer_Log };
Timer Timer_Sensor_Read   = { TIMER_SENSOR_READINGS, 7000UL, true, false, 0, &Timer_Save_Settings };
Timer Timer_Alerts        = { TIMER_ALERTS,        45000UL, true, false, 0, &Timer_Sensor_Read };
Timer Timer_rxData        = { TIMER_RX_DATA,        6000UL, true, false, 0, &Timer_Save_Settings };

// 家電定義 (ID, 有効, タイプ, 時間, 自動, 状態, 次ポインタ)
Appliance Appliance_Light_1      = {101, 1, APPLIANCE_LIGHT,       DEFAULT_TIME, true, false, OFF, NULL};
Appliance Appliance_IntakeFan    = {104, 1, APPLIANCE_INTAKE_FAN,  DEFAULT_TIME, true, false, OFF, &Appliance_Light_1};
Appliance Appliance_ExhaustFan   = {103, 1, APPLIANCE_EXHAUST_FAN, DEFAULT_TIME, true, false, OFF, &Appliance_IntakeFan};
Appliance Appliance_Humidifier   = {102, 0, APPLIANCE_HUMIDIFIER,  DEFAULT_TIME, true, false, OFF, &Appliance_ExhaustFan};
Appliance Appliance_Heater       = {101, 0, APPLIANCE_HEATER,      DEFAULT_TIME, true, false, OFF, &Appliance_Humidifier};
Appliance Appliance_FeedPump     = {105, 1, APPLIANCE_PUMP,        DEFAULT_TIME, true, false, OFF, &Appliance_Heater};
uint8_t totalAppliances = 6;

// センサー定義 (ピン, ノード, タイプ, 頻度, 最小, 最大, タイムスタンプ, 値, 次ポインタ)
Sensor Sensor_Photocell   = { PIN_A0, 1, SENSOR_PHOTO,      100, 50, 100, 0, 25, NULL };
Sensor Sensor_Temp        = { PIN7,   1, SENSOR_TEMPF,      50, 70, 80, 0, 75, &Sensor_Photocell };
Sensor Sensor_Humidity    = { PIN7,   1, SENSOR_HUMIDITY,   50, 40, 70, 0, 50, &Sensor_Temp };
Sensor Sensor_WaterTemp   = { PIN3_INT1,1, SENSOR_WATER_TEMPF,100, 50, 70, 0, 65, &Sensor_Humidity };
Sensor Sensor_Flow        = { PIN2_INT0,2, SENSOR_FLOW,     100, 50, 50, 0, 75, &Sensor_WaterTemp };
Sensor Sensor_Float       = { PIN_A2, 1, SENSOR_FLOAT,      100, 0, 1, 0, 1, &Sensor_Flow };
Sensor Sensor_Voltage     = { PIN1_TX,1, SENSOR_VOLTAGE,    100, 0, 100, 0, 50, &Sensor_Float };
uint8_t totalSensors = 7;

関連リンク

回路図・構成図

製造プロセス

  1. Raspberry PiとDS18B20によるプロフェッショナルな温度監視
  2. AT89S52マイコンとLM35センサーによる温度ベース機器制御システム
  3. MCP3008 ADCでRaspberry Piにアナログセンサーを読み取る
  4. ABS(アンチロック・ブレーキ・システム)の仕組み:完全ガイド
  5. 電子点火システムの仕組み:完全ガイド
  6. マグネトー点火システムの仕組み:原理・用途・メリットデメリット
  7. 「アメリカン・システム・オブ・マニュファクチャリング」:歴史・手法・影響
  8. 携帯型点字ディスプレイの理解:主要洞察と革新
  9. スマートホームのスキルギャップを埋める:なぜ英国は欧州に後れを取るのか
  10. 都市生活の未来:新興スマートシティの主要特徴 – パート1
  11. IoT対応液体レベル監視で飲料生産を強化