Sadržaj:

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

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

Video: Solarni mjerač vlage tla s ESP8266: 10 koraka (sa slikama)
Video: Croduino lekcija 6: DHT11 senzor temperature i vlage 2024, Studeni
Anonim

U ovom Instructable -u izrađujemo monitor vlažnosti tla na solarni pogon. Koristi bežični mikrokontroler ESP8266 s 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 klasu Arduino i Internet stvari kako biste se upoznali s osnovama ožičenja, kodiranja i povezivanja na internet.

Ovaj projekt dio je moje besplatne solarne klase na kojoj možete naučiti više načina za iskorištavanje sunčeve energije putem gravura i solarnih panela.

Da biste bili u toku s onim na čemu radim, pratite me na YouTubeu, Instagramu, Twitteru, Pinterestu i pretplatite se na moj bilten.

Korak 1: Što će vam trebati

Što će vam trebati
Što će vam trebati

Trebat će vam ploča za punjenje solarne baterije i proboj ESP8266, poput NodeMCU ESP8266 ili Huzzah, kao i osjetnik 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 s dodatnim termistorima i otpornikom od 2,2K ohma
  • Li-ion baterija od 2200mAh
  • Perma-proto ploča
  • Senzor vlage/temperature tla
  • 2 kabelske uvodnice
  • Vodootporno kućište
  • Vodootporni par istosmjernih kabela za napajanje
  • Termoskupljajuće cijevi
  • Solarni panel od 3,5W
  • Prekidač za napajanje pritiskom na gumb
  • Dvostruka ljepljiva traka od pjene

Evo alata koji će vam trebati:

  • Lemilica i lemljenje
  • Alat za ruke
  • Skidači žica
  • Ispiši ispiranje
  • Pinceta (po izboru)
  • Toplinski pištolj ili upaljač
  • Multimetar (opcionalno, ali zgodan za rješavanje problema)
  • USB A-microB kabel
  • Škare
  • Koračna bušilica

Trebat će vam besplatni računi na web stranicama za podatke u oblaku io.adafruit.com i IFTTT.

Kao suradnik Amazona zarađujem od kvalificiranih kupnji koje izvršite pomoću mojih partnerskih veza.

Korak 2: Prototip Breadboard -a

Prototip Breadboard -a
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 trajne veze.

Slika
Slika
Slika
Slika
Slika
Slika
Slika
Slika

U tom 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 neke cijevi za termoskupljanje.

Slika
Slika

Slijedite dijagram kruga za povezivanje napajanja senzora, uzemljenja, sata i podatkovnih pinova (podaci dobivaju i 10K pull-up otpornik koji dolazi s osjetnikom tla).

  • Senzor zelena žica na GND
  • Crvena žica senzora na 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

To 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 Internet of Things za korak-po-korak pomoć pri postavljanju s ESP8266 u Arduinu (dodavanjem dodatnih URL-ova u polje Dodatni URL-ovi upravitelja ploča u postavkama Arduina, a zatim tražite i odabir novih ploča od upravitelja ploča). Sklon sam koristiti 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 upravljački program USB komunikacijskog čipa SiLabs (dostupan za Mac/Windows/Linux).

Da bih senzor pokrenuo s mojom Arduino kompatibilnom pločom, preuzeo sam SHT1x Arduino knjižnicu sa stranice Practical Arduino na github-u, zatim raspakirao datoteku i premjestio mapu knjižnice u moju 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:

#uključi

#define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // instanciranje SHT1x objekta void setup () {Serial.begin (38400); // Otvorite serijsku vezu da biste izvijestili vrijednosti na hostu Serial.println ("Pokretanje"); } void loop () {float temp_c; plovak temp_f; vlažnost plovka; temp_c = sht1x.readTemperatureC (); // Očitavanje vrijednosti sa senzora temp_f = sht1x.readTemperatureF (); vlažnost = sht1x.readHumidity (); Serial.print ("Temperatura:"); // Ispisati vrijednosti na serijski port Serial.print (temp_c, DEC); Serial.print ("C /"); Serijski.ispis (temp_f, DEC); Serial.print ("F. Vlažnost:"); Serijski.tisak (vlažnost); Serial.println ("%"); odgoda (2000); }

Prenesite ovaj kôd na svoju ploču i otvorite serijski monitor kako biste vidjeli tok podataka senzora.

Ako se vaš kôd ne želi kompajlirati i žali se na to 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 s preuzimanjima, premjestite je u mapu Arduino knjižnice 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 s onom navedenom u skici (u ovom slučaju 38400).

Ako vam se čini da ulaz vašeg serijskog monitora nije ispravan, dvaput provjerite ožičenje prema dijagramu kruga. Je li vaš 10K pull-up otpornik na mjestu između podatkovnog pina i 3.3V? Jesu li podaci i sat spojeni 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 specifičan je za ESP8266 i konfigurira opcionalni dio izvještavanja o bežičnom senzoru uzorka projekta. Ako koristite standardni (ne bež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

Za sastavljanje koda za ovaj projekt s ESP8266, morate instalirati još nekoliko Arduino knjižnica (dostupnih putem upravitelja knjižnica):

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

#uključi

#include #include #include #include // Navedite podatkovne veze i satove te 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); // Otvorite serijsku vezu da biste izvijestili vrijednosti na hostu Serial.println ("Pokretanje"); // povezivanje s io.adafruit.com Serial.print ("Spajanje na 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. plovak temp_c; plovak temp_f; plutajuća vlaga; temp_c = sht1x.readTemperatureC (); // Očitavanje vrijednosti sa senzora temp_f = sht1x.readTemperatureF (); vlaga = sht1x.readHumidity (); Serial.print ("Temperatura:"); // Ispis vrijednosti na serijski port Serial.print (temp_c, DEC); Serial.print ("C /"); Serijski.ispis (temp_f, DEC); Serial.print ("F. Vlažnost:"); Serijski.tisak (vlaga); Serial.println ("%"); vlažnost-> štedi (vlaga); temperatura-> spremi (temp_f); Serial.println ("ESP8266 spava …"); ESP.deepSleep (vrijeme spavanja * 1000000 * 60); // spavanje}

Ovaj kôd je mješavina senzorskog koda iz ranijeg ovog vodiča i osnovni primjer iz oblačne podatkovne usluge Adafruit IO. Program ulazi u način rada s niskom potrošnjom energije i spava većinu vremena, ali se budi svakih 15 minuta kako bi očitao temperaturu i vlažnost tla te svoje podatke prijavljuje Adafruit IO -u. Idite na karticu config.h i ispunite svoje korisničko ime i ključ za Adafruit IO, kao i naziv i lozinku lokalne WiFi mreže, a zatim prenesite kôd na svoj mikrokontroler ESP8266.

Slika
Slika

Morat ćete se malo pripremiti na io.adafruit.com. Nakon što ste izradili feedove za temperaturu i vlagu, možete izraditi nadzornu ploču za vaš monitor s grafikonom vrijednosti senzora i podacima oba dolazna feeda. Ako vam je potrebno osvježenje za početak rada s Adafruit IO -om, pogledajte ovu lekciju u razredu Internet of Things.

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 dodatnim 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. To će ograničiti punjenje na siguran temperaturni raspon. Pobliže sam opisao ove izmjene u svom projektu solarnog USB punjača.

Korak 5: Izgradite krug mikrokontrolera

Izgradite krug mikrokontrolera
Izgradite krug mikrokontrolera
Slika
Slika
Slika
Slika

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

Slika
Slika

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

Slika
Slika

Izradite i lemite žice za matičnu ploču opisane u gornjoj shemi (ili prema specifikacijama vaše osobne verzije), uključujući 10K pull-up otpornik na podatkovnoj liniji senzora.

Utikači 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. Stoga mikrokontroler mora biti u stanju podnijeti 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 (ovdje se koristi): 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 najdulji mogući vijek trajanja baterije, potrebno vam je neko vrijeme da razmotrite i optimizirate ukupnu struju koju troši vaša struja. ESP8266 ima značajku dubokog sna koju smo koristili u Arduino skici kako bismo dramatično smanjili njegovu potrošnju energije. Probudi se da očita senzor i izvuče više struje dok se poveže na mrežu kako bi izvijestio vrijednost 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ć u identificiranju koja ploča može biti prikladna za vaš projekt.

Korak 6: Instalirajte kabelske uvodnice

Slika
Slika

Kako bismo učinili 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.

Slika
Slika
Slika
Slika

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.

Slika
Slika

Korak 7: Dovršite sklop kruga

Potpuni sklop kruga
Potpuni 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 -).

Slika
Slika

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

Slika
Slika

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

Slika
Slika

Punjenje dok je prevruće ili prehladno može oštetiti bateriju ili izazvati požar. Izloženost 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.

Slika
Slika

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 stranom utikača vodootpornog kompleta DC kabela za napajanje.

Korak 9: Isprobajte

Testirajte ga
Testirajte ga

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

Slika
Slika

Testirajte ga i uvjerite se da 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.

Slika
Slika

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 ovo onda to. Konfigurirao sam svoj da mi šalje e -poštu ako razina vlažnosti tla padne ispod 50.

Kako bih je testirao bez čekanja da se moja biljka osuši, ručno sam unijeo podatkovnu točku u vlažnu hranu za Adafruit IO koja je pala ispod praga. Nekoliko trenutaka kasnije, e -poruka stiže! Ako razine tla padnu ispod moje specificirane razine, dobit ću e -poruku svaki put kad se hrana ažurira dok ne zalijem tlo. Zbog svog razuma, ažurirao sam svoj kod kako bih uzorkovao tlo 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 ovisno o 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 dio je moje besplatne solarne klase na kojoj možete pronaći jednostavne projekte u dvorištu i više lekcija o radu sa solarnim panelima. Provjerite i prijavite se!

Ako vam se sviđa ovaj projekt, možda će vas zanimati neki od mojih drugih:

  • besplatni tečaj Interneta stvari
  • Brojač pretplatnika na YouTubeu s ESP8266
  • Prikaz praćenja društvenih statistika s ESP8266
  • WiFi prikaz vremena s ESP8266
  • Internet Valentinovo

Da biste bili u toku s onim na čemu radim, pratite me na YouTubeu, Instagramu, Twitteru, Pinterestu i Snapchatu.

Preporučeni: