Cuprins:
- Pasul 1: De ce veți avea nevoie
- Pasul 2: Prototipul Breadboard
- Pasul 3: Configurare software
- Pasul 4: Pregătiți placa de încărcare solară
- Pasul 5: Construiți un circuit de microcontroler
- Pasul 6: Instalați presetupe
- Pasul 7: Completați ansamblul circuitului
- Pasul 8: Pregătiți panoul solar
- Pasul 9: Testați-l
- Pasul 10: Folosește-l în exterior
Video: Contor de umiditate solară solară cu ESP8266: 10 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
În acest Instructable, realizăm un monitor de umiditate a solului alimentat cu energie solară. Folosește un microcontroler wifi ESP8266 care rulează un cod de putere redusă și totul este rezistent la apă, astfel încât să poată fi lăsat afară. Puteți urmări exact această rețetă sau puteți lua din ea tehnicile utile pentru propriile proiecte.
Dacă sunteți nou în programarea microcontrolerelor, vă rugăm să consultați Clasa Arduino și Clasa Internet of Things pentru a vă lăsa la curent cu elementele de bază ale cablării, codării și conectării la internet.
Acest proiect face parte din clasa mea gratuită de solar, unde puteți afla mai multe moduri de a valorifica energia soarelui prin gravare și panouri solare.
Pentru a ține pasul cu ceea ce lucrez, urmează-mă pe YouTube, Instagram, Twitter, Pinterest și abonează-te la newsletter-ul meu.
Pasul 1: De ce veți avea nevoie
Veți avea nevoie de o placă de încărcare a bateriei solare și un dispozitiv ESP8266, cum ar fi NodeMCU ESP8266 sau Huzzah, precum și un senzor de sol, baterie, întrerupător de alimentare, un fir și o carcasă pentru a vă pune circuitul în interior.
Iată componentele și materialele utilizate pentru monitorizarea umidității solului:
- Microcontroler ESP8266 NodeMCU (sau similar, Vin trebuie să tolereze până la 6V)
- Placă de încărcare solară Adafruit cu termistor opțional și rezistor de 2,2K ohm
- Baterie Li-ion de 2200mAh
- Placă Perma-proto
- Senzor de umiditate / temperatură a solului
- 2 presetupe pentru cabluri
- Carcasă impermeabilă
- Pereche de cabluri de alimentare DC impermeabile
- Tuburi termocontractabile
- Panou solar de 3,5W
- Comutatorul de alimentare al butonului
- Banda dublă de spumă
Iată instrumentele de care aveți nevoie:
- Fier de lipit și lipit
- Instrument pentru mâini ajutătoare
- Decapanti de sârmă
- Flush snips
- Pensete (opțional)
- Pistola cu căldură sau brichetă
- Multimetru (opțional, dar util pentru depanare)
- Cablu USB A-microB
- Foarfece
- Burghiu pas
Veți avea nevoie de conturi gratuite pe site-urile de date cloud io.adafruit.com și IFTTT.
În calitate de asociat Amazon câștig din achizițiile eligibile pe care le faceți folosind linkurile mele de afiliere.
Pasul 2: Prototipul Breadboard
Este important să creați un prototip de panou fără sudură pentru astfel de proiecte, astfel încât să vă puteți asigura că senzorul și codul dvs. funcționează înainte de a face conexiuni permanente.
În acest caz, senzorul de sol are fire blocate, a fost necesar să atașați temporar anteturi solide la capetele firelor senzorului folosind lipire, mâini ajutătoare și unele tuburi termocontractibile.
Urmați schema de circuite pentru a conecta puterea senzorului, masa, ceasul și pinii de date (datele primesc, de asemenea, un rezistor de tracțiune de 10K care vine împreună cu senzorul de sol).
- Sârmă verde senzor la GND
- Sârmă roșie senzor la 3,3V
- Sârmă galbenă a senzorului la pinul N5MCU D5 (GPIO 14)
- Sârmă albastră senzor la pinul N6MCU D6 (GPIO 12)
- Rezistență de tracțiune de 10K între pinul de date albastru și 3,3V
Puteți traduce acest lucru în microcontrolerul preferat. Dacă utilizați un Arduino Uno sau similar, placa dvs. este deja acceptată de software-ul Arduino. Dacă utilizați ESP8266, vă rugăm să consultați Clasa mea de Internet a obiectelor pentru ajutor pas cu pas pentru configurarea cu ESP8266 în Arduino (prin adăugarea de adrese URL suplimentare în câmpul Adrese URL ale managerului de plăci suplimentare din preferințele Arduino, apoi căutarea și selectarea de noi tablouri din managerul de tablouri). Tind să folosesc tipul de placă Adafruit ESP8266 Huzzah pentru a programa placa NodeMCU ESP8266, dar puteți instala și utiliza și suportul pentru placă Generic ESP8266. De asemenea, veți avea nevoie de driverul de cip de comunicații USB SiLabs (disponibil pentru Mac / Windows / Linux).
Pentru a pune senzorul în funcțiune cu placa mea compatibilă Arduino, am descărcat SHT1x Arduino Library din pagina github a lui Practical Arduino, apoi am dezarhivat fișierul și am mutat folderul bibliotecii în folderul Arduino / biblioteci, apoi l-am redenumit SHT1x. Deschideți schița de exemplu ReadSHT1xValues și schimbați numerele pinului la 12 (dataPin) și 14 (clockPin) sau copiați schița modificată aici:
#include
#define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // instantiate SHT1x object void setup () {Serial.begin (38400); // Deschideți conexiunea serială pentru a raporta valorile către gazda Serial.println („Pornire”); } void loop () {float temp_c; float temp_f; umiditatea plutitoare; temp_c = sht1x.readTemperatureC (); // Citiți valorile din senzorul temp_f = sht1x.readTemperatureF (); umiditate = sht1x.readHumidity (); Serial.print ("Temperatura:"); // Imprimați valorile pe portul serial Serial.print (temp_c, DEC); Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Umiditate:"); Serial.print (umiditate); Serial.println ("%"); întârziere (2000); }
Încărcați acest cod pe placa dvs. și deschideți monitorul serial pentru a vedea fluxul de date al senzorului.
Dacă codul dvs. nu se compilează și se plânge că SHT1x.h nu a fost găsit, nu ați instalat corect biblioteca de senzori necesară. Verificați folderul Arduino / biblioteci pentru unul numit SHT1x și, dacă este altundeva, cum ar fi folderul de descărcări, mutați-l în folderul Arduino biblioteci și redenumiți-l, dacă este necesar.
Dacă codul dvs. se compilează, dar nu se încarcă pe placa dvs., verificați din nou setările plăcii, asigurați-vă că placa este conectată și selectați portul corect din meniul Instrumente.
În cazul în care codul dvs. se încarcă, dar intrarea monitorului serial nu este de recunoscut, verificați de două ori viteza de transmisie în baud care corespunde cu cea specificată în schița dvs. (38400 în acest caz).
În cazul în care intrarea monitorului serial nu pare corectă, verificați cablarea în raport cu schema circuitului. Este rezistorul dvs. de tracțiune de 10K între pinul de date și 3,3V? Datele și ceasul sunt conectate la pinii corecți? Puterea și masa sunt conectate așa cum ar trebui să fie pe tot circuitul? Nu continuați până când această schiță simplă nu funcționează!
Următorul pas este specific ESP8266 și configurează porțiunea opțională de raportare a senzorului wireless al proiectului eșantion. Dacă utilizați un microcontroler standard (non-wireless) compatibil Arduino, continuați să vă dezvoltați schița finală Arduino și treceți la Pregătirea plăcii de încărcare solară.
Pasul 3: Configurare software
Pentru a compila codul pentru acest proiect cu ESP8266, va trebui să instalați încă câteva biblioteci Arduino (disponibile prin managerul bibliotecii):
- Adafruit IO Arduino
- Adafruit MQTT
- ArduinoHttpClient
Descărcați codul atașat la acest pas, apoi dezarhivați fișierul și deschideți Solar_Powered_Soil_Moisture_Monitor_Tutorial în software-ul dvs. Arduino.
#include
#include #include #include #include // Specificați conexiunile de date și ceas și creați obiect SHT1x #define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // configurați feedul AdafruitIO_Feed * umiditate = io.feed ("umiditate"); AdafruitIO_Feed * temperature = io.feed ("temperatura"); const int sleepTime = 15; // 15 minute
configurare nulă ()
{Serial.begin (115200); // Deschideți conexiunea serială pentru a raporta valorile către gazda Serial.println („Pornire”); // conectați-vă la io.adafruit.com Serial.print („Conectarea la Adafruit IO”); io.connect (); // așteptați o conexiune în timp ce (io.status () <AIO_CONNECTED) {Serial.print ("."); întârziere (500); } // suntem conectați Serial.println (); Serial.println (io.statusText ()); }
bucla nulă ()
{io.run (); // io.run (); menține clientul conectat și este necesar pentru toate schițele. float temp_c; float temp_f; umezeala plutitoare; temp_c = sht1x.readTemperatureC (); // Citiți valorile din senzorul temp_f = sht1x.readTemperatureF (); umiditate = sht1x.readHumidity (); Serial.print ("Temperatura:"); // Imprimați valorile pe portul serial Serial.print (temp_c, DEC); Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Umiditate:"); Serial.print (umiditate); Serial.println ("%"); umiditate-> economisire (umiditate); temperature-> save (temp_f); Serial.println ("ESP8266 dorm …"); ESP.deepSleep (sleepTime * 1000000 * 60); // somn}
Acest cod este un mashup al codului senzorului de mai devreme în acest tutorial și un exemplu de bază din serviciul de date cloud Adafruit IO. Programul intră în modul de consum redus și doarme de cele mai multe ori, dar se trezește la fiecare 15 minute pentru a citi temperatura și umiditatea solului și raportează datele sale la Adafruit IO. Navigați la fila config.h și completați numele de utilizator și cheia Adafruit IO, precum și numele și parola rețelei WiFi locale, apoi încărcați codul în microcontrolerul ESP8266.
Va trebui să faceți un pic de pregătire pe io.adafruit.com. După crearea fluxurilor pentru temperatură și umiditate, puteți crea un tablou de bord pentru monitorul dvs. cu un grafic al valorilor senzorului și ambele date ale fluxurilor primite. Dacă aveți nevoie de o reîmprospătare pentru a începe cu Adafruit IO, consultați această lecție în clasa mea de Internet a obiectelor.
Pasul 4: Pregătiți placa de încărcare solară
Pregătiți placa de încărcare solară prin lipirea condensatorului și a câtorva fire la plăcile de ieșire de încărcare. Îl personalizez pe al meu pentru a se încărca la o viteză mai mare cu un rezistor suplimentar opțional (2,2K lipit pe PROG) și fac mai sigur să rămâneți nesupravegheat prin înlocuirea rezistorului de montare pe suprafață cu un termistor de 10K atașat la baterie. Acest lucru va limita încărcarea la un interval de temperatură sigur. Am acoperit aceste modificări mai detaliat în proiectul meu Solar USB Charger.
Pasul 5: Construiți un circuit de microcontroler
Lipiți placa microcontrolerului și comutatorul de alimentare pe o placă perma-proto.
Conectați puterea încărcătorului solar la intrarea comutatorului, care ar trebui să fie evaluat pentru cel puțin 1 amp.
Creați și lipiți conexiunile de sârmă ale panoului de descriere descrise în schema de circuite de mai sus (sau conform specificațiilor versiunii dvs. personale), inclusiv rezistorul de tracțiune 10K de pe linia de date a senzorului.
Pinii de încărcare ai încărcătorului solar vor furniza o energie a bateriei de 3,7 V atunci când nu există energie solară, dar va fi alimentat direct de la panoul solar dacă este conectat și este însorit. Prin urmare, microcontrolerul trebuie să poată tolera o varietate de tensiuni, de până la 3,7 V și până la 6 V DC. Pentru cei care necesită 5V, un PowerBoost (500 sau 1000, în funcție de curentul necesar) poate fi utilizat pentru a modula tensiunea de încărcare la 5V (așa cum se arată în proiectul Solar USB Charger). Iată câteva plăci obișnuite și intervalele lor de tensiune de intrare:
- NodeMCU ESP8266 (folosit aici): 5V USB sau 3.7V-10V Vin
- Arduino Uno: 5V USB sau 7-12V Vin
- Adafruit Huzzah ESP8266 Breakout: 5V USB sau 3.4-6V VBat
Pentru a obține cea mai lungă durată de viață a bateriei, ar trebui să luați ceva timp pentru a lua în considerare și a optimiza curentul total pe care îl atrage curentul dvs. ESP8266 are o caracteristică de somn profund pe care am folosit-o în schița Arduino pentru a reduce dramatic consumul de energie. Se trezește pentru a citi senzorul și atrage mai mult curent în timp ce se conectează la rețea pentru a raporta valoarea senzorului, apoi se întoarce în repaus pentru o anumită perioadă de timp. În cazul în care microcontrolerul dvs. consumă multă energie și nu poate fi ușor adormit, luați în considerare portarea proiectului pe o placă compatibilă care consumă mai puțină energie. Lăsați o întrebare în comentariile de mai jos dacă aveți nevoie de ajutor pentru a identifica ce forum ar putea fi potrivit pentru proiectul dvs.
Pasul 6: Instalați presetupe
Pentru a face puncte de intrare rezistente la intemperii pentru cablul panoului solar și cablul senzorului, vom instala două presetupe în partea laterală a carcasei rezistente la intemperii.
Testați componentele pentru a identifica amplasamentul ideal, apoi marcați și faceți găuri într-o incintă impermeabilă folosind un burghiu cu trepte. Instalați cele două presetupe.
Pasul 7: Completați ansamblul circuitului
Introduceți partea portului unui cablu de alimentare impermeabil într-unul și lipiți-l la intrarea DC a încărcătorului solar (roșu la + și negru la -).
Introduceți senzorul de sol prin cealaltă glandă și conectați-l până la perma-proto conform schemei de circuit.
Lipiți sonda termistor de baterie. Acest lucru va limita încărcarea la un interval de temperatură sigur în timp ce proiectul este lăsat nesupravegheat în exterior.
Încărcarea în timp ce este prea fierbinte sau prea rece ar putea deteriora bateria sau poate declanșa un incendiu. Expunerea la temperaturi extreme poate provoca daune și scurtarea duratei de viață a bateriei, așa că aduceți-o în interior dacă este sub îngheț sau peste 45 ℃ / 113F.
Strângeți presetupele pentru a face o etanșare rezistentă la intemperii în jurul cablurilor respective.
Pasul 8: Pregătiți panoul solar
Urmați instrucțiunile mele pentru a îmbina cablul panoului solar cu partea de priză a setului de cabluri de alimentare DC rezistent la apă.
Pasul 9: Testați-l
Conectați-vă bateria și porniți circuitul apăsând comutatorul de alimentare.
Testați-l și asigurați-vă că se raportează la internet înainte de a închide incinta și de a instala senzorul în grădina dvs. de plante, în plante prețioase în ghiveci sau în alt sol din raza de semnal a rețelei dvs. wifi.
Odată ce datele de la senzor sunt înregistrate online, este ușor să configurați o rețetă pentru alerte prin e-mail sau text pe site-ul gateway-ului API If This Then That. Am configurat-o pe a mea să-mi trimită un e-mail dacă nivelul de umiditate al solului scade sub 50.
Pentru a o testa fără să aștept să se usuce planta mea, am introdus manual un punct de date pentru alimentarea cu umiditate pe Adafruit IO care a scăzut sub prag. Câteva clipe mai târziu, e-mailul ajunge! Dacă nivelurile solului scad sub nivelul meu specificat, voi primi un e-mail de fiecare dată când feed-ul este actualizat până când ud solul. Pentru sănătatea mea, mi-am actualizat codul pentru a preleva solul mult mai rar decât la fiecare 15 minute.
Pasul 10: Folosește-l în exterior
Acesta este un proiect distractiv de personalizat pe baza nevoilor de hidratare ale plantei dvs. și este ușor să schimbați sau să adăugați senzori sau să integrați caracteristicile energiei solare în celelalte proiecte Arduino.
Vă mulțumim că ați urmat! Mi-ar plăcea să aud ce crezi; vă rugăm să postați în comentarii. Acest proiect face parte din clasa mea gratuită Solar, unde puteți găsi proiecte ușoare de curte și mai multe lecții despre lucrul cu panouri solare. Verificați-l și înscrieți-vă!
Dacă îți place acest proiect, s-ar putea să te intereseze unii dintre ceilalți ai mei:
- Clasa gratuită Internetul obiectelor
- Contor abonat YouTube cu ESP8266
- Afișare Urmărire statistici sociale cu ESP8266
- Afișaj meteo WiFi cu ESP8266
- Internet Valentine
Pentru a ține pasul cu ceea ce lucrez, urmează-mă pe YouTube, Instagram, Twitter, Pinterest și Snapchat.
Recomandat:
Contor de temperatură și umiditate IoT cu ecran OLED: 5 pași (cu imagini)
Contor de temperatură și umiditate IoT cu ecran OLED: Verificați temperatura și umiditatea pe un ecran OLED oricând doriți și, în același timp, colectați datele pe o platformă IoT. Acesta este un proiect bun pentru că poți să
Cel mai simplu contor de temperatură și umiditate IoT: 5 pași (cu imagini)
Cel mai simplu contor de temperatură și umiditate IoT: Cel mai simplu contor de temperatură și umiditate IoT vă permite să colectați temperatura, umiditatea și indicele de căldură. Apoi trimiteți-le la Adafruit IO
Automatizarea unei sere cu LoRa! (Partea 1) -- Senzori (temperatură, umiditate, umiditate a solului): 5 pași
Automatizarea unei sere cu LoRa! (Partea 1) || Senzori (temperatură, umiditate, umiditate a solului): În acest proiect vă voi arăta cum am automatizat o seră. Asta înseamnă că vă voi arăta cum am construit sera și cum am conectat electronica de putere și automatizare. De asemenea, vă voi arăta cum să programați o placă Arduino care utilizează L
Contor de temperatură și umiditate folosind afișajul OLED: 5 pași
Contor de temperatură și umiditate folosind afișaj OLED: COMPONENTE NECESARE- 1. Arduino NANO: https://amzn.to/2HfX5PH 2. Senzor DHT11: https://amzn.to/2HfX5PH 3. Afișaj OLED: https: // amzn. la / 2HfX5PH 4. Panou de calcul: https://amzn.to/2HfX5PH 5. Sârme jumper: https://amzn.to/2HfX5PH Achiziționați linkuri
Monitor de umiditate fără fir (ESP8266 + senzor de umiditate): 5 pași
Monitor de umiditate fără fir (ESP8266 + senzor de umiditate): Cumpăr pătrunjel în oală, iar cea mai mare parte a zilei, solul era uscat. Deci, decid să fac acest proiect, despre detectarea umezelii solului în oală cu pătrunjel, pentru a verifica, când am nevoie să turn sol cu apă. Cred că acest senzor (senzor capacitiv de umiditate v1.2) este bun pentru că