Cuprins:

Sistem de grădină fără fir: 7 pași
Sistem de grădină fără fir: 7 pași

Video: Sistem de grădină fără fir: 7 pași

Video: Sistem de grădină fără fir: 7 pași
Video: Costeo biju ‼️luat la palme de interlopi‼️#bucuresti #emipian #florinsalam #dans #interlopi 2024, Noiembrie
Anonim
Sistem de grădină fără fir
Sistem de grădină fără fir

Acest proiect se bazează pe Arduino și folosește „module” pentru a vă ajuta să vă udați plantele și să vă conectați la temperatură, sol și ploaie.

Sistemul este fără fir până la 2, 4 GHz și folosește module NRF24L01 pentru a trimite și primi date. Permiteți-mi să vă explic puțin cum funcționează, PS! Scuzați-mă dacă engleza nu este 100% corectă, sunt din Suedia.

Folosesc acest sistem pentru a-mi controla plantele, păcatele. Am plante diferite, aveam nevoie să le înregistrez diferite.

Senzorii solului care citesc umiditatea și temperatura solului (funcționează cu baterie) verifică la fiecare oră și transmit datele către mașina de bază care are o conexiune wifi. Datele sunt încărcate pe un server din casa mea și se conectează la o pagină web.

Dacă solul are nevoie de apă, va activa pompa corectă în funcție de ce senzor de sol a verificat. Dar dacă plouă nu va uda. Și dacă este foarte fierbinte, va uda ceva în plus.

Să presupunem că aveți un teren de cartofi, unul pentru tutun și unul pentru roșii, apoi puteți avea 3 zone cu 3 senzori diferiți și 3 pompe.

Există, de asemenea, senzori pir care verifică mișcările și, dacă acestea sunt activate pe pagina web, o sirenă puternică va începe să sperie animalul sau persoana care se apropie de plantele mele.

Sper să înțelegi puțin. Acum să începem să creăm senzori som.

Pagina mea GitHub de unde descărcați totul:

Pasul 1: senzori de sol

Senzori de sol
Senzori de sol
Senzori de sol
Senzori de sol
Senzori de sol
Senzori de sol
Senzori de sol
Senzori de sol

Fiecare senzor are un număr unic care este adăugat la pagina web. Deci, atunci când senzorul de sol transmite datele din acel senzor de sol va fi adăugat în zona corectă. Dacă senzorul nu este înregistrat, nu vor fi trimise date.

Pentru această construcție aveți nevoie de:

  • 1x cip Atmega328P-PU
  • 1x modul nRF24L01
  • 1x 100 uf condensator
  • 1x tranzistor NPN BC547
  • 2x condensatori de 22 pF
  • 1x cristal de 16.000 MHz
  • 1x senzor de umiditate a solului
  • 1x senzor de temperatură DS18B20
  • 1x LED RGB (Anodul comun este folosit de mine)
  • 3x rezistențe de 270 ohmi
  • Rezistor 1x 4, 7 K ohm
  • Baterie (folosesc baterie Li-Po 3.7v)
  • Și dacă este utilizat li-po, un modul de încărcare pentru baterie.

Pentru a menține senzorii în funcțiune mult timp, nu utilizați nicio placă Arduino pre-fabricată, acestea vor goli rapid bateria. În schimb, utilizați cipul Atmega328P.

Conectați totul așa cum se arată în foaia mea electrică. (A se vedea imaginea sau fișierul PDF) Recomandăm este să adăugați și un comutator de alimentare, astfel încât să puteți tăia alimentarea la încărcare.

Când încărcați codul, nu uitați să definiți senzorul pentru a le oferi un număr ID unic, codul este disponibil pe pagina mea GitHub.

Pentru a menține senzorii de sol în viață pentru o lungă perioadă de timp, folosesc un tranzistor NPN pentru a le alimenta, numai când începe citirea. Deci nu sunt activate tot timpul, fiecare senzor are un număr de identificare de la 45XX la 5000 (acest lucru poate fi schimbat), astfel încât fiecare senzor trebuie să aibă numere unice, tot ce trebuie să faceți este să definiți în cod.

Senzorii vor dormi pentru a economisi bateria.

Pasul 2: senzor pentru animale

Senzor pentru animale
Senzor pentru animale
Senzor pentru animale
Senzor pentru animale
Senzor pentru animale
Senzor pentru animale
Senzor pentru animale
Senzor pentru animale

Animal Sensor este un senzor pir simplu. Simte căldura de la animale sau de la oameni. Dacă senzorul detectează mișcare. Vor trimite la stația de bază.

Dar nu va apărea nicio alarmă, pentru a face acest lucru, pe pagina trebuie să o activați sau, dacă aveți configurat un cronometru, se va activa automat în acel moment.

Dacă baza primește semnal de mișcare de la senzorul Animal, acesta îl va transmite senzorului Siren și (sper) va speria animalul. Sirena mea este la 119 db.

Senzorul pir funcționează pe baterie și l-am plasat într-o carcasă veche a senzorului pir de la o alarmă veche. Cablul care iese din senzorul animalului este doar pentru a încărca bateria.

Pentru acest senzor aveți nevoie de:

  • Cip ATMEGA328P-PU
  • 1 x 16 000 MHz cristal
  • 2 x 22 pF condensator
  • 1 x modul senzor Pir
  • 1 x 100 uF condensator
  • 1 x modul NRF24L01
  • 1 x Led (nu folosesc leduri RGB aici)
  • 1 rezistor de 220 ohmi
  • Dacă veți rula cu o baterie, aveți nevoie de asta (eu folosesc Li-Po)
  • Un modul de încărcare a bateriei dacă aveți o baterie reîncărcată.
  • Un fel de comutator de alimentare.

Conectați totul așa cum vedeți în foaia electrică. Verificați pentru a vă putea alimenta senzorul pir de la baterie (Unii au nevoie de 5v pentru a rula).

Obțineți codul de la GitHub și definiți senzorul de vrăjitoare pe care îl veți folosi (de exemplu: SENS1, SENS2 etc.), astfel încât să obțină numere unice.

Cipul ATMEGA se va trezi numai atunci când este înregistrată mișcarea. Păcatele modulului senzor pir au încorporat un temporizator pentru întârziere, nu există nimic pentru asta în cod, așa că reglați potul pe senzorul pir pentru întârzierea în care va fi trezit.

Asta e pentru senzorul animal, mergem mai departe.

Pasul 3: Controlerul pompei de apă

Controler pompa de apa
Controler pompa de apa
Controler pompa de apă
Controler pompa de apă
Controler pompa de apa
Controler pompa de apa
Controler pompa de apă
Controler pompa de apă

Controlerul pompei de apă trebuie să pornească o pompă sau o supapă de apă pentru a uda câmpurile dvs. Pentru acest sistem nu aveți nevoie de o baterie, aveți nevoie de energie pentru a rula pompa. Nano. De asemenea, trebuie să am tipuri de pompe, una care utilizează o supapă de apă care funcționează pe 12 v, astfel încât să am un modul AC 230 la DC 12v la placa releu.

Celălalt este de 230 AC în releu, astfel încât să pot alimenta o pompă de 230 V AC.

Sistemul este destul de simplu, fiecare controler de pompă are numere unice de identificare, deci să presupunem că câmpul de cartofi este uscat și că senzorul este setat la apă automată, atunci pompa mea care este pentru câmpul de cartofi este adăugată la acel senzor, astfel încât senzorul de sol spune sistemului de bază că udarea ar trebui să înceapă, așa că sistemul de bază trimite un semnal către acea pompă pentru activare.

Puteți seta cât timp ar trebui să ruleze pe pagina web (de exemplu, 5 minute) în cazul în care senzorii verifică numai la fiecare oră. De asemenea, atunci când pompa se oprește, aceasta va stoca timpul în sistem, astfel încât sistemul automat nu va porni pompa în curând. (De asemenea, este posibilă configurarea pe pagina web).

De asemenea, puteți trece prin pagina web să dezactivați udarea în timpul nopții / zilei prin setarea orelor speciale. Și, de asemenea, configurați temporizatoare pentru fiecare pompă pentru a începe udarea. Și dacă plouă, nu vor uda.

Sper ca intelegi:)

Pentru acest proiect aveți nevoie de:

  • 1 x Arduino Nano
  • 1 x modul NRF24L01
  • 1 x 100 uF condensator
  • 1 LED RGB (anodul comun îl folosesc eu)
  • Rezistențe de 3 x 270 ohmi
  • 1 x placa releu

Conectați totul ca foaie electrică (vezi fișierul sau imaginea pdf) Descărcați codul de la GitHub și nu uitați să definiți numărul senzorului.

Și acum aveți un controler de pompă, sistemul poate gestiona mai mult decât unul singur.

Pasul 4: Senzor de ploaie

Senzor de ploaie
Senzor de ploaie
Senzor de ploaie
Senzor de ploaie
Senzor de ploaie
Senzor de ploaie
Senzor de ploaie
Senzor de ploaie

Senzorul de ploaie este folosit pentru a detecta ploaia. Nu ai nevoie de mai mult de unul. Dar este posibil să adăugați mai multe. Acest senzor de ploaie este alimentat de baterie și verifică la fiecare 30 de minute dacă există ploaie. De asemenea, au un număr unic pentru a le identifica.

Senzorul de ploaie utilizează știfturi analogice și digitale. Pinul digital este pentru a verifica dacă plouă, (Numărul digital afișează doar da sau nu) și trebuie să setați vasul pe modulul senzorului de ploaie atunci când este ok să avertizați despre „ploaie” (nivelul de apă al senzorului care indică ploaia.)

Pinul analogic este utilizat pentru a informa în procente cât de umed este pe senzor.

Dacă pinul digital detectează că este ploaie, senzorul îl va trimite la sistemul de bază. Iar sistemul de bază nu va uda plantele atât timp cât „plouă”. Senzorul trimite, de asemenea, cât de umed este și starea bateriei.

Alimentăm senzorul de ploaie numai atunci când este timpul să citim prin tranzistorul care permite printr-un pin digital.

Pentru acest senzor aveți nevoie de:

  • Cip ATMEGA328P-PU
  • 1x cristal de 16 000 MHz
  • 2x 22 pF Condensator
  • 1x modul senzor de ploaie
  • 1x condensator 100 uF
  • 1x modul NRF24L01
  • 1x RGB Led (am folosit anod comun, este VCC în loc de GND)
  • Rezistoare 3x 270 Ohm
  • 1x tranzistor NPN BC547
  • 1x baterie (folosesc Li-Po)
  • 1x modul încărcător Li-Po (dacă este utilizat baterie Li-Po)

Conectați totul așa cum vedeți pe foaia electrică (în pdf sau în imagine) Apoi încărcați codul pe cipul ATMEGA așa cum puteți găsi în pagina mea GitHub sub Senzor de ploaie Nu uitați să definiți senzorul pentru a obține numărul de identificare corect.

Și acum veți avea un senzor de ploaie care funcționează la fiecare 30 de minute. Puteți schimba timpul dacă nu doriți mai puțin sau mai mult.

În funcția counterHandler () puteți seta timpul de trezire pentru cip. Calculați astfel: jetoanele se trezesc la fiecare 8 secunde și de fiecare dată când va crește o valoare.. Deci, există 1800 de secunde pe o jumătate de oră. Deci, împărțiți-l la 8 (1800/8) veți obține 225. Asta înseamnă că nu va verifica senzorul până când acesta nu funcționează de 225 de ori și asta va fi de aproximativ 30 de minute. Faceți același lucru și la senzorul de sol.

Pasul 5: Animal Siren

Animal Siren
Animal Siren
Animal Siren
Animal Siren
Animal Siren
Animal Siren
Animal Siren
Animal Siren

Sirena animalului este simplă atunci când senzorul animalului detectează mișcarea, sirena va fi activată. Folosesc o sirenă reală, așa că pot chiar să sperie oamenii cu ea. Dar puteți folosi și sirenele pe care doar animalele le aud.

Folosesc un nano Arduino în acest proiect și îl alimentez cu 12v. Sirena are, de asemenea, 12 V, deci, în loc de releu, voi folosi un tranzistor 2N2222A pentru a activa sirena. Dacă utilizați un releu atunci când aveți același teren, vă puteți deteriora Arduino. De aceea, în schimb, folosesc un tranzistor pentru a activa sirena.

Dar dacă sirena și Arduino nu folosesc același teren, puteți folosi în schimb un releu. Săriți tranzistorul și rezistența de 2,2K și utilizați în schimb o placă de releu. Și, de asemenea, modificați codul Arduino atunci când este activat, treceți de la HIGH la LOW și când este dezactivat, de la LOW la HIGH, este citit digital pentru pinul 10, păcatele releului folosesc LOW pentru a activa, iar tranzistorul folosește HIGH, deci trebuie să comutați acest lucru.

Pentru această construcție aveți nevoie de:

  • 1x Arduino nano
  • 1x rezistor de 2,2 K (omiteți dacă utilizați placa releu)
  • 1x 2N2222 Tranzistor
  • 1x Sirenă
  • Rezistor 3x 270 Ohm
  • 1x LED RGB (folosesc anod comun, VCC în loc de GND)
  • 1X modul NRF24L01
  • 1x condensator 100 uF

Conectați totul așa cum vedeți pe foaia electrică în PDF sau în imagine. Încărcați codul pe Arduino pe care îl găsiți pe pagina mea GitHub sub Animal Siren Nu uitați să definiți senzorul pentru numărul de identificare corect.

Și acum aveți o sirenă funcțională.

Pasul 6: Sistemul principal

Sistemul principal
Sistemul principal
Sistemul principal
Sistemul principal
Sistemul principal
Sistemul principal

Sistemul principal este cel mai important dintre toate modulele. Fără acesta nu puteți utiliza acest sistem. Sistemul principal este conectat la internet cu modulul ESP-01 și folosim pinii Arduino Megas Serial1 pentru a-l conecta. RX-ul de la Mega la TX pe ESP, dar trebuie să trecem prin două rezistențe pentru a reduce volumul la 3.3. Și TX de pe Mega la RX pe ESP.

Configurați modulul ESP

Pentru a utiliza ESP, mai întâi trebuie să setați rata de transmisie pe acesta la 9600, este ceea ce am folosit în acest proiect și am constatat că ESP funcționează cel mai bine așa. Din cutie s-a setat la rata de 115200 baud, o puteți încerca, dar a mea nu a fost atât de stabilă. Pentru a face acest lucru aveți nevoie de un Arduino (Mega funcționează bine) și trebuie să conectați TX-ul ESP (prin rezistențe așa cum vedeți pe foaie) la Serial TX (nu Serial1 dacă utilizați Mega) și RX pe ESP la Arduino Serial RX.

Încărcați schița intermitentă (sau orice schiță care nu utilizează serial) și deschideți monitorul serial și setați rata de transmisie la 115200 și NR & CR pe linii

În linia de comandă scrieți AT și apăsați Enter. Ar trebui să primiți un răspuns care spune OK, așa că acum știm că ESP funcționează. (Dacă nu există o problemă de conectare sau un modul ESP-01 defect)

Acum, în linia de comandă, scrieți AT + UART_DEF = 9600, 8, 1, 0, 0 și apăsați Enter.

Va răspunde cu un OK și asta înseamnă că am setat rata de transmisie la 9600. Reporniți ESP cu următoarea comandă: AT + RST și apăsați enter. Schimbați rata de transmisie în monitorul serial la 9600 și introduceți AT și apăsați Enter. Dacă primiți OK înapoi, ESP este configurat pentru 9600 și îl puteți folosi pentru proiect.

Modulul cardului SD

Vreau să fie ușor să schimbați setările WIFI pentru sistem, în cazul în care o nouă parolă este schimbată sau numele wifi. De aceea avem nevoie de modulul Card SD. În interiorul cardului SD creați un fișier text cu numele config.txt și folosim JSON pentru a citi, deci avem nevoie de un format JSON. Deci, fișierul text ar trebui să aibă următorul text:

}

Schimbați textul cu literele BIG pentru a corecta rețeaua dvs. wifi.

Păcatele folosim NRF24L01 care utilizează SPI, iar cititorul de card SD folosește și SPI, trebuie să folosim biblioteca SDFat, astfel încât să putem utiliza SoftwareSPI (putem adăuga cititorul de card SD pe orice pini)

Senzor DHT

Acest sistem este amplasat în exterior și are un senzor DHT, astfel încât să putem verifica umiditatea și temperatura aerului. Este folosit pentru udare suplimentară în zilele caniculare.

Pentru această construcție aveți nevoie de:

  • 1x Arduino Mega
  • 1x modul NRF24L01
  • 1x modul ESP-01
  • 1 modul SPI Micro SD Card
  • 1x senzor DHT-22
  • 1x RGB Led (am folosit anod comun, VCC în loc de GND)
  • Rezistoare 3x 270 Ohm
  • 1x rezistor de 22 K Ohm
  • 2x rezistență de 10 K Ohm

Vă rugăm să rețineți că, dacă nu aveți un modul ESP-01 stabil, încercați să îl alimentați de la o sursă de alimentare externă de 3,3 v.

Conectați totul așa cum vedeți în foaia electrică din fișierul PDF sau din imagine.

Încărcați codul pe Arduino Mega și nu uitați să verificați întregul cod pentru comentarii, deoarece trebuie să setați gazda pe server în mai multe locuri (nu este cea mai bună soluție pe care o cunosc).

Acum sistemul dvs. de bază este gata de utilizare. Nu este nevoie să modificați variabilele din cod pentru păcatele de umiditate a solului, puteți face acest lucru de la pagina web.

Pasul 7: Sistemul web

Sistemul web
Sistemul web
Sistemul web
Sistemul web
Sistemul web
Sistemul web
Sistemul web
Sistemul web

Pentru a utiliza sistemul aveți nevoie și de un server web. Folosesc un raspberry pi cu Apache, PHP, Mysql, Gettext. Sistemul web este multi-limbaj, astfel încât să îl puteți face ușor în limba dvs. Vine cu suedeză și engleză (engleza poate avea o engleză incorectă, traducerea mea nu este 100%.) Deci, trebuie să aveți Gettext instalat pentru serverul dvs. și, de asemenea, localizările.

Vă arăt câteva capturi de ecran de mai sus din sistem.

Este livrat cu un sistem simplu de autentificare și principala autentificare este: admin ca utilizator și apă ca parolă.

Pentru ao utiliza trebuie să configurați trei joburi cron (le găsiți în folderul cronjob)

Fișierul timer.php pe care trebuie să îl rulați la fiecare secundă. Aceasta deține toate automatizările pentru sistemul de găuri. Numele fișierului temperatur.php este folosit pentru a spune sistemului să citească temperatura aerului și să o înregistreze. Deci, trebuie să configurați o lucrare cron în funcție de cât de des o veți rula. O am la fiecare 5 minute. Apoi, fișierul numit dagstatistik.php ar trebui să ruleze o singură dată înainte de miezul nopții (cum ar fi 23:30, 23:30). Acesta ia valorile raportate de la senzori în timpul zilei și le salvează pentru statisticile săptămânale și lunare.

Vă rugăm să rețineți că acest sistem stochează temperatura în grade Celsius, dar puteți trece la Fahrenheit.

În fișierul db.php configurați conexiunea la baza de date mysql pentru sistem.

Mai întâi, adăugați senzorii la sistem. Și apoi creați zone și adăugați senzori în zone.

Dacă aveți întrebări sau găsiți erori în sistem, vă rugăm să le raportați pe pagina GitHub. Puteți utiliza sistemul web și nu aveți voie să îl vindeți.

Dacă aveți probleme cu localizările pentru gettext, vă rugăm să nu uitați că, dacă utilizați raspberry ca server, acestea sunt deseori denumite ca en_US. UTF-8, deci trebuie să faceți aceste modificări în fișierul i18n_setup.php și în folderul local. În caz contrar, veți rămâne blocat cu limba suedeză.

O descărcați de pe pagina GitHub.

Recomandat: