Sadržaj:
- Korak 1: Šta će vam trebati
- Korak 2: Prototip Breadboard -a
- Korak 3: Postavljanje softvera
- Korak 4: Pripremite solarnu ploču za punjenje
- Korak 5: Izgradite krug mikrokontrolera
- Korak 6: Instalirajte kabelske uvodnice
- Korak 7: Dovršite sklop kruga
- Korak 8: Pripremite solarnu ploču
- Korak 9: Testirajte ga
- Korak 10: Koristite ga vani
Video: Solarni mjerač vlage tla sa ESP8266: 10 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:04
U ovom Instructable -u izrađujemo monitor za vlažnost tla na solarni pogon. Koristi bežični mikrokontroler ESP8266 koji radi sa kodom male snage i sve je vodootporno pa se može ostaviti vani. Možete točno slijediti ovaj recept ili iz njega uzeti korisne tehnike za vlastite projekte.
Ako ste tek počeli s programiranjem mikrokontrolera, provjerite moju Arduino klasu i klasu Interneta stvari da biste se upoznali s osnovama ožičenja, kodiranja i povezivanja na internet.
Ovaj projekt je dio moje besplatne solarne klase, gdje možete naučiti više načina za iskorištavanje sunčeve energije putem graviranja i solarnih panela.
Da biste bili u toku sa onim na čemu radim, pratite me na YouTube -u, Instagramu, Twitteru, Pinterestu i pretplatite se na moj bilten.
Korak 1: Šta će vam trebati
Trebat će vam ploča za punjenje solarne baterije i prekidač ESP8266, poput NodeMCU ESP8266 ili Huzzah, kao i senzor tla, baterija, prekidač za napajanje, neka žica i kućište za umetanje strujnog kruga.
Evo komponenti i materijala koji se koriste za praćenje vlažnosti tla:
- ESP8266 NodeMCU mikrokontroler (ili slično, Vin mora tolerirati do 6V)
- Adafruit solarna ploča za punjenje sa opcionim termistorom i otpornikom od 2,2K ohma
- Li-ion baterija od 2200mAh
- Perma-proto ploča
- Senzor vlage/temperature tla
- 2 uvodnice za kablove
- Vodootporno kućište
- Par vodootpornih istosmjernih kabela za napajanje
- Termoskupljajuće cijevi
- Solarni panel od 3,5W
- Prekidač za napajanje pritiskom na dugme
- Dvostruka ljepljiva traka od pjene
Evo alata koji će vam trebati:
- Lemilica i lemljenje
- Alat za ruke
- Strojevi za skidanje žice
- Ispiši ispiranje
- Pinceta (opcionalno)
- Toplinski pištolj ili upaljač
- Multimetar (opcionalno, ali zgodan za rješavanje problema)
- USB A-microB kabel
- Makaze
- Koračna bušilica
Trebat će vam besplatni računi na web lokacijama za podatke u oblaku io.adafruit.com i IFTTT.
Kao Amazon saradnik zarađujem od kvalifikovanih kupovina koje obavite pomoću mojih partnerskih veza.
Korak 2: Prototip Breadboard -a
Važno je stvoriti prototip matične ploče za lemljenje za ovakve projekte, tako da se možete uvjeriti da vaš senzor i kôd rade prije nego uspostavite bilo kakvu trajnu vezu.
U ovom slučaju, osjetnik tla ima nasukane žice na koje je bilo potrebno privremeno pričvrstiti čvrste zaglavlje na krajeve žica senzora pomoću lemljenja, ruku za pomoć i nekih termoskupljajućih cijevi.
Slijedite dijagram kruga za povezivanje napajanja, uzemljenja, sata i pinova osjetnika (podaci dobivaju i 10K pull-up otpornik koji dolazi s senzorom tla).
- Senzor zelena žica prema GND
- Senzor crvena žica do 3.3V
- Senzorska žuta žica na NodeMCU pin D5 (GPIO 14)
- Plava žica senzora na NodeMCU pin D6 (GPIO 12)
- 10K pull-up otpornik između plavog podatkovnog pina i 3.3V
Ovo možete prevesti na željeni mikrokontroler. Ako koristite Arduino Uno ili slično, vašu ploču već podržava softver Arduino. Ako koristite ESP8266, provjerite moju klasu Interneta stvari za detaljnu pomoć za postavljanje s ESP8266 u Arduinu (dodavanjem dodatnih URL-ova u polje Dodatni URL-ovi upravitelja ploča u Arduino preferencijama, a zatim tražite i odabir novih ploča od upravitelja odbora). Obično koristim tip ploče Adafruit ESP8266 Huzzah za programiranje ploče NodeMCU ESP8266, ali također možete instalirati i koristiti podršku za generičku ESP8266 ploču. Trebat će vam i SiLabs USB upravljački program za komunikacijski čip (dostupan za Mac/Windows/Linux).
Da bih senzor pokrenuo sa mojom Arduino kompatibilnom pločom, preuzeo sam SHT1x Arduino biblioteku sa stranice Practical Arduino na github-u, zatim raspakirao datoteku i premjestio fasciklu biblioteke u mapu Arduino/biblioteke, a zatim je preimenovao u SHT1x. Otvorite primjer skice ReadSHT1xValues i promijenite PIN brojeve na 12 (dataPin) i 14 (clockPin) ili kopirajte izmijenjenu skicu ovdje:
#include
#define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // instanciranje SHT1x objekta void setup () {Serial.begin (38400); // Otvaranje serijske veze za prijavljivanje vrijednosti na host Serial.println ("Pokretanje"); } void loop () {float temp_c; float temp_f; plutajuća vlažnost; temp_c = sht1x.readTemperatureC (); // Očitavanje vrijednosti sa senzora temp_f = sht1x.readTemperatureF (); vlažnost = sht1x.readHumidity (); Serial.print ("Temperatura:"); // Odštampajte vrijednosti na serijski port Serial.print (temp_c, DEC); Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Vlažnost:"); Serial.print (vlažnost); Serial.println ("%"); kašnjenje (2000); }
Prenesite ovaj kôd na svoju ploču i otvorite serijski monitor da vidite tok podataka senzora.
Ako se vaš kôd neće kompajlirati i žali se da SHT1x.h nije pronađen, niste pravilno instalirali potrebnu biblioteku senzora. Provjerite ima li u vašoj mapi Arduino/biblioteke SHT1x, a ako se nalazi negdje drugdje, poput mape za preuzimanje, premjestite je u mapu Arduino biblioteke i preimenujte ako je potrebno.
Ako se vaš kôd kompilira, ali se neće učitati na vašu ploču, dvaput provjerite postavke ploče, provjerite je li ploča priključena i odaberite odgovarajući port s izbornika Alati.
Ako se vaš kôd učitava, ali vaš ulaz serijskog monitora nije prepoznatljiv, dvaput provjerite podudara li se vaša brzina prijenosa koja je navedena na skici (u ovom slučaju 38400).
Ako vam se čini da ulaz vašeg serijskog monitora nije ispravan, provjerite ožičenje prema dijagramu kola. Je li vaš 10K pull-up otpornik postavljen između podatkovnog pina i 3.3V? Jesu li podaci i sat povezani na ispravne pinove? Jesu li napajanje i uzemljenje povezani kako bi trebali biti u cijelom krugu? Ne nastavljajte dok ova jednostavna skica ne uspije!
Sljedeći korak je specifičan za ESP8266 i konfigurira opcionalni dio izvještavanja o bežičnom senzoru uzorka projekta. Ako koristite standardni (nežični) Arduino kompatibilan mikrokontroler, nastavite razvijati svoju konačnu Arduino skicu i preskočite na Pripremite solarnu ploču za punjenje.
Korak 3: Postavljanje softvera
Da biste kompajlirali kôd za ovaj projekt s ESP8266, morat ćete instalirati još nekoliko Arduino biblioteka (dostupnih putem upravitelja biblioteka):
- Adafruit IO Arduino
- Adafruit MQTT
- ArduinoHttpClient
Preuzmite kôd priložen ovom koraku, a zatim raspakirajte datoteku i otvorite Solar_Powered_Soil_Moisture_Monitor_Tutorial u svom Arduino softveru.
#include
#include #include #include #include // Navedite podatkovne i satne veze i instancirajte SHT1x objekt #define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // postavljanje hrane AdafruitIO_Feed *vlažnost = io.feed ("vlažnost"); AdafruitIO_Feed *temperatura = io.feed ("temperatura"); const int sleepTime = 15; // 15 minuta
void setup ()
{Serial.begin (115200); // Otvaranje serijske veze za prijavljivanje vrijednosti na host Serial.println ("Pokretanje"); // povezivanje sa io.adafruit.com Serial.print ("Povezivanje sa Adafruit IO"); io.connect (); // čekamo vezu while (io.status () <AIO_CONNECTED) {Serial.print ("."); kašnjenje (500); } // povezani smo Serial.println (); Serial.println (io.statusText ()); }
void loop ()
{io.run (); // io.run (); održava klijenta povezanim i potreban je za sve skice. float temp_c; float temp_f; plutajuća vlaga; temp_c = sht1x.readTemperatureC (); // Očitavanje vrijednosti sa senzora temp_f = sht1x.readTemperatureF (); vlaga = sht1x.readHumidity (); Serial.print ("Temperatura:"); // Odštampajte vrijednosti na serijski port Serial.print (temp_c, DEC); Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Vlažnost:"); Serial.print (vlaga); Serial.println ("%"); vlažnost-> ušteda (vlaga); temperatura-> spremi (temp_f); Serial.println ("ESP8266 spava …"); ESP.deepSleep (vrijeme spavanja * 1000000 * 60); // Spavanje}
Ovaj kôd predstavlja mješavinu senzorskog koda iz ranijeg uputstva i osnovni primjer usluge oblaka za podatke Adafruit IO. Program ulazi u režim niske potrošnje energije i spava većinu vremena, ali se budi svakih 15 minuta kako bi očitao temperaturu i vlažnost tla i prijavljuje svoje podatke Adafruit IO -u. Idite na karticu config.h i unesite svoje korisničko ime i ključ za Adafruit IO, kao i naziv i lozinku svoje lokalne WiFi mreže, a zatim otpremite kôd na svoj mikrokontroler ESP8266.
Morat ćete se malo pripremiti na io.adafruit.com. Nakon stvaranja feedova za temperaturu i vlažnost, možete stvoriti nadzornu ploču za vaš monitor s grafikonom vrijednosti senzora i podacima oba dolaznog feeda. Ako vam je potrebno osvježenje za početak korištenja Adafruit IO -a, pogledajte ovu lekciju u mojoj klasi Interneta stvari.
Korak 4: Pripremite solarnu ploču za punjenje
Pripremite solarnu ploču za punjenje lemljenjem na njenom kondenzatoru i nekim žicama na izlazne pločice opterećenja. Prilagođujem svoj ručniku za brže punjenje s opcijskim dodatnim otpornikom (2,2K lemljenog na PROG-u) i čini ga sigurnijim ostaviti bez nadzora zamjenom otpornika za površinsko montiranje s 10K termistorom pričvršćenim na samu bateriju. Ovo će ograničiti punjenje na siguran temperaturni raspon. Ove modifikacije detaljnije sam opisao u svom projektu solarnog USB punjača.
Korak 5: Izgradite krug mikrokontrolera
Spajati ploču mikrokontrolera i prekidač za napajanje na perma-proto ploču.
Priključite izlaznu snagu solarnog punjača na ulaz vašeg prekidača, koji bi trebao biti ocijenjen za najmanje 1 pojačalo.
Kreirajte i lemite žice za matičnu ploču opisane u gornjem dijagramu kola (ili prema specifikacijama vaše lične verzije), uključujući 10K pull-up otpornik na podatkovnoj liniji senzora.
Pinovi za opterećenje solarnog punjača osigurat će bateriju od 3,7 V ako nema solarne energije, ali će se napajati izravno iz solarne ploče ako je priključena i sunčana. Zbog toga mikrokontroler mora biti u stanju tolerirati različite napone, sve do 3,7 V i do 6 V DC. Za one kojima je potrebno 5V, PowerBoost (500 ili 1000, ovisno o potrebnoj struji) može se koristiti za moduliranje napona opterećenja na 5 V (kao što je prikazano u projektu solarnog USB punjača). Evo nekih uobičajenih ploča i njihovih raspona ulaznog napona:
- NodeMCU ESP8266 (koristi se ovdje): 5V USB ili 3.7V-10V Vin
- Arduino Uno: 5V USB ili 7-12V Vin
- Adafruit Huzzah ESP8266 Prekid: 5V USB ili 3.4-6V VBat
Kako biste postigli najduži mogući vijek trajanja baterije, potrebno je neko vrijeme da razmotrite i optimizirate ukupnu struju koju troši vaša struja. ESP8266 ima funkciju dubokog sna koju smo koristili u Arduino skici da bismo dramatično smanjili potrošnju energije. Probudi se da očita senzor i izvuče više struje dok se poveže na mrežu radi izvještavanja o vrijednosti senzora, a zatim se vraća u stanje mirovanja određeno vrijeme. Ako vaš mikrokontroler troši mnogo energije i ne može se lako uspavati, razmislite o prenošenju projekta na kompatibilnu ploču koja troši manje energije. Postavite pitanje u komentarima ispod ako vam je potrebna pomoć pri utvrđivanju koja ploča može biti prikladna za vaš projekt.
Korak 6: Instalirajte kabelske uvodnice
Kako bismo napravili ulazne točke otporne na vremenske uvjete za kabel solarne ploče i kabel senzora, instalirat ćemo dvije kabelske uvodnice sa strane kućišta otpornog na vremenske uvjete.
Testirajte svoje komponente kako biste utvrdili idealan položaj, a zatim označite i izbušite rupe u vodootpornom kućištu pomoću stepenaste bušilice. Ugradite dvije uvodnice kabela.
Korak 7: Dovršite sklop kruga
Umetnite stranu porta vodootpornog kabela za napajanje u jedan i lemite ga na istosmjerni ulaz solarnog punjača (crveno na + i crno na -).
Umetnite senzor tla kroz drugu žlijezdu i spojite ga na perma-proto prema shemi kola.
Zalijepite termistorsku sondu na bateriju. Ovo će ograničiti punjenje na siguran raspon temperature dok se projekt ostavlja vani bez nadzora.
Punjenje dok je prevruće ili prehladno može oštetiti bateriju ili izazvati požar. Izlaganje ekstremnim temperaturama može uzrokovati oštećenja i skratiti vijek trajanja baterije, pa je unesite unutra ako je ispod nule ili iznad 45 ℃/113F.
Zategnite kabelske uvodnice kako biste oko svojih kabela napravili brtvu otpornu na vremenske uvjete.
Korak 8: Pripremite solarnu ploču
Slijedite moj Instructable kako biste spojili kabel za svoju solarnu ploču sa utikačem vodootpornog kompleta DC kabela za napajanje.
Korak 9: Testirajte ga
Priključite bateriju i uključite krug pritiskom na prekidač za napajanje.
Testirajte ga i provjerite da li izvještava na Internetu prije nego zatvorite kućište i instalirate senzor u svoj biljni vrt, dragocjenu biljku u saksiji ili drugo tlo u dometu signala vaše WiFi mreže.
Nakon što se podaci sa senzora registriraju na mreži, lako je postaviti recept za e -poštu ili tekstualna upozorenja na web mjestu API pristupnika Ako je ovo onda to. Konfigurirao sam svoj da mi šalje e -poštu ako nivo vlage u tlu padne ispod 50.
Da bih je testirao bez čekanja da se moja biljka osuši, ručno sam unijeo podatkovnu točku vlage u vlagu na Adafruit IO koja je pala ispod praga. Nekoliko trenutaka kasnije, e -poruka stiže! Ako nivoi tla padnu ispod mojih navedenih razina, dobit ću e -poruku svaki put kad se ažurira hrana dok ne zalijem tlo. Zbog svog razuma, ažurirao sam svoj kod da uzorkujem zemljište mnogo rjeđe nego svakih 15 minuta.
Korak 10: Koristite ga vani
Ovo je zabavan projekt koji možete prilagoditi prema potrebama hidratacije vaše biljke, a lako je zamijeniti ili dodati senzore ili integrirati značajke solarne energije u vaše druge Arduino projekte.
Hvala što ste nas pratili! Volio bih čuti što mislite; objavite u komentarima. Ovaj projekt je dio moje besplatne solarne klase, gdje možete pronaći jednostavne projekte u dvorištu i više lekcija o radu sa solarnim panelima. Pogledajte i prijavite se!
Ako vam se sviđa ovaj projekt, možda će vas zanimati neki od mojih drugih:
- besplatni čas Interneta stvari
- Brojač pretplatnika YouTube s ESP8266
- Ekran za praćenje društvene statistike sa ESP8266
- WiFi prikaz vremena sa ESP8266
- Internet Valentinovo
Da biste bili u toku s onim na čemu radim, pratite me na YouTubeu, Instagramu, Twitteru, Pinterestu i Snapchatu.
Preporučuje se:
Arduino štap za praćenje vlage tla - nikada ne zaboravite zalijevati vaše biljke: 4 koraka (sa slikama)
Arduino štap za praćenje vlažnosti tla - nikada ne zaboravite zalijevati vaše biljke: Zaboravljate li često zalijevanje sobnih biljaka? Ili im možda pridajete previše pažnje i zalijevate ih? Ako to učinite, trebali biste sami napraviti štap za praćenje vlažnosti tla na baterije. Ovaj monitor koristi kapacitivnu vlagu tla
Bežični monitor vlage (ESP8266 + Senzor vlage): 5 koraka
Bežični monitor vlage (ESP8266 + Senzor vlage): Kupujem peršun u saksiji i većinu dana tlo je bilo suho. Odlučio sam napraviti ovaj projekt, o osjećanju vlage zemlje u loncu s peršunom, da provjerim, kad mi treba, sipam zemlju vodom. Mislim da je ovaj senzor (kapacitivni senzor vlage v1.2) dobar jer
Kako spojiti senzor vlage tla i ESP8266 na oblak AskSensors IoT: 10 koraka
Kako spojiti osjetnik vlage tla i ESP8266 na oblak AskSensors IoT: Ova instrukcija vam pokazuje kako spojiti senzor vlage u tlu i ESP8266 na IoT oblak. Za ovaj projekt koristit ćemo MCU ESP8266 čvor MCU i senzor vlažnosti tla koji mjeri volumetrijski sadržaj vode unutar tako da
Žedni detektor vlage tla Flamingo: 5 koraka (sa slikama)
Žedni Flamingo detektor vlage u tlu: Senzori vlage koriste se u raznim projektima. Možete ih koristiti za ispitivanje vlažnosti različitih materijala, pa čak i za provjeru vlage u zidovima vašeg doma ako sumnjate da su vlažni. U žednom flamingo projektu
Uradi sam monitor vlage tla sa Arduinom i ekranom Nokia 5110: 6 koraka (sa slikama)
Uradi sam monitor vlage tla sa Arduinom i ekranom Nokia 5110: U ovom uputstvu ćemo vidjeti kako izgraditi vrlo koristan monitor vlage tla s velikim Nokia 5110 LCD ekranom koristeći Arduino. Lako izmjerite nivoe vlage u tlu vaše biljke iz vašeg Arduina i napravite zanimljive uređaje