Përmbajtje:

Matës i lagështisë së tokës diellore me ESP8266: 10 hapa (me fotografi)
Matës i lagështisë së tokës diellore me ESP8266: 10 hapa (me fotografi)

Video: Matës i lagështisë së tokës diellore me ESP8266: 10 hapa (me fotografi)

Video: Matës i lagështisë së tokës diellore me ESP8266: 10 hapa (me fotografi)
Video: Klasa 5 - Njeriu dhe natyra - Toka, sistemi diellor dhe gjithësia 2024, Korrik
Anonim

Në këtë Instructable, ne po bëjmë një monitorues të lagështisë së tokës me energji diellore. Përdor një mikrokontrollues wifi ESP8266 që funksionon me kod të ulët të energjisë, dhe gjithçka është e papërshkueshme nga uji, kështu që mund të lihet jashtë. Ju mund ta ndiqni këtë recetë saktësisht, ose të merrni prej tij teknikat e dobishme për projektet tuaja.

Nëse jeni i ri në programimin e mikrokontrolluesve, ju lutemi shikoni klasën time Arduino dhe klasën e Internetit të Gjërave për t'u kapur me bazat e instalimeve elektrike, kodimit dhe lidhjes me internetin.

Ky projekt është pjesë e Klasës sime Diellore falas, ku mund të mësoni më shumë mënyra për të shfrytëzuar energjinë e diellit përmes gdhendjes dhe paneleve diellore.

Për të vazhduar me atë që po punoj, më ndiqni në YouTube, Instagram, Twitter, Pinterest dhe regjistrohuni në gazetën time.

Hapi 1: Çfarë ju nevojitet

Ajo që do t'ju duhet
Ajo që do t'ju duhet

Ju do të keni nevojë për një tabelë karikimi të baterisë diellore dhe një dalje ESP8266 siç është NodeMCU ESP8266 ose Huzzah, si dhe një sensor të tokës, baterisë, ndërprerës të energjisë, disa tela dhe një rrethim për të vendosur qarkun tuaj brenda.

Këtu janë përbërësit dhe materialet e përdorura për monitorimin e lagështisë së tokës:

  • Mikrokontrolluesi ESP8266 NodeMCU (ose i ngjashëm, Vin duhet të tolerojë deri në 6V)
  • Bordi diellor i karikimit Adafruit me termistor opsional dhe rezistencë 2.2K ohm
  • Bateri lion-jon 2200mAh
  • Tabela Perma-proto
  • Sensori i lagështisë/temperaturës së tokës
  • 2 gjëndra kabllore
  • Rrethim i papërshkueshëm nga uji
  • Çift i kabllove të energjisë DC të papërshkueshëm nga uji
  • Tub i tkurrjes së nxehtësisë
  • Panel diellor 3.5W
  • Çelësi i energjisë i butonit me buton
  • Shirit shkumë me shkop të dyfishtë

Këtu janë mjetet që do t'ju nevojiten:

  • Saldim dhe saldim
  • Mjet ndihmës për duart
  • Zhveshëset e telave
  • Flip snips
  • Piskatore (sipas dëshirës)
  • Armë ngrohëse ose çakmak
  • Multimetër (opsional, por i dobishëm për zgjidhjen e problemeve)
  • Kabllo USB A-microB
  • Gërshërë
  • Stërvitje hap

Ju do të keni nevojë për llogari falas në faqet e të dhënave cloud cloud io.adafruit.com dhe IFTTT.

Si një Amazon Associate unë fitoj nga blerjet kualifikuese që bëni duke përdorur lidhjet e mia të filialeve.

Hapi 2: Prototipi i tabelës së bukës

Prototipi i tabelës së bukës
Prototipi i tabelës së bukës

It’sshtë e rëndësishme të krijoni një prototip të panisë pa saldim për projekte të tilla, kështu që të siguroheni që sensori dhe kodi juaj po punojnë para se të bëni ndonjë lidhje të përhershme.

Imazhi
Imazhi
Imazhi
Imazhi
Imazhi
Imazhi
Imazhi
Imazhi

Në këtë rast, sensori i tokës ka bllokuar telat në të cilën ishte e nevojshme që përkohësisht të ngjiteshin tituj të ngurtë në skajet e telave të sensorit duke përdorur lidhës, duar ndihmuese dhe disa tuba të tkurrjes së nxehtësisë.

Imazhi
Imazhi

Ndiqni diagramin e qarkut për të lidhur fuqinë e sensorit, tokën, orën dhe kunjat e të dhënave (të dhënat gjithashtu marrin një rezistencë tërheqëse 10K që vjen me sensorin e tokës).

  • Sensori i telit të gjelbër në GND
  • Sensor tela të kuq në 3.3V
  • Sensor tela të verdhë në NodeMCU pin D5 (GPIO 14)
  • Sensor teli blu në NodeMCU pin D6 (GPIO 12)
  • Rezistencë tërheqëse 10K midis pinit të të dhënave blu dhe 3.3V

Mund ta përktheni këtë te mikrokontrolluesi juaj i preferuar. Nëse jeni duke përdorur një Arduino Uno ose të ngjashme, bordi juaj tashmë mbështetet nga programi Arduino. Nëse jeni duke përdorur ESP8266, ju lutemi shikoni klasën time të Internetit të Gjërave për ndihmë hap pas hapi për të vendosur me ESP8266 në Arduino (duke shtuar URL shtesë në fushën e URL-ve të Menaxherëve të Bordeve Shtesë në preferencat e Arduino, pastaj kërkoni dhe përzgjedhja e bordeve të reja nga menaxheri i bordeve). Unë prirem të përdor llojin e bordit Adafruit ESP8266 Huzzah për të programuar tabelën NodeMCU ESP8266, por gjithashtu mund të instaloni dhe përdorni mbështetjen e bordit Generic ESP8266. Ju gjithashtu do të keni nevojë për drejtuesin e çipave të komunikimit USB SiLabs (i disponueshëm për Mac/Windows/Linux).

Për të vënë sensorin në funksion me bordin tim të pajtueshëm me Arduino, unë shkarkova Bibliotekën SHT1x Arduino nga faqja github e Practical Arduino, pastaj e çkyçja skedarin dhe e zhvendosa dosjen e bibliotekës në dosjen time Arduino/bibliotekat, pastaj e riemërtova në SHT1x. Hapni skicën shembull ReadSHT1xValues dhe ndryshoni numrat e pin në 12 (dataPin) dhe 14 (clockPin), ose kopjoni skicën e modifikuar këtu:

#përfshi

#përcakto të dhënatPin 12 // NodeMCU pin D6 #cakto orënPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // instantiate setup void object SHT1x () {Serial.begin (38400); // Hap lidhjen serike për të raportuar vlerat në hostin Serial.println ("Fillimi"); } void loop () {float temp_c; noton temp_f; lagështia e notit; temp_c = sht1x.readTemperatureC (); // Lexoni vlerat nga sensori temp_f = sht1x.readTemperatureF (); lagështia = sht1x.readHumidity (); Serial.print ("Temperatura:"); // Shtypni vlerat në portin serik Serial.print (temp_c, DEC); Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Lagështia:"); Serial.print (lagështia); Serial.println ("%"); vonesa (2000); }

Ngarko këtë kod në tabelën tënde dhe hap monitorin serik për të parë rrjedhën e të dhënave të sensorit.

Nëse kodi juaj nuk përpilohet dhe ankohet se SHT1x.h nuk është gjetur, nuk e keni instaluar siç duhet bibliotekën e sensorëve të kërkuar. Kontrolloni dosjen tuaj Arduino/bibliotekat për atë të quajtur SHT1x, dhe nëse është diku tjetër, si dosja juaj e shkarkimeve, zhvendoseni atë në dosjen tuaj të bibliotekave Arduino dhe riemëroni nëse është e nevojshme.

Nëse kodi juaj përpilohet por nuk do të ngarkohet në tabelën tuaj, kontrolloni dy herë cilësimet e tabelës tuaj, sigurohuni që bordi juaj është i kyçur dhe zgjidhni portën e duhur nga menyja Tools.

Nëse kodi juaj ngarkon por hyrja serike e monitorit tuaj është e panjohshme, kontrolloni dyfishin e nivelit të baudit që përputhet me atë të specifikuar në skicën tuaj (38400 në këtë rast).

Nëse hyrja serike e monitorit tuaj nuk duket e saktë, kontrolloni dyfish instalimet elektrike në diagramin e qarkut. A është rezistenca juaj tërheqëse 10K në vend midis pinit të të dhënave dhe 3.3V? A janë të dhënat dhe ora të lidhura me kunjat e duhur? A janë fuqia dhe toka të lidhura ashtu siç duhet të jenë në të gjithë qarkun? Mos vazhdoni derisa të funksionojë kjo skicë e thjeshtë!

Hapi tjetër është specifik për ESP8266 dhe konfiguron pjesën e opsionit të raportimit të sensorit pa tel të projektit të mostrës. Nëse jeni duke përdorur një mikrokontrollues standard (pa tela) të pajtueshëm me Arduino, vazhdoni të zhvilloni skicën tuaj përfundimtare Arduino dhe kaloni te Prepare Solar Charging Board.

Hapi 3: Konfigurimi i softuerit

Konfigurimi i softuerit
Konfigurimi i softuerit

Për të përpiluar kodin për këtë projekt me ESP8266, do t'ju duhet të instaloni disa biblioteka të tjera Arduino (të disponueshme përmes menaxherit të bibliotekës):

  • Adafruit IO Arduino
  • Adafruit MQTT
  • ArduinoHttpClient

Shkarkoni kodin e bashkangjitur në këtë hap, pastaj hapeni skedarin dhe hapni Solar_Powered_Soil_Moisture_Monitor_Tutorial në programin tuaj Arduino.

#përfshi

#include #include #includ #include // Specifikoni të dhënat dhe lidhjet e orës dhe instantiate objektin SHT1x #përcaktoni të dhënatPin 12 // NodeMCU pin D6 #përcaktoni orënPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // vendosni ushqimin AdafruitIO_Feed *lagështia = io.feed ("lagështia"); AdafruitIO_Feed *temperatura = io.feed ("temperatura"); const int Gjumi = 15; // 15 minuta

void setup ()

{Serial.fillo (115200); // Hap lidhjen serike për të raportuar vlerat tek hosti Serial.println ("Fillimi"); // lidheni me io.adafruit.com Serial.print ("Lidhja me Adafruit IO"); io.connect (); // prisni një lidhje ndërsa (io.status () <AIO_CONNECTED) {Serial.print ("."); vonesë (500); } // jemi lidhur Serial.println (); Serial.println (io.statusText ()); }

lak void ()

{io.run (); // io.run (); e mban klientin të lidhur dhe kërkohet për të gjitha skicat. noton temp_c; noton temp_f; lagështia e notit; temp_c = sht1x.readTemperatureC (); // Lexoni vlerat nga sensori temp_f = sht1x.readTemperatureF (); lagështi = sht1x.readHumidity (); Serial.print ("Temperatura:"); // Shtypni vlerat në portin serik Serial.print (temp_c, DEC); Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Lagështia:"); Serial.print (lagështi); Serial.println ("%"); lagështia-> ruaj (lagështi); temperatura-> ruaj (temp_f); Serial.println ("ESP8266 po fle…"); ESP.deepSleep (Koha e gjumit * 1000000 * 60); // Fle}

Ky kod është një përzierje e kodit të sensorit nga më parë në këtë tutorial dhe një shembull bazë nga shërbimi i të dhënave cloud Adafruit IO. Programi hyn në modalitetin e energjisë së ulët dhe fle shumicën e kohës, por zgjohet çdo 15 minuta për të lexuar temperaturën dhe lagështinë e tokës dhe raporton të dhënat e tij tek Adafruit IO. Shkoni te skeda config.h dhe plotësoni emrin e përdoruesit dhe çelësin tuaj Adafruit IO, si dhe emrin dhe fjalëkalimin e rrjetit tuaj wifi lokal, pastaj ngarkoni kodin në mikrokontrolluesin tuaj ESP8266.

Imazhi
Imazhi

Ju do të duhet të bëni pak përgatitje në io.adafruit.com. Pas krijimit të burimeve për temperaturën dhe lagështinë, mund të krijoni një pult për monitorin tuaj që përmban një grafik të vlerave të sensorit dhe të dyja të dhënat e burimeve të ardhshme. Nëse keni nevojë për një rifreskim për të filluar me Adafruit IO, shikoni këtë mësim në klasën time të Internetit të Gjërave.

Hapi 4: Përgatitni Bordin e Ngarkimit Diellor

Përgatitni Bordin e Ngarkimit Diellor
Përgatitni Bordin e Ngarkimit Diellor

Përgatitni tabelën e karikimit diellor duke bashkuar kondensatorin e tij dhe disa tela në tamponët e daljes së ngarkesës. Unë jam duke e personalizuar pajisjen time për të karikuar me një ritëm më të shpejtë me një rezistencë shtesë shtesë (2.2K të ngjitur në PROG) dhe duke e bërë më të sigurt të largohem pa mbikëqyrje duke zëvendësuar rezistencën e montimit në sipërfaqe me një termistor 10K të bashkangjitur në vetë baterinë. Kjo do të kufizojë ngarkimin në një gamë të sigurt të temperaturës. Unë i mbulova këto modifikime në më shumë detaje në projektin tim Solar USB Charger.

Hapi 5: Ndërtoni një qark mikrokontrollues

Ndërtoni një qark mikrokontrollues
Ndërtoni një qark mikrokontrollues
Imazhi
Imazhi
Imazhi
Imazhi

Bashkoni bordin e mikrokontrolluesit dhe kaloni fuqinë në një bord të proto-proto.

Imazhi
Imazhi

Lidhni daljen e energjisë së ngarkuesit diellor me hyrjen e çelësit tuaj, i cili duhet të vlerësohet për të paktën 1 amp.

Imazhi
Imazhi

Krijoni dhe lidhni lidhjet e telit të bukës të përshkruara në diagramin e qarkut më sipër (ose sipas specifikimeve të versionit tuaj personal), duke përfshirë rezistencën tërheqëse 10K në linjën e të dhënave të sensorit.

Kunjat e ngarkesës së ngarkuesit diellor do të sigurojnë energji baterie 3.7V kur nuk ekziston energji diellore, por do të mundësohet drejtpërdrejt nga paneli diellor nëse është i lidhur dhe me diell. Prandaj mikrokontrolluesi duhet të jetë në gjendje të tolerojë një sërë tensionesh, aq të ulëta sa 3.7V dhe deri në 6V DC. Për ata që kërkojnë 5V, një PowerBoost (500 ose 1000, në varësi të rrymës së kërkuar) mund të përdoret për të moduluar tensionin e Ngarkesës në 5V (siç tregohet në projektin Solar USB Charger). Këtu janë disa borde të zakonshme dhe diapazoni i tensionit të tyre hyrës:

  • NodeMCU ESP8266 (përdoret këtu): 5V USB ose 3.7V-10V Vin
  • Arduino Uno: 5V USB ose 7-12V Vin
  • Adafruit Huzzah ESP8266 Breakout: 5V USB ose 3.4-6V VBat

Për të arritur jetën më të gjatë të mundshme të baterisë, duhet të merrni pak kohë për të marrë parasysh dhe optimizuar rrymën totale të tërheqjeve tuaja aktuale. ESP8266 ka një veçori të gjumit të thellë të cilin e përdorëm në skicën Arduino për të zvogëluar në mënyrë dramatike konsumin e energjisë. Zgjohet për të lexuar sensorin dhe tërheq më shumë rrymë ndërsa lidhet me rrjetin për të raportuar vlerën e sensorit, pastaj kthehet në gjumë për një kohë të caktuar. Nëse mikrokontrolluesi juaj tërheq shumë energji dhe nuk mund të flejë lehtë, konsideroni ta transferoni projektin tuaj në një bord të pajtueshëm që tërheq më pak energji. Hidhni një pyetje në komentet më poshtë nëse keni nevojë për ndihmë për të identifikuar se cili bord mund të jetë i përshtatshëm për projektin tuaj.

Hapi 6: Instaloni gjëndrat e kabllove

Imazhi
Imazhi

Për të bërë pikat e hyrjes të papërshkueshme nga moti për kabllon e panelit diellor dhe kabllon e sensorit, ne do të instalojmë dy gjëndra kabllor në anën e rrethimit të papërshkueshëm nga moti.

Imazhi
Imazhi
Imazhi
Imazhi

Testoni komponentët tuaj për të identifikuar vendosjen ideale, pastaj shënoni dhe shponi vrima në një rrethim të papërshkueshëm nga uji duke përdorur një stërvitje hapash. Instaloni dy gjëndrat e kabllove.

Imazhi
Imazhi

Hapi 7: Asambleja e plotë e qarkut

Asambleja e Qarkut të Plotë
Asambleja e Qarkut të Plotë

Vendoseni anën e portës të një kablloje të papërshkueshme nga uji në një dhe ngjiteni atë në hyrjen DC të ngarkuesit diellor (e kuqe në + dhe e zezë në -).

Imazhi
Imazhi

Futni sensorin e tokës përmes gjëndrës tjetër dhe lidheni atë me perma-proton sipas diagramit të qarkut.

Imazhi
Imazhi

Ngjiteni sondën e termistorit në bateri. Kjo do të kufizojë ngarkimin në një gamë të sigurt të temperaturës ndërsa projekti lihet i pambikëqyrur jashtë.

Imazhi
Imazhi

Karikimi ndërsa është shumë i nxehtë ose shumë i ftohtë mund të dëmtojë baterinë ose të ndezë një zjarr. Ekspozimi ndaj temperaturave ekstreme mund të shkaktojë dëme dhe të shkurtojë jetën e baterisë, prandaj futeni brenda nëse është nën ngrirje ose mbi 45 ℃/113F.

Imazhi
Imazhi

Shtrëngoni gjëndrat e kabllove për të bërë një vulë të papërshkueshme nga moti rreth kabllove të tyre përkatëse.

Hapi 8: Përgatitni panelin diellor

Përgatitni panelin diellor
Përgatitni panelin diellor

Ndiqni udhëzimet e mia për të bashkuar kabllon për panelin tuaj diellor me anën e prizës të kompletit të kabllit të energjisë të papërshkueshëm nga uji DC.

Hapi 9: Provojeni

Provojeni atë
Provojeni atë

Lidhni baterinë dhe ndizni qarkun duke shtypur çelësin e energjisë.

Imazhi
Imazhi

Provojeni atë dhe sigurohuni që po raporton në internet para se të mbyllni mbylljen dhe të instaloni sensorin në kopshtin tuaj të barishteve, bimën e çmuar në vazo ose tokë tjetër brenda rrezes së sinjalit të rrjetit tuaj wifi.

Imazhi
Imazhi

Pasi të dhënat nga sensori të regjistrohen në internet, është e lehtë të krijoni një recetë për email ose njoftime me tekst në faqen e portës API If This Then That. Konfigurova timen që të më dërgonte me email nëse niveli i lagështisë së tokës bie nën 50.

Për ta testuar atë pa pritur që bima ime të thahet, unë futa manualisht një pikë të dhënash për ushqimin tim të lagështisë në Adafruit IO që ra nën pragun. Disa çaste më vonë, emaili vjen! Nëse nivelet e tokës bien nën nivelin tim të specifikuar, do të marr një email çdo herë që azhurnohet ushqimi derisa të ujis tokën. Për shëndetin tim, unë azhurnova kodin tim për të mostruar tokën shumë më rrallë se çdo 15 minuta.

Hapi 10: Përdoreni atë jashtë

Përdoreni Jashtë!
Përdoreni Jashtë!
Përdoreni Jashtë!
Përdoreni Jashtë!

Ky është një projekt argëtues për tu personalizuar bazuar në nevojat e hidratimit të uzinës tuaj, dhe është e lehtë të ndërroni ose shtoni sensorë ose të integroni veçoritë e energjisë diellore në projektet tuaja të tjera Arduino.

Faleminderit që na ndoqët! Unë do të doja të dëgjoja atë që mendoni; ju lutemi postoni në komente. Ky projekt është pjesë e Klasës sime Diellore falas, ku mund të gjeni projekte të thjeshta në oborrin e shtëpisë dhe më shumë mësime për të punuar me panele diellore. Shikoni dhe regjistrohuni!

Nëse ju pëlqen ky projekt, mund të jeni të interesuar për disa nga të tjerët e mi:

  • Klasa falas e Internetit të Gjërave
  • Numëruesi i pajtimtarëve të YouTube me ESP8266
  • Shfaqja e Gjurmuesit të Statistikave Sociale me ESP8266
  • Shfaqja e motit WiFi me ESP8266
  • Shën Valentin në internet

Për të vazhduar me atë që po punoj, më ndiqni në YouTube, Instagram, Twitter, Pinterest dhe Snapchat.

Recommended: