Turinys:

Belaidė sodo sistema: 7 žingsniai
Belaidė sodo sistema: 7 žingsniai

Video: Belaidė sodo sistema: 7 žingsniai

Video: Belaidė sodo sistema: 7 žingsniai
Video: Vazonai lietaus kaupimui ir vandens kolonėlės talio.lt 2024, Lapkritis
Anonim
Belaidė sodo sistema
Belaidė sodo sistema

Šis projektas yra pagrįstas „Arduino“ir naudoja „modulius“, kurie padės jums laistyti augalus ir prisijungti prie temperatūros, dirvožemio ir lietaus.

Sistema veikia belaidžiu ryšiu per 2, 4 GHz dažnius ir naudoja NRF24L01 modulius duomenims siųsti ir gauti. Leiskite man šiek tiek paaiškinti, kaip tai veikia, PS! Atleiskite, jei anglų kalba nėra 100 % teisinga, aš esu iš Švedijos.

Aš naudoju šią sistemą savo augalams kontroliuoti, nuodėmėms turiu skirtingus augalus, kurių man reikėjo įregistruoti skirtingai. Taigi aš sukuriu zoninę rąstų sistemą.

Dirvožemio jutikliai, kurie nuskaito dirvožemio drėgmę ir temperatūrą (veikia iš baterijos), kas valandą tikrina ir perduoda duomenis pagrindinei mašinai, turinčiai „Wi -Fi“ryšį. Duomenys įkeliami į mano namų serverį ir prisijungia prie tinklalapio.

Jei dirvožemiui reikia vandens, jis suaktyvins teisingą siurblį, priklausomai nuo to, kokį dirvožemio jutiklį patikrino. Bet jei lyja, tai nelaistys. Ir jei jis bus labai karštas, jis papildomai laistys.

Tarkime, kad turite vieną bulvių žemę, vieną tabakui ir kitą pomidorams, tada galite turėti 3 zonas su 3 skirtingais jutikliais ir 3 siurblius.

Taip pat yra pir jutikliai, kurie tikrina judesius, o jei jie įjungiami tinklalapyje, garsi sirena pradės gąsdinti gyvūną ar žmogų, kuris eina šalia mano augalų.

Tikiuosi šiek tiek supratote. Dabar pradėkime gaminti jutiklius.

Mano „GitHub“puslapis, kuriame galite atsisiųsti viską:

1 žingsnis: dirvožemio jutikliai

Dirvožemio jutikliai
Dirvožemio jutikliai
Dirvožemio jutikliai
Dirvožemio jutikliai
Dirvožemio jutikliai
Dirvožemio jutikliai
Dirvožemio jutikliai
Dirvožemio jutikliai

Kiekvienas jutiklis turi unikalų numerį, kuris pridedamas prie tinklalapio. Taigi, kai dirvožemio jutiklis perduoda duomenis iš to dirvožemio jutiklio, jis bus pridėtas prie tinkamos zonos. Jei jutiklis nėra užregistruotas, duomenys nebus pateikti.

Šiai konstrukcijai jums reikia:

  • 1x „Atmega328P-PU“lustas
  • 1x nRF24L01 modulis
  • 1x 100 uf kondensatorius
  • 1x NPN BC547 tranzistorius
  • 2x 22 pF kondensatoriai
  • 1x 16.000 MHz krištolas
  • 1x dirvožemio drėgmės jutiklis
  • 1x DS18B20 temperatūros jutiklis
  • 1x RGB šviesos diodas (aš naudoju bendrąjį anodą)
  • 3x 270 omų rezistoriai
  • 1x 4,7 K omo rezistorius
  • Baterija (naudoju 3.7v Li-Po bateriją)
  • O jei naudojamas li-po, tai įkroviklio modulis akumuliatoriui.

Kad jutikliai veiktų ilgai, nenaudokite jokių iš anksto paruoštų „Arduino“plokščių, nes jos greitai ištuštins akumuliatorių. Vietoj to naudokite „Atmega328P“lustą.

Prijunkite viską, kaip parodyta mano elektros lape. (Žr. Paveikslėlį arba PDF failą) Rekomenduojama taip pat pridėti maitinimo jungiklį, kad įkrovimo metu galėtumėte sutaupyti energijos.

Įkeldami kodą, nepamirškite apibrėžti jutiklio, kad jiems būtų suteiktas unikalus ID numeris, kodą galima rasti mano „GitHub“puslapyje.

Kad dirvožemio jutikliai ilgą laiką išliktų gyvi, aš naudoju NPN tranzistorių, kad juos įjungčiau tik tada, kai prasideda skaitymas. Taigi jie neaktyvinami visą laiką, Kiekvienas jutiklis turi ID numerį nuo 45XX iki 5000 (tai galima pakeisti), todėl kiekvienas jutiklis turi turėti unikalius numerius, tereikia apibrėžti kode.

Jutikliai užmigs, kad taupytų akumuliatorių.

2 žingsnis: gyvūnų jutiklis

Gyvūnų jutiklis
Gyvūnų jutiklis
Gyvūnų jutiklis
Gyvūnų jutiklis
Gyvūnų jutiklis
Gyvūnų jutiklis
Gyvūnų jutiklis
Gyvūnų jutiklis

Gyvūnų jutiklis yra paprastas pir jutiklis. Jis jaučia šilumą iš gyvūnų ar žmonių. Jei jutiklis jaučia judesį. Jie išsiųs į bazinę stotį.

Bet nebus jokio aliarmo, kad tai padarytumėte, puslapyje, kurį turite suaktyvinti, arba jei turite nustatę laikmatį, jis tuo metu suaktyvės automatiškai.

Jei bazė gaus judesio signalą iš gyvūno jutiklio, jis perduos jį sirenos jutikliui ir (tikiuosi) atbaidys gyvūną. Mano sirena yra 119 db.

Pir jutiklis veikia iš akumuliatoriaus ir aš jį įdėjau į seną pir jutiklio dėklą iš seno aliarmo. Kabelis, išeinantis iš gyvūnų jutiklio, yra skirtas tik akumuliatoriui įkrauti.

Šiam jutikliui jums reikia:

  • ATMEGA328P-PU mikroschema
  • 1 x 16 000 MHz krištolas
  • 2 x 22 pF kondensatorius
  • 1 x Pir jutiklio modulis
  • 1 x 100 uF kondensatorius
  • 1 x NRF24L01 modulis
  • 1 x LED (čia nenaudoju jokių RGB lempučių)
  • 1 x 220 omų rezistorius
  • Jei naudosite bateriją, jums to reikės (aš naudoju Li-Po)
  • Akumuliatoriaus įkrovimo modulis, jei turite papildomą akumuliatorių.
  • Kažkoks maitinimo jungiklis.

Prijunkite viską taip, kaip matote, elektros lape. Patikrinkite, ar galite maitinti savo pir jutiklį iš akumuliatoriaus (kai kuriems reikia 5 V, kad jis veiktų).

Gaukite kodą iš mano „GitHub“ir apibrėžkite raganos jutiklį, kurį ketinate naudoti (pvz., SENS1, SENS2 ir tt), kad jie gautų unikalius numerius.

ATMEGA lustas pažadins tik tada, kai bus užregistruotas judėjimas. Nuodėmėse pir jutiklio modulyje yra įmontuotas delsimo laikmatis, tam nėra nieko kodo, todėl sureguliuokite puodą ant pir jutiklio, kad būtų atidėtas.

Tai yra gyvūnų jutiklis, mes einame toliau.

3 žingsnis: vandens siurblio valdiklis

Vandens siurblio valdiklis
Vandens siurblio valdiklis
Vandens siurblio valdiklis
Vandens siurblio valdiklis
Vandens siurblio valdiklis
Vandens siurblio valdiklis
Vandens siurblio valdiklis
Vandens siurblio valdiklis

Vandens siurblio valdiklis turi paleisti siurblį arba vandens vožtuvą, kad laistytų jūsų laukus. Šiai sistemai jums nereikia akumuliatoriaus nuodėmių, todėl siurbliui paleisti reikia energijos. Aš naudoju AC 230 - DC 5 v modulį, kad paleistumėte „Arduino“Nano. Taip pat turiu siurblių tipus, tokius, kurie naudoja vandens vožtuvą, kuris veikia 12 voltų, todėl prie relės plokštės turiu kintamosios srovės nuo 230 iki nuolatinės srovės 12v modulį.

Kitas yra 230 AC į relę, kad galėčiau maitinti 230 V kintamosios srovės siurblį.

Sistema yra gana paprasta, kiekvienas siurblio valdiklis turi unikalius ID numerius, todėl tarkime, kad bulvių laukas yra sausas, o jutiklis nustatytas į automatinį vandens tiekimą, tada mano siurblys, skirtas bulvių laukui, pridedamas prie to jutiklio, todėl dirvožemio jutiklis sako pagrindinei sistemai, kad reikia pradėti laistyti, todėl bazinė sistema siunčia siurbliui signalą, kad jis įsijungtų.

Galite nustatyti, kiek laiko jis turėtų veikti tinklalapyje (pavyzdžiui, 5 minutes), kai jutikliai tikrina tik kas valandą. Taip pat, kai siurblys sustoja, jis išsaugos laiką sistemoje, kad automatinė sistema siurblio neužvestų greitai. (Taip pat galima nustatyti tinklalapyje).

Taip pat galite per tinklalapį išjungti laistymą naktį/dieną, nustatydami specialų laiką. Taip pat nustatykite kiekvieno siurblio laikmačius, kad pradėtumėte laistyti. Ir jei lyja, jie nelaistys.

Tikiuosi supratai:)

Šiam projektui jums reikia:

  • 1 x „Arduino Nano“
  • 1 x NRF24L01 modulis
  • 1 x 100 uF kondensatorius
  • 1 RGB šviesos diodas (aš naudoju bendrą anodą)
  • 3 x 270 omų rezistoriai
  • 1 x relės lenta

Prijunkite viską kaip elektrinį lapą (žr. Pdf failą arba paveikslėlį) Atsisiųskite kodą iš „GitHub“ir nepamirškite apibrėžti jutiklio numerio.

Ir dabar jūs turite siurblio valdiklį, sistema gali valdyti ne tik vieną.

4 žingsnis: lietaus jutiklis

Lietaus jutiklis
Lietaus jutiklis
Lietaus jutiklis
Lietaus jutiklis
Lietaus jutiklis
Lietaus jutiklis
Lietaus jutiklis
Lietaus jutiklis

Lietaus jutiklis naudojamas lietui aptikti. Jums nereikia daugiau nei vieno. Tačiau galima pridėti daugiau. Šis lietaus jutiklis maitinamas baterijomis ir kas 30 minučių tikrina, ar nėra lietaus. Jie taip pat turi unikalų numerį, pagal kurį jie atpažįstami.

Lietaus jutiklis naudoja analoginius ir skaitmeninius kaiščius. Skaitmeninis kaištis turi patikrinti, ar lyja, (skaitmeninis ekranas rodo tik „taip“arba „ne“), ir jūs turite įjungti puodą lietaus jutiklio modulyje, kai gerai įspėti apie „lietų“(vandens lygis ant jutiklio, kuris rodo lietų.)

Analoginis kaištis naudojamas procentais informuoti, kiek jis yra šlapias ant jutiklio.

Jei skaitmeninis kaištis nustato, kad lyja, jutiklis nusiųs jį į bazinę sistemą. Ir bazinė sistema nelaistys augalų tol, kol „lyja“. Jutiklis taip pat siunčia, kiek jis yra šlapias, ir baterijos būseną.

Lietaus jutiklį įjungiame tik tada, kai atėjo laikas skaityti per tranzistorių, kuris įgalina skaitmeninį kaištį.

Šiam jutikliui jums reikia:

  • ATMEGA328P-PU mikroschema
  • 1x 16 000 MHz krištolas
  • 2x 22 pF kondensatorius
  • 1x lietaus jutiklio modulis
  • 1x 100 uF kondensatorius
  • 1x NRF24L01 modulis
  • 1x RGB LED (naudojau įprastą anodą, tai VCC, o ne GND)
  • 3x 270 omų rezistoriai
  • 1x NPN BC547 tranzistorius
  • 1x baterija (naudoju Li-Po)
  • 1x „Li-Po“įkroviklio modulis (jei naudojamas „Li-Po“akumuliatorius)

Prijunkite viską, kaip matote elektros lape (pdf arba paveikslėlyje) Tada įkelkite kodą į ATMEGA mikroschemą, kurią galite rasti mano „GitHub“puslapyje, esančiame „Lietaus jutiklis“Nepamirškite apibrėžti jutiklio, kad gautumėte tinkamą ID numerį.

Ir dabar turėsite lietaus jutiklį, kuris veikia kas 30 minučių. Galite pakeisti laiką, jei to nenorite mažiau ar daugiau.

Funkcijoje counterHandler () galite nustatyti lusto pažadinimo laiką. Jūs apskaičiuojate taip: lustai atsibunda kas 8 sekundes ir kiekvieną kartą padidina vertę. Taigi 30 minučių gausite 225 kartus, kol ji atliks veiksmus. Taigi per pusvalandį yra 1800 sekundžių. Taigi padalykite jį iš 8 (1800 /8) ir gausite 225. Tai reiškia, kad jis nepatikrins jutiklio, kol jis veiks 225 kartus ir tai bus apie 30 minučių. Tą patį darote ir su dirvožemio jutikliu.

5 žingsnis: gyvūnų sirena

Gyvūnų sirena
Gyvūnų sirena
Gyvūnų sirena
Gyvūnų sirena
Gyvūnų sirena
Gyvūnų sirena
Gyvūnų sirena
Gyvūnų sirena

Gyvūnų sirena yra paprasta, kai gyvūno jutiklis aptinka judesį, sirena bus įjungta. Aš naudoju tikrą sireną, todėl netgi galiu išgąsdinti žmones. Bet jūs taip pat galite naudoti sirenas, kurias girdi tik gyvūnai.

Šiame projekte naudoju „Arduino nano“ir maitinu jį 12v. Sirena taip pat yra 12 voltų, todėl vietoj relės aš naudosiu 2N2222A tranzistorių sirenai įjungti. Jei naudojate relę, kai turite tą patį pagrindą, galite sugadinti „Arduino“. Todėl sirenai įjungti naudoju tranzistorių.

Bet jei jūsų sirena ir „Arduino“nenaudoja to paties pagrindo, vietoj to galite naudoti relę. Praleiskite tranzistorių ir 2.2K rezistorių ir naudokite relės plokštę. Taip pat pakeiskite „Arduino“kodą, kai suaktyvinamas pasikeitimas iš HIGH į LOW ir kai inaktyvuotas pasikeičia iš LOW į HIGH arba skaitmeninį 10 kaiščio nuskaitymą, nuodėmės relė naudoja LOW, kad suaktyvintų, o tranzistorius naudoja HIGH, todėl jums reikia tai perjungti.

Šiai konstrukcijai jums reikia:

  • 1x „Arduino nano“
  • 1x 2.2K rezistorius (praleiskite, jei naudojate relės plokštę)
  • 1x 2N2222 tranzistorius
  • 1x sirena
  • 3x 270 omų rezistorius
  • 1x RGB LED (naudoju įprastą anodą, VCC, o ne GND)
  • 1X NRF24L01 modulis
  • 1x 100 uF kondensatorius

Prijunkite viską, kaip matote elektros lape PDF arba paveikslėlyje. Įkelkite kodą į „Arduino“, kurį rasite mano „GitHub“puslapyje, skiltyje „Gyvūnų sirena“Nepamirškite nustatyti teisingo ID numerio jutiklio.

Ir dabar jūs turite veikiančią sireną.

6 žingsnis: pagrindinė sistema

Pagrindinė sistema
Pagrindinė sistema
Pagrindinė sistema
Pagrindinė sistema
Pagrindinė sistema
Pagrindinė sistema

Pagrindinė sistema yra svarbiausia iš visų modulių. Be jo negalite naudotis šia sistema. Pagrindinė sistema yra prijungta prie interneto naudojant ESP-01 modulį, o mes naudojame „Arduino Megas Serial1“kaiščius. RX nuo Mega iki TX ESP, tačiau turime pereiti per du rezistorius, kad įtampa sumažėtų iki 3.3. Ir TX nuo Mega iki RX ESP.

Nustatykite ESP modulį

Norėdami naudoti ESP, pirmiausia turite nustatyti jo duomenų perdavimo spartą iki 9600, tai aš naudoju šiame projekte ir aš pastebėjau, kad ESP geriausiai veikia. Iš dėžutės jis nustatė 115200 baudų spartą, galite pabandyti, bet mano nebuvo tokia stabili. Norėdami tai padaryti, jums reikia „Arduino“(„Mega“veikia gerai) ir turite prijungti ESP TX (per rezistorius, kaip matote lape) prie „Serial TX“(ne „Serial1“, jei naudojate „Mega“) ir RX ESP prie „Arduino Serial“RX.

Įkelkite mirksėjimo eskizą (arba bet kokį eskizą, kuriame nenaudojamas serijinis) ir atidarykite nuoseklųjį monitorių ir nustatykite duomenų perdavimo spartą į 115200 ir NR & CR linijose

Komandinėje eilutėje parašykite AT ir paspauskite enter. Turėtumėte gauti atsakymą, kuriame sakoma „Gerai“, todėl dabar žinome, kad ESP veikia. (Jei ne, yra ryšio problema arba blogas ESP-01 modulis)

Dabar komandų eilutėje parašykite AT+UART_DEF = 9600, 8, 1, 0, 0 ir paspauskite enter.

Jis atsakys OK ir tai reiškia, kad mes nustatėme duomenų perdavimo spartą į 9600. Iš naujo paleiskite ESP naudodami šią komandą: AT+RST ir paspauskite enter. Pakeiskite duomenų perdavimo spartą serijiniame monitoriuje į 9600, įveskite AT ir paspauskite enter. Jei viskas bus gerai, ESP yra nustatytas 9600 ir galite jį naudoti projektui.

SD kortelės modulis

Noriu, kad būtų lengva pakeisti sistemos WIFI nustatymus, jei būtų pakeistas naujas slaptažodis arba „wifi“pavadinimas. Štai kodėl mums reikia SD kortelės modulio. SD kortelės viduje sukurkite tekstinį failą pavadinimu config.txt ir mes naudojame JSON skaitymui, todėl mums reikia JSON formato. Taigi teksto faile turėtų būti toks tekstas:

}

Pakeiskite tekstą didelėmis raidėmis, kad jis būtų tinkamas jūsų „Wi -Fi“tinklui.

Nuodėmės, kurias naudojame NRF24L01, kuri naudoja SPI, o SD kortelių skaitytuvas taip pat naudoja SPI, mums reikia SDFat bibliotekos, kad galėtume naudoti SoftwareSPI (SD kortelių skaitytuvą galime pridėti prie visų kaiščių)

DHT jutiklis

Ši sistema yra lauke ir turi DHT jutiklį, kad galėtume patikrinti oro drėgmę ir temperatūrą. Jis naudojamas papildomam laistymui karštomis dienomis.

Šiai konstrukcijai jums reikia:

  • 1x „Arduino Mega“
  • 1x NRF24L01 modulis
  • 1x ESP-01 modulis
  • 1x SPI Micro SD kortelės modulis
  • 1x DHT-22 jutiklis
  • 1x RGB LED (naudojau įprastą anodą, VCC, o ne GND)
  • 3x 270 omų rezistoriai
  • 1x 22 K omo rezistorius
  • 2x 10 K omų rezistorius

Atminkite, kad jei ESP-01 modulis nėra stabilus, pabandykite jį maitinti iš išorinio 3,3 V maitinimo šaltinio.

Sujunkite viską, kaip matote PDF lape esančiame elektros lape arba paveikslėlyje.

Įkelkite kodą į „Arduino Mega“ir nepamirškite patikrinti viso kodo, ar nėra komentarų, nes pagrindiniame kompiuteryje turite nustatyti serverį keliose vietose (tai nėra geriausias mano žinomas sprendimas).

Dabar jūsų bazinė sistema yra paruošta naudoti. Jums nereikia keisti dirvožemio drėgmės nuodėmių kodo kintamųjų, tai galite padaryti sąsiauriu iš tinklalapio.

7 žingsnis: žiniatinklio sistema

Žiniatinklio sistema
Žiniatinklio sistema
Žiniatinklio sistema
Žiniatinklio sistema
Žiniatinklio sistema
Žiniatinklio sistema
Žiniatinklio sistema
Žiniatinklio sistema

Norėdami naudotis sistema, jums taip pat reikia žiniatinklio serverio. Aš naudoju aviečių pi su Apache, PHP, Mysql, Gettext. Žiniatinklio sistema yra daugiakalbė, todėl galite lengvai ją padaryti savo kalba. Jis pateikiamas kartu su švedų ir anglų kalbomis (anglų kalba gali būti neteisinga anglų kalba, mano vertimas nėra 100 %.) Taigi jums reikia įdiegti „Gettext“serveriui ir lokalėms.

Parodysiu keletą ekrano kopijų aukščiau iš sistemos.

Jame yra paprasta prisijungimo sistema, o pagrindinis prisijungimas yra: admin kaip vartotojas ir vanduo kaip slaptažodis.

Norėdami jį naudoti, turite nustatyti tris „cron“užduotis (jas rasite aplanke „cronjob“)

Timer.php failą, kurį turite paleisti kas sekundes. Tai apima visą skylių sistemos automatizavimą. Failo pavadinimas temperatur.php naudojamas sistemai liepti perskaityti oro temperatūrą ir ją užregistruoti. Taigi turite nustatyti „cron“užduotį, kaip dažnai ją vykdysite. Turiu tai kas 5 minutes. Tada failas, vadinamas dagstatistik.php, turėtų būti paleistas tik vieną kartą prieš vidurnaktį (pvz., 23:30, 23:30). Jis paima iš jutiklių dienos metu gautas vertes ir išsaugo savaitės ir mėnesio statistiką.

Atminkite, kad ši sistema saugo temperatūrą Celsijaus laipsniais, tačiau galite ją pakeisti į Farenheitą.

„Db.php“faile nustatote sistemos „mysql“duomenų bazės ryšį.

Pirmiausia pridėkite jutiklius prie sistemos. Tada sukurkite zonas ir pridėkite jutiklius prie zonų.

Jei turite klausimų ar randate sistemos klaidų, praneškite apie jas „GitHub“puslapyje. Galite naudotis žiniatinklio sistema ir jums neleidžiama jos parduoti.

Jei kyla problemų dėl „gettext“lokalių, atminkite, kad jei kaip serverį naudojate avietes, jos dažnai vadinamos „en_US. UTF-8“, todėl šiuos pakeitimus turite atlikti faile i18n_setup.php ir lokalės aplanke. Priešingu atveju būsite įstrigę švedų kalba.

Atsisiųskite jį „GitHub“puslapyje.

Rekomenduojamas: