Sadržaj:

Bežični vrtni sistem: 7 koraka
Bežični vrtni sistem: 7 koraka

Video: Bežični vrtni sistem: 7 koraka

Video: Bežični vrtni sistem: 7 koraka
Video: БЕСПРОВОДНОЕ ВИДЕОНАБЛЮДЕНИЕ WIFI комплект KERUI со слежением за людьми 2024, Novembar
Anonim
Bežični vrtni sistem
Bežični vrtni sistem

Ovaj projekt se temelji na Arduinu i koristi "module" koji će vam pomoći zalijevati vaše biljke, te se prijaviti na temp, tlo i kišu.

Sustav je bežičan preko 2, 4 GHz i koristi NRF24L01 module za slanje i primanje podataka. Dopustite mi da malo objasnim kako funkcionira, PS! Izvinite ako engleski nije 100 % tačan, ja sam iz Švedske.

Koristim ovaj sistem za kontrolu svojih biljaka, grijesi Imam različite biljke koje su mi bile potrebne da ih evidentiram na različite načine. Tako da gradim zonski sistem trupaca.

Senzori tla koji očitavaju vlagu i temperaturu tla (radi na bateriju) provjeravaju svaki sat i prosljeđuju podatke baznoj mašini koja ima wifi vezu. Podaci se učitavaju na server u mojoj kući i prijavljuju na web stranicu.

Ako tlu treba voda, aktivirat će ispravnu pumpu ovisno o tome što je senzor tla provjerio. Ali ako pada kiša neće zalijevati. A ako je jako vruće, dodatno će zalijevati.

Recimo da imate jednu zemlju za krumpir, jednu za duhan i jednu za paradajz, tada možete imati 3 zone sa 3 različita senzora i 3 pumpe.

Tu su i pir senzori koji provjeravaju kretnje, a ako se aktiviraju na web stranici, glasna sirena će početi plašiti životinju ili osobu koja hoda blizu mojih biljaka.

Nadam se da ste razumeli malo. Počnimo sada sa izradom som senzora.

Moja GitHub stranica sa koje preuzimate sve:

Korak 1: Senzori tla

Senzori tla
Senzori tla
Senzori tla
Senzori tla
Senzori tla
Senzori tla
Senzori tla
Senzori tla

Svaki senzor ima jedinstveni broj koji se dodaje web stranici. Dakle, kada senzor tla prenosi podatke s tog senzora tla, bit će dodani u ispravnu zonu. Ako senzor nije registriran, neće se dostaviti podaci.

Za ovu konstrukciju potrebno vam je:

  • 1x Atmega328P-PU čip
  • 1x modul nRF24L01
  • 1x 100 uf kondenzator
  • 1x tranzistor NPN BC547
  • 2x 22 pF Kondenzatori
  • 1x 16.000 MHz kristal
  • 1x senzor vlažnosti tla
  • 1x DS18B20 Senzor temperature
  • 1x RGB LED (koristim uobičajenu anodu)
  • 3x 270 ohmski otpornici
  • 1x 4, 7 K ohm otpornik
  • Baterija (koristim Li-Po bateriju od 3,7 V)
  • A ako se koristi li-po, modul punjača za bateriju.

Da bi senzori radili dugo, nemojte koristiti bilo koju prethodno izrađenu Arduino ploču, oni će brzo isprazniti bateriju. Umjesto toga koristite čip Atmega328P.

Spojite sve kako je prikazano na mojoj električnoj ploči. (Pogledajte sliku ili PDF datoteku) Preporučuje se i dodavanje prekidača za napajanje, tako da možete isključiti napajanje prilikom punjenja.

Prilikom učitavanja koda ne zaboravite definirati senzor koji će mu dati jedinstveni ID broj, kôd je dostupan na mojoj stranici GitHub.

Da bih senzore tla dugo držao u životu, koristim ih NPN tranzistor za napajanje, tek kad čitanje počne. Dakle, oni se ne aktiviraju cijelo vrijeme. Svaki senzor ima ID broj od 45XX do 5000 (ovo se može promijeniti) pa svaki senzor mora imati jedinstvene brojeve, sve što trebate učiniti je definirati u kodu.

Senzori će zaspati radi uštede baterije.

Korak 2: Životinjski senzor

Senzor za životinje
Senzor za životinje
Senzor za životinje
Senzor za životinje
Senzor za životinje
Senzor za životinje
Senzor za životinje
Senzor za životinje

Animal Sensor je jednostavan pir senzor. Oseća toplotu životinja ili ljudi. Ako senzor osjeća kretanje. Poslat će ih na baznu stanicu.

No, neće se uključiti nikakav alarm, pa to učinite na stranici koju morate aktivirati, ili ako ste postavili mjerač vremena, tada će se aktivirati automatski.

Ako baza dobije signal kretanja sa senzora za životinje, proslijedit će ga na senzor sirene i (nadam se) uplašiti životinju. Moja sirena je na 119 db.

Pir senzor radi na bateriju i stavio sam ga u staro kućište pir senzora iz starog alarma. Kabel koji izlazi iz životinjskog senzora služi samo za punjenje baterije.

Za ovaj senzor potrebno vam je:

  • ATMEGA328P-PU čip
  • 1 x 16 000 MHz kristal
  • 2 x 22 pF kondenzator
  • 1 x Pir senzorski modul
  • 1 x 100 uF kondenzator
  • 1 x NRF24L01 modul
  • 1 x LED (ovdje ne koristim nikakve RGB LED diode)
  • 1 x 220 ohmski otpornik
  • Ako radite na bateriji, to vam je potrebno (koristim Li-Po)
  • Modul punjača baterija ako imate dopunjenu bateriju.
  • Neka vrsta prekidača za napajanje.

Spojite sve kako vidite na električnoj ploči. Provjerite možete li napajati svoj pir senzor iz baterije (nekima je potrebno 5V za rad).

Nabavite kôd s mog GitHub -a i definirajte vještački senzor koji ćete koristiti (npr. SENS1, SENS2 itd.) Kako bi dobili jedinstvene brojeve.

ATMEGA čip će se probuditi samo kada se pokret registrira. Grijesi što modul pir senzora ima ugrađen mjerač vremena za kašnjenje, u kodu nema ništa od toga, pa prilagodite lonac na pir senzoru za kašnjenje koje će probuditi.

To je sve za životinjski senzor, idemo dalje.

Korak 3: Kontroler pumpe za vodu

Kontroler pumpe za vodu
Kontroler pumpe za vodu
Kontroler pumpe za vodu
Kontroler pumpe za vodu
Kontroler pumpe za vodu
Kontroler pumpe za vodu
Kontroler pumpe za vodu
Kontroler pumpe za vodu

Kontroler pumpe za vodu će pokrenuti pumpu ili ventil za vodu za zalijevanje vaših polja. Za ovaj sistem ne trebate grijehe u bateriji, potrebna vam je snaga za pokretanje pumpe. Koristim AC 230 do DC 5 v modul za pokretanje Arduina Nano. Također moram imati tipove pumpi, onu koja koristi ventil za vodu koji radi na 12 V tako da za to imam modul AC 230 do DC 12v na relejnoj ploči.

Drugi je 230 AC na releju tako da mogu napajati 230 V AC pumpu.

Sistem je prilično jednostavan, svaki kontroler pumpe ima jedinstvene identifikacione brojeve, pa recimo da je polje sa krompirom suvo i da je senzor postavljen na automatsku vodu, tada se na taj senzor dodaje moja pumpa za polje sa krompirom, pa senzor tla govori baznom sistemu da bi zalijevanje trebalo početi, pa osnovni sistem šalje signal toj pumpi da se aktivira.

Možete postaviti koliko dugo će trajati na web stranici (na primjer 5 minuta), dok senzori provjeravaju samo svaki sat. Takođe, kada se pumpa zaustavi, ona će pohraniti vrijeme u sistem, tako da automatski sistem neće uskoro pokrenuti pumpu. (Moguće i postavljanje na web stranici).

Također možete putem web stranice onemogućiti zalijevanje tijekom noći/dana postavljanjem posebnih vremena. Također podesite tajmere za svaku pumpu za početak zalijevanja. A ako padne kiša neće zalijevati.

Nadam se da razumiješ:)

Za ovaj projekat potrebno vam je:

  • 1 x Arduino Nano
  • 1 x NRF24L01 modul
  • 1 x 100 uF kondenzator
  • 1 RGB LED (koristim uobičajenu anodu)
  • 3 x 270 ohmski otpornici
  • 1 x relejna ploča

Sve povežite kao električni list (pogledajte pdf datoteku ili sliku) Preuzmite kôd s GitHub -a i ne zaboravite definirati broj senzora.

A sada imate regulator pumpe, sistem može rukovati s više od jednog.

Korak 4: Senzor za kišu

Senzor za kišu
Senzor za kišu
Senzor za kišu
Senzor za kišu
Senzor za kišu
Senzor za kišu
Senzor za kišu
Senzor za kišu

Senzor za kišu koristi se za detekciju kiše. Ne treba vam više od jednog. Ali moguće je dodati još. Ovaj senzor za kišu se napaja iz baterije i provjerava svakih 30 minuta ima li kiše. Oni također imaju jedinstveni broj za identifikaciju.

Senzor za kišu koristi analogne i digitalne pinove. Digitalni pin treba provjeriti pada li kiša, (digitalni prikaz prikazuje samo da ili ne) i morate postaviti lonac na modulu senzora za kišu kada je u redu upozoriti na "kišu" (nivo vode na senzoru koji označava kišu.)

Analogni pin se koristi za informiranje u postocima koliko je vlažan na senzoru.

Ako digitalni pin detektira kišu, senzor će ga poslati u osnovni sistem. I osnovni sistem neće zalijevati biljke sve dok "pada kiša". Senzor također šalje koliko je mokar i stanje baterije.

Senzor za kišu napajamo samo kad je vrijeme za čitanje preko tranzistora koji omogućuje digitalni pin.

Za ovaj senzor potrebno vam je:

  • ATMEGA328P-PU čip
  • 1x 16 000 MHz kristal
  • 2x 22 pF kondenzator
  • 1x modul senzora za kišu
  • 1x 100 uF kondenzator
  • 1x modul NRF24L01
  • 1x RGB LED (koristio sam zajedničku anodu, to je VCC umjesto GND)
  • 3x 270 Ohm otpornici
  • 1x tranzistor NPN BC547
  • 1x baterija (koristim Li-Po)
  • 1x Li-Po modul punjača (ako se koristi Li-Po baterija)

Spojite sve kako vidite na električnoj ploči (u pdf -u ili na slici. Zatim pošaljite kôd na ATMEGA čip koji možete pronaći na mojoj stranici GitHub u odjeljku Senzor za kišu. Ne zaboravite definirati senzor da biste dobili pravi identifikacijski broj.

A sada ćete imati senzor za kišu koji radi svakih 30 minuta. Možete promijeniti vrijeme ako želite manje ili više.

U funkciji counterHandler () možete postaviti vrijeme buđenja čipa. Izračunavate ovako: Čipovi se bude svakih 8 sekundi i svaki put će povećati vrijednost. Dakle, 30 minuta ćete dobiti 225 puta prije nego što bi trebao poduzeti radnje. Dakle, na pola sata ima 1800 sekundi. Podijelite ga s 8 (1800/8) i dobit ćete 225. To znači da neće provjeriti senzor dok ne pokrene 225 puta, a to će biti oko 30 minuta. Isto radite i sa senzorom tla.

Korak 5: Sirena za životinje

Sirena za životinje
Sirena za životinje
Sirena za životinje
Sirena za životinje
Sirena za životinje
Sirena za životinje
Sirena za životinje
Sirena za životinje

Sirena za životinje je jednostavna kada senzor za životinje detektira kretanje, sirena će se aktivirati. Koristim pravu sirenu pa čak mogu i uplašiti ljude s njom. Ali možete koristiti i sirene koje čuju samo životinje.

U ovom projektu koristim Arduino nano i napajam ga s 12v. Sirena je također 12 V pa ću umjesto releja koristiti tranzistor 2N2222A za omogućavanje sirene. Ako koristite relej na istom uzemljenju, možete oštetiti svoj Arduino. Zato ja umjesto toga koristim tranzistor za omogućavanje sirene.

Ali ako vaša sirena i Arduino ne koriste isto tlo, umjesto toga možete koristiti relej. Preskočite tranzistor i 2.2K otpornik i umjesto toga upotrijebite relejnu ploču. Također možete promijeniti Arduino kôd kada je aktiviran promijeniti iz VISOKOG u NISKOG i kada je deaktiviran promijeniti iz NISKOG u VISOKO ili digitalno čitanje za pin 10, grijesi relej koristi LOW za aktiviranje, a tranzistor koristi HIGH pa morate ovo promijeniti.

Za ovu konstrukciju potrebno vam je:

  • 1x Arduino nano
  • 1x 2.2K otpornik (preskočite ako koristite relejnu ploču)
  • 1x 2N2222 Tranzistor
  • 1x sirena
  • 3x 270 Ohm otpornik
  • 1x RGB LED (koristim zajedničku anodu, VCC umjesto GND)
  • 1X NRF24L01 modul
  • 1x 100 uF kondenzator

Povežite sve kako vidite na električnom listu u PDF -u ili na slici. Učitajte kôd na Arduino koji ćete pronaći na mojoj stranici GitHub pod Sirena za životinje Ne zaboravite definirati senzor za ispravan ID broj.

A sada imate radnu sirenu.

Korak 6: Glavni sistem

Glavni sistem
Glavni sistem
Glavni sistem
Glavni sistem
Glavni sistem
Glavni sistem

Glavni sistem je najvažniji od svih modula. Bez njega ne možete koristiti ovaj sistem. Glavni sistem je povezan s internetom pomoću modula ESP-01, a za povezivanje koristimo Arduino Megas Serial1 pinove. RX na Mega -u na TX na ESP -u, ali moramo proći kroz dva otpornika da bismo smanjili volt na 3.3. I TX na Mega na RX na ESP.

Postavite ESP modul

Da biste koristili ESP, prvo morate postaviti brzinu prijenosa na 9600, to je ono što sam koristio u ovom projektu i otkrio sam da ESP najbolje radi. Van kutije je postavio brzinu prijenosa 115200, možete isprobati, ali moja nije bila toliko stabilna. Da biste to učinili, potreban vam je Arduino (Mega radi dobro) i trebate spojiti TX ESP -a (kroz otpornike kao što vidite na listu) na serijski TX (ne Serial1 ako koristite Mega) i RX na ESP -u na Arduino Serial RX.

Otpremite treptajuću skicu (ili bilo koju skicu koja ne koristi serijsku) i otvorite serijski monitor i postavite brzinu prijenosa na 115200 i NR & CR na linijama

U komandnu liniju napišite AT i pritisnite enter. Trebali biste dobiti odgovor koji kaže "U redu", pa sada znamo da ESP radi. (Ako nije, postoji problem sa povezivanjem ili loš ESP-01 modul)

Sada u naredbeni redak upišite AT+UART_DEF = 9600, 8, 1, 0, 0 i pritisnite enter.

Odgovorit će s OK, a to znači da smo postavili brzinu prijenosa na 9600. Ponovo pokrenite ESP sa sljedećom naredbom: AT+RST i pritisnite enter. Promijenite brzinu prijenosa u serijskom monitoru na 9600 i unesite AT i pritisnite enter. Ako se vratite u redu, ESP je postavljen za 9600 i možete ga koristiti za projekt.

Modul SD kartice

Želim da bude lako promijeniti postavke WIFI -a u sistemu, ako se promijeni nova lozinka ili ime WiFi -ja. Zato nam je potreban modul SD kartice. Unutar SD kartice stvorite tekstualnu datoteku s imenom config.txt i za čitanje koristimo JSON, pa nam je potreban JSON format. Dakle, tekstualna datoteka bi trebala imati sljedeći tekst:

}

Promijenite tekst s VELIKIM slovima kako bi odgovarao vašoj WiFi mreži.

Grijesi koje koristimo NRF24L01 koji koristi SPI, a čitač SD kartica također koristi SPI koji su nam potrebni za korištenje biblioteke SDFat kako bismo mogli koristiti SoftwareSPI (čitač SD kartica možemo dodati na bilo koje pinove)

DHT senzor

Ovaj sistem je postavljen vani i ima DHT senzor tako da možemo provjeriti vlažnost i temperaturu zraka. Koristi se za dodatno zalijevanje u vrućim danima.

Za ovu konstrukciju potrebno vam je:

  • 1x Arduino Mega
  • 1x modul NRF24L01
  • 1x ESP-01 modul
  • 1x SPI modul mikro SD kartice
  • 1x DHT-22 senzor
  • 1x RGB LED (koristio sam zajedničku anodu, VCC umjesto GND)
  • 3x 270 Ohm otpornici
  • 1x 22 K Ohm otpornik
  • 2x 10 K Ohm otpornik

Imajte na umu da ako ne dobijete stabilan ESP-01 modul, pokušajte ga napajati iz vanjskog izvora napajanja od 3,3 V.

Povežite sve kako vidite na električnom listu u PDF datoteci ili na slici.

Prenesite kôd na svoj Arduino Mega i ne zaboravite provjeriti cijeli kôd radi komentara, jer morate postaviti host na poslužitelj na više mjesta (to nije najbolje rješenje koje poznajem).

Sada je vaš Base sistem spreman za upotrebu. Ne morate mijenjati varijable u kodu za grijehe u vlažnosti tla, to možete učiniti direktno sa web stranice.

Korak 7: Web sistem

Web sistem
Web sistem
Web sistem
Web sistem
Web sistem
Web sistem
Web sistem
Web sistem

Za korištenje sistema potreban vam je i web server. Koristim malinu pi sa Apache -om, PHP -om, Mysql -om, Gettext -om. Web sistem je višejezičan pa ga možete lako napraviti na svom jeziku. Dolazi sa švedskim i engleskim jezikom (engleski može imati pogrešan engleski, moj prijevod nije 100 %.) Zato morate imati instaliran Gettext za vaš server, kao i jezičke postavke.

Pokazujem vam nekoliko snimaka ekrana iznad iz sistema.

Dolazi s jednostavnim sistemom za prijavu, a glavna prijava je: administrator kao korisnik i voda kao lozinka.

Da biste ga koristili, morate postaviti tri cron posla (možete ih pronaći u mapi cronjob)

Datoteka timer.php koju morate pokrenuti svake sekunde. Ovo sadrži svu automatizaciju sistema rupa. Naziv datoteke temperatur.php se koristi da kaže sistemu da očita temperaturu vazduha i evidentira je. Zato morate postaviti cron posao o tome koliko često ćete ga pokretati. Imam ga svakih 5 minuta. Zatim bi se datoteka zvana dagstatistik.php trebala pokrenuti samo jednom prije ponoći (poput 23:30, 23:30). On uzima vrijednosti prijavljene sa senzora tokom dana i sprema ih za statiku sedmice i mjeseca.

Imajte na umu da ovaj sistem čuva temperaturu u celzijusima, ali možete promijeniti na Fahrenheit.

U datoteci db.php postavljate vezu baze podataka mysql za sistem.

Prvo dodajte senzore u sistem. Zatim napravite zone i dodajte senzore u zone.

Ako imate pitanja ili ste pronašli greške u sistemu, prijavite ih na stranici GitHub. Možete koristiti web sistem i nije vam dozvoljeno da ga prodajete.

Ako imate problema s lokalizacijama za gettext, imajte na umu da ako koristite malinu kao poslužitelj, oni se često nazivaju poput en_US. UTF-8 pa morate unijeti te promjene u datoteku i18n_setup.php i u mapu sa lokalizacijom. U suprotnom ćete ostati pri švedskom jeziku.

Preuzimate ga na stranici GitHub.

Preporučuje se: