Kazalo:

Sončni merilnik vlažnosti tal z ESP8266: 10 korakov (s slikami)
Sončni merilnik vlažnosti tal z ESP8266: 10 korakov (s slikami)

Video: Sončni merilnik vlažnosti tal z ESP8266: 10 korakov (s slikami)

Video: Sončni merilnik vlažnosti tal z ESP8266: 10 korakov (s slikami)
Video: БЕЗУМНО КРАСИВЫЙ КУСТАРНИК с ОБИЛЬНЫМ ЦВЕТЕНИЕМ 2024, November
Anonim

V tem navodilu izdelujemo nadzor vlažnosti tal na sončno energijo. Uporablja brezžični mikrokontroler ESP8266 s kodo nizke porabe in vse je vodotesno, zato ga lahko pustite zunaj. Temu receptu lahko sledite natančno ali iz njega vzamete uporabne tehnike za svoje projekte.

Če ste začetnik programiranja mikrokrmilnikov, si oglejte moj razred Arduino in razred stvari interneta, da se seznanite z osnovami ožičenja, kodiranja in povezovanja z internetom.

Ta projekt je del mojega brezplačnega razreda Solar, kjer se lahko z gravurami in sončnimi ploščami naučite več načinov izkoriščanja sončne energije.

Če želite spremljati, na čem delam, me spremljajte na YouTubu, Instagramu, Twitterju, Pinterestu in se naročite na moje novice.

Korak: Kaj boste potrebovali

Kaj boste potrebovali
Kaj boste potrebovali

Potrebovali boste ploščo za polnjenje sončne baterije in ESP8266, na primer NodeMCU ESP8266 ali Huzzah, pa tudi senzor prsti, baterijo, stikalo za vklop, nekaj žice in ohišje, da vstavite svoje vezje.

Tu so sestavni deli in materiali, ki se uporabljajo za merjenje vlažnosti tal:

  • ESP8266 NodeMCU mikrokrmilnik (ali podoben, Vin mora prenašati do 6V)
  • Sončna polnilna plošča Adafruit z dodatnim termistorjem in uporom 2.2K ohma
  • Li-ion baterija 2200mAh
  • Plošča Perma-proto
  • Senzor vlažnosti/temperature tal
  • 2 kabelski uvodnici
  • Vodotesno ohišje
  • Vodoodporen par enosmernega napajalnega kabla
  • Termoskrčljive cevi
  • 3,5W sončna plošča
  • Stikalo za vklop
  • Dvojni penasti trak

Tu so orodja, ki jih potrebujete:

  • Spajkalnik in spajkanje
  • Orodje za pomoč rokam
  • Odstranjevalci žice
  • Splaknite izrezke
  • Pinceta (neobvezno)
  • Toplotna pištola ali vžigalnik
  • Multimeter (neobvezno, vendar priročno za odpravljanje težav)
  • USB kabel A-microB
  • Škarje
  • Koračni vrtalnik

Potrebovali boste brezplačne račune na spletnih mestih za podatke v oblaku io.adafruit.com in IFTTT.

Kot sodelavec Amazon zaslužim s kvalificiranimi nakupi, ki jih opravite z mojimi partnerskimi povezavami.

2. korak: Prototip plošče

Prototip Breadboard
Prototip Breadboard

Pomembno je, da za takšne projekte ustvarite prototip brez lemljene plošče, da se lahko prepričate, da senzor in koda delujeta, preden vzpostavite trajne povezave.

Slika
Slika
Slika
Slika
Slika
Slika
Slika
Slika

V tem primeru ima senzor za tla nasedle žice, zato je bilo treba začasno pritrditi trdne glave na konce žic senzorja s spajkanjem, rokami za pomoč in nekaj toplotno skrčljivih cevi.

Slika
Slika

Sledite diagramu vezja, da povežete napajanje, ozemljitev, uro in podatkovne zatiče senzorja (podatki dobijo tudi 10K vlečni upor, ki je priložen senzorju tal).

  • Senzor zelena žica na GND
  • Rdeča žica senzorja do 3.3V
  • Senzorska rumena žica na NodeMCU pin D5 (GPIO 14)
  • Senzorska modra žica na NodeMCU pin D6 (GPIO 12)
  • 10K vlečni upor med modrim podatkovnim zatičem in 3.3V

To lahko prevedete v želeni mikrokrmilnik. Če uporabljate Arduino Uno ali podobno, programska oprema Arduino že podpira vašo ploščo. Če uporabljate ESP8266, si oglejte moj razred Internet of Things in poiščite pomoč po korakih za nastavitev ESP8266 v Arduinu (z dodajanjem dodatnih URL-jev v polje URL-ji dodatnih upraviteljev plošč v nastavitvah Arduina, nato poiščite in izbira novih plošč pri upravitelju plošč). Za programiranje plošče NodeMCU ESP8266 ponavadi uporabljam ploščo Adafruit ESP8266 Huzzah, lahko pa namestite in uporabite tudi podporo za generično ploščo ESP8266. Potrebovali boste tudi gonilnik USB komunikacijskega čipa SiLabs (na voljo za Mac/Windows/Linux).

Da bi senzor začel delovati z mojo ploščo, združljivo z Arduino, sem s spletne strani Practical Arduino na githubu prenesel knjižnico SHT1x Arduino, nato razpakiral datoteko in mapo knjižnice premaknil v mapo Arduino/knjižnice, nato pa jo preimenoval v SHT1x. Odprite primer skice ReadSHT1xValues in spremenite številke pin na 12 (dataPin) in 14 (clockPin) ali kopirajte spremenjeno skico tukaj:

#vključi

#define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // instantiate SHT1x object void setup () {Serial.begin (38400); // Odprite serijsko povezavo za poročanje vrednosti gostitelju Serial.println ("Zagon"); } void loop () {float temp_c; float temp_f; plavajoča vlažnost; temp_c = sht1x.readTemperatureC (); // Odčitavanje vrednosti senzorja temp_f = sht1x.readTemperatureF (); vlažnost = sht1x.readHumidity (); Serial.print ("Temperatura:"); // Natisnite vrednosti na serijska vrata Serial.print (temp_c, DEC); Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Vlažnost:"); Serijski.tisk (vlažnost); Serial.println ("%"); zamuda (2000); }

Naložite to kodo na svojo ploščo in odprite serijski monitor, da vidite tok podatkov senzorja.

Če se vaša koda ne sestavi in se pritožuje, da SHT1x.h ni mogoče najti, nimate pravilno nameščene potrebne knjižnice senzorjev. Preverite, ali je v vaši mapi Arduino/knjižnice datoteka, imenovana SHT1x, in če je kje drugje, na primer mapa za prenos, jo premaknite v mapo knjižnic Arduino in jo po potrebi preimenujte.

Če se vaša koda sestavi, vendar se ne naloži na ploščo, še enkrat preverite nastavitve plošče, se prepričajte, da je plošča priključena, in v meniju Orodja izberite ustrezna vrata.

Če se vaša koda naloži, vendar vnos serijskega monitorja ni prepoznaven, dvakrat preverite, ali se vaša hitrost prenosa ujema s tisto, ki je navedena na skici (v tem primeru 38400).

Če se zdi, da vaš vhod za serijski monitor ni pravilen, dvakrat preverite ožičenje glede na shemo vezja. Ali je vaš 10K vlečni upor med podatkovnim zatičem in 3,3 V? Ali so podatki in ura povezani s pravilnimi zatiči? Ali sta napajanje in ozemljitev povezana tako, kot bi morala biti v celotnem krogu? Ne nadaljujte, dokler ta preprosta skica ne deluje!

Naslednji korak je specifičen za ESP8266 in konfigurira izbirni del poročanja o brezžičnem senzorju vzorčnega projekta. Če uporabljate standardni (brezžični) Arduino združljiv mikrokrmilnik, nadaljujte z razvojem svoje zadnje skice Arduino in preskočite na Pripravite solarno polnilno ploščo.

3. korak: Namestitev programske opreme

Namestitev programske opreme
Namestitev programske opreme

Če želite sestaviti kodo za ta projekt z ESP8266, boste morali namestiti še nekaj knjižnic Arduino (na voljo prek upravitelja knjižnic):

  • Adafruit IO Arduino
  • Adafruit MQTT
  • ArduinoHttpClient

Prenesite kodo, priloženo temu koraku, nato razpakirajte datoteko in odprite Solar_Powered_Soil_Moisture_Monitor_Tutorial v svoji programski opremi Arduino.

#vključi

#include #include #include #include // Določite podatkovne in urne povezave ter ustvarite primerek objekta SHT1x #define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // nastavite krmo AdafruitIO_Feed *vlažnost = io.feed ("vlažnost"); AdafruitIO_Feed *temperatura = io.feed ("temperatura"); const int sleepTime = 15; // 15 minut

void setup ()

{Serial.begin (115200); // Odprite serijsko povezavo za poročanje vrednosti gostitelju Serial.println ("Zagon"); // povežite se z io.adafruit.com Serial.print ("Povezovanje z vmesnikom Adafruit IO"); io.connect (); // počakajte na povezavo while (io.status () <AIO_CONNECTED) {Serial.print ("."); zamuda (500); } // povezani smo Serial.println (); Serial.println (io.statusText ()); }

void loop ()

{io.run (); // io.run (); ohranja odjemalca povezanega in je potreben za vse skice. float temp_c; float temp_f; plavajoča vlaga; temp_c = sht1x.readTemperatureC (); // Odčitavanje vrednosti senzorja temp_f = sht1x.readTemperatureF (); vlaga = sht1x.readHumidity (); Serial.print ("Temperatura:"); // Natisnite vrednosti na serijska vrata 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-> prihranite (vlaga); temperatura-> shrani (temp_f); Serial.println ("ESP8266 spi …"); ESP.deepSleep (čas spanja * 1000000 * 60); // spanje}

Ta koda je združevanje kode senzorja iz prejšnje te vadnice in osnovni primer iz podatkovne storitve v oblaku Adafruit IO. Program vstopi v način nizke porabe energije in večino časa spi, vendar se vsakih 15 minut zbudi, da prebere temperaturo in vlažnost tal ter svoje podatke sporoči Adafruit IO. Pomaknite se na zavihek config.h in vnesite svoje uporabniško ime in ključ Adafruit IO ter ime in geslo lokalnega omrežja WiFi, nato kodo naložite v svoj mikrokrmilnik ESP8266.

Slika
Slika

Na io.adafruit.com se boste morali malo pripraviti. Ko ustvarite vire za temperaturo in vlažnost, lahko ustvarite nadzorno ploščo za svoj monitor, ki vsebuje graf vrednosti senzorja in podatke o vhodnih virih. Če potrebujete osvežitev pri začetku uporabe Adafruit IO, si oglejte to lekcijo v mojem razredu interneta stvari.

4. korak: Pripravite solarno polnilno ploščo

Pripravite solarno polnilno ploščo
Pripravite solarno polnilno ploščo

Pripravite solarno polnilno ploščo tako, da spajkate njen kondenzator in nekaj žic na izhodne ploščice za obremenitev. Svojega prilagajam tako, da se hitreje polni z dodatnim dodatnim uporom (2,2K spajkano v PROG-u) in tako varneje pustim brez nadzora, tako da upor za površinsko montažo zamenjam s 10K termistorjem, pritrjenim na baterijo. To bo omejilo polnjenje za varno temperaturno območje. Podrobneje sem te spremembe obravnaval v projektu Solar USB Charger.

5. korak: Zgradite vezje mikrokrmilnika

Zgradite vezje mikrokrmilnika
Zgradite vezje mikrokrmilnika
Slika
Slika
Slika
Slika

Spajkajte ploščo mikrokrmilnika in stikalo za vklop na ploščo perma-proto.

Slika
Slika

Izhodno moč sončnega polnilnika priključite na vhod stikala, ki naj bo ocenjen na vsaj 1 amper.

Slika
Slika

Ustvarite in spajkajte žične povezave, opisane v zgornjem diagramu vezja (ali v specifikacijah vaše osebne različice), vključno z 10K vlečnim uporom na podatkovni liniji senzorja.

Napajalni zatiči solarnega polnilnika bodo zagotovili napajanje baterije 3,7 V, če ni sončne energije, vendar se bodo napajali neposredno iz sončne celice, če je priključena in sončna. Zato mora mikrokrmilnik prenašati različne napetosti, vse do 3,7 V in do 6 V DC. Za tiste, ki potrebujejo 5V, lahko uporabite PowerBoost (500 ali 1000, odvisno od zahtevanega toka) za moduliranje napetosti obremenitve na 5V (kot je prikazano v projektu solarnega polnilnika USB). Tu je nekaj skupnih plošč in njihovih razponov vhodne napetosti:

  • NodeMCU ESP8266 (tukaj uporabljeno): 5V USB ali 3.7V-10V Vin
  • Arduino Uno: 5V USB ali 7-12V Vin
  • Adapruit Huzzah ESP8266 Prelom: 5V USB ali 3.4-6V VBat

Da bi dosegli čim daljšo življenjsko dobo baterije, bi morali vzeti nekaj časa, da razmislite in optimizirate skupni tok, ki ga porabi vaš tok. ESP8266 ima funkcijo globokega spanja, ki smo jo uporabili v skici Arduino, da smo močno zmanjšali porabo energije. Zbudi se, da odčita senzor in črpa več toka, medtem ko se poveže z omrežjem, da poroča o vrednosti senzorja, nato pa se za določen čas vrne v stanje spanja. Če vaš mikrokrmilnik porabi veliko energije in ga ni mogoče zaspati, razmislite o prenosu projekta na združljivo ploščo, ki porabi manj energije. V komentarje spodaj postavite vprašanje, če potrebujete pomoč pri določanju, katera plošča bi lahko ustrezala vašemu projektu.

6. korak: Namestite kabelske uvodnice

Slika
Slika

Za izdelavo vhodnih točk za kabel solarne plošče in kabel senzorja bomo na strani vremensko odpornega ohišja namestili dve kabelski uvodnici.

Slika
Slika
Slika
Slika

Preizkusite namestitev komponent, da ugotovite idealno postavitev, nato označite in izvrtajte luknje v vodotesnem ohišju s pomočjo koračnega vrtalnika. Namestite dve kabelski uvodnici.

Slika
Slika

Korak 7: Dokončajte montažo vezja

Celoten sklop vezja
Celoten sklop vezja

Vhodno stran vodotesnega napajalnega kabla vstavite v enega in ga spajkajte na enosmerni vhod solarnega polnilnika (rdeča na + in črna na -).

Slika
Slika

Senzor za tla vstavite skozi drugo žlezo in ga priključite na perma-proto v skladu s shemo vezja.

Slika
Slika

Sondo termistorja prilepite na baterijo. To bo omejilo polnjenje na varno temperaturno območje, medtem ko projekt ostane zunaj brez nadzora.

Slika
Slika

Polnjenje, če je preveč vroče ali prehladno, lahko poškoduje baterijo ali povzroči požar. Izpostavljenost ekstremnim temperaturam lahko povzroči poškodbe in skrajša življenjsko dobo baterije, zato jo vnesite noter, če je pod lediščem ali nad 45 ℃/113F.

Slika
Slika

Zategnite kabelske uvodnice, da okrog ustreznih kablov naredite neprepustno tesnilo.

8. korak: Pripravite sončno ploščo

Pripravite sončno ploščo
Pripravite sončno ploščo

Sledite mojim navodilom za spajanje kabla za vašo sončno ploščo s stranjo vtiča vodotesnega kompleta za napajanje z enosmernim tokom.

9. korak: Preizkusite

Preizkusite
Preizkusite

Priključite baterijo in vklopite vezje s pritiskom na stikalo za vklop.

Slika
Slika

Preizkusite in se prepričajte, da poroča internetu, preden zaprete ohišje in namestite senzor na svoj zeliščni vrt, dragoceno lončnico ali drugo zemljo v dosegu signala vašega omrežja WiFi.

Slika
Slika

Ko so podatki s senzorja prijavljeni na spletu, lahko preprosto nastavite recept za e -poštna ali besedilna opozorila na spletnem mestu prehoda API Če to potem to. Mojega sem konfiguriral tako, da mi pošlje e -pošto, če raven vlage v tleh pade pod 50.

Da bi ga preizkusil, ne da bi čakal, da se mi rastlina izsuši, sem ročno vnesel podatkovno točko vlage v krmilo Adafruit IO, ki je padla pod prag. Nekaj trenutkov kasneje prihaja e -pošta! Če raven tal pade pod mojo določeno raven, bom vsakič, ko bo krma posodobljena, prejel e -poštno sporočilo, dokler ne zalivam zemlje. Zaradi svojega zdravja sem svojo kodo posodobil, da sem vzorčil zemljo veliko manj pogosto kot vsakih 15 minut.

10. korak: Uporabite ga zunaj

Uporabite ga zunaj!
Uporabite ga zunaj!
Uporabite ga zunaj!
Uporabite ga zunaj!

To je zabaven projekt, ki ga lahko prilagodite glede na potrebe po hidrataciji vaše rastline in ga je enostavno zamenjati ali dodati senzorje ali vključiti funkcije sončne energije v druge projekte Arduino.

Hvala za spremljanje! Rad bi slišal, kaj mislite; objavite v komentarjih. Ta projekt je del mojega brezplačnega razreda Solar, kjer najdete preproste projekte na dvorišču in več lekcij o delu s sončnimi celicami. Preverite in se prijavite!

Če vam je ta projekt všeč, vas bodo morda zanimali še nekateri drugi:

  • brezplačni tečaj interneta stvari
  • Števec naročnikov v YouTubu z ESP8266
  • Prikaz sledilnika družabnih statistik z ESP8266
  • WiFi vremenski prikaz z ESP8266
  • Valentinovo na internetu

Če želite spremljati, na čem delam, me spremljajte na YouTubu, Instagramu, Twitterju, Pinterestu in Snapchatu.

Priporočena: