Turinys:
- 1 žingsnis: ko jums reikės
- 2 žingsnis: „Breadboard“prototipas
- 3 veiksmas: programinės įrangos sąranka
- 4 žingsnis: Paruoškite saulės įkrovimo plokštę
- 5 žingsnis: sukurkite mikrovaldiklio grandinę
- 6 žingsnis: sumontuokite kabelio riebokšlius
- 7 žingsnis: Užbaikite grandinės surinkimą
- 8 žingsnis: Paruoškite saulės kolektorių
- 9 žingsnis: išbandykite
- 10 žingsnis: naudokite jį lauke
Video: Saulės dirvožemio drėgmės matuoklis su ESP8266: 10 žingsnių (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
Šioje instrukcijoje mes gaminame saulės energija varomą dirvožemio drėgmės monitorių. Jis naudoja ESP8266 „Wi -Fi“mikrovaldiklį, veikiantį mažos galios kodu, ir viskas yra atspari vandeniui, todėl jį galima palikti lauke. Galite tiksliai sekti šį receptą arba pasinaudoti jo naudingomis technikomis savo projektams.
Jei nesate susipažinę su mikrovaldiklių programavimu, peržiūrėkite mano „Arduino“klasę ir daiktų interneto klasę, kad sužinotumėte apie laidų, kodavimo ir prisijungimo prie interneto pagrindus.
Šis projektas yra mano nemokamos saulės klasės dalis, kurioje galite sužinoti daugiau būdų, kaip panaudoti saulės energiją graviravimu ir saulės baterijomis.
Norėdami neatsilikti nuo to, ką dirbu, sekite mane „YouTube“, „Instagram“, „Twitter“, „Pinterest“ir užsiprenumeruokite mano naujienlaiškį.
1 žingsnis: ko jums reikės
Jums reikės saulės baterijų įkrovimo plokštės ir ESP8266, pvz., „NodeMCU ESP8266“arba „Huzzah“, taip pat dirvožemio jutiklio, akumuliatoriaus, maitinimo jungiklio, šiek tiek laido ir gaubto, kad galėtumėte įjungti grandinę.
Čia yra sudedamosios dalys ir medžiagos, naudojamos dirvožemio drėgmės monitoriui:
- ESP8266 „NodeMCU“mikrovaldiklis (arba panašus, „Vin“turi toleruoti iki 6 V)
- „Adafruit“saulės įkrovimo plokštė su papildomu termistoriumi ir 2,2 K omo rezistoriumi
- 2200 mAh ličio jonų baterija
- „Perma-proto“lenta
- Dirvožemio drėgmės/temperatūros jutiklis
- 2 kabelių sandarikliai
- Neperšlampamas gaubtas
- Vandeniui atspari nuolatinės srovės maitinimo kabelių pora
- Termiškai susitraukiantis vamzdis
- 3,5 W saulės kolektorius
- Mygtuko maitinimo jungiklis
- Dviguba lipni putplasčio juosta
Štai įrankiai, kurių jums reikės:
- Lituoklis ir lituoklis
- Pagalbos rankų įrankis
- Vielos nuėmikliai
- Flush snips
- Pincetai (neprivaloma)
- Šilumos pistoletas arba žiebtuvėlis
- Multimetras (pasirenkamas, bet patogus trikčių šalinimui)
- USB A-microB kabelis
- Žirklės
- Žingsnis gręžtuvas
Jums reikės nemokamų paskyrų debesų duomenų svetainėse io.adafruit.com ir IFTTT.
Kaip „Amazon“asocijuotas asmuo uždirbu iš kvalifikuotų pirkinių, kuriuos atliekate naudodami mano filialų nuorodas.
2 žingsnis: „Breadboard“prototipas
Tokiems projektams svarbu sukurti prototipą be litavimo duonos lentos, todėl prieš užmezgdami nuolatinius ryšius galite įsitikinti, kad jutiklis ir kodas veikia.
Šiuo atveju dirvožemio jutiklis turi įstrigusius laidus, todėl prie jutiklio laidų galų reikia laikinai pritvirtinti tvirtas antraštes, naudojant lydmetalį, pagalbos rankas ir kai kuriuos termiškai susitraukiančius vamzdžius.
Sekite grandinės schemą, kad prijungtumėte jutiklio galią, įžeminimą, laikrodį ir duomenų kaiščius (duomenys taip pat gauna 10K ištraukimo rezistorių, gautą kartu su dirvožemio jutikliu).
- Jutiklio žalia viela prie GND
- Raudonas jutiklis iki 3.3V
- Jutiklis geltona viela prie „NodeMCU“kaiščio D5 (GPIO 14)
- Jutiklis mėlynas laidas prie „NodeMCU“kaiščio D6 (GPIO 12)
- 10K ištraukiamas rezistorius tarp mėlyno duomenų kaiščio ir 3.3V
Tai galite išversti į pageidaujamą mikrovaldiklį. Jei naudojate „Arduino Uno“ar panašų, jūsų plokštę jau palaiko „Arduino“programinė įranga. Jei naudojate ESP8266, peržiūrėkite mano daiktų interneto klasę, kur žingsnis po žingsnio padedama nustatyti ESP8266 „Arduino“(pridėjus papildomų URL prie „Arduino“nuostatų lauko „Papildomų lentų tvarkyklės URL“, tada ieškant ir naujų lentų parinkimas iš lentų valdytojo). Aš linkęs naudoti „Adafruit ESP8266 Huzzah“plokštės tipą programuoti „NodeMCU ESP8266“plokštę, tačiau taip pat galite įdiegti ir naudoti bendrąjį ESP8266 plokštės palaikymą. Jums taip pat reikės „SiLabs“USB ryšio mikroschemų tvarkyklės (galima „Mac“/„Windows“/„Linux“).
Norėdami, kad jutiklis pradėtų veikti su „Arduino“suderinama plokšte, aš atsisiunčiau „SHT1x Arduino“biblioteką iš „Praktinio„ Arduino “„ github “puslapio, tada išpakavau failą ir perkėliau bibliotekos aplanką į savo„ Arduino “/bibliotekų aplanką, tada pervadinau jį į SHT1x. Atidarykite eskizo „ReadSHT1xValues“pavyzdį ir pakeiskite kaiščio numerius į 12 („dataPin“) ir 14 („clockPin“) arba nukopijuokite modifikuotą eskizą čia:
#įtraukti
#define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // momentinis SHT1x objekto void setup () {Serial.begin (38400); // Atidarykite nuoseklųjį ryšį, kad praneštų reikšmes prieglobai Serial.println ("Paleidimas"); } void loop () {float temp_c; plūdė temp_f; plūdės drėgmė; temp_c = sht1x.readTemperatureC (); // Skaitykite reikšmes iš jutiklio temp_f = sht1x.readTemperatureF (); drėgmė = sht1x.readHumidity (); Serial.print ("Temperatūra:"); // Spausdinkite reikšmes į nuoseklųjį prievadą Serial.print (temp_c, DEC); Serial.print („C /“); Serial.print (temp_f, DEC); Serial.print ("F. Drėgmė:"); Serijinis atspaudas (drėgmė); Serial.println ("%"); vėlavimas (2000 m.); }
Įkelkite šį kodą į savo plokštę ir atidarykite serijinį monitorių, kad pamatytumėte jutiklio duomenų srautą.
Jei jūsų kodas nebus sukompiliuotas ir skundžiasi, kad SHT1x.h nerastas, reikiama jutiklių biblioteka nėra tinkamai įdiegta. Patikrinkite, ar Arduino/bibliotekų aplanke nėra SHT1x, o jei jis yra kažkur kitur, pvz., Atsisiuntimų aplanke, perkelkite jį į savo „Arduino“bibliotekų aplanką ir, jei reikia, pervardykite.
Jei jūsų kodas sukompiliuotas, bet neįkeltas į lentą, dar kartą patikrinkite plokštės nustatymus, įsitikinkite, kad plokštė prijungta prie tinklo, ir pasirinkite tinkamą prievadą meniu Įrankiai.
Jei jūsų kodas įkeliamas, bet serijinio monitoriaus įvestis neatpažįstama, dar kartą patikrinkite, ar jūsų duomenų perdavimo greitis atitinka jūsų eskizą (šiuo atveju 38400).
Jei serijinio monitoriaus įvestis neatrodo teisinga, dar kartą patikrinkite laidus pagal grandinės schemą. Ar jūsų 10K ištraukimo rezistorius yra tarp duomenų kaiščio ir 3,3 V? Ar duomenys ir laikrodis prijungti prie tinkamų kaiščių? Ar maitinimas ir žemė yra prijungti taip, kaip turėtų būti visoje grandinėje? Negalima tęsti, kol šis paprastas eskizas neveikia!
Kitas žingsnis yra būdingas ESP8266 ir sukonfigūruoja pasirenkamą belaidžio jutiklio ataskaitų teikimo pavyzdžio projektą. Jei naudojate standartinį (belaidį) „Arduino“suderinamą mikrovaldiklį, toliau kurkite paskutinį „Arduino“eskizą ir pereikite prie „Saulės įkrovimo plokštės paruošimo“.
3 veiksmas: programinės įrangos sąranka
Norėdami surinkti šio projekto kodą naudodami ESP8266, turėsite įdiegti dar kelias „Arduino“bibliotekas (jas galima rasti per bibliotekos tvarkyklę):
- „Adafruit IO Arduino“
- Adafruit MQTT
- „ArduinoHttpClient“
Atsisiųskite prie šio veiksmo pridėtą kodą, tada išpakuokite failą ir atidarykite „Solar_Powered_Soil_Moisture_Monitor_Tutorial“savo „Arduino“programinėje įrangoje.
#įtraukti
#include #include #include #include // Nurodykite duomenis ir laikrodžio jungtis ir parodykite SHT1x objektą #define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // nustatyti kanalą AdafruitIO_Feed *drėgmė = io.feed ("drėgmė"); AdafruitIO_Feed *temperatūra = io.feed ("temperatūra"); const int sleepTime = 15; // 15 minučių
negaliojanti sąranka ()
{Serial.begin (115200); // Atidarykite nuoseklųjį ryšį, kad praneštų reikšmes prieglobai Serial.println ("Paleidimas"); // prisijungti prie io.adafruit.com Serial.print („Prisijungimas prie„ Adafruit IO ““); io.connect (); // laukti ryšio, kol (io.status () <AIO_CONNECTED) {Serial.print ("."); vėlavimas (500); } // mes prisijungę Serial.println (); Serial.println (io.statusText ()); }
tuštumos kilpa ()
{io.run (); // io.run (); palaiko ryšį su klientu ir yra reikalingas visiems eskizams. plūdė temp_c; plūdė temp_f; plaukiojanti drėgmė; temp_c = sht1x.readTemperatureC (); // Skaitykite reikšmes iš jutiklio temp_f = sht1x.readTemperatureF (); drėgmė = sht1x.readHumidity (); Serial.print ("Temperatūra:"); // Spausdinkite reikšmes į nuoseklųjį prievadą Serial.print (temp_c, DEC); Serial.print („C /“); Serial.print (temp_f, DEC); Serial.print ("F. Drėgmė:"); Serijinis atspaudas (drėgmė); Serial.println ("%"); drėgmė-> taupyti (drėgmė); temperatūra-> taupyti (temp_f); Serial.println ("ESP8266 miega …"); ESP.deepSleep (sleepTime * 1000000 * 60); // Miegas}
Šis kodas yra ankstesnio šio vadovo jutiklio kodo mišinys ir pagrindinis pavyzdys iš debesų duomenų tarnybos „Adafruit IO“. Programa įjungia mažos galios režimą ir didžiąją laiko dalį miega, tačiau pabunda kas 15 minučių, kad nuskaitytų dirvožemio temperatūrą ir drėgmę, ir praneša savo duomenis „Adafruit IO“. Eikite į skirtuką config.h ir įveskite „Adafruit IO“vartotojo vardą ir raktą, taip pat vietinio „Wi -Fi“tinklo pavadinimą ir slaptažodį, tada įkelkite kodą į savo ESP8266 mikrovaldiklį.
Turėsite šiek tiek pasiruošti svetainėje io.adafruit.com. Sukūrę temperatūros ir drėgmės kanalus, galite sukurti monitoriaus prietaisų skydelį su jutiklių verčių grafiku ir abiejų gaunamų sklaidos kanalų duomenimis. Jei jums reikia atnaujinimo pradedant „Adafruit IO“, peržiūrėkite šią pamoką mano daiktų interneto klasėje.
4 žingsnis: Paruoškite saulės įkrovimo plokštę
Paruoškite saulės energijos įkrovimo plokštę, lituodami ant jo kondensatoriaus ir kai kurių laidų prie apkrovos išvesties pagalvėlių. Aš pritaikau savo akumuliatorių, kad jis būtų įkraunamas greičiau naudojant papildomą papildomą rezistorių (2,2 tūkst. Lituojamą per PROG) ir kad būtų saugiau palikti be priežiūros, ant paviršiaus tvirtinamą rezistorių pakeičiant 10K termistoriumi, pritvirtintu prie pačios baterijos. Tai apribos įkrovimą iki saugaus temperatūros diapazono. Šiuos pakeitimus išsamiau aptariau savo „Solar USB Charger“projekte.
5 žingsnis: sukurkite mikrovaldiklio grandinę
Lituokite mikrovaldiklio plokštę ir maitinimo jungiklį į „perma-proto“plokštę.
Prijunkite saulės energijos įkroviklio išvestį prie savo jungiklio įvesties, kuri turi būti įvertinta bent 1 amperu.
Sukurkite ir lituokite duonos lentos laidų jungtis, aprašytas aukščiau esančioje schemoje (arba pagal jūsų asmeninės versijos specifikacijas), įskaitant 10K ištraukimo rezistorių jutiklio duomenų linijoje.
Saulės įkroviklio įkrovimo kaiščiai suteiks 3,7 V akumuliatoriaus energiją, kai nėra saulės energijos, tačiau bus maitinama tiesiai iš saulės kolektoriaus, jei jis yra prijungtas ir saulėtas. Todėl mikrovaldiklis turi atlaikyti įvairias įtampas - nuo 3,7 V iki 6 V DC. Tiems, kuriems reikalinga 5 V įtampa, „PowerBoost“(500 arba 1000, priklausomai nuo reikalingos srovės) gali būti naudojama apkrovos įtampai modifikuoti iki 5 V (kaip parodyta „Solar USB Charger“projekte). Štai keletas bendrų plokščių ir jų įėjimo įtampos diapazonų:
- „NodeMCU ESP8266“(čia naudojamas): 5 V USB arba 3,7–10 V „Vin“
- „Arduino Uno“: 5 V USB arba 7–12 V „Vin“
- Adafruit Huzzah ESP8266 Breakout: 5V USB arba 3.4-6V VBat
Jei norite, kad baterija veiktų kuo ilgiau, turėtumėte šiek tiek laiko apsvarstyti ir optimizuoti bendrą dabartinę energijos srovę. ESP8266 turi gilaus miego funkciją, kurią panaudojome „Arduino“eskize, kad dramatiškai sumažintume jo energijos suvartojimą. Jis atsibunda skaityti jutiklį ir, prisijungdamas prie tinklo, pritraukia daugiau srovės, kad praneštų apie jutiklio vertę, tada vėl užmiega tam tikrą laiką. Jei jūsų mikrovaldiklis sunaudoja daug energijos ir negali būti lengvai užmigdomas, apsvarstykite galimybę perkelti projektą į suderinamą plokštę, kuri sunaudoja mažiau energijos. Jei reikia pagalbos nustatant, kuri lenta galėtų būti tinkama jūsų projektui, užduokite klausimą toliau pateiktose pastabose.
6 žingsnis: sumontuokite kabelio riebokšlius
Norėdami, kad saulės kolektoriaus kabelio ir jutiklio kabelio įėjimo taškai būtų atsparūs oro sąlygoms, į oro nepraleidžiančio gaubto šoną sumontuosime du kabelio sandariklius.
Išbandykite savo komponentų pritaikymą, kad nustatytumėte idealią vietą, tada pažymėkite ir gręžkite skyles vandeniui atspariame korpuse, naudodami pakopinį grąžtą. Sumontuokite du kabelių sandariklius.
7 žingsnis: Užbaikite grandinės surinkimą
Įkiškite vandeniui atsparaus maitinimo kabelio prievado pusę į vieną ir prilituokite prie saulės įkroviklio nuolatinės įvesties (raudona iki +, o juoda - -).
Įkiškite dirvožemio jutiklį per kitą liauką ir prijunkite jį prie „perma-proto“pagal schemą.
Užklijuokite termistoriaus zondą prie akumuliatoriaus. Tai apribos įkrovimą iki saugaus temperatūros diapazono, kol projektas bus paliktas be priežiūros lauke.
Įkrovimas per karštas ar per šaltas gali sugadinti akumuliatorių arba sukelti gaisrą. Esant ekstremalioms temperatūroms, galite sugadinti ir sutrumpinti baterijos tarnavimo laiką, todėl įkelkite ją į vidų, jei ji yra žemiau šalčio arba virš 45 ℃.
Priveržkite kabelių sandariklius, kad aplink jų kabelius būtų sandari oro sąlygoms.
8 žingsnis: Paruoškite saulės kolektorių
Vykdykite mano nurodymus, kad sujungtumėte saulės kolektoriaus kabelį su vandeniui atsparios nuolatinės srovės kabelių rinkinio kištuko puse.
9 žingsnis: išbandykite
Įjunkite akumuliatorių ir įjunkite grandinę paspausdami maitinimo jungiklį.
Išbandykite ir įsitikinkite, kad apie tai praneša internetas prieš uždarydami gaubtą ir įrengdami jutiklį savo žolelių sode, brangiame vazoniniame augale ar kitame dirvožemyje, esančiame jūsų „Wi -Fi“tinklo signalo diapazone.
Kai jutiklio duomenys bus registruojami internete, API vartų svetainėje „If This Then That“nesunku nustatyti el. Pašto ar teksto įspėjimų receptą. Aš sukonfigūravau savo el. Laišką, jei dirvožemio drėgmės lygis nukris žemiau 50.
Norėdami tai išbandyti nelaukdamas, kol augalas išdžius, rankiniu būdu įvedžiau duomenų tašką į savo drėgmės tiekimą „Adafruit IO“, kuris nukrito žemiau slenksčio. Po kelių akimirkų el. Laiškas ateina! Jei dirvožemio lygis nukrenta žemiau mano nurodyto lygio, kiekvieną kartą atnaujinus pašarą gausiu el. Laišką, kol laistysiu dirvą. Dėl sveiko proto atnaujinau savo kodą, kad dirvožemio mėginiai būtų imami daug rečiau nei kas 15 minučių.
10 žingsnis: naudokite jį lauke
Tai įdomus projektas, kurį galima pritaikyti atsižvelgiant į jūsų augalo drėkinimo poreikius, ir jį lengva pakeisti arba pridėti jutiklius arba integruoti saulės energijos funkcijas į kitus „Arduino“projektus.
Ačiū, kad sekate! Norėčiau išgirsti, ką manote; prašau paskelbti komentaruose. Šis projektas yra mano nemokamos saulės klasės dalis, kurioje galite rasti paprastų kiemo projektų ir daugiau darbo su saulės kolektoriais pamokų. Patikrinkite ir užsiregistruokite!
Jei jums patinka šis projektas, jus gali sudominti kai kurie kiti mano darbai:
- Nemokama daiktų interneto klasė
- „YouTube“prenumeratorių skaitiklis su ESP8266
- Socialinės statistikos sekimo ekranas su ESP8266
- „WiFi“orų ekranas su ESP8266
- Valentino internetas
Norėdami neatsilikti nuo to, ką dirbu, sekite mane „YouTube“, „Instagram“, „Twitter“, „Pinterest“ir „Snapchat“.
Rekomenduojamas:
Sukurkite savo dirvožemio drėgmės jutiklį naudodami „Arduino“!!!: 10 žingsnių
Sukurkite savo dirvožemio drėgmės jutiklį naudodami „Arduino“!!!: APIE !!! Šioje instrukcijoje mes sujungsime dirvožemio drėgmės jutiklį FC-28 su „Arduino“. Šis jutiklis matuoja tūrinį vandens kiekį dirvožemyje ir suteikia mums drėgmės lygį. Jutiklyje yra abu analoginiai
„Arduino“dirvožemio drėgmės stebėjimo lazda - niekada nepamirškite laistyti augalų: 4 žingsniai (su nuotraukomis)
„Arduino“dirvožemio drėgmės stebėjimo lazdelė - niekada nepamirškite laistyti augalų: ar dažnai pamirštate laistyti kambarinius augalus? O gal skiriate jiems per daug dėmesio ir laistote? Jei tai padarysite, turėtumėte pasidaryti akumuliatoriumi dirvožemio drėgmės stebėjimo lazdelę. Šis monitorius naudoja talpią dirvožemio drėgmę
Lengvas dirvožemio drėgmės jutiklis „Arduino“7 segmentų ekranas: 4 žingsniai (su nuotraukomis)
Lengvas dirvožemio drėgmės jutiklis „Arduino“7 segmentų ekranas: Sveiki! Karantinas gali būti sunkus. Man pasisekė, kad namuose yra nedidelis kiemas ir daug augalų, ir tai privertė mane galvoti, kad galėčiau padaryti nedidelį įrankį, kuris padėtų man rūpintis jais, kol esu įstrigęs namuose. Šis projektas yra paprastas ir funkcionalus
Talpos dirvožemio drėgmės jutiklio hidroizoliacija: 11 žingsnių (su nuotraukomis)
Talpos dirvožemio drėgmės jutiklio hidroizoliacija: talpūs dirvožemio drėgmės jutikliai yra puikus būdas stebėti dirvožemio vandens būklę vazoniniuose augaluose, sode ar šiltnamyje naudojant „Arduino“, ESP32 ar kitą mikrovaldiklį. Jie pranašesni už pasipriešinimo zondus, dažnai naudojamus „pasidaryk pats“projektuose. Pamatyti
Kaip prijungti dirvožemio drėgmės jutiklį ir ESP8266 prie „AskSensors IoT Cloud“: 10 žingsnių
Kaip prijungti dirvožemio drėgmės jutiklį ir ESP8266 prie „AskSensors IoT Cloud“: ši instrukcija parodo, kaip prijungti dirvožemio drėgmės jutiklį ir ESP8266 prie daiktų interneto debesies. Šiam projektui naudosime mazgo MCU ESP8266 WiFi modulį ir dirvožemio drėgmės jutiklį kuris matuoja tūrinį vandens kiekį