Tartalomjegyzék:

Riasztási rendszer alacsony nedvességtartalmú talajról a növény számára: 5 lépés
Riasztási rendszer alacsony nedvességtartalmú talajról a növény számára: 5 lépés

Videó: Riasztási rendszer alacsony nedvességtartalmú talajról a növény számára: 5 lépés

Videó: Riasztási rendszer alacsony nedvességtartalmú talajról a növény számára: 5 lépés
Videó: A Parlagfű Pollen Riasztási Rendszer (PPRR) 2024, November
Anonim
Riasztási rendszer alacsony nedvességtartalmú talajról a növény számára
Riasztási rendszer alacsony nedvességtartalmú talajról a növény számára

Több lakóhelyen gyakori, hogy különböző típusú növényekkel ellátott üvegeket találunk. És a sok napi tevékenység mellett az emberek elfelejtik öntözni növényeiket, és végül vízhiány miatt meghalnak.

A probléma elkerülése érdekében úgy döntöttünk, hogy létrehozunk egy rendszert, amely tájékoztatja, ha az üzemben nincs víz. Ily módon soha nem felejti el a növény öntözését, és sokáig életben marad. Ezután bemutatjuk a projekt teljes fejlesztését.

Kellékek

  • PCBWay Egyedi PCB
  • Analóg talajnedvesség -érzékelő az Arduino számára
  • Arduino UNO
  • Jumper vezetékek (általános)
  • Standard LCD - 16 x 2 kék
  • UTSOURCE forgó potenciométer 10k

1. lépés: Projektfejlesztés

Projektfejlesztés
Projektfejlesztés

A növény vízmennyiségének kimutatására egyik módszer a nedvesség paraméter. Tehát minél kevesebb víz van növényünk edényében, annál alacsonyabb a talaj nedvessége.

Ezért nedvességérzékelőt kell használnunk a nedvesség állapotának elemzéséhez növényünkben.

Ezen keresztül egy áramkört állítottunk fel a kenyérsütő táblába Arduino -val, hogy ellenőrizze és jelezze a kaktuszos üveg alacsony páratartalmát. Tehát az LCD kijelző segítségével tájékoztathatja felhasználónkat a nedvességről, amint az az 1. ábrán látható.

2. lépés: A nedvességérzékelő behelyezése az áramkörbe

A nedvességérzékelő behelyezése az áramkörbe
A nedvességérzékelő behelyezése az áramkörbe
A nedvességérzékelő behelyezése az áramkörbe
A nedvességérzékelő behelyezése az áramkörbe

A fenti áramkörből behelyezzük a szondát a páratartalom mérésére a megfigyelni kívánt üzembe. Projektünk során szondát illesztünk egy kis kaktuszba, amint azt a 2. ábra mutatja.

Most látni fogjuk, hogyan kell lépésről lépésre előrevetíteni a munkát, majd ezt követően megtanuljuk, hogyan kell létrehozni a vezérlőkódot. Kezdetben, ha nem csatlakoztatjuk az érzékelőt az edény belsejébe, az eszköz alacsony, 2% -os nedvességtartalmú kívül a kaktuszkorsó. Ez látható a 3. ábrán.

3. lépés: Ismerje meg a nedvességértékeket

Ismerje meg a nedvességértékeket
Ismerje meg a nedvességértékeket
Ismerje meg a nedvességértékeket
Ismerje meg a nedvességértékeket

Ez az alacsony százalékos érték alacsony páratartalmat jelent. Most, miután behelyezte az érzékelőt a kaktuszkorsó talajába, 36% -os érték jelenik meg, amint az a 4. ábrán látható. Vagyis alacsony a páratartalmunk, és a rendszer megjeleníti az Alacsony nedvesség üzenetet, mert az érték kisebb mint 60%.

A következő lépés a kaktuszunk kancsójának talaja öntözése, és ellenőrizni tudjuk a páratartalom értékének 69%-ra való növekedését.

Miután megértettük a projekt működését, bemutatjuk a felügyeleti rendszer létrehozásához szükséges összes építési logikát. Kezdjük el!

4. lépés: Logikai programozás

A továbbiakban a programozási logika a felépített kódon keresztül kerül bemutatásra.

Kezdetben a Display LCD, változók könyvtárává nyilvánították, és létrehoztak egy objektum LCD -t, amelynek csatlakozói az Arduino UNO -val vannak.

#befoglalni

#define sensor A0 bool LCDControl = 0, LowUmid = 0, HighUmid = 0; bájt UmidityPercent = 0, nedvesség = 0, PreviousValue = 0; int ValUmidade = 0, AnalogValue = 0; const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7; LiquidCrystal lcd (rs, en, d4, d5, d6, d7);

Ezt követően a beállítási funkció és az LCD 16x2 kijelző inicializálásra került, és az érzékelő csapja bemenetként lett konfigurálva. Végül elkészítettük az érzékelő első leolvasását, és referenciaként használtuk a PreviousValue változót, amint az alább látható.

{Serial.begin (9600); lcd. kezdet (16, 2); pinMode (érzékelő, BEMENET); PreviousValue = analogRead (érzékelő); }

A létrehozott változókkal és a void setup függvényben található parancsokkal elmagyarázzuk a ciklusfüggvény összes logikai programozását.

// Le o valor do pino A0 do sensorAnalogValue = analogRead (sensor); // Mostra o valor da porta analogica nincs soros monitor Serial.print ("Analog Port:"); Serial.println (AnalogValue); UmidityPercent = térkép (analógérték, 0, 1023, 0, 100); nedvesség = 100 - UmidityPercent;

A hurok funkcióban az analóg értéket leolvasták, és az értéket 0 és 100 közötti tartományban képezték le. Ez az érték a talaj nedvességtartalmának százalékát jelenti. Ha a nedvesség magas, akkor az érték megközelíti a 0 -t, és ha a nedvesség alacsony, akkor az érték megközelíti a 100 -at.

Az érték ábrázolásának megkönnyítése és a felhasználó olvasási zavarainak elkerülése érdekében megfordítjuk ezt a logikát, és azt állítjuk, hogy 0% alacsony páratartalom és 100% magas páratartalom lesz. Ezt a feltérképezést követő számítással végeztük.

nedvesség = 100 - UmidityPercent;

A nedvességérték leolvasása után meg kell jeleníteni a kijelzőn. A következő lépés annak ellenőrzése, hogy az alábbi feltételeknek megfelelően a nedvességérték eltér -e plusz 1 vagy mínusz 1 értékétől.

if ((nedvesség> [PreviousValue] +1) || (nedvesség <(PreviousValue)- 1))

Ez a feltétel arra szolgál, hogy a rendszer ne jelenítse meg ugyanazt az értéket többször a kijelző LCD -n. Ha azonban a feltétel igaz, a rendszer megjeleníti az értéket az LCD -n, és ellenőrzi, hogy az érték nagyobb vagy egyenlő, mint 60%, vagy kevesebb, mint 60%. Ha az érték 60%-nál nagyobb vagy egyenlő, a rendszer jelen van a Magas nedvesség üzenetet, különben jelenítse meg az Alacsony nedvesség üzenetet, amint az alább látható.

if ((nedvesség> (Előzőérték) +1) || (nedvesség <(Előzőérték)- 1)) {lcd.setCursor (1, 0); lcd.print ("Nedvesség:"); lcd.print (""); lcd.setCursor (11, 0); lcd.print (nedvesség); lcd.print ("%"); if (nedvesség = 60 && HighUmid == 0) {lcd.setCursor (2, 1); lcd.print (""); lcd.setCursor (1, 1); lcd.print ("Magas nedvesség"); HighUmid = 1; LowUmid = 0; } PreviousValue = nedvesség; }

Végül a rendszer eltárolja a nedvesség változó értékét az PreviousValue változóban, hogy aktualizálja annak értékét. Minden alkalommal, amikor új érték jelenik meg a kijelzőn, az PreviousValue változó aktualizálásra kerül, hogy a kód más feldolgozási ciklusaiban használható legyen. Ezért ez egy egyszerű rendszer, amelyet a növények nedvességének nyomon követésére használnak a maradékokban, és tájékoztatják a felhasználókat a talaj nedvességtartalma.

5. lépés: Köszönetnyilvánítás

A Silícios Lab megköszöni a PCBWay támogatását és együttműködését. És sok előnyünk van az Ön számára. Keressen 10 ingyenes PCB -t és sok babérmét (tudjon meg többet) a PCBWay webhelyen található termékekért.

Rajtuk kívül a Silícios Lab köszönetet mond az UTSOURCE -nak a támogatásáért, amiért kiváló minőségű és jó szolgáltatást nyújtó olcsó elektronikus alkatrészeket kínál nekünk.

Ajánlott: