Satura rādītājs:

Saules augsnes mitruma mērītājs ar ESP8266: 10 soļi (ar attēliem)
Saules augsnes mitruma mērītājs ar ESP8266: 10 soļi (ar attēliem)

Video: Saules augsnes mitruma mērītājs ar ESP8266: 10 soļi (ar attēliem)

Video: Saules augsnes mitruma mērītājs ar ESP8266: 10 soļi (ar attēliem)
Video: БЕЗУМНО КРАСИВЫЙ КУСТАРНИК с ОБИЛЬНЫМ ЦВЕТЕНИЕМ 2024, Jūlijs
Anonim

Šajā instrukcijā mēs izgatavojam ar saules enerģiju darbināmu augsnes mitruma monitoru. Tas izmanto ESP8266 wifi mikrokontrolleri, kas darbojas ar mazjaudas kodu, un viss ir ūdensizturīgs, tāpēc to var atstāt ārpusē. Jūs varat precīzi sekot šai receptei vai ņemt no tās noderīgus paņēmienus saviem projektiem.

Ja neesat iepazinies ar mikrokontrolleru programmēšanu, lūdzu, apskatiet manu Arduino klasi un lietu interneta klasi, lai uzzinātu par vadu, kodēšanas un savienojuma ar internetu pamatiem.

Šis projekts ir daļa no manas bezmaksas Saules klases, kur jūs varat uzzināt vairāk par to, kā izmantot saules enerģiju, izmantojot gravējumus un saules paneļus.

Lai neatpaliktu no tā, pie kā strādāju, sekojiet man pakalpojumā YouTube, Instagram, Twitter, Pinterest un abonējiet manu biļetenu.

1. darbība. Kas jums būs nepieciešams

Kas jums būs nepieciešams
Kas jums būs nepieciešams

Lai ievietotu ķēdi, jums būs nepieciešams saules bateriju uzlādes panelis un ESP8266 sadalītājs, piemēram, NodeMCU ESP8266 vai Huzzah, kā arī augsnes sensors, akumulators, barošanas slēdzis, daži vadi un korpuss.

Šeit ir sastāvdaļas un materiāli, ko izmanto augsnes mitruma monitorā:

  • ESP8266 NodeMCU mikrokontrolleris (vai līdzīgs, Vin ir jāiztur līdz 6 V)
  • Adafruit saules uzlādes panelis ar papildu termistoru un 2,2 K omu rezistoru
  • 2200 mAh litija jonu akumulators
  • Perma-proto dēlis
  • Augsnes mitruma/temperatūras sensors
  • 2 kabeļu blīvslēgi
  • Ūdensnecaurlaidīgs korpuss
  • Ūdensnecaurlaidīgs līdzstrāvas kabeļu pāris
  • Termiski saraušanās caurule
  • 3,5W saules panelis
  • Spiediet pogas barošanas slēdzi
  • Divkārša putu lente

Šeit ir nepieciešami rīki:

  • Lodāmurs un lodēt
  • Palīgroku instruments
  • Stiepļu noņēmēji
  • Flush snips
  • Pincetes (pēc izvēles)
  • Siltuma lielgabals vai šķiltavas
  • Multimetrs (pēc izvēles, bet ērts problēmu novēršanai)
  • USB A-microB kabelis
  • Šķēres
  • Pakāpju urbis

Jums būs nepieciešami bezmaksas konti mākoņa datu vietnēs io.adafruit.com un IFTTT.

Kā Amazon asociētais darbinieks es nopelnu no kvalificētiem pirkumiem, ko veicat, izmantojot manas saistītās saites.

2. solis: maizes dēļa prototips

Maizes dēļa prototips
Maizes dēļa prototips

Šādiem projektiem ir svarīgi izveidot bezlodēšanas maizes prototipu, lai pirms pastāvīgu savienojumu izveidošanas jūs varētu pārliecināties, vai sensors un kods darbojas.

Attēls
Attēls
Attēls
Attēls
Attēls
Attēls
Attēls
Attēls

Šajā gadījumā augsnes sensoram ir savīti vadi, tāpēc bija nepieciešams uz laiku piestiprināt cietos galviņas sensora vadu galos, izmantojot lodmetālu, palīdzīgas rokas un dažas termiski saraušanās caurules.

Attēls
Attēls

Izpildiet shēmas shēmu, lai savienotu sensora jaudu, zemi, pulksteni un datu tapas (dati saņem arī 10K pievilkšanas rezistoru, kas tiek piegādāts kopā ar augsnes sensoru).

  • Sensora zaļais vads uz GND
  • Sensora sarkanais vads līdz 3.3V
  • Sensora dzeltenais vads līdz NodeMCU tapai D5 (GPIO 14)
  • Sensora zilais vads līdz NodeMCU tapai D6 (GPIO 12)
  • 10K pievilkšanas rezistors starp zilo datu tapu un 3.3V

Jūs varat to tulkot vēlamajā mikrokontrollerī. Ja izmantojat Arduino Uno vai līdzīgu, jūsu dēli jau atbalsta Arduino programmatūra. Ja izmantojat ESP8266, lūdzu, iepazīstieties ar manu lietu interneta klasi, lai saņemtu detalizētu palīdzību par ESP8266 iestatīšanu Arduino (pievienojot papildu URL laukam Papildu dēļu pārvaldnieka vietrāži Arduino preferencēs, pēc tam meklējot un jaunu dēļu izvēle no dēļu pārvaldnieka). Es mēdzu izmantot Adafruit ESP8266 Huzzah plates tipu, lai programmētu NodeMCU ESP8266 plati, bet jūs varat arī instalēt un izmantot vispārējo ESP8266 plates atbalstu. Jums būs nepieciešams arī SiLabs USB sakaru mikroshēmas draiveris (pieejams Mac/Windows/Linux).

Lai iedarbinātu sensoru ar savu ar Arduino saderīgo plati, es lejupielādēju SHT1x Arduino bibliotēku no praktiskās Arduino github lapas, pēc tam izpakoju failu un pārvietoju bibliotēkas mapi uz manu Arduino/bibliotēku mapi, pēc tam pārdēvēju to par SHT1x. Atveriet parauga skices ReadSHT1xValues un mainiet tapas skaitļus uz 12 (dataPin) un 14 (clockPin) vai nokopējiet modificēto skici šeit:

#iekļaut

#define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // instantiate SHT1x object void setup () {Serial.begin (38400); // Atveriet seriālo savienojumu, lai ziņotu vērtības saimniekdatoram Serial.println ("Starting up"); } void loop () {float temp_c; pludiņš temp_f; pludiņa mitrums; temp_c = sht1x.readTemperatureC (); // Nolasiet vērtības no sensora temp_f = sht1x.readTemperatureF (); mitrums = sht1x.readHumidity (); Serial.print ("Temperatūra:"); // Drukājiet vērtības seriālajā portā Serial.print (temp_c, DEC); Sērijas nospiedums ("C /"); Sērijas nospiedums (temp_f, DEC); Sērijas nospiedums ("F. Mitrums:"); Sērijas nospiedums (mitrums); Serial.println ("%"); kavēšanās (2000); }

Augšupielādējiet šo kodu savā panelī un atveriet seriālo monitoru, lai redzētu sensora datu plūsmu.

Ja jūsu kods netiks apkopots un sūdzas par to, ka SHT1x.h netiek atrasts, nepieciešamā sensoru bibliotēka nav pareizi instalēta. Pārbaudiet, vai jūsu Arduino/bibliotēku mapē nav SHT1x, un, ja tā atrodas kaut kur citur, piemēram, mapē lejupielādes, pārvietojiet to uz mapi Arduino bibliotēkas un, ja nepieciešams, pārdēvējiet.

Ja jūsu kods tiek apkopots, bet netiks augšupielādēts tāfele, vēlreiz pārbaudiet tāfeles iestatījumus, pārliecinieties, vai tāfele ir pievienota kontaktligzdai, un izvēlnē Rīki izvēlieties pareizo portu.

Ja kods tiek augšupielādēts, bet seriālā monitora ievade nav atpazīstama, vēlreiz pārbaudiet, vai datu pārraides ātrums atbilst jūsu skicē norādītajam (šajā gadījumā 38400).

Ja seriālā monitora ievade nešķiet pareiza, vēlreiz pārbaudiet elektroinstalāciju atbilstoši shēmas shēmai. Vai jūsu 10K pievilkšanas rezistors atrodas starp datu tapu un 3.3V? Vai dati un pulkstenis ir savienoti ar pareizajām tapām? Vai strāva un zeme ir savienoti tā, kā tiem vajadzētu būt visā ķēdē? Turpiniet, kamēr šī vienkāršā skice nedarbojas!

Nākamais solis ir raksturīgs ESP8266 un konfigurē parauga projekta papildu bezvadu sensoru ziņošanas daļu. Ja izmantojat standarta (bezvadu) ar Arduino saderīgu mikrokontrolleri, turpiniet izstrādāt savu pēdējo Arduino skici un pārejiet pie Saules uzlādes plates sagatavošanas.

3. darbība: programmatūras iestatīšana

Programmatūras iestatīšana
Programmatūras iestatīšana

Lai apkopotu šī projekta kodu, izmantojot ESP8266, jums jāinstalē vēl dažas Arduino bibliotēkas (pieejamas, izmantojot bibliotēkas pārvaldnieku):

  • Adafruit IO Arduino
  • Adafruit MQTT
  • ArduinoHttpClient

Lejupielādējiet šim solim pievienoto kodu, pēc tam izpakojiet failu un savā Arduino programmatūrā atveriet Solar_Powered_Soil_Moisture_Monitor_Tutorial.

#iekļaut

#include #include #include #include // Norādiet datus un pulksteņa savienojumus un izveidojiet SHT1x objektu #define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // iestatīt plūsmu AdafruitIO_Feed *mitrums = io.feed ("mitrums"); AdafruitIO_Feed *temperatūra = io.feed ("temperatūra"); const int sleepTime = 15; // 15 minūtes

anulēts iestatījums ()

{Serial.begin (115200); // Atvērt seriālo savienojumu, lai ziņotu par vērtībām saimniekdatoram Serial.println ("Starting up"); // izveidot savienojumu ar io.adafruit.com Serial.print ("Savienojuma izveide ar Adafruit IO"); io.connect (); // gaidiet savienojumu, kamēr (io.status () <AIO_CONNECTED) {Serial.print ("."); kavēšanās (500); } // mēs esam savienoti Serial.println (); Serial.println (io.statusText ()); }

tukša cilpa ()

{io.run (); // io.run (); saglabā klientu un ir nepieciešams visām skicēm. pludiņš temp_c; pludiņš temp_f; peldošs mitrums; temp_c = sht1x.readTemperatureC (); // Nolasiet vērtības no sensora temp_f = sht1x.readTemperatureF (); mitrums = sht1x.readHumidity (); Serial.print ("Temperatūra:"); // Drukājiet vērtības seriālajā portā Serial.print (temp_c, DEC); Sērijas nospiedums ("C /"); Sērijas nospiedums (temp_f, DEC); Sērijas nospiedums ("F. Mitrums:"); Sērijas nospiedums (mitrums); Serial.println ("%"); mitrums-> ietaupīt (mitrums); temperatūra-> ietaupīt (temp_f); Serial.println ("ESP8266 guļ …"); ESP.deepSleep (miega laiks * 1000000 * 60); // Gulēt }

Šis kods ir šīs apmācības iepriekšējā sensora koda sajaukums un pamata piemērs no mākoņu datu pakalpojuma Adafruit IO. Programma pāriet mazjaudas režīmā un lielāko daļu laika guļ, bet pamostas ik pēc 15 minūtēm, lai nolasītu augsnes temperatūru un mitrumu, un ziņo par saviem datiem Adafruit IO. Pārejiet uz cilni config.h un ievadiet savu Adafruit IO lietotājvārdu un atslēgu, kā arī vietējā wifi tīkla nosaukumu un paroli, pēc tam augšupielādējiet kodu savā ESP8266 mikrokontrollerī.

Attēls
Attēls

Jums būs nedaudz jāsagatavojas vietnē io.adafruit.com. Pēc plūsmas izveidošanas temperatūrai un mitrumam varat izveidot monitora informācijas paneli ar sensoru vērtību grafiku un abiem ienākošo plūsmu datiem. Ja jums ir nepieciešama atsvaidzināšana, lai sāktu darbu ar Adafruit IO, apskatiet šo nodarbību manā lietu interneta klasē.

4. solis: Sagatavojiet saules uzlādes paneli

Sagatavojiet saules uzlādes paneli
Sagatavojiet saules uzlādes paneli

Sagatavojiet saules uzlādes paneli, pielodējot tā kondensatoru un dažus vadus pie slodzes izvades paliktņiem. Es pielāgoju raktuves, lai tās uzlādētu ātrāk, izmantojot papildu papildu rezistoru (2,2 K lodēts visā PROG), un padarīšu drošāku atstāt bez uzraudzības, nomainot virsmas stiprinājuma rezistoru ar 10K termistoru, kas pievienots akumulatoram. Tas ierobežos uzlādi līdz drošam temperatūras diapazonam. Šīs izmaiņas sīkāk apskatīju savā Saules USB lādētāja projektā.

5. solis: izveidojiet mikrokontrollera shēmu

Izveidojiet mikrokontrolleru shēmu
Izveidojiet mikrokontrolleru shēmu
Attēls
Attēls
Attēls
Attēls

Lodējiet mikrokontrollera paneli un barošanas slēdzi uz perma-proto plati.

Attēls
Attēls

Pievienojiet saules lādētāja izejas jaudu slēdža ieejai, kurai jābūt vismaz 1 amp.

Attēls
Attēls

Izveidojiet un pielodējiet maizes dēļa vadu savienojumus, kas aprakstīti iepriekšējā shēmā (vai atbilstoši jūsu personīgās versijas specifikācijām), ieskaitot 10K uzvilkšanas rezistoru sensora datu līnijā.

Saules lādētāja slodzes tapas nodrošinās 3,7 V akumulatora enerģiju, ja nav saules enerģijas, bet tiks barots tieši no saules paneļa, ja tas ir pievienots un saulains. Tāpēc mikrokontrolleram jāspēj izturēt dažādus spriegumus, sākot no 3,7 V un līdz 6 V DC. Tiem, kam nepieciešama 5 V, var izmantot PowerBoost (500 vai 1000, atkarībā no nepieciešamās strāvas), lai modulētu slodzes spriegumu līdz 5 V (kā parādīts projektā Solar USB Charger). Šeit ir daži izplatīti dēļi un to ieejas sprieguma diapazoni:

  • NodeMCU ESP8266 (šeit lietots): 5V USB vai 3.7V-10V Vin
  • Arduino Uno: 5V USB vai 7-12V Vin
  • Adafruit Huzzah ESP8266 pārtraukums: 5V USB vai 3,4-6V VBat

Lai sasniegtu pēc iespējas ilgāku akumulatora darbības laiku, jums vajadzētu veltīt laiku, lai apsvērtu un optimizētu pašreizējo patērēto kopējo strāvu. ESP8266 ir dziļa miega funkcija, kuru mēs izmantojām Arduino skicē, lai krasi samazinātu tā enerģijas patēriņu. Tas pamostas, lai nolasītu sensoru, un, pieslēdzoties tīklam, patērē vairāk strāvas, lai ziņotu par sensora vērtību, un pēc tam atgriežas miega režīmā uz noteiktu laiku. Ja jūsu mikrokontrolleris patērē daudz enerģijas un to nevar viegli iemigt, apsveriet sava projekta pārnešanu uz saderīgu plati, kas patērē mazāk enerģijas. Ievietojiet jautājumu zemāk esošajos komentāros, ja jums nepieciešama palīdzība, lai noteiktu, kura tāfele varētu būt piemērota jūsu projektam.

6. darbība: instalējiet kabeļu blīves

Attēls
Attēls

Lai saules paneļa kabeļa un sensora kabeļa ieejas vietas būtu izturīgas pret laika apstākļiem, mēs uzstādīsim divus kabeļu blīvgredzenus pret laika apstākļiem izturīgā korpusa sānos.

Attēls
Attēls
Attēls
Attēls

Pārbaudiet savu sastāvdaļu piemērotību, lai noteiktu ideālo izvietojumu, pēc tam atzīmējiet un urbiet caurumus ūdensnecaurlaidīgā korpusā, izmantojot pakāpienu urbi. Uzstādiet abus kabeļu blīvgredzenus.

Attēls
Attēls

7. darbība. Pabeigt ķēdes montāžu

Pabeigt ķēdes montāžu
Pabeigt ķēdes montāžu

Ievietojiet ūdensnecaurlaidīga barošanas kabeļa pieslēgvietu vienā un pielodējiet to pie saules lādētāja līdzstrāvas ieejas (sarkana līdz + un melna līdz -).

Attēls
Attēls

Ievietojiet augsnes sensoru caur otru dziedzeri un savienojiet to ar perma-proto saskaņā ar shēmu.

Attēls
Attēls

Līmējiet termistora zondi ar akumulatoru. Tas ierobežos uzlādi līdz drošam temperatūras diapazonam, kamēr projekts tiek atstāts bez uzraudzības ārā.

Attēls
Attēls

Uzlādēšana pārāk karstā vai pārāk aukstā laikā var sabojāt akumulatoru vai izraisīt ugunsgrēku. Pakļaušana ekstremālām temperatūrām var izraisīt bojājumus un saīsināt akumulatora kalpošanas laiku, tāpēc nogādājiet to iekšā, ja tas ir zem sasalšanas vai virs 45 ℃.

Attēls
Attēls

Pievelciet kabeļu blīvgredzenus, lai ap to kabeļiem izveidotu laika apstākļu izturīgu blīvējumu.

8. solis: Saules paneļa sagatavošana

Sagatavojiet saules paneli
Sagatavojiet saules paneli

Izpildiet manu pamācību, lai savienotu saules paneļa kabeli ar ūdensnecaurlaidīgā līdzstrāvas kabeļu komplekta kontaktdakšu.

9. darbība: pārbaudiet to

Pārbaudi to
Pārbaudi to

Pievienojiet akumulatoru un ieslēdziet ķēdi, nospiežot barošanas slēdzi.

Attēls
Attēls

Pārbaudiet to un pārliecinieties, ka tas ziņo internetam, pirms aizverat korpusu un uzstādāt sensoru savā garšaugu dārzā, dārgakmeņu podos vai citā augsnē, kas atrodas jūsu WiFi tīkla signāla diapazonā.

Attēls
Attēls

Kad sensora dati tiek reģistrēti tiešsaistē, API vārtejas vietnē If This then That ir viegli iestatīt e -pasta vai teksta brīdinājumu recepti. Es konfigurēju savu, lai man sūtītu e -pastu, ja augsnes mitruma līmenis nokrītas zem 50.

Lai to pārbaudītu, negaidot, kamēr mans augs izžūs, es manuāli ievadīju datu punktu savai mitruma barībai Adafruit IO, kas nokrita zem sliekšņa. Pēc dažiem mirkļiem pienāk e -pasts! Ja augsnes līmenis nokrītas zem mana norādītā līmeņa, es saņemšu e -pasta ziņojumu katru reizi, kad barība tiek atjaunināta, līdz es aplaisto augsni. Prāta labad es atjaunināju savu kodu, lai paraugu ņemtu no augsnes daudz retāk kā ik pēc 15 minūtēm.

10. solis: izmantojiet to ārpusē

Izmantojiet to ārpus telpām!
Izmantojiet to ārpus telpām!
Izmantojiet to ārpus telpām!
Izmantojiet to ārpus telpām!

Šis ir jautrs projekts, kuru var pielāgot, pamatojoties uz jūsu iekārtas mitrināšanas vajadzībām, un ir viegli nomainīt vai pievienot sensorus vai integrēt saules enerģijas funkcijas citos Arduino projektos.

Paldies, ka sekojat līdzi! Es gribētu dzirdēt, ko jūs domājat; lūdzu, ievietojiet komentāros. Šis projekts ir daļa no manas bezmaksas Saules klases, kur jūs varat atrast vienkāršus piemājas projektus un vairāk mācību par darbu ar saules paneļiem. Pārbaudiet to un reģistrējieties!

Ja jums patīk šis projekts, jūs varētu interesēt daži mani citi:

  • bezmaksas lietu interneta klase
  • YouTube abonentu skaitītājs ar ESP8266
  • Sociālās statistikas izsekotāja displejs ar ESP8266
  • WiFi laika displejs ar ESP8266
  • Valentīna internets

Lai neatpaliktu no tā, pie kā strādāju, sekojiet man pakalpojumā YouTube, Instagram, Twitter, Pinterest un Snapchat.

Ieteicams: