Taula de continguts:

Mesurador d'humitat solar del sòl amb ESP8266: 10 passos (amb imatges)
Mesurador d'humitat solar del sòl amb ESP8266: 10 passos (amb imatges)

Vídeo: Mesurador d'humitat solar del sòl amb ESP8266: 10 passos (amb imatges)

Vídeo: Mesurador d'humitat solar del sòl amb ESP8266: 10 passos (amb imatges)
Vídeo: ✅ Errores al calibrar Driver A4988, ajuste Vref, conexión CNC Shield a Motor Pasos #7 2024, Juliol
Anonim

En aquest manual, estem realitzant un monitor d’humitat del sòl alimentat per energia solar. Utilitza un microcontrolador wifi ESP8266 que executa un codi de baixa potència i és impermeable perquè es pugui deixar fora. Podeu seguir exactament aquesta recepta o treure’n les tècniques útils per als vostres propis projectes.

Si no coneixeu la programació de microcontroladors, consulteu la meva classe Arduino i la classe d'Internet de les coses per conèixer els conceptes bàsics de cablejat, codificació i connexió a Internet.

Aquest projecte forma part de la meva Classe Solar gratuïta, on podeu aprendre més maneres d’aprofitar l’energia del sol mitjançant el gravat i els panells solars.

Per estar al dia del que estic treballant, segueix-me a YouTube, Instagram, Twitter, Pinterest i subscriu-te al meu butlletí.

Pas 1: què necessiteu

El que necessiteu
El que necessiteu

Necessitareu una placa de càrrega de bateria solar i un ESP8266, com ara el NodeMCU ESP8266 o Huzzah, a més d’un sensor de terra, bateria, interruptor d’alimentació, filferro i un recinte per col·locar el vostre circuit a l’interior.

Aquests són els components i materials utilitzats per al control de la humitat del sòl:

  • Microcontrolador ESP8266 NodeMCU (o similar, el Vin ha de tolerar fins a 6 V)
  • Taula de càrrega solar Adafruit amb termistor opcional i resistència de 2,2K ohm
  • Bateria de li-ion de 2200 mAh
  • Tauler Perma-proto
  • Sensor d'humitat / temperatura del sòl
  • 2 passacables
  • Tanc impermeable
  • Parell de cables d'alimentació de CC impermeable
  • Tubs termorretractables
  • Panell solar de 3,5W
  • Polsador d’interruptor d’encesa
  • Cinta d'escuma de doble pal

Aquí teniu les eines que necessiteu:

  • Soldador i soldador
  • Eina per ajudar les mans
  • Decapants de filferro
  • Talls de rentat
  • Pinces (opcional)
  • Pistola de calor o encenedor
  • Multímetre (opcional però útil per a la resolució de problemes)
  • Cable USB A-microB
  • Tisores
  • Trepant pas

Necessitareu comptes gratuïts als llocs de dades de núvol io.adafruit.com i IFTTT.

Com a col·laborador d'Amazon, guanyo de les compres qualificatives que feu mitjançant els meus enllaços d'afiliació.

Pas 2: prototip de taulers de pa

Prototip de tauler de pa
Prototip de tauler de pa

És important crear un prototip de placa de soldadura sense soldadura per a projectes com aquest, de manera que pugueu assegurar-vos que el sensor i el codi funcionen abans de realitzar cap connexió permanent.

Imatge
Imatge
Imatge
Imatge
Imatge
Imatge
Imatge
Imatge

En aquest cas, el sensor de sòl té cables encallats; calia connectar temporalment capçaleres sòlides als extrems dels cables del sensor mitjançant soldadura, ajuda de les mans i alguns tubs de contracció de calor.

Imatge
Imatge

Seguiu el diagrama del circuit per connectar la potència, la terra, el rellotge i els pins de dades del sensor (les dades també obtenen una resistència de tracció de 10K que ve amb el sensor de terra).

  • Sensor de cable verd a GND
  • Sensor de cable vermell a 3,3 V.
  • Cable groc del sensor al pin D5 de NodeMCU (GPIO 14)
  • Cable blau del sensor al pin D6 de NodeMCU (GPIO 12)
  • Resistència de tracció de 10K entre el pin de dades blau i 3,3V

Podeu traduir-ho al vostre microcontrolador preferit. Si utilitzeu un Arduino Uno o similar, la vostra placa ja és compatible amb el programari Arduino. Si utilitzeu l’ESP8266, consulteu la meva classe d’Internet de les coses per obtenir ajuda pas a pas per configurar ESP8266 a Arduino (afegint URL addicionals al camp URL de gestor de taules addicionals a les preferències d’Arduino i, a continuació, cerqueu i seleccionant nous taulers del gerent de taulers). Acostumo a utilitzar el tipus de placa Adafruit ESP8266 Huzzah per programar la placa NodeMCU ESP8266, però també podeu instal·lar i utilitzar el suport de placa ESP8266 Genèric. També necessitareu el controlador de xips de comunicacions USB SiLabs (disponible per a Mac / Windows / Linux).

Per fer funcionar el sensor amb la meva placa compatible amb Arduino, he descarregat la biblioteca Arduino SHT1x de la pàgina github de Practical Arduino, després he descomprimit el fitxer i he mogut la carpeta de la biblioteca a la carpeta Arduino / biblioteques i, a continuació, he canviat el nom de SHT1x. Obriu l’esbós d’exemple ReadSHT1xValues i canvieu els números de pin a 12 (dataPin) i 14 (clockPin) o copieu l’esbós modificat aquí:

#incloure

#define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // instància SHT1x object void setup () {Serial.begin (38400); // Obriu la connexió en sèrie per informar de valors a l'amfitrió Serial.println ("Inici"); } bucle buit () {float temp_c; flotador temp_f; humitat flotant; temp_c = sht1x.readTemperatureC (); // Llegiu els valors del sensor temp_f = sht1x.readTemperatureF (); humitat = sht1x.readHumidity (); Serial.print ("Temperatura:"); // Imprimiu els valors al port sèrie Serial.print (temp_c, DEC); Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Humitat:"); Serial.print (humitat); Serial.println ("%"); endarreriment (2000); }

Pengeu aquest codi al vostre tauler i obriu el monitor sèrie per veure el flux de dades del sensor.

Si el vostre codi no es compila i es queixa de no trobar SHT1x.h, no teniu instal·lada correctament la biblioteca de sensors necessària. Comproveu que la vostra carpeta Arduino / biblioteques en tingui una anomenada SHT1x i, si es troba en un altre lloc, com la carpeta de descàrregues, moveu-la a la vostra carpeta Arduino biblioteques i canvieu el nom si cal.

Si el vostre codi es compila però no es carrega al tauler, comproveu-ne la configuració, assegureu-vos que el tauler està connectat i seleccioneu el port correcte al menú Eines.

Si el codi es penja però l’entrada del monitor sèrie no es reconeix, comproveu que la vostra velocitat de transmissió coincideixi amb l’especificada a l’esbós (38400 en aquest cas).

Si l’entrada del monitor sèrie no sembla correcta, comproveu el cablejat amb el diagrama del circuit. La vostra resistència d’explotació de 10K està instal·lada entre el pin de dades i 3,3V? Les dades i el rellotge estan connectats als pins correctes? Estan connectats l’alimentació i la terra com haurien d’estar al llarg del circuit? No continueu fins que aquest simple esbós no funcioni.

El següent pas és específic de l’ESP8266 i configura la part opcional d’informació del sensor sense fils del projecte de mostra. Si utilitzeu un microcontrolador estàndard (no sense fils) compatible amb Arduino, continueu desenvolupant el vostre esbós final Arduino i aneu a Preparar la placa de càrrega solar.

Pas 3: Configuració del programari

Configuració del programari
Configuració del programari

Per compilar el codi d’aquest projecte amb l’ESP8266, haureu d’instal·lar algunes biblioteques Arduino més (disponibles a través del gestor de biblioteques):

  • Adafruit IO Arduino
  • Adafruit MQTT
  • ArduinoHttpClient

Baixeu-vos el codi adjunt a aquest pas i, a continuació, descomprimiu el fitxer i obriu Solar_Powered_Soil_Moisture_Monitor_Tutorial al programari Arduino.

#incloure

#include #include #include #include // Especifiqueu dades i connexions de rellotge i instancieu objecte SHT1x #define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // configurar el feed AdafruitIO_Feed * umiditat = io.feed ("humitat"); AdafruitIO_Feed * temperature = io.feed ("temperatura"); const int sleepTime = 15; // 15 minuts

configuració nul·la ()

{Serial.begin (115200); // Obriu la connexió en sèrie per informar de valors a l'amfitrió Serial.println ("Inici"); // connectar-se a io.adafruit.com Serial.print ("Connexió a Adafruit IO"); io.connect (); // espera una connexió mentre (io.status () <AIO_CONNECTED) {Serial.print ("."); retard (500); } // estem connectats Serial.println (); Serial.println (io.statusText ()); }

bucle buit ()

{io.run (); // io.run (); manté el client connectat i és obligatori per a tots els esbossos. flo_ temp_c; float temp_f; humitat flotant; temp_c = sht1x.readTemperatureC (); // Llegiu els valors del sensor temp_f = sht1x.readTemperatureF (); humitat = sht1x.readHumidity (); Serial.print ("Temperatura:"); // Imprimiu els valors al port sèrie Serial.print (temp_c, DEC); Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Humitat:"); Serial.print (humitat); Serial.println ("%"); humitat-> estalviar (humitat); temperatura-> guarda (temp_f); Serial.println ("ESP8266 està dormint …"); ESP.deepSleep (sleepTime * 1000000 * 60); // Dormir}

Aquest codi és una combinació del codi del sensor anterior a aquest tutorial i un exemple bàsic del servei de dades al núvol Adafruit IO. El programa entra en mode de baixa consum i dorm la major part del temps, però es desperta cada 15 minuts per llegir la temperatura i la humitat del sòl i informa les seves dades a Adafruit IO. Aneu a la pestanya config.h, empleneu el vostre nom d'usuari i la vostra clau d'Adafruit IO, així com el nom i la contrasenya de la vostra xarxa wifi local i, a continuació, pengeu el codi al vostre microcontrolador ESP8266.

Imatge
Imatge

Haureu de fer una mica de preparació a io.adafruit.com. Després de crear feeds per a la temperatura i la humitat, podeu crear un tauler per al monitor amb un gràfic dels valors del sensor i de les dades dels dos feeds entrants. Si necessiteu una actualització per començar amb Adafruit IO, consulteu aquesta lliçó a la meva classe d'Internet de les coses.

Pas 4: prepareu la placa de càrrega solar

Prepareu la placa de càrrega solar
Prepareu la placa de càrrega solar

Prepareu la placa de càrrega solar soldant el condensador i alguns cables a les pastilles de sortida de càrrega. Estic personalitzant el meu per carregar-se a un ritme més ràpid amb una resistència addicional opcional (2,2 K soldats a través de PROG) i fa més segur deixar sense vigilància substituint la resistència de muntatge superficial per un termistor de 10 K connectat a la mateixa bateria. Això limitarà la càrrega a un rang de temperatura segur. Vaig tractar aquestes modificacions amb més detall al meu projecte Solar USB Charger.

Pas 5: Creeu un circuit de microcontrolador

Construir un circuit de microcontroladors
Construir un circuit de microcontroladors
Imatge
Imatge
Imatge
Imatge

Soldeu la placa del microcontrolador i el commutador d’alimentació a una placa perma-proto.

Imatge
Imatge

Connecteu la potència del carregador solar a l’entrada del vostre commutador, que hauria de tenir una potència mínima d’1 amperi.

Imatge
Imatge

Creeu i soldeu les connexions de filferro de taulers indicats al diagrama de circuits anterior (o segons les especificacions de la vostra versió personal), inclosa la resistència de tracció 10K a la línia de dades del sensor.

Els pins de càrrega del carregador solar proporcionaran bateria de 3,7 V quan no existeix energia solar, però s’alimentarà directament des del panell solar si està endollat i assolellat. Per tant, el microcontrolador ha de ser capaç de tolerar diverses tensions, tan baixes com 3,7 V i fins a 6 V CC. Per a aquells que necessiten 5V, es pot utilitzar un PowerBoost (500 o 1000, segons el corrent requerit) per modular la tensió de càrrega a 5V (com es mostra al projecte del carregador USB solar). A continuació, es mostren algunes plaques habituals i els seus rangs de voltatge d’entrada:

  • NodeMCU ESP8266 (utilitzat aquí): 5V USB o 3,7V-10V Vin
  • Arduino Uno: 5V USB o 7-12V Vin
  • Adafruit Huzzah ESP8266 Breakout: 5V USB o 3.4-6V VBat

Per tal d’aconseguir la màxima durada possible de la bateria, hauríeu de dedicar un temps a considerar i optimitzar el corrent total que extreu actualment. L'ESP8266 té una funció de son profund que hem utilitzat a l'esbós d'Arduino per reduir dràsticament el seu consum d'energia. Es desperta per llegir el sensor i atrau més corrent mentre es connecta a la xarxa per informar del valor del sensor, i després torna a dormir durant un temps especificat. Si el vostre microcontrolador consumeix molta energia i no es pot dormir fàcilment, penseu en portar el vostre projecte a una placa compatible que consumeixi menys energia. Envieu una pregunta als comentaris següents si necessiteu ajuda per identificar quin tauler pot ser el correcte per al vostre projecte.

Pas 6: instal·leu els passacables

Imatge
Imatge

Per establir punts d’entrada resistents a la intempèrie per al cable del sensor i del panell solar, instal·larem dos passacables al lateral del recinte impermeable.

Imatge
Imatge
Imatge
Imatge

Feu la prova d’adaptació dels components per identificar la ubicació ideal i, a continuació, marqueu i practiqueu forats en un recinte impermeable mitjançant un trepant. Instal·leu els dos passacables.

Imatge
Imatge

Pas 7: completar el muntatge del circuit

Muntatge complet del circuit
Muntatge complet del circuit

Introduïu el costat del port d’un cable d’alimentació impermeable en un i soldeu-lo a l’entrada de corrent continu del carregador solar (vermell a + i negre a -).

Imatge
Imatge

Introduïu el sensor de terra a través de l’altra glàndula i connecteu-lo fins al perma-proto segons el diagrama del circuit.

Imatge
Imatge

Enganxeu la sonda del termistor a la bateria. Això limitarà la càrrega a un rang de temperatura segur mentre el projecte es deixi fora de control.

Imatge
Imatge

Si es carrega massa calent o massa fred, es pot danyar la bateria o provocar un incendi. L’exposició a temperatures extremes pot causar danys i escurçar la vida de la bateria, de manera que porteu-la a l’interior si està per sota de la temperatura de congelació o és superior a 45 ℃ / 113F.

Imatge
Imatge

Estrenyiu els passacables per fer un segell resistent a la intempèrie al voltant dels seus cables respectius.

Pas 8: prepareu el panell solar

Prepareu el panell solar
Prepareu el panell solar

Seguiu la meva instrucció per empalmar el cable del vostre panell solar amb el costat de l'endoll del conjunt de cables d'alimentació de CC impermeable.

Pas 9: proveu-ho

Prova-ho
Prova-ho

Connecteu la bateria i enceneu el circuit prement l’interruptor d’alimentació.

Imatge
Imatge

Proveu-lo i assegureu-vos que es presenta a Internet abans de tancar el recinte i instal·lar el sensor al vostre jardí d'herbes, a una preciosa planta en test o a un altre terreny dins del rang de senyals de la vostra xarxa wifi.

Imatge
Imatge

Un cop es registren les dades del sensor en línia, és fàcil configurar una recepta per a alertes de correu electrònic o de text al lloc de la porta d’entrada API If This Then That. He configurat el meu per enviar-me un correu electrònic si el nivell d'humitat del sòl baixa per sota de 50.

Per provar-lo sense esperar que la meva planta s’assequés, he introduït manualment un punt de dades del meu aliment humit a Adafruit IO que baixava del llindar. Uns instants després, arriba el correu electrònic. Si els nivells del sòl cauen per sota del nivell especificat, rebré un missatge de correu electrònic cada vegada que s'actualitzi el feed fins que regui el sòl. Per la meva prudència, he actualitzat el meu codi per provar el sòl molt menys sovint que cada 15 minuts.

Pas 10: utilitzeu-lo a fora

Utilitzeu-lo a fora!
Utilitzeu-lo a fora!
Utilitzeu-lo a fora!
Utilitzeu-lo a fora!

Es tracta d’un divertit projecte per personalitzar en funció de les necessitats d’hidratació de la vostra planta i és fàcil canviar, afegir sensors o integrar les funcions d’energia solar als vostres altres projectes Arduino.

Gràcies per seguir-ho! M'encantaria escoltar el que penses; envieu els vostres comentaris. Aquest projecte forma part de la meva Classe Solar gratuïta, on podeu trobar projectes de jardí fàcil i més lliçons sobre com treballar amb plaques solars. Mireu-ho i inscriviu-vos!

Si us agrada aquest projecte, potser us interessaran alguns dels meus altres:

  • Classe gratuïta d'Internet de les coses
  • Comptador de subscriptors de YouTube amb ESP8266
  • Pantalla de seguiment d'estadístiques socials amb ESP8266
  • Pantalla meteorològica WiFi amb ESP8266
  • Internet Valentine

Per estar al dia del que estic treballant, segueix-me a YouTube, Instagram, Twitter, Pinterest i Snapchat.

Recomanat: