水分センサーを備えたWin10IOT灌漑コントローラー
Win10 IOT、RPi2、およびXBeeを使用して、芝生の土壌水分を測定し、必要に応じて自動的に灌漑を実行します。
米国の大部分は、過去数年以内に低水位または干ばつ状態に苦しんでいます。住宅所有者が家庭の水の消費量を減らすためにできることはたくさんあり、芝生の灌漑もその1つです。最も一般的な住宅用灌漑コントローラーを使用することは不便であり、イライラします。ガレージに隠れて、複雑なダイヤルとこれらのコントローラーのあいまいな指示により、システムが毎日実行される時間を調整することが困難になります。そして、彼らはまだ植物が実際にどれだけの水を必要としているかを知りません。
私のプロジェクトは、灌漑コントローラーが土壌の湿り具合を知ることで、問題の少なくとも一部を解決することを目的としています。これにより、灌漑コントローラーは、実行するかどうか、いつ停止するかを知ることができます。さらに、Webベースの制御を追加したので、スマートフォンを使用して裏庭から、または全国からスプリンクラーを制御できます。
ステップ1:センシング
まず、RPi2にデータを送信するために土壌水分センサーを取得する必要があります。センサーを芝生の中、または芝生のすぐ隣に配置する必要がありますが、RPi2は安全な場所に配置し、電源とイーサネットの近くに配置する必要があります。センサーは要素から囲まれ、電池式であり、土壌水分センサーからデータを読み取ることができる必要があります。幸い、Digi InternationalのXBeeチップラインは、これら3つの条件すべてを解決するために適切に調整されています。
わかりやすくするために、 XBee Pro –シリーズ1 を使用することにしました。 モジュール。 Digiには独自の通信レイヤーDigiMeshとZigBee実装(ここに素晴らしい要約シートがあります)がありますが、最も単純で最も直接的な解決策は、基本的な「802.15.4」実装を使用することでした。この構成では、すべてのワイヤレスセンサーがRPi2に接続されたXBeeチップと直接通信します。個々のXBeeセンサーは、独自のスリープとウェイクアップサイクルを管理し、バッテリーの寿命を劇的に延ばします。また、XBeeセンサーには6つの内蔵10ビットアナログ-デジタル入力があり、土壌水分センサーを接続するのに最適です。後日、温度や光の測定値を収集するのに十分な追加の入力があります。
センサーへの電力供給には、バッテリーを頻繁に交換する必要がない十分な容量が必要でした。 XBeeチップがスリープとウェイクアップのサイクルで使用する電力を計算し、標準のバッテリー容量を使用することで、センサーがホームに報告する頻度を微調整して、バッテリーを1年に1回程度交換するだけで済みます。理想的には、将来の改訂には太陽電池が組み込まれるでしょう。
最後に、XBeeチップをプログラムする必要がありました。エネルギー収支スプレッドシートの右側の「G」列と「H」列は、DigiX-CTUソフトウェアを使用して変更した値です。 Digiから別の開発者キットを購入する代わりに、PCに接続されたSparkFunのXBee ExplorerUSBコンポーネントを使用することができました。
ステップ2:RaspberryPiのプログラミング
Raspberry Piをプログラミングする際の最大の課題は、XBeeモジュールとのインターフェースです。 XBeeはシリアルを介してのみ通信し、RPi2にはアクセス可能な組み込みのシリアル機能がありません。 Sparkfun XBee ExplorerUSBモジュールを使用することにしました。 FTDI製のオンボードチップには、Win10IOTコア用のネイティブドライバーがありません。ただし、JarkがGitHubリポジトリで提供した指示に従って、XBeeモジュールと通信することができました。
XBeeのドキュメントによると、センサーは定期的にセンサーデータをRPiに送信します。RPiはAPIフレームとして受信されます。 XBee APIフレームデータを処理するためのライブラリは多数ありますが、ライセンスの問題を回避するために、独自のライブラリを作成することにしました。
読み取り値を解析した後、データはAzureでホストされているクラウドサービスに送信されます。クラウドサービスは、値を開くかどうかを判断し、特定のゾーンでスプリンクラーを実行できます。
ステップ3:センサーログのクラウドサービス、灌漑制御
クラウドサービスでは、WindowsAzureウェブアプリで実行されているServiceStackを使用することにしました。 ServiceStackは、EntityFrameworkを使用したASP.Netの代替となるWeb指向のフレームワークです。 Redis、C#クライアントをサポートするための追加のコンポーネントがあり、デュアルコマーシャル/ AGPLライセンスがあり、趣味のプロジェクト用に寛大な無料の割り当てがあります。 Azureを使用することで、Redisバックエンド、SQLデータベース、Service Bus、必要に応じてスケールアップする機会など、利用できる追加のリソースが豊富にあります。
実験/趣味のプロジェクトとして、私のWebサイトは非常に最小限ですが、アプローチを示しています。これは、将来のハッカーのニーズに合わせて拡張できる機能的な例を提供するように設計されています。
- ServiceStackのServerEventsを使用して、[Server-Sent Events]リンクが開き、RPi2とサーバー間の双方向通信が効果的に可能になります。これは、SignalRを使用する場合と似ていますが、単純で堅牢性が低くなります。
- RPiは、センサーデータを受信するとクラウドに送信します
- サーバーは、灌漑コントローラーにスプリンクラーバルブをオンまたはオフにするように指示します。
このアプローチの威力は、サーバーが天気予報の確認や地方条例の順守(平日/奇数日水やりなど)などの複雑なスケジューリングやロジックを実行できることです。また、リモート管理、または単一のWebベースのインターフェイスからのさまざまな場所の管理も可能です。欠点は、インターネット接続が適切に機能していない限り、スプリンクラーが実行されないことです。
ステップ4:未来
このプロジェクトは主に概念実証であるため、将来のハッカーはこのプロジェクトに基づいて構築し、自分のニーズに合わせて調整することができます。より洗練されたプロジェクトにするためにできることはたくさんあります:
- より堅牢なWebフロントエンドを追加する
- 温度センサーのサポートを追加
- セキュリティを実装する
- 灌漑スケジュールを追加する
- インターネットのダウンタイムが発生した場合に備えて、灌漑スケジュールをダウンロードします
- LCDやプッシュボタンなどの物理的なコントロールを追加します
出典:水分センサーを備えたWin10IOT灌漑コントローラー
製造プロセス
- 基本的なIoT– RaspberryPIHDC2010の方法
- 1線式DS18B20センサーとRaspberryPiを使用して温度を測定します
- RPiを備えたライントラッキングセンサー
- RPiを使用した環境センサーAPI
- ラズベリーパイ土壌水分センサー
- Raspberry Pi、DHT11センサー、Thingspeakを使用して最初のIOTを構築します。
- Windows 10 IoTCoreおよびSHT15
- GoPiGo v2 with Windows IoT
- IoTセンサーによる大気汚染モニタリングの改善
- IoTの小型化によりサムネイルスケールの可燃性ガスセンサーが生まれる
- センサーを理解する