Sisällysluettelo:

Solar Soil Moisture Meter ESP8266: 10 vaihetta (kuvilla)
Solar Soil Moisture Meter ESP8266: 10 vaihetta (kuvilla)

Video: Solar Soil Moisture Meter ESP8266: 10 vaihetta (kuvilla)

Video: Solar Soil Moisture Meter ESP8266: 10 vaihetta (kuvilla)
Video: Solar Soil Moisture Meter // Becky Stern 2024, Heinäkuu
Anonim

Tässä ohjeessa teemme aurinkokäyttöisen maaperän kosteusmonitorin. Se käyttää ESP8266 -wifi -mikrokontrolleria, joka käyttää pienitehoista koodia, ja kaikki on vedenpitävää, joten se voidaan jättää ulkopuolelle. Voit seurata tätä reseptiä tarkasti tai ottaa siitä hyödyllisiä tekniikoita omiin projekteihisi.

Jos olet uusi mikro -ohjaimen ohjelmoinnissa, tutustu Arduino -luokkaan ja esineiden internet -luokkaan saadaksesi tietää johdotuksen, koodauksen ja Internet -yhteyden muodostamisen perusteista.

Tämä projekti on osa ilmaista aurinkokurssiani, jossa voit oppia lisää tapoja hyödyntää auringon energiaa kaiverruksella ja aurinkopaneeleilla.

Jos haluat pysyä ajan tasalla siitä, mitä työskentelen, seuraa minua YouTubessa, Instagramissa, Twitterissä, Pinterestissä ja tilaa uutiskirjeeni.

Vaihe 1: Mitä tarvitset

Mitä tarvitset
Mitä tarvitset

Tarvitset aurinkoparistojen latauslevyn ja ESP8266 -katkaisun, kuten NodeMCU ESP8266 tai Huzzah, sekä maaperäanturin, akun, virtakytkimen, jonkin johtimen ja kotelon, jotta voit sijoittaa piirisi.

Tässä ovat maaperän kosteusmonitorin komponentit ja materiaalit:

  • ESP8266 NodeMCU -mikrokontrolleri (tai vastaava, Vinin on kestettävä jopa 6 V)
  • Adafruit -aurinkopaneelilatauslaite, jossa on valinnainen termistori ja 2,2 K ohmin vastus
  • 2200 mAh litiumioniakku
  • Perma-proto-levy
  • Maaperän kosteus-/lämpötila -anturi
  • 2 kaapelitiivistettä
  • Vedenpitävä kotelo
  • Vedenpitävä tasavirtajohtopari
  • Lämpökutistuva letku
  • 3,5 W aurinkopaneeli
  • Painonappikytkin
  • Kaksinkertainen vaahtoteippi

Tässä ovat tarvitsemasi työkalut:

  • Juotin ja juote
  • Auttavien käsien työkalu
  • Langanpoistimet
  • Huuhtele leikkeet
  • Pinsetit (valinnainen)
  • Lämpöpistooli tai kevyempi
  • Yleismittari (valinnainen, mutta kätevä vianetsintään)
  • USB A-microB -kaapeli
  • Sakset
  • Askelpora

Tarvitset ilmaisia tilejä pilvitietosivustoilla io.adafruit.com ja IFTTT.

Amazon -yhteistyökumppanina ansaitsen hyväksytyistä ostoista, joita teet kumppanilinkkien avulla.

Vaihe 2: Leipälevyn prototyyppi

Leipälevyn prototyyppi
Leipälevyn prototyyppi

On tärkeää luoda juottamaton leipälevyn prototyyppi tällaisia projekteja varten, jotta voit varmistaa, että anturi ja koodi toimivat, ennen kuin teet pysyviä yhteyksiä.

Kuva
Kuva
Kuva
Kuva
Kuva
Kuva
Kuva
Kuva

Tässä tapauksessa maaperäanturissa on kierretty johdot, joten oli välttämätöntä kiinnittää tilapäisesti otsat anturijohtojen päihin juottamalla, auttavilla käsillä ja joissakin kutisteputkissa.

Kuva
Kuva

Johda anturin virta-, maadoitus-, kello- ja datanastat piirikaavion mukaan (data saa myös 10K-vetovastusvastuksen, joka tulee maaperäanturin mukana).

  • Anturin vihreä johto GND: hen
  • Anturin punainen johto 3.3V: iin
  • Anturin keltainen johto NodeMCU -nastaan D5 (GPIO 14)
  • Anturin sininen johto NodeMCU -nastaan D6 (GPIO 12)
  • 10K vetovastus sinisen datanastan ja 3,3 V: n välillä

Voit kääntää tämän haluamallesi mikro -ohjaimelle. Jos käytät Arduino Unoa tai vastaavaa, Arduino -ohjelmisto tukee jo korttiasi. Jos käytät ESP8266: ta, tutustu esineiden Internet-luokkaani saadaksesi vaiheittaiset ohjeet ESP8266: n käyttöönotosta Arduinossa (lisäämällä lisä-URL-osoitteita Arduinon asetusten Lisäkorttien hallinnan URL-osoitteet -kenttään ja etsimällä ja uusien levyjen valitseminen hallituksen johtajalta). Käytän yleensä Adafruit ESP8266 Huzzah -korttityyppiä NodeMCU ESP8266 -kortin ohjelmointiin, mutta voit myös asentaa ja käyttää yleistä ESP8266 -levytukea. Tarvitset myös SiLabsin USB -tietoliikennepiiriohjaimen (saatavana Macille/Windowsille/Linuxille).

Saadakseni sensorin käyntiin Arduino-yhteensopivalla kortillani, latasin SHT1x Arduino Libraryn Käytännöllisen Arduinon github-sivulta, purkelin tiedoston pakkauksen ja siirrän kirjastokansion Arduino/libraries-kansioon ja nimein sen uudelleen SHT1x. Avaa esimerkkiluonnos ReadSHT1xValues ja muuta nastan numeroiksi 12 (dataPin) ja 14 (clockPin) tai kopioi muokattu luonnos tähän:

#sisältää

#define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // instantiate SHT1x object void setup () {Serial.begin (38400); // Avaa sarjaliitäntä raportoidaksesi arvot isännälle Serial.println ("Käynnistys"); } void loop () {float temp_c; float temp_f; kelluva kosteus; temp_c = sht1x.readTemperatureC (); // Lue arvot anturista temp_f = sht1x.readTemperatureF (); kosteus = sht1x.readHumidity (); Serial.print ("Lämpötila:"); // Tulosta arvot sarjaporttiin Serial.print (temp_c, DEC); Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Kosteus:"); Sarjajälki (kosteus); Serial.println ("%"); viive (2000); }

Lataa tämä koodi kortillesi ja avaa sarjamonitori nähdäksesi anturin tietovirran.

Jos koodisi ei käänny ja valittaa, että SHT1x.h ei löydy, tarvittavaa anturikirjastoa ei ole asennettu oikein. Tarkista, onko Arduino/libraries -kansiossasi SHT1x -nimistä kansiota, ja jos se on muualla, kuten latauskansio, siirrä se Arduino -kirjastojen kansioon ja nimeä se tarvittaessa uudelleen.

Jos koodisi kääntyy, mutta ei lataudu taululle, tarkista piirilevyn asetukset, varmista, että kortti on kytketty ja valitse oikea portti Työkalut -valikosta.

Jos koodisi latautuu, mutta sarjamonitorin tuloasi ei voi tunnistaa, tarkista siirtonopeutesi, joka vastaa luonnoksessasi määritettyä (tässä tapauksessa 38400).

Jos sarjamonitorisi tulo ei näytä oikealta, tarkista johdotus piirikaavion mukaan. Onko 10K-vetovastus paikallaan datatapin ja 3,3 V: n välillä? Onko data ja kello kytketty oikeisiin nastoihin? Onko virta ja maa kytketty niin kuin niiden pitäisi olla koko piirissä? Älä jatka, ennen kuin tämä yksinkertainen luonnos toimii!

Seuraava vaihe koskee ESP8266: ta ja määrittää näyteprojektin valinnaisen langattoman anturin raportointiosan. Jos käytät tavallista (ei-langatonta) Arduino-yhteensopivaa mikro-ohjainta, jatka viimeisen Arduino-luonnoksen kehittämistä ja siirry kohtaan Solar Charging Board.

Vaihe 3: Ohjelmiston asennus

Ohjelmiston asennus
Ohjelmiston asennus

Jotta voit kääntää tämän projektin koodin ESP8266: n avulla, sinun on asennettava vielä muutama Arduino -kirjasto (saatavana kirjastonhallinnan kautta):

  • Adafruit IO Arduino
  • Adafruit MQTT
  • ArduinoHttpClient

Lataa tähän vaiheeseen liitetty koodi, pura sitten tiedosto ja avaa Solar_Powered_Soil_Moisture_Monitor_Tutorial Arduino -ohjelmistossasi.

#sisältää

#include #include #include #include // Määritä data- ja kelloyhteydet ja luo SHT1x -objekti #define dataPin 12 // NodeMCU -nasta D6 #define clockPin 14 // NodeMCU -nasta D5 SHT1x sht1x (dataPin, clockPin); // aseta syöte AdafruitIO_Feed *kosteus = io.feed ("kosteus"); AdafruitIO_Feed *lämpötila = io.feed ("lämpötila"); const int sleepTime = 15; // 15 minuuttia

mitätön asennus ()

{Serial.begin (115200); // Avaa sarjayhteys raportoidaksesi arvot isännälle Serial.println ("Käynnistys"); // muodosta yhteys osoitteeseen io.adafruit.com Serial.print ("Yhdistäminen Adafruit IO: hon"); io.connect (); // odota yhteyttä, kun (io.status () <AIO_CONNECTED) {Serial.print ("."); viive (500); } // olemme yhteydessä Serial.println (); Serial.println (io.statusText ()); }

tyhjä silmukka ()

{io.run (); // io.run (); pitää asiakkaan yhteydessä ja vaaditaan kaikkiin luonnoksiin. float temp_c; float temp_f; kelluva kosteus; temp_c = sht1x.readTemperatureC (); // Lue arvot anturista temp_f = sht1x.readTemperatureF (); kosteus = sht1x.readHumidity (); Serial.print ("Lämpötila:"); // Tulosta arvot sarjaporttiin Serial.print (temp_c, DEC); Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Kosteus:"); Sarjajälki (kosteus); Serial.println ("%"); kosteus-> säästä (kosteus); lämpötila-> säästä (temp_f); Serial.println ("ESP8266 nukkuu…"); ESP.deepSleep (uniaika * 1000000 * 60); // Lepotila}

Tämä koodi on sekoitus tämän opetusohjelman aikaisemmasta anturikoodista ja perusesimerkki Adafruit IO -pilvipalvelusta. Ohjelma siirtyy virransäästötilaan ja nukkuu suurimman osan ajasta, mutta herää 15 minuutin välein lukemaan maaperän lämpötilan ja kosteuden ja raportoi tiedot Adafruit IO: lle. Siirry config.h -välilehdelle ja täytä Adafruit IO -käyttäjätunnuksesi ja -avaimesi sekä paikallisen wifi -verkon nimi ja salasana ja lataa koodi sitten ESP8266 -mikrokontrolleriisi.

Kuva
Kuva

Sinun on tehtävä vähän valmistelua sivustolla io.adafruit.com. Kun olet luonut syötteet lämpötilalle ja kosteudelle, voit luoda monitorillesi koontinäytön, jossa on kaavio anturin arvoista ja molempien saapuvien syötteiden tiedoista. Jos tarvitset kertausta Adafruit IO: n käytön aloittamiseen, tutustu tähän oppituntiin esineiden Internet -luokassa.

Vaihe 4: Valmista aurinkokennokortti

Valmista aurinkokenno
Valmista aurinkokenno

Valmistele aurinkopaneelin latauslevy juottamalla sen kondensaattori ja jotkut johdot kuorman ulostulotyynyihin. Mukautan omani lataamaan nopeammin lisävarusteena saatavalla lisävastuksella (2,2 kt juotettuna PROG: iin) ja teen turvallisemman ilman valvontaa vaihtamalla pinta-asennettavan vastuksen 10K: n termistoriin, joka on kiinnitetty itse akkuun. Tämä rajoittaa latauksen turvalliselle lämpötila -alueelle. Käsittelin näitä muutoksia tarkemmin Solar USB Charger -projektissani.

Vaihe 5: Rakenna mikrokontrolleripiiri

Rakenna mikrokontrolleripiiri
Rakenna mikrokontrolleripiiri
Kuva
Kuva
Kuva
Kuva

Juotta mikrokortti ja virtakytkin perma-proto-kortille.

Kuva
Kuva

Kytke aurinkolämmittimen ulostulo kytkimen tuloon, jonka tulee olla vähintään 1 ampeerin mittainen.

Kuva
Kuva

Luo ja juota yllä olevassa kytkentäkaaviossa kuvatut leipälevyn johdinliitännät (tai henkilökohtaisen version määritysten mukaan), mukaan lukien anturin tietolinjan 10K-vetovastus.

Aurinkolaturin latausnastat tarjoavat 3,7 V: n akkuvirran, kun aurinkoenergiaa ei ole, mutta se saa virtaa suoraan aurinkopaneelista, jos se on kytketty ja aurinkoinen. Siksi mikro -ohjaimen on kestettävä erilaisia jännitteitä, jopa 3,7 V ja jopa 6 V DC. Niille, jotka tarvitsevat 5 V: a, voidaan käyttää PowerBoostia (500 tai 1000, riippuen tarvittavasta virrasta) kuormitusjännitteen säätämiseksi 5 V: ksi (kuten Solar USB Charger -projektissa on esitetty). Tässä on joitain yleisiä levyjä ja niiden tulojännitealueita:

  • NodeMCU ESP8266 (käytetään tässä): 5V USB tai 3,7V-10V Vin
  • Arduino Uno: 5V USB tai 7-12V Vin
  • Adafruit Huzzah ESP8266 Breakout: 5V USB tai 3,4-6V VBat

Jotta akun käyttöikä olisi mahdollisimman pitkä, sinun kannattaa harkita ja optimoida nykyinen kokonaisvirta. ESP8266: ssa on syvän lepotilan ominaisuus, jota käytimme Arduino -luonnoksessa vähentämään sen virrankulutusta dramaattisesti. Se herää lukemaan anturin ja ottaa lisää virtaa, kun se muodostaa yhteyden verkkoon ilmoittaakseen anturin arvon, ja siirtyy sitten nukkumaan tietyn ajan. Jos mikro -ohjaimesi kuluttaa paljon virtaa eikä sitä voida helposti nukahtaa, harkitse projektin siirtämistä yhteensopivalle levylle, joka kuluttaa vähemmän virtaa. Pudota kysymys alla oleviin kommentteihin, jos tarvitset apua sen tunnistamisessa, mikä levy voisi sopia projektillesi.

Vaihe 6: Asenna kaapeliläpiviennit

Kuva
Kuva

Jotta aurinkopaneelikaapelille ja anturikaapelille saataisiin säänkestävät tulopisteet, asennamme kaksi kaapelitiivistettä säänkestävän kotelon sivulle.

Kuva
Kuva
Kuva
Kuva

Testaa komponenttisi sopivan sijoittelun löytämiseksi ja merkitse ja poraa reiät vedenpitävään koteloon askelporalla. Asenna kaksi kaapelitiivistettä.

Kuva
Kuva

Vaihe 7: Suorita piirikokoonpano

Täytä piirikokoonpano
Täytä piirikokoonpano

Työnnä vedenpitävän virtajohdon portti yhteen ja juota se aurinkolaturin tasavirtatuloon (punainen - + ja musta - -).

Kuva
Kuva

Työnnä maaperäanturi toisen tiivisteen läpi ja liitä se perma-protoon piirikaavion mukaisesti.

Kuva
Kuva

Teippaa termistorianturi akkuun. Tämä rajoittaa lataamisen turvalliselle lämpötila -alueelle, kun projekti jätetään ilman valvontaa ulkona.

Kuva
Kuva

Lataaminen liian kuumana tai liian kylmänä voi vahingoittaa akkua tai aiheuttaa tulipalon. Äärimmäisille lämpötiloille altistuminen voi vahingoittaa akkua ja lyhentää sen käyttöikää, joten tuo se sisälle, jos se on pakkasen alapuolella tai yli 45 ℃.

Kuva
Kuva

Kiristä kaapeliläpiviennit saadaksesi säänkestävän tiivisteen kaapeliensa ympärille.

Vaihe 8: Valmistele aurinkopaneeli

Valmista aurinkopaneeli
Valmista aurinkopaneeli

Liitä aurinkopaneelisi kaapeli ohjeiden mukaan aurinkopaneelisi kaapelin pistokepuolen kanssa.

Vaihe 9: Testaa

Testaa
Testaa

Kytke akku pistorasiaan ja kytke virta päälle painamalla virtakytkintä.

Kuva
Kuva

Testaa se ja varmista, että se raportoi Internetille ennen kotelon sulkemista ja anturin asentamista yrttitarhaan, arvokkaaseen ruukkukasviin tai muuhun maaperään wifi -verkon signaalialueella.

Kuva
Kuva

Kun anturin tiedot kirjataan verkkoon, on helppo määrittää resepti sähköposti- tai tekstihälytyksille API -yhdyskäytäväsivulla If This Then That. Määritin omani lähettämään minulle sähköpostia, jos maaperän kosteustaso laskee alle 50.

Jotta voisin testata sitä odottamatta kasvini kuivumista, annoin manuaalisesti datapisteen kosteusrehuuni Adafruit IO: ssa, joka laski kynnyksen alle. Muutama hetki myöhemmin sähköposti saapuu! Jos maaperän taso laskee määrittämäni tason alapuolelle, saan sähköpostin aina, kun rehu päivitetään, kunnes kastan maaperän. Terveyteni vuoksi päivitin koodini näytteen ottamiseksi maaperästä paljon harvemmin kuin 15 minuutin välein.

Vaihe 10: Käytä sitä ulkopuolella

Käytä sitä ulkona!
Käytä sitä ulkona!
Käytä sitä ulkona!
Käytä sitä ulkona!

Tämä on hauska projekti, joka voidaan räätälöidä laitoksesi nesteytystarpeiden perusteella, ja antureita on helppo vaihtaa tai lisätä tai aurinkovoimaominaisuuksia integroida muihin Arduino -projekteihisi.

Kiitos seurannasta! Haluaisin kuulla mielipiteesi; laita kommentteihin. Tämä projekti on osa ilmaista aurinkokurssiani, josta löydät helppoja takapihaprojekteja ja lisää oppitunteja aurinkopaneeleilla työskentelystä. Tarkista se ja ilmoittaudu mukaan!

Jos pidät tästä projektista, saatat olla kiinnostunut joistakin muista:

  • ilmainen esineiden internet -luokka
  • YouTuben tilaajalaskuri, jossa ESP8266
  • Sosiaalisten tilastojen seurannanäyttö ESP8266: lla
  • WiFi -säänäyttö ESP8266: lla
  • Internet Valentine

Jos haluat pysyä ajan tasalla siitä, mitä työskentelen, seuraa minua YouTubessa, Instagramissa, Twitterissä, Pinterestissä ja Snapchatissa.

Suositeltava: