INHOUDSOPGAWE:

Songrondvogmeter met ESP8266: 10 stappe (met foto's)
Songrondvogmeter met ESP8266: 10 stappe (met foto's)

Video: Songrondvogmeter met ESP8266: 10 stappe (met foto's)

Video: Songrondvogmeter met ESP8266: 10 stappe (met foto's)
Video: Как спрятать данные в ячейках Excel? 2024, November
Anonim

In hierdie instruksies maak ons 'n grondvogmonitor wat deur sonkrag aangedryf word. Dit gebruik 'n ESP8266 wifi -mikrokontroleerder met 'n lae krag kode, en alles is waterdig, sodat dit buite gelaat kan word. U kan hierdie resep presies volg, of die nuttige tegnieke vir u eie projekte daaruit neem.

As u nuut is in die programmering van mikrobeheerders, kyk dan na my Arduino Class en Internet of Things Class om kennis te maak met die basiese beginsels van bedrading, kodering en verbinding met die internet.

Hierdie projek is deel van my gratis sonklas, waar u meer maniere kan leer om die son se energie te benut deur gravure en sonpanele.

Volg my op YouTube, Instagram, Twitter, Pinterest en teken in op my nuusbrief om tred te hou met waaraan ek werk.

Stap 1: wat u benodig

Wat jy nodig het
Wat jy nodig het

U benodig 'n laaibord vir sonbatterye en 'n ESP8266 -deurbraak, soos die NodeMCU ESP8266 of Huzzah, sowel as 'n grondsensor, battery, kragskakelaar, draad en 'n omhulsel om u stroombaan binne te sit.

Hier is die komponente en materiale wat gebruik word vir die grondvogmonitor:

  • ESP8266 NodeMCU mikrokontroller (of soortgelyk, Vin moet tot 6V verdra)
  • Adafruit sonoplaaibord met opsionele termistor en 2.2K ohm weerstand
  • 2200 mAh Li-ion battery
  • Perma-proto bord
  • Grondvog/temperatuur sensor
  • 2 kabelwartels
  • Waterdigte omhulsel
  • Waterdigte gelykstroomkabelpaar
  • Krimpbuis
  • 3.5W sonpaneel
  • Drukknop aan / uit -skakelaar
  • Dubbele kleefband

Hier is die gereedskap wat u benodig:

  • Soldeerbout en soldeer
  • Helpende hande hulpmiddel
  • Draadstroppers
  • Spoel snitte
  • Pincet (opsioneel)
  • Hittegeweer of aansteker
  • Multimeter (opsioneel, maar handig om probleme op te los)
  • USB A-mikroB-kabel
  • Skêr
  • Stap boor

U benodig gratis rekeninge op wolkdata -webwerwe io.adafruit.com en IFTTT.

As Amazon -medewerker verdien ek uit kwalifiserende aankope wat u doen met my aangeslote skakels.

Stap 2: Breadboard prototipe

Broodbord prototipe
Broodbord prototipe

Dit is belangrik om 'n soldeerlose broodbordprototipe vir projekte soos hierdie te skep, sodat u kan seker maak dat u sensor en kode werk voordat u permanente verbindings maak.

Beeld
Beeld
Beeld
Beeld
Beeld
Beeld
Beeld
Beeld

In hierdie geval het die grondsensor drade wat gestrand is. Dit was nodig om soliede koppe tydelik aan die punte van die sensordrade vas te maak met soldeer, helpende hande en 'n paar krimpbuise.

Beeld
Beeld

Volg die stroombaan-diagram om die sensor se krag, grond, klok en datapennetjies op te dra (data kry ook 'n 10K optrekweerstand wat saam met die grondsensor kom).

  • Sensor groen draad na GND
  • Sensor rooi draad tot 3.3V
  • Sensor geel draad na NodeMCU -pen D5 (GPIO 14)
  • Sensor blou draad na NodeMCU -pen D6 (GPIO 12)
  • 10K optrekweerstand tussen blou dataspeld en 3.3V

U kan dit vertaal na u gunsteling mikrobeheerder. As u 'n Arduino Uno of soortgelyke gebruik, word u bord reeds ondersteun deur die Arduino -sagteware. As u die ESP8266 gebruik, kyk dan na my Internet of Things-klas vir stap-vir-stap hulp met die opstel van ESP8266 in Arduino (deur aanvullende URL's by te voeg in die veld Addisionele bestuurders-URL's in die voorkeure van Arduino, soek dan na en nuwe planke van die direksiebestuurder kies). Ek is geneig om die Adafruit ESP8266 Huzzah -bordtipe te gebruik om die NodeMCU ESP8266 -bord te programmeer, maar u kan ook die Generic ESP8266 -bordondersteuning installeer en gebruik. U benodig ook die SiLabs USB -kommunikasie -skyfbestuurder (beskikbaar vir Mac/Windows/Linux).

Om die sensor aan die gang te kry met my Arduino-versoenbare bord, laai ek die SHT1x Arduino-biblioteek af van Praktiese Arduino se github-bladsy, pak dan die lêer uit en skuif die biblioteekmap na my Arduino/biblioteke-lêergids, en verander dit daarna tot SHT1x. Maak die voorbeeldskets ReadSHT1xValues oop en verander die speldnommers na 12 (dataPin) en 14 (clockPin), of kopieer die gewysigde skets hier:

#insluit

#define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // installeer die opstel van SHT1x -voorwerp leemte () {Serial.begin (38400); // Maak seriële verbinding oop om waardes aan te bied by Serial.println ("opstart"); } leemte lus () {float temp_c; vlot temp_f; vlot humiditeit; temp_c = sht1x.readTemperatureC (); // Lees waardes van die sensor temp_f = sht1x.readTemperatureF (); humiditeit = sht1x.readHumidity (); Serial.print ("Temperatuur:"); // Druk die waardes na die seriële poort Serial.print (temp_c, DEC); Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Humiditeit:"); Reeks.afdruk (humiditeit); Serial.println ("%"); vertraging (2000); }

Laai hierdie kode op u bord op en maak die seriële monitor oop om die sensordatastroom in te sien.

As u kode nie saamstel nie en kla dat SHT1x.h nie gevind word nie, het u nie die nodige sensorbiblioteek behoorlik geïnstalleer nie. Kontroleer u gids Arduino/biblioteke vir een met die naam SHT1x, en as dit êrens anders is, soos u aflaai -lêergids, skuif dit na u gids Arduino biblioteke en hernoem dit indien nodig.

As u kode saamstel, maar nie na u bord oplaai nie, moet u u bordinstellings nagaan, seker wees dat u kaart ingeprop is en die regte poort in die menu Tools kies.

As u kode oplaai, maar u seriële monitorinvoer nie herkenbaar is nie, moet u die baud -tempo -ooreenstemmings wat in u skets gespesifiseer is, nagaan (38400 in hierdie geval).

As u ingang van die seriële monitor nie korrek lyk nie, kontroleer u bedrading weer teen die stroombaan -diagram. Is u 10K-optrekweerstand tussen die datapennetjie en 3.3V in plek? Is data en klok aan die regte penne gekoppel? Is krag en grond verbind soos dit regdeur die kring moet wees? Moenie voortgaan totdat hierdie eenvoudige skets werk nie!

Die volgende stap is spesifiek vir die ESP8266 en stel die opsionele gedeelte van die draadlose sensorverslag van die steekproef op. As u 'n standaard (nie-draadlose) Arduino-versoenbare mikrobeheerder gebruik, gaan voort met die ontwikkeling van u finale Arduino-skets en gaan na Prepare Solar Charging Board.

Stap 3: sagteware -opstelling

Opstelling van sagteware
Opstelling van sagteware

Om die kode vir hierdie projek met die ESP8266 saam te stel, moet u nog 'n paar Arduino -biblioteke installeer (beskikbaar by die biblioteekbestuurder):

  • Adafruit IO Arduino
  • Adafruit MQTT
  • ArduinoHttpClient

Laai die kode by hierdie stap af, pak die lêer uit en maak Solar_Powered_Soil_Moisture_Monitor_Tutorial oop in u Arduino -sagteware.

#insluit

#include #include #include #include // Spesifiseer data en klokverbindings en instansieer SHT1x -voorwerp #definieer dataPin 12 // NodeMCU -pen D6 #definieer klokPin 14 // NodeMCU -pen D5 SHT1x sht1x (dataPin, clockPin); // stel die voer op AdafruitIO_Feed *humiditeit = io.feed ("humiditeit"); AdafruitIO_Feed *temperatuur = io.feed ("temperatuur"); const int slaapTyd = 15; // 15 minute

leemte opstelling ()

{Serial.begin (115200); // Maak seriële verbinding oop om waardes aan te bied by Serial.println ("opstart"); // maak verbinding met io.adafruit.com Serial.print ("Koppel aan Adafruit IO"); io.connect (); // wag vir 'n verbinding terwyl (io.status () <AIO_CONNECTED) {Serial.print ("."); vertraging (500); } // ons is verbind Serial.println (); Serial.println (io.statusText ()); }

leemte lus ()

{io.run (); // io.run (); hou die kliënt verbind en word benodig vir alle sketse. vlot temp_c; vlot temp_f; drywende vog; temp_c = sht1x.readTemperatureC (); // Lees waardes van die sensor temp_f = sht1x.readTemperatureF (); vog = sht1x.readHumidity (); Serial.print ("Temperatuur:"); // Druk die waardes na die seriële poort Serial.print (temp_c, DEC); Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Humiditeit:"); Reeks.afdruk (vog); Serial.println ("%"); humiditeit-> bespaar (vog); temperatuur-> stoor (temp_f); Serial.println ("ESP8266 slaap …"); ESP.deepSleep (sleepTime * 1000000 * 60); // Slaap}

Hierdie kode is 'n samevoeging van die sensorkode van vroeër in hierdie tutoriaal en 'n basiese voorbeeld van die wolkdatadiens Adafruit IO. Die program gaan in die laesterkte -modus en slaap meestal, maar word elke 15 minute wakker om die temperatuur en humiditeit van die grond te lees, en rapporteer sy data aan Adafruit IO. Navigeer na die config.h -oortjie en vul u Adafruit IO -gebruikersnaam en -sleutel, sowel as die naam en wagwoord van u plaaslike wifi -netwerk in, laai dan die kode op na u ESP8266 -mikrobeheerder.

Beeld
Beeld

U sal 'n bietjie voorbereiding moet doen op io.adafruit.com. Nadat u voedings vir temperatuur en humiditeit geskep het, kan u 'n paneelbord vir u monitor skep met 'n grafiek van die sensorwaardes en albei inkomende feeds se data. As u 'n opknapping nodig het om aan die gang te kom met Adafruit IO, kyk dan na hierdie les in my Internet of Things -klas.

Stap 4: Berei sonkraglaaibord voor

Berei sonkraglaaibord voor
Berei sonkraglaaibord voor

Berei die sonlaaibord voor deur op die kondensator en 'n paar drade aan die laai -uitsetblokkies te soldeer. Ek pas myne aan om vinniger te laai met 'n opsionele byvoegingsweerstand (2.2K gesoldeer in PROG) en maak dit veiliger om sonder toesig te vertrek deur die weerstand op die oppervlak te vervang deur 'n 10K termistor wat aan die battery self is. Dit sal laai tot 'n veilige temperatuurreeks beperk. Ek het hierdie wysigings in meer besonderhede behandel in my Solar USB -laaierprojek.

Stap 5: Bou 'n mikrobeheerkring

Bou 'n mikrobeheerkring
Bou 'n mikrobeheerkring
Beeld
Beeld
Beeld
Beeld

Soldeer die mikrokontrollerbord en die skakelaar na 'n perma-proto-bord.

Beeld
Beeld

Koppel die kragopbrengs van die sonlaaier aan die ingang van u skakelaar, wat ten minste 1 ampère moet wees.

Beeld
Beeld

Skep en soldeer die broodborddraadverbindings wat in die stroombaandiagram hierbo beskryf word (of volgens die spesifikasies van u persoonlike weergawe), insluitend die 10K-optrekweerstand op die sensor se datalyn.

Die laaipennetjies van die sonkraglaaier bied 3,7V batterykrag as daar geen sonkrag bestaan nie, maar word direk vanaf die sonpaneel gevoed as dit ingeprop en sonnig is. Daarom moet die mikrobeheerder verskillende spannings, so laag as 3,7V en tot 6V DC, kan verdra. Vir diegene wat 5V benodig, kan 'n PowerBoost (500 of 1000, afhangend van die benodigde stroom) gebruik word om die Laadspanning tot 5V te moduleer (soos getoon in die Solar USB Charger -projek). Hier is 'n paar algemene borde en hul ingangspanningsreekse:

  • NodeMCU ESP8266 (hier gebruik): 5V USB of 3.7V-10V Vin
  • Arduino Uno: 5V USB of 7-12V Vin
  • Adafruit Huzzah ESP8266 Breakout: 5V USB of 3.4-6V VBat

Om die langste batteryleeftyd te bereik, moet u 'n rukkie neem om die totale stroom wat u huidige trek, te oorweeg en te optimaliseer. Die ESP8266 het 'n diep slaapfunksie wat ons in die Arduino -skets gebruik het om sy kragverbruik dramaties te verminder. Dit word wakker om die sensor te lees en trek meer stroom terwyl dit met die netwerk verbind word om die waarde van die sensor te rapporteer, en dan weer vir 'n bepaalde tyd terug te slaap. As u mikrobeheerder baie krag trek en nie maklik kan laat slaap nie, kan u dit oorweeg om u projek na 'n versoenbare bord te stuur wat minder krag trek. Stel 'n vraag in die kommentaar hieronder as u hulp nodig het om te identifiseer watter bord die beste by u projek kan pas.

Stap 6: Installeer kabelwartels

Beeld
Beeld

Om weerbestande toegangspunte vir die sonpaneelkabel en sensorkabel te maak, installeer ons twee kabelwartels aan die kant van die weerbestande omhulsel.

Beeld
Beeld
Beeld
Beeld

Toets pas by u komponente om die ideale plasing te identifiseer, merk en boor dan gate in 'n waterdigte omhulsel met 'n trapboor. Installeer die twee kabelwartels.

Beeld
Beeld

Stap 7: Voltooi stroombaanbyeenkoms

Volledige stroombaanbyeenkoms
Volledige stroombaanbyeenkoms

Steek die poortkant van 'n waterdigte kragkabel in een en soldeer dit aan die DC -ingang van die sonlaaier (rooi tot + en swart tot -).

Beeld
Beeld

Steek die grondsensor deur die ander klier en verbind dit volgens die kringdiagram met die perma-proto.

Beeld
Beeld

Plak die termistorsonde op die battery vas. Dit beperk die laai tot 'n veilige temperatuur, terwyl die projek sonder toesig buite gelaat word.

Beeld
Beeld

Laai terwyl dit te warm of te koud is, kan die battery beskadig of 'n brand veroorsaak. Blootstelling aan uiterste temperature kan skade veroorsaak en die batterylewe verkort, dus bring dit binne as dit onder die vriespunt of bo 45 ℃/113F is.

Beeld
Beeld

Draai die kabeldraaiers vas om 'n weerbestande seël om hul onderskeie kabels te maak.

Stap 8: Berei sonpaneel voor

Berei die sonpaneel voor
Berei die sonpaneel voor

Volg my instruksies om die kabel vir u sonpaneel te verbind met die propkant van die waterdigte DC -kragkabelstel.

Stap 9: Toets dit

Toets dit
Toets dit

Koppel u battery aan en skakel die kring aan deur op die aan / uit -skakelaar te druk.

Beeld
Beeld

Toets dit en maak seker dat dit by die internet aanmeld voordat u die omhulsel toemaak en die sensor in u kruietuin, kosbare potplant of ander grond binne die seinbereik van u wifi -netwerk installeer.

Beeld
Beeld

Sodra die data van die sensor aanlyn aangemeld is, is dit maklik om 'n resep op te stel vir e -pos- of tekswaarskuwings op die API -gateway -webwerf If This Then That. Ek het myne opgestel om my te e -pos as die grondvogvlak onder 50 daal.

Om dit te toets sonder om te wag totdat my plant opdroog, het ek met die hand 'n gegewenspunt op my humiditeitsvoer op Adafruit IO ingevoer wat onder die drempel val. 'N Paar oomblikke later kom die e -pos! As die grond se vlakke onder my gespesifiseerde vlak val, kry ek 'n e -pos elke keer as die voer opgedateer word totdat ek die grond natmaak. Vir my gesonde verstand het ek my kode bygewerk om die grond baie minder gereeld as elke 15 minute te proe.

Stap 10: Gebruik dit buite

Gebruik dit buite!
Gebruik dit buite!
Gebruik dit buite!
Gebruik dit buite!

Dit is 'n prettige projek om aan te pas op grond van die hidrasiebehoeftes van u plant, en dit is maklik om sensors uit te ruil of by te voeg of die sonkragfunksies in u ander Arduino -projekte te integreer.

Dankie dat u saamgevolg het! Ek hoor graag wat jy dink; plaas dit asseblief in die kommentaar. Hierdie projek is deel van my gratis sonklas, waar u maklike agterplaasprojekte en meer lesse oor die werk met sonpanele kan vind. Check dit uit en skryf in!

As u van hierdie projek hou, sal u dalk in sommige van my ander belangstel:

  • gratis Internet of Things -klas
  • YouTube -intekenaarteller met ESP8266
  • Sosiale statistieke -spoorsnyer met ESP8266
  • WiFi weerskerm met ESP8266
  • Internet Valentine

Volg my op YouTube, Instagram, Twitter, Pinterest en Snapchat om tred te hou met waaraan ek werk.

Aanbeveel: