Sadržaj:

Solarni mjerač vlage tla sa ESP8266: 10 koraka (sa slikama)
Solarni mjerač vlage tla sa ESP8266: 10 koraka (sa slikama)

Video: Solarni mjerač vlage tla sa ESP8266: 10 koraka (sa slikama)

Video: Solarni mjerač vlage tla sa ESP8266: 10 koraka (sa slikama)
Video: Arduino Uno #6 Senzor za vlaznost zemljista 2024, Novembar
Anonim

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

Šta će vam trebati
Š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

Breadboard Prototype
Breadboard Prototype

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.

Image
Image
Image
Image
Image
Image
Image
Image

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.

Image
Image

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

Postavljanje softvera
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.

Image
Image

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
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

Izgradite krug mikrokontrolera
Izgradite krug mikrokontrolera
Image
Image
Image
Image

Spajati ploču mikrokontrolera i prekidač za napajanje na perma-proto ploču.

Image
Image

Priključite izlaznu snagu solarnog punjača na ulaz vašeg prekidača, koji bi trebao biti ocijenjen za najmanje 1 pojačalo.

Image
Image

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

Image
Image

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.

Image
Image
Image
Image

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.

Image
Image

Korak 7: Dovršite sklop kruga

Kompletan sklop kola
Kompletan sklop kola

Umetnite stranu porta vodootpornog kabela za napajanje u jedan i lemite ga na istosmjerni ulaz solarnog punjača (crveno na + i crno na -).

Image
Image

Umetnite senzor tla kroz drugu žlijezdu i spojite ga na perma-proto prema shemi kola.

Image
Image

Zalijepite termistorsku sondu na bateriju. Ovo će ograničiti punjenje na siguran raspon temperature dok se projekt ostavlja vani bez nadzora.

Image
Image

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.

Image
Image

Zategnite kabelske uvodnice kako biste oko svojih kabela napravili brtvu otpornu na vremenske uvjete.

Korak 8: Pripremite solarnu ploču

Pripremite solarnu ploču
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

Test It
Test It

Priključite bateriju i uključite krug pritiskom na prekidač za napajanje.

Image
Image

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.

Image
Image

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

Koristite ga vani!
Koristite ga vani!
Koristite ga vani!
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: