Windows 10IoTプラント監視システム
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 4 | ||||
| × | 2 | ||||
| × | 2 | ||||
| × | 1 |
アプリとオンラインサービス
> |
| |||
|
このプロジェクトについて
プロジェクトの紹介
このプロジェクトは、植物の監視と散水システムを作成することを目的としています。主なタスクは、サーボを制御し、中継し、植物から土壌湿度データを収集することです。膨大な量のセンサーが出力としてアナログ信号を使用しますが、RaspberryPiにはアナログ-デジタルコンバーターがありません。この問題を解決するために、ADCが組み込まれているため、外部ADCモジュールとArduinoゲートウェイを使用しました。環境と相互作用したい場合、通常、パルス幅変調が必要です。この問題を解決する3つの方法を見つけました。 1つ目はソフトウェアPWM、2つ目はArduinoゲートウェイ、最後はPWM対応モジュール/ ICを使用するものでした。以前にI2Cデバイスを実装したことがあるため、最初の2つの方法を実装しました。 ADCとPWMはArduinoの世界で非常に頻繁に使用されるため、Raspberry PiでGPIOを使用する場合は、通常、これらの機能の少なくとも1つをRaspberryで実行する必要があります。
アプリ <図>
このアプリケーションには2つのモードがあります。プラントに水が必要かどうかを検出する自動モードと、サーボとリレーを手動で制御できる手動モードです。サーボは約180度回転できるため、1つのサーボは2つの植物にしか水を与えられません。自動モードがデフォルトです。土壌湿度センサーを読み取るとき、その値を分類します。 5つのカテゴリがあります。最も乾燥したものはカテゴリ5にあり、GUIで赤でマークされています。その反対側のカテゴリ1は緑色でマークされています。タイマーはこれらの値を定期的にチェックし、「植物A」または「植物B」のカテゴリーが許容範囲よりも高い場合(つまり、地面が乾燥しすぎている場合)、乾燥したものに水をまきます。同じ期間に、プログラムは他の2つの植物(「植物C」と「植物D」)を同様の方法でチェックして水をやり、すべての期間でこれを行います。
コンポーネント
- サーボSG90:
サーボを駆動するには、通常、大きなGPIOクロック周波数が必要です。デフォルトのプロバイダーでは不十分なので、Lightningプロバイダーを使用しました。 Piの最初の電源に問題がありました。私はどこかでそれを読んだことがありますが、Piは他のセンサーと比較して、より優れたパフォーマンスを必要とし、サーボは多くの電力を消費する可能性があります。これら2つの結果、パフォーマンスの問題が発生しました。今ではiPadの充電器を使用すると、はるかにうまく機能しますが、それでも躊躇することがあります。外部電源を備えたサーボ回路は、次のような問題を解決できます。
<図>そして、私が思ったように、これで問題は解決し、今では完全に機能しています。サーボのVccを電源の5Vに接続しましたが、信号は同じままで、共通のアースがあります。新しい接続は次のとおりです:
<図>最後に、このようにする必要はありません。 Raspberry Piの電源を改善したり、ソフトウェアを改良したりすることで、サーボに関するすべての問題を解決できるかもしれません。
- ADS111516ビットI2cADC:
私はすべての機能をADS111516ビットADCに組み込んでみました。しかし、それはまだ開発中です。たとえば、しきい値レジスタは設定されておらず、独自のプロジェクト/チュートリアルに値します。全体として、完全に機能するADCドライバーになる準備がほぼ整っています。いくつかの論理的な問題があり、すべての組み込み関数が完全にテストされていない可能性があります。
- BMP180 I2c温度および圧力センサー:
私が使用したBMP180ドライバーは、基本的にこのプロジェクトで使用されているものと同じです。 Lightningプロバイダーと完全に互換性がなかったため、初期化のみを変更しました。温度と圧力の測定は、気象観測所、植物の監視などのプロジェクトに属していると思います。
- リレー:
リレーを駆動するには、簡単なGPIO操作が必要です。ソースコードから理解するのは非常に簡単です。
- フォトダイオード回路:
この測定は同様のプロジェクトでも役立つ可能性があるため、このモジュールを使用しました。アンプ回路はLTC1050のドキュメントに記載されています。フォトダイオードは、日光用に最適化されたOsram BPW21です。
- Arduinoゲートウェイ:
ゲートウェイには、3.3 VのプルアップI2Cバスがあるため、ArduinoDueを使用しました。電圧レベルコンバーターまたは独自のプルアップを備えた別のバスを使用することもできます(Arduino 2560および他のいくつかのボードにはより多くのI2Cバスがあり、プルアップされていないため、それらを使用できます)。コードは非常に単純です。
- 土壌湿度センサー:
コンパレータモジュール付きの中国製のものを使用しました。
<図>
プロジェクトの概要
私の意見では、このプロジェクトは私たちの植物に水をやる方法の非常に基本的なアイデアを与えるのに役立つかもしれません、そしてあなたがあなた自身のプロジェクトに適用したいと思うかもしれないいくつかの機能があります:
- I2Cバス(Arduinoゲートウェイ)でArduinoボードと通信する
- RaspberryPiのADC
- Raspberry Pi(サーボ)のPWM
今後の計画
- Azure接続
- Xamarinを使用したモバイルアプリ
- Arduinoと通信するには、I2CをBluetoothに置き換えます
コード
Arduinoコード
https://github.com/horvathm/plant-monitoring-system-arduino.gitラズベリーパイコード
https://github.com/horvathm/plant-monitoring-system-raspberry.git 回路図
回路図は、LTC1050のドキュメントに記載されています。 製造プロセス