Tartalomjegyzék:

Napelemes talajnedvesség -mérő ESP8266 -mal: 10 lépés (képekkel)
Napelemes talajnedvesség -mérő ESP8266 -mal: 10 lépés (képekkel)

Videó: Napelemes talajnedvesség -mérő ESP8266 -mal: 10 lépés (képekkel)

Videó: Napelemes talajnedvesség -mérő ESP8266 -mal: 10 lépés (képekkel)
Videó: ESP8266 and Google Spreadsheet for soil moisture sensor and temperature monitoring 2024, Július
Anonim

Ebben az utasításban napelemes talajnedvesség -figyelőt készítünk. ESP8266 wifi mikrokontrollert használ, alacsony energiafogyasztású kóddal, és minden vízálló, így kint hagyható. Ezt a receptet pontosan követheti, vagy saját projektjeihez hasznos technikákat vehet át.

Ha még nem ismeri a mikrovezérlő programozását, nézze meg az Arduino osztályomat és a Dolgok Internetét, hogy megismerkedjen a vezetékek, a kódolás és az internethez való csatlakozás alapjaival.

Ez a projekt az ingyenes Solar osztályom része, ahol további módszereket tanulhatsz a napenergia gravírozással és napelemekkel történő hasznosítására.

Ha lépést akar tartani azzal, amin dolgozom, kövessen a YouTube -on, az Instagram -on, a Twitteren, a Pinteresten, és iratkozzon fel hírlevelemre.

1. lépés: Amire szüksége lesz

Amire szüksége lesz
Amire szüksége lesz

Szüksége lesz egy napelemes töltőlapra és egy ESP8266 -os kisütésre, például a NodeMCU ESP8266 vagy a Huzzah -ra, valamint egy talajérzékelőre, akkumulátorra, tápkapcsolóra, néhány vezetékre és egy házra, amellyel bekapcsolhatja az áramkört.

Itt vannak a talajnedvesség -monitorhoz használt alkatrészek és anyagok:

  • ESP8266 NodeMCU mikrokontroller (vagy hasonló, Vinnek 6 V -ig kell tűrnie)
  • Adafruit napelemes töltőkártya opcionális termisztorral és 2,2 K ohmos ellenállással
  • 2200mAh lítium-ion akkumulátor
  • Perma-proto tábla
  • Talaj nedvesség/hőmérséklet érzékelő
  • 2 kábel tömszelence
  • Vízálló burkolat
  • Vízálló DC tápkábel pár
  • Hőre zsugorodó cső
  • 3,5 W -os napelem
  • Nyomógombos tápkapcsoló
  • Dupla rúd habszalag

Íme a szükséges eszközök:

  • Forrasztópáka és forrasztópáka
  • Segítő kéz eszköz
  • Huzalhúzók
  • Flush snips
  • Csipesz (opcionális)
  • Hőpisztoly vagy öngyújtó
  • Multiméter (opcionális, de praktikus a hibaelhárításhoz)
  • USB A-microB kábel
  • Olló
  • Lépésfúró

Ingyenes fiókokra lesz szüksége az io.adafruit.com és az IFTTT felhőalapú webhelyeken.

Amazon -munkatársként a kapcsolt linkjeim segítségével végzett minősített vásárlásokból keresek.

2. lépés: Breadboard prototípus

Breadboard prototípus
Breadboard prototípus

Fontos, hogy hozzon létre egy forrasztás nélküli kenyeretábla prototípust az ilyen projektekhez, így az állandó kapcsolatok létrehozása előtt győződjön meg arról, hogy az érzékelő és a kód működik.

Kép
Kép
Kép
Kép
Kép
Kép
Kép
Kép

Ebben az esetben a talajérzékelő sodrott huzalokkal rendelkezik, ezért forrasztással, segítő kezekkel és némi hőre zsugorodó csővel ideiglenesen szilárd tömlőket kellett csatlakoztatni az érzékelő vezetékeinek végéhez.

Kép
Kép

Kövesse az áramköri diagramot az érzékelő tápellátásának, földelésének, órájának és adatcsapjainak bekötéséhez (az adatok 10K felhúzó ellenállást is kapnak a talajérzékelővel együtt).

  • Az érzékelő zöld vezetéke a GND -hez
  • Az érzékelő piros vezetéke 3.3V -ra
  • Érzékelő sárga vezeték a NodeMCU D5 tűhöz (GPIO 14)
  • Érzékelő kék vezeték a NodeMCU D6 tűhöz (GPIO 12)
  • 10K felhúzó ellenállás a kék adatcsap és a 3.3V között

Ezt lefordíthatja a kívánt mikrokontrollerre. Ha Arduino Uno -t vagy hasonlót használ, az alaplapot már támogatja az Arduino szoftver. Ha az ESP8266-ot használja, kérjük, tekintse meg a Dolgok Internetje osztályomat, ahol lépésről lépésre segítséget kap az ESP8266 beállításához Arduino-ban (kiegészítő URL-ek hozzáadásával az Arduino beállításaiban lévő További táblák kezelő URL-címek mezőhöz, majd keresse meg és új táblák kiválasztása a táblák kezelőjétől). Általában az Adafruit ESP8266 Huzzah tábla típusát használom a NodeMCU ESP8266 kártya programozásához, de telepítheti és használhatja az általános ESP8266 kártya támogatást is. Szüksége lesz a SiLabs USB kommunikációs chip -illesztőprogramjára is (Mac/Windows/Linux esetén).

Az Arduino-kompatibilis táblával való működés érdekében letöltöttem az SHT1x Arduino Library-t a Praktikus Arduino github oldaláról, majd kicsomagoltam a fájlt, és áthelyeztem a könyvtármappát az Arduino/libraries mappámba, majd átneveztem SHT1x-re. Nyissa meg a ReadSHT1xValues példavázlatot, és módosítsa a PIN -kódokat 12 -re (dataPin) és 14 -re (clockPin), vagy másolja ide a módosított vázlatot:

#befoglalni

#define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // azonnali SHT1x objektum void setup () {Serial.begin (38400); // Soros kapcsolat megnyitása az értékek jelentéséhez a Serial.println gazdagéphez ("Indítás"); } void loop () {float temp_c; float temp_f; úszó páratartalom; temp_c = sht1x.readTemperatureC (); // Értékek olvasása az érzékelőből temp_f = sht1x.readTemperatureF (); páratartalom = sht1x.readHumidity (); Serial.print ("Hőmérséklet:"); // Az értékek nyomtatása a soros portra Serial.print (temp_c, DEC); Soros.nyomtatás ("C /"); Soros.nyomtatás (temp_f, DEC); Soros.nyomtatás ("F. páratartalom:"); Soros.nyomtatás (páratartalom); Serial.println ("%"); késleltetés (2000); }

Töltse fel ezt a kódot a táblájára, és nyissa meg a soros monitort, hogy megtekinthesse az érzékelő adatfolyamát.

Ha a kód nem lesz lefordítva, és panaszkodik, hogy az SHT1x.h nem található, akkor nincs megfelelően telepítve a szükséges érzékelőkönyvtár. Ellenőrizze az Arduino/libraries mappában az SHT1x nevű mappát, és ha máshol van, például a letöltések mappában, akkor helyezze át az Arduino könyvtárak mappába, és szükség esetén nevezze át.

Ha a kód összeáll, de nem töltődik fel a táblára, ellenőrizze újra a tábla beállításait, győződjön meg arról, hogy a tábla be van dugva, és válassza ki a megfelelő portot az Eszközök menüből.

Ha a kód feltöltődik, de a soros monitor bemenete nem ismerhető fel, ellenőrizze kétszer az adatátviteli sebességet a vázlatában megadott értékekkel (ebben az esetben 38400).

Ha a soros monitor bemenete nem tűnik megfelelőnek, ellenőrizze a kábelezést az áramköri rajz szerint. A 10K felhúzó ellenállása a helyén van az adattű és a 3,3 V között? Az adatok és az óra a megfelelő csapokhoz van csatlakoztatva? A táp és a föld megfelelően van -e csatlakoztatva az egész áramkörben? Ne folytassa, amíg ez az egyszerű vázlat nem működik!

A következő lépés az ESP8266 -ra vonatkozik, és konfigurálja a mintaprojekt opcionális vezeték nélküli érzékelő jelentési részét. Ha szabványos (nem vezeték nélküli) Arduino-kompatibilis mikrokontrollert használ, folytassa az utolsó Arduino-vázlat kidolgozását, és ugorjon a Solar Charging Board előkészítéséhez.

3. lépés: Szoftver beállítása

Szoftver beállítása
Szoftver beállítása

A projekt kódjának összeállításához az ESP8266 segítségével telepítenie kell még néhány Arduino könyvtárat (elérhető a könyvtárkezelőn keresztül):

  • Adafruit IO Arduino
  • Adafruit MQTT
  • ArduinoHttpClient

Töltse le a lépéshez csatolt kódot, majd bontsa ki a fájlt, és nyissa meg a Solar_Powered_Soil_Moisture_Monitor_Tutorial programot az Arduino szoftverben.

#befoglalni

#include #include #include #include // Adatok és órakapcsolatok megadása és SHT1x objektum példányosítása #define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // a feed beállítása AdafruitIO_Feed *páratartalom = io.feed ("páratartalom"); AdafruitIO_Feed *hőmérséklet = io.feed ("hőmérséklet"); const int sleepTime = 15; // 15 perc

üres beállítás ()

{Serial.begin (115200); // Soros kapcsolat megnyitása az értékek jelentéséhez a Serial.println gazdagéphez ("Indítás"); // csatlakozás az io.adafruit.com Serial.print ("Csatlakozás az Adafruit IO -hoz"); io.connect (); // várjon a kapcsolatra, miközben (io.status () <AIO_CONNECTED) {Serial.print ("."); késleltetés (500); } // össze vagyunk kötve Serial.println (); Serial.println (io.statusText ()); }

üres hurok ()

{io.run (); // io.run (); kapcsolatban tartja az ügyfelet, és minden vázlathoz szükséges. float temp_c; float temp_f; úszó nedvesség; temp_c = sht1x.readTemperatureC (); // Értékek olvasása az érzékelőből temp_f = sht1x.readTemperatureF (); nedvesség = sht1x.readHumidity (); Serial.print ("Hőmérséklet:"); // Az értékek nyomtatása a soros portra Serial.print (temp_c, DEC); Soros.nyomtatás ("C /"); Soros.nyomtatás (temp_f, DEC); Soros.nyomtatás ("F. páratartalom:"); Soros.nyomtatás (nedvesség); Serial.println ("%"); páratartalom-> mentés (nedvesség); hőmérséklet-> mentés (temp_f); Serial.println ("ESP8266 alszik …"); ESP.deepSleep (sleepTime * 1000000 * 60); // Alvás}

Ez a kód az oktatóanyag korábbi szenzorkódjának töredéke, és az Adafruit IO felhőalapú adatszolgáltatás alapvető példája. A program energiatakarékos üzemmódba lép, és az idő nagy részében alszik, de 15 percenként felébred, hogy leolvassa a talaj hőmérsékletét és páratartalmát, és jelentéseit közli az Adafruit IO -val. Lépjen a config.h fülre, töltse ki az Adafruit IO felhasználónevét és kulcsát, valamint a helyi wifi hálózat nevét és jelszavát, majd töltse fel a kódot az ESP8266 mikrokontrollerére.

Kép
Kép

El kell készítenie egy kicsit az io.adafruit.com webhelyen. A hőmérsékletre és páratartalomra vonatkozó feedek létrehozása után létrehozhat egy műszerfalat a monitorhoz, amely grafikonon mutatja az érzékelő értékeit és a bejövő hírcsatornák adatait. Ha frissítésre van szüksége az Adafruit IO használatának megkezdéséhez, nézze meg ezt a leckét a tárgyak internete osztályában.

4. lépés: Készítse elő a napelemes töltőtáblát

Készítse elő a napelemes töltőtáblát
Készítse elő a napelemes töltőtáblát

Készítse elő a napelemes töltőlapot úgy, hogy forrasztja rá a kondenzátorát és néhány vezetéket a terheléskimeneti párnákra. Az enyémet testreszabom, hogy gyorsabban töltsek egy opcionális kiegészítő ellenállással (2,2 ezer forrasztva a PROG-on), és biztonságosabbá teszem a felügyelet nélkül hagyást, ha a felületszerelt ellenállást egy 10K-s termisztorra cserélem, amely az akkumulátorhoz van csatlakoztatva. Ez korlátozza a töltést biztonságos hőmérsékleti tartományba. Ezeket a módosításokat részletesebben ismertettem a Solar USB Charger projektemben.

5. lépés: Építse fel a mikrokontroller áramkört

Mikrokontroller áramkör építése
Mikrokontroller áramkör építése
Kép
Kép
Kép
Kép

Forrasztja fel a mikrokontroller kártyát és a tápkapcsolót egy perma-proto kártyára.

Kép
Kép

Csatlakoztassa a napelemes töltő teljesítményét a kapcsoló bemenetéhez, amelynek legalább 1 amper névleges értékűnek kell lennie.

Kép
Kép

Hozza létre és forrasztja a kenyérsütő deszkát a fenti kapcsolási rajzon (vagy a személyes verziójának előírásainak megfelelően) ismertetett módon, beleértve a 10K felhúzó ellenállást az érzékelő adatvezetékén.

A szolártöltő töltőcsapjai 3,7 V -os akkumulátort biztosítanak, ha nincs napelem, de közvetlenül a napelemről kapnak áramot, ha be van kapcsolva és napsütéses. Ezért a mikrokontrollernek képesnek kell lennie különféle feszültségek elviselésére, akár 3,7 V -tól 6 V -ig. Azok számára, akik 5 V -ot igényelnek, egy PowerBoost (500 vagy 1000, a szükséges áramtól függően) használható a terhelési feszültség 5 V -ra történő modulálására (a Solar USB Charger projektben látható módon). Íme néhány általános kártya és azok bemeneti feszültségtartománya:

  • NodeMCU ESP8266 (itt használt): 5V USB vagy 3,7V-10V Vin
  • Arduino Uno: 5V USB vagy 7-12V Vin
  • Adafruit Huzzah ESP8266 Breakout: 5V USB vagy 3,4-6V VBat

A lehető leghosszabb akkumulátor -élettartam elérése érdekében szánjon egy kis időt arra, hogy megfontolja és optimalizálja a jelenlegi áramot. Az ESP8266 mély alvás funkcióval rendelkezik, amelyet az Arduino vázlatában használtunk, hogy drámaian csökkentsük az energiafogyasztását. Felébred, hogy leolvassa az érzékelőt, és több áramot vesz fel, miközben csatlakozik a hálózathoz, hogy jelenthesse az érzékelő értékét, majd meghatározott időre visszatér alvó állapotba. Ha a mikrokontroller sok energiát fogyaszt, és nem lehet könnyen elaltatni, akkor fontolja meg a projekt átvitelét egy kompatibilis, kevesebb energiát fogyasztó táblára. Tegyen fel egy kérdést az alábbi megjegyzésekben, ha segítségre van szüksége annak meghatározásához, hogy melyik tábla lehet megfelelő a projekthez.

6. lépés: Szerelje be a tömszelencéket

Kép
Kép

Az időjárásálló belépési pontok kialakításához a napelem kábel és az érzékelő kábel számára két kábel tömszelencét telepítünk az időjárásálló ház oldalába.

Kép
Kép
Kép
Kép

Próbálja ki az alkatrészek illeszkedését az ideális elhelyezés azonosításához, majd jelölje meg és fúrja ki a lyukakat egy vízálló burkolatban egy lépésfúróval. Szerelje be a két tömszelencét.

Kép
Kép

7. lépés: Végezze el az áramkör szerelését

Teljesítse az áramköri szerelvényt
Teljesítse az áramköri szerelvényt

Helyezze be a vízálló tápkábel portoldalát az egyikbe, és forrasztja a napelemes töltő egyenáramú bemenetére (piros -tól + -ig, fekete pedig -).

Kép
Kép

Illessze be a talajérzékelőt a másik tömszelencébe, és csatlakoztassa a perma-proto-hoz a kapcsolási rajz szerint.

Kép
Kép

Ragassza a termisztoros szondát az akkumulátorra. Ez korlátozza a töltést egy biztonságos hőmérsékleti tartományba, miközben a projektet kint őrizetlenül hagyják.

Kép
Kép

A túl meleg vagy túl hideg töltés károsíthatja az akkumulátort vagy tüzet okozhat. A szélsőséges hőmérsékletnek való kitettség károsodást okozhat és lerövidítheti az akkumulátor élettartamát, ezért vigye be, ha fagypont alatt vagy 45 ℃ felett van.

Kép
Kép

Húzza meg a kábelcsavarokat, hogy időjárásálló tömítést kapjon a megfelelő kábelek körül.

8. lépés: A napelem előkészítése

Készítse elő a napelemet
Készítse elő a napelemet

Kövesse az utasításomat, hogy összekapcsolja a napelem kábelét a vízálló egyenáramú tápkábel készlet dugaszolt oldalával.

9. lépés: Tesztelje

Próbáld ki
Próbáld ki

Csatlakoztassa az akkumulátort, és kapcsolja be az áramkört a főkapcsoló megnyomásával.

Kép
Kép

Tesztelje le, és győződjön meg róla, hogy jelentést tesz az internetnek, mielőtt bezárja a házat, és telepíti az érzékelőt a gyógynövénykertjébe, értékes cserepes növényébe vagy más talajba a wifi -hálózat jeltartományában.

Kép
Kép

Miután az érzékelőből származó adatokat online naplózza, könnyű beállítani az e -mail vagy szöveges riasztások receptjét az API átjáró webhelyén, ha ez akkor. Beállítottam az enyémet, hogy küldjön e -mailt, ha a talaj nedvességtartalma 50 alá csökken.

Annak érdekében, hogy anélkül tesztelhessem, hogy megvárnám, amíg a növényem kiszárad, manuálisan beírtam egy adatpontot az Adafruit IO -n lévő páratartalom -táplálékba, amely a küszöb alá esett. Néhány pillanat múlva megérkezik az e -mail! Ha a talaj szintje a megadott szint alá süllyed, a takarmány frissítésekor e -mailt kapok, amíg meg nem öntözem a talajt. A józan ész érdekében frissítettem a kódomat, hogy sokkal ritkábban mint 15 percenként vegyen mintát a talajból.

10. lépés: Használja kívül

Használja kívül!
Használja kívül!
Használja kívül!
Használja kívül!

Ez egy szórakoztató projekt, amelyet személyre szabhat a növény hidratációs igényei alapján, és könnyen cserélhető vagy hozzáadható érzékelők, vagy integrálhatók a napenergia -szolgáltatások a többi Arduino -projektbe.

Köszönöm, hogy követtek! Szeretném hallani, mit gondolsz; kérjük, tegye közzé a megjegyzésekben. Ez a projekt része az ingyenes Solar osztályomnak, ahol egyszerű háztáji projekteket és további tanulságokat találhat a napelemekkel való munkáról. Nézd meg és jelentkezz!

Ha tetszik ez a projekt, akkor érdekelhet néhány más is:

  • ingyenes tárgyak internete osztály
  • YouTube -előfizetői számláló ESP8266 segítségével
  • Közösségi statisztikák nyomkövetője ESP8266 segítségével
  • WiFi időjárás kijelző ESP8266 segítségével
  • Valentin internet

Ha lépést akar tartani azzal, amin dolgozom, kövessen engem a YouTube -on, az Instagramon, a Twitteren, a Pinteresten és a Snapchaten.

Ajánlott: