Sisällysluettelo:
- Vaihe 1: Mitä tarvitset
- Vaihe 2: Leipälevyn prototyyppi
- Vaihe 3: Ohjelmiston asennus
- Vaihe 4: Valmista aurinkokennokortti
- Vaihe 5: Rakenna mikrokontrolleripiiri
- Vaihe 6: Asenna kaapeliläpiviennit
- Vaihe 7: Suorita piirikokoonpano
- Vaihe 8: Valmistele aurinkopaneeli
- Vaihe 9: Testaa
- Vaihe 10: Käytä sitä ulkopuolella
Video: Solar Soil Moisture Meter ESP8266: 10 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 08:59
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
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
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ä.
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.
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
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.
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
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
Juotta mikrokortti ja virtakytkin perma-proto-kortille.
Kytke aurinkolämmittimen ulostulo kytkimen tuloon, jonka tulee olla vähintään 1 ampeerin mittainen.
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
Jotta aurinkopaneelikaapelille ja anturikaapelille saataisiin säänkestävät tulopisteet, asennamme kaksi kaapelitiivistettä säänkestävän kotelon sivulle.
Testaa komponenttisi sopivan sijoittelun löytämiseksi ja merkitse ja poraa reiät vedenpitävään koteloon askelporalla. Asenna kaksi kaapelitiivistettä.
Vaihe 7: Suorita piirikokoonpano
Työnnä vedenpitävän virtajohdon portti yhteen ja juota se aurinkolaturin tasavirtatuloon (punainen - + ja musta - -).
Työnnä maaperäanturi toisen tiivisteen läpi ja liitä se perma-protoon piirikaavion mukaisesti.
Teippaa termistorianturi akkuun. Tämä rajoittaa lataamisen turvalliselle lämpötila -alueelle, kun projekti jätetään ilman valvontaa ulkona.
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 ℃.
Kiristä kaapeliläpiviennit saadaksesi säänkestävän tiivisteen kaapeliensa ympärille.
Vaihe 8: Valmistele aurinkopaneeli
Liitä aurinkopaneelisi kaapeli ohjeiden mukaan aurinkopaneelisi kaapelin pistokepuolen kanssa.
Vaihe 9: Testaa
Kytke akku pistorasiaan ja kytke virta päälle painamalla virtakytkintä.
Testaa se ja varmista, että se raportoi Internetille ennen kotelon sulkemista ja anturin asentamista yrttitarhaan, arvokkaaseen ruukkukasviin tai muuhun maaperään wifi -verkon signaalialueella.
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
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:
Arduino CUBIC METER: 3 vaihetta (kuvilla)
Arduino CUBIC METER: Lähetetyn projektin on suunnitellut ja ohjelmoinut Rodrigo Mejías (Santiago-CHILE) Tuote koostuu yksinkertaisesta lineaarisesta etäisyydestä, neliömetreistä kuutiometreihin. Koska käytämme HC-SR04-ultraääni-antureita, etäisyyksien ei pitäisi
Vu Meter DJ Stand: 8 vaihetta (kuvilla)
Vu Meter DJ Stand: DJ -teline, joka on luotu osana opiskelijajuhlaa. Siinä on 480 LEDiä (WS2812B), jotka valaisevat 80 PMMA -lohkoa. LEDit syttyvät musiikin mukaan ja muodostavat Vu -mittarin
A Micro: bit Dive-O-Meter: 8 vaihetta (kuvilla)
Micro: bit Dive-O-Meter: Kesä on täällä, sen uima-aika! -Tässä kuvattu mittari on yksinkertainen DIY -syvyysmittari, jonka avulla voit mitata kuinka syvä
Smart-Meter Radiation Shield: 11 vaihetta (kuvilla)
Smart-Meter Radiation Shield: Uudet älykkäät mittarit, jotka sähköyhtiömme on asentanut taloni, lähettävät tehokkaan " WiFi " signaaleja purskeina. Olen huolissani näiden mikroaaltojen pitkäaikaisista terveysvaikutuksista ja siksi päätin tehdä
Skate-o-Meter: 7 vaihetta (kuvilla)
Skate-o-Meter: Olen Howest Kortrijkin opiskelija. Osoittaaksemme taitomme projektin rakentamiseen tarvittaville luennoitsijoille, päätin luoda matkamittarin ja nopeusmittarin rullalautaani RFID -skannerilla. Tässä ohjeessa haluan kertoa, miten tein tämän projektin