Cuprins:
- Provizii
- Pasul 1: Dezvoltarea proiectului
- Pasul 2: Introducerea senzorului de umiditate în circuit
- Pasul 3: Înțelegeți valorile umidității
- Pasul 4: Programare logică
- Pasul 5: Mulțumiri
Video: Sistem de alertă a solului cu umiditate scăzută pentru planta dvs.: 5 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:42
În mai multe reședințe, este obișnuit să găsești borcane cu diferite tipuri de plante. Și cu numărul mare de activități de zi cu zi, oamenii uită să-și udă plantele și ajung să moară din lipsă de apă.
Ca modalitate de a evita această problemă, am decis să creăm un sistem care să informeze când o plantă nu are apă. În acest fel, nu veți uita niciodată să vă irigați planta și aceasta va rămâne vie mult timp. În continuare, vom prezenta întreaga dezvoltare a acestui proiect.
Provizii
- PCBWay PCB personalizat
- Senzor analogic de umiditate a solului pentru Arduino
- Arduino UNO
- Sârme jumper (generice)
- LCD standard - 16 x 2 albastru
- UTSOURCE Potențiometru rotativ 10k
Pasul 1: Dezvoltarea proiectului
Una dintre modalitățile pe care le folosim pentru a detecta cantitatea de apă din plantă este prin parametrul de umiditate. Deci, cu cât este mai puțină apă în borcanul plantei noastre, cu atât este mai mică umiditatea solului.
Prin urmare, trebuie să folosim un senzor de umiditate pentru a analiza starea de umiditate din planta noastră.
Prin intermediul acestuia, am configurat un circuit montat în panou cu Arduino, pentru a efectua monitorizarea și indicarea umidității scăzute a borcanului de cactus. Deci, prin intermediul ecranului LCD pentru a informa utilizatorul despre umezeală, așa cum se arată în Figura 1.
Pasul 2: Introducerea senzorului de umiditate în circuit
Din circuitul de mai sus, vom introduce sonda pentru măsurarea umidității în instalația pe care dorim să o monitorizăm. În proiectul nostru, introducem o sondă într-un cactus mic, așa cum se arată în Figura 2.
Acum, vom vedea cum să proiectăm lucrările pas cu pas și, în continuare, vom învăța cum să creăm codul de control. La început, când nu conectăm senzorul în interiorul borcanului, dispozitivul are un conținut scăzut de umiditate de 2% în exterior borcanul cactusului. Acest lucru poate fi văzut în Figura 3.
Pasul 3: Înțelegeți valorile umidității
Această valoare procentuală mică reprezintă o umiditate scăzută. Acum, după introducerea senzorului în solul borcanului de cactus, va fi afișată o valoare de 36%, așa cum se arată în Figura 4. Adică umiditatea noastră este scăzută și sistemul afișează mesajul Umiditate scăzută deoarece valoarea este mai mică mai mult de 60%.
Următorul pas este să irigăm solul ulciorului cactusului nostru și putem verifica creșterea valorii umidității la 69%.
După înțelegerea funcționării proiectului, vom prezenta toată logica de construcție pentru a crea acest sistem de monitorizare. Să începem!
Pasul 4: Programare logică
În continuare, logica de programare va fi prezentată prin intermediul codului construit.
Inițial, a fost declarată biblioteca de afișaj LCD, variabile și a fost creat un obiect LCD cu pinii de conexiune cu Arduino UNO.
#include
#define sensor A0 bool LCDControl = 0, LowUmid = 0, HighUmid = 0; octet UmiditatePercent = 0, umiditate = 0, Valoare precedentă = 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);
După aceasta, funcția de configurare și afișajul LCD 16x2 au fost inițializate și pinul senzorului a fost configurat ca intrare. În cele din urmă, am făcut prima citire a senzorului nostru și am folosit ca referință pentru variabila PreviousValue, așa cum se arată mai jos.
{Serial.begin (9600); lcd.inceput (16, 2); pinMode (senzor, INPUT); Valoare anterioară = analogRead (senzor); }
Cu variabilele create și comenzile din funcția de configurare nulă, vom explica toate programările logice din funcția buclă.
// Le o valor do pino A0 do sensorAnalogValue = analogRead (senzor); // Mostra o valoare da porta analogica nu serial monitor Serial.print ("Analog Port:"); Serial.println (AnalogValue); UmidityPercent = hartă (AnalogValue, 0, 1023, 0, 100); umiditate = 100 - UmiditatePercent;
În funcția buclă, valoarea analogică a fost citită și valoarea a fost mapată în intervalul 0 și 100. Această valoare reprezintă un procent de umiditate a solului. Când umiditatea este ridicată, valoarea se apropie de 0, iar dacă umiditatea este scăzută, valoarea se apropie de 100.
Pentru a facilita reprezentarea valorii și pentru a preveni confuzia citirii utilizatorului, inversăm această logică și reprezentăm că 0% va fi umiditate scăzută și 100% umiditate ridicată. Acest lucru a fost realizat prin intermediul calculului efectuat după mapare.
umiditate = 100 - UmiditatePercent;
După citire, valoarea umidității trebuie prezentată pe ecranul LCD. Următorul pas este de a verifica dacă valoarea umidității este diferită de valoarea sa plus 1 sau valoarea sa minus 1, conform condiției de mai jos.
if ((umiditate> (Valoare anterioară) +1) || (umiditate <(Valoare anterioară) - 1))
Această condiție este utilizată pentru a împiedica sistemul să prezinte aceeași valoare de mai multe ori pe ecranul LCD. Dar, atunci când condiția este adevărată, sistemul va prezenta valoarea pe ecranul LCD și va verifica dacă valoarea este mai mare sau egală cu 60% sau mai mică de 60%. Dacă valoarea a fost mai mare sau egală cu 60%, sistemul este prezent mesajul Umiditate ridicată, în caz contrar, prezintă mesajul Umiditate scăzută, așa cum se arată mai jos.
if ((umiditate> (Valoare precedentă) +1) || (umiditate <(Valoare precedentă) - 1)) {lcd.setCursor (1, 0); lcd.print ("Umiditate:"); lcd.print (""); lcd.setCursor (11, 0); lcd.print (umiditate); lcd.print ("%"); if (umiditate = 60 && HighUmid == 0) {lcd.setCursor (2, 1); lcd.print (""); lcd.setCursor (1, 1); lcd.print ("Umiditate ridicată"); HighUmid = 1; LowUmid = 0; } Valoare precedentă = umiditate; }
În cele din urmă, sistemul va stoca valoarea variabilei de umiditate în variabila PreviousValue pentru a-și actualiza valoarea. De fiecare dată când o nouă valoare este prezentată pe afișaj, variabila PreviousValue este actualizată pentru a fi utilizată în alte cicluri de procesare a codului. Prin urmare, acesta este un sistem simplu utilizat pentru a monitoriza umiditatea plantelor din rezidențele noastre și pentru a informa utilizatorii despre nivelul de umiditate al solului.
Pasul 5: Mulțumiri
Laboratorul Silícios mulțumește PCBWay pentru sprijin și colaborează. Și avem multe beneficii pentru dvs. Câștigați 10 PCB-uri gratuite și o mulțime de monede de fasole (Aflați mai multe) pentru a face schimb de produse pe site-ul PCBWay.
În plus față de acestea, Laboratorul Silícios mulțumește UTSOURCE pentru sprijinul acordat, pentru că ne oferă componente electronice low cost, de o calitate excelentă și un serviciu bun.
Recomandat:
Calibrarea senzorului de umiditate a solului: 5 pași
Calibrarea senzorului de umiditate a solului: Există multe contoare de umiditate a solului pe piață pentru a ajuta grădinarul să decidă când să-și udă plantele. Din păcate, apucarea unei mână de sol și inspectarea culorii și texturii este la fel de fiabilă ca multe dintre aceste gadgeturi! Unele sondaje chiar registrează
Creați-vă propriul senzor de umiditate a solului cu Arduino !!!: 10 pași
Creați-vă propriul senzor de umiditate a solului cu Arduino !!!: DESPRE !!! În acest instructable, vom interfața un senzor de umiditate al solului FC-28 cu Arduino. Acest senzor măsoară conținutul volumetric al apei din sol și ne oferă nivelul de umiditate ca ieșire. Senzorul este echipat atât cu analo
Steam Punk UPS-ul dvs. pentru a obține ore de funcționare pentru routerul dvs. Wi-Fi: 4 pași (cu imagini)
Steam Punk UPS-ul dvs. pentru a obține ore de funcționare pentru routerul dvs. Wi-fi: există ceva fundamental dezagreabil în ceea ce privește ca UPS-ul dvs. să-și convertească puterea bateriei de 12V DC în 220V AC, astfel încât transformatoarele care rulează routerul și fibra ONT să-l poată converti din nou în 12V DC! De asemenea, vă confruntați cu [de obicei
Monitor inteligent pentru plante de interior - Aflați când planta dvs. are nevoie de udare: 8 pași (cu imagini)
Monitor inteligent pentru plante de interior - Știți când planta dvs. are nevoie de udare: acum câteva luni, am realizat un stick de monitorizare a umidității solului care este alimentat cu baterii și care poate fi blocat în sol în vasul plantei dvs. de interior pentru a vă oferi câteva informații utile despre sol nivelul de umiditate și LED-urile blițului pentru a vă spune când trebuie să
Automatizarea unei sere cu LoRa! (Partea 1) -- Senzori (temperatură, umiditate, umiditate a solului): 5 pași
Automatizarea unei sere cu LoRa! (Partea 1) || Senzori (temperatură, umiditate, umiditate a solului): În acest proiect vă voi arăta cum am automatizat o seră. Asta înseamnă că vă voi arăta cum am construit sera și cum am conectat electronica de putere și automatizare. De asemenea, vă voi arăta cum să programați o placă Arduino care utilizează L