監視および警告システムを作成した経験を共有したいと思います。
建設現場の1つで、プール、サウナ、ジム、リラクゼーションルームを備えた建物が建設されました。 これはすべて、1人の所有者にとってまともなサイズでした。 純粋に技術的には、2つの地下室が必要でした。1つはプールポンプの保守用、もう1つは暖房および蓄熱システムの保守用
2つの地下室に異なるサイズの2フロアユーロハッチを購入しました。 ハッチは4本のネジで埋められており、非常に密なゴムシールがありました。 地下室を開くには、4人(と少しの健康)が必要でした。 すべての機器が動作していると、地下室の温度と湿度が上がり、そこで起こっていることを制御することはほとんど不便でした。
その結果、ファン、可聴アラーム、電気バルブ(水)を表示および制御するデバイスを作成することが決定され、任意のスマートデバイスから制御できるようになりました。
基本はArduino Pro MiniとイーサネットENC28J60でした。 湿度と温度を測定するために、DHT11およびFC-28センサー(洪水センサーとしての土壌水分センサー)。
技術割り当て:
1)Webインターフェイスを介した管理と情報。
2)所定の湿度レベルで換気のオンとオフを切り替えます。
3)洪水時の給水バルブ(おそらくハウラー、ポンプポンプ)のオンとオフ。
Arduino Pro Miniを選択する際には、さまざまなバージョンがあるため、それについても考慮する必要があります。
スタビライザーがより強力なものを使用する方が良いです。アクティブリレーとネットワークコントローラーを備えた弱いものは安定器が沸騰し、システムがフリーズすることになります(このニュアンスを逃してハングアップしましたが、より貴重な経験を得ました)。
ネットワークコントローラーも慎重に選択する必要があります。5V(モジュールの背面にある安定装置)と3.3Vのコントローラーがあるためです。 追加の3.3Vスタビライザーが必要になります。
電源は、従来のスイッチ(またはルーター)TP-Link 9V 500mA(およそ)から取得されましたが、多くの場合、スイッチやルーターが焼かれた場合に1ペニーで見つかります。
操作の原理は簡単です。情報をコントローラーにマージする2つのセンサーがあります。 状況に応じて、コントローラーはリレー(給水バルブ、場合によってはハウラー、ポンプ、ファン)のオンとオフを切り替えます。 ENC28J60モジュールに基づいたプログラムによって実装されるWEBインターフェースを介した管理と監視。
1)フラッディングセンサーの作動=リレーの作動(水バルブ(ハウラー、ポンプポンプ); +ウェブページに大きな印刷で知らせる。
2)設定レベルを超える湿度の増加=ファンリレーの作動。
3)湿度温度と洪水に関するすべての情報がWebページに表示されます。
4)温度が5度を下回ると、Webサイトに脅威に関するアラートが表示されます。
ビデオではっきりと見ることができます:
実際には、すべてが非常に便利です。 あなたはいつでもテレビ(スマート)、電話またはタブレットから見ることができます-それらを開かずに囲まれた空間で何が起こっているか。
遊ぶだけで捨てるおもちゃを作るのではなく、生活を楽にするデバイスを作るのが好きです。
それは技術的な性質のものであり、実用的であり、複雑で美しいものではないため、ページのデザインにはあまり気にしませんでした。
この記事が誰かを助け、誰かが自分のプロジェクトを作成するように促すことを願っています。
Arduino用プログラム
#include "etherShield.h" #include "ETHER_28J60.h" #include <EEPROM.h> #include "DHT.h" #define DHTPIN 2 // Data // #define DHTTYPE DHT11 // DHT 11 //#define DHTTYPE DHT22 // DHT 22 (AM2302) //#define DHTTYPE DHT21 // DHT 21 (AM2301) // Connect pin 1 (on the left) of the sensor to +5V // Connect pin 2 of the sensor to whatever your DHTPIN is // Connect pin 4 (on the right) of the sensor to GROUND // Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor // DHT dht(DHTPIN, DHTTYPE); int VlagInPin = 3; int RelPin = 4; int PotPin = 5; byte vlaga = 75; int temp = 55; int vent =85; int pot; // byte vf; // static uint8_t mac[6] = {0x54,0x55,0x58,0x10,0x00,0x24}; static uint8_t ip[4] = {192,168,88,24}; static uint16_t port = 80; ETHER_28J60 ethernet; void setup() { dht.begin(); // pinMode(VlagInPin, INPUT); pinMode(RelPin, OUTPUT); digitalWrite(RelPin, HIGH); pinMode(PotPin, OUTPUT); digitalWrite(PotPin, HIGH); vf = EEPROM.read(0); // if ( vf > 110) { EEPROM.write(0, 110); // } ethernet.setup(mac, ip, port); } void loop() { // 250 //float h = dht.readHumidity(); //float t = dht.readTemperature(); vlaga = dht.readHumidity(); temp = dht.readTemperature(); pot = digitalRead(VlagInPin); if (pot == LOW) { // digitalWrite(PotPin, LOW); } if (pot == HIGH) { // digitalWrite(PotPin, HIGH); } if (vlaga >= vf) { // digitalWrite(RelPin, LOW); } if (vlaga < vf-1) { // digitalWrite(RelPin, HIGH); } String param; if (param = ethernet.serviceRequest()) { ethernet.print("<H1> </H1>"); ethernet.print("<a href=\"/\"> </a><br>"); if (pot == LOW) { // ethernet.print("<H1> !!!</H1>"); } if (temp <= 3) { // ethernet.print("<H1> </H1>"); } if (param == "plus") { vf++; // if ( vf > 110) { vf=110; } EEPROM.write(0, vf); // } if (param == "minus") { vf--; // if ( vf < 5) { vf=5; } EEPROM.write(0, vf); // } ethernet.print("<H1></H1>"); ethernet.print("<H2>"); ethernet.print(temp); ethernet.print("</H2>"); ethernet.print("<H1></H1>"); ethernet.print("<H2>"); ethernet.print(vlaga); ethernet.print("</H2>"); ethernet.print("<H1> </H1>"); ethernet.print("<H2>"); ethernet.print(vf); ethernet.print("</H2>"); ethernet.print("<a href=\"/minus\"></a> <a href=\"/plus\"></a><br>"); ethernet.respond(); } }
そして、ここにライブラリを含むプログラムのアーカイブがあります:
www.facebook.com/download/766447720118309/potop.IDE%201.5.2.rar