Tabla de contenido:

Medidor solar de humedad del suelo con ESP8266: 10 pasos (con imágenes)
Medidor solar de humedad del suelo con ESP8266: 10 pasos (con imágenes)

Video: Medidor solar de humedad del suelo con ESP8266: 10 pasos (con imágenes)

Video: Medidor solar de humedad del suelo con ESP8266: 10 pasos (con imágenes)
Video: Sensores - Ejemplos Arduino - Gas, IR, Luz, IMU, Distáncia, color, magnetismo, etc... 2024, Mes de julio
Anonim

En este Instructable, estamos haciendo un monitor de humedad del suelo con energía solar. Utiliza un microcontrolador wifi ESP8266 que ejecuta un código de bajo consumo y todo es resistente al agua, por lo que se puede dejar afuera. Puede seguir esta receta exactamente, o tomar de ella las técnicas útiles para sus propios proyectos.

Si es nuevo en la programación de microcontroladores, consulte mi Clase de Arduino y la Clase de Internet de las cosas para familiarizarse con los conceptos básicos del cableado, la codificación y la conexión a Internet.

Este proyecto es parte de mi Clase Solar gratuita, donde puedes aprender más formas de aprovechar la energía del sol a través del grabado y los paneles solares.

Para estar al día en lo que estoy trabajando, sígueme en YouTube, Instagram, Twitter, Pinterest y suscríbete a mi boletín.

Paso 1: lo que necesitará

Lo que necesitarás
Lo que necesitarás

Necesitará una placa de carga de batería solar y una ruptura ESP8266 como la NodeMCU ESP8266 o Huzzah, así como un sensor de suelo, batería, interruptor de encendido, algunos cables y una caja para colocar su circuito dentro.

Estos son los componentes y materiales utilizados para el monitor de humedad del suelo:

  • Microcontrolador ESP8266 NodeMCU (o similar, Vin debe tolerar hasta 6V)
  • Placa de carga solar Adafruit con termistor opcional y resistencia de 2.2K ohmios
  • Batería de iones de litio de 2200 mAh
  • Tablero perma-proto
  • Sensor de humedad / temperatura del suelo
  • 2 prensaestopas
  • Recinto impermeable
  • Par de cables de alimentación de CC a prueba de agua
  • Tubo termoretráctil
  • Panel solar de 3,5 W
  • Interruptor de encendido con botón pulsador
  • Cinta de espuma de doble cara

Estas son las herramientas que necesitará:

  • Soldador y soldadura
  • Herramienta de manos amigas
  • Pelacables
  • Tijeras al ras
  • Pinzas (opcional)
  • Pistola de calor o encendedor
  • Multímetro (opcional pero útil para solucionar problemas)
  • Cable USB A-microB
  • Tijeras
  • Taladro escalonado

Necesitará cuentas gratuitas en los sitios de datos en la nube io.adafruit.com e IFTTT.

Como Asociado de Amazon, gano por las compras que califiquen que realice utilizando mis enlaces de afiliados.

Paso 2: Prototipo de placa de pruebas

Prototipo de tablero
Prototipo de tablero

Es importante crear un prototipo de placa de pruebas sin soldadura para proyectos como este, de modo que pueda asegurarse de que su sensor y código estén funcionando antes de realizar conexiones permanentes.

Imagen
Imagen
Imagen
Imagen
Imagen
Imagen
Imagen
Imagen

En este caso, el sensor de suelo tiene cables trenzados y fue necesario unir temporalmente cabezales sólidos a los extremos de los cables del sensor usando soldadura, manos amigas y algunos tubos termocontraíbles.

Imagen
Imagen

Siga el diagrama del circuito para conectar los pines de alimentación, tierra, reloj y datos del sensor (los datos también reciben una resistencia de activación de 10K que viene con el sensor de suelo).

  • Cable verde del sensor a GND
  • Sensor de cable rojo a 3,3 V
  • Cable amarillo del sensor al pin D5 de NodeMCU (GPIO 14)
  • Cable azul del sensor al pin D6 de NodeMCU (GPIO 12)
  • Resistencia pull-up de 10K entre el pin de datos azul y 3.3V

Puede traducir esto a su microcontrolador preferido. Si está utilizando un Arduino Uno o similar, su placa ya es compatible con el software Arduino. Si está utilizando el ESP8266, consulte mi Clase de Internet de las cosas para obtener ayuda paso a paso para configurar ESP8266 en Arduino (agregando URL suplementarias al campo URL del Administrador de tableros adicionales en las preferencias de Arduino, luego buscando y seleccionando nuevos tableros desde el administrador de tableros). Tiendo a usar el tipo de placa Adafruit ESP8266 Huzzah para programar la placa NodeMCU ESP8266, pero también puede instalar y usar el soporte de placa Generic ESP8266. También necesitará el controlador del chip de comunicaciones USB SiLabs (disponible para Mac / Windows / Linux).

Para poner el sensor en funcionamiento con mi placa compatible con Arduino, descargué la biblioteca SHT1x Arduino de la página github de Practical Arduino, luego descomprimí el archivo y moví la carpeta de la biblioteca a mi carpeta Arduino / bibliotecas, luego la renombré SHT1x. Abra el boceto de ejemplo ReadSHT1xValues y cambie los números de pin a 12 (dataPin) y 14 (clockPin), o copie el boceto modificado aquí:

#incluir

#define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // instanciar el objeto SHT1x void setup () {Serial.begin (38400); // Abra la conexión en serie para informar los valores al host Serial.println ("Iniciando"); } bucle vacío () {float temp_c; float temp_f; flotar la humedad; temp_c = sht1x.readTemperatureC (); // Leer valores del sensor temp_f = sht1x.readTemperatureF (); humedad = sht1x.readHumidity (); Serial.print ("Temperatura:"); // Imprime los valores al puerto serie Serial.print (temp_c, DEC); Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Humedad:"); Serial.print (humedad); Serial.println ("%"); retraso (2000); }

Cargue este código en su placa y abra el monitor en serie para ver el flujo de datos del sensor en formato.

Si su código no se compila y se queja de que no se encuentra SHT1x.h, no tiene la biblioteca de sensores requerida instalada correctamente. Verifique su carpeta Arduino / libraries para una llamada SHT1x, y si está en otro lugar, como su carpeta de descargas, muévala a su carpeta de bibliotecas Arduino y cambie el nombre si es necesario.

Si su código se compila pero no se carga en su placa, verifique la configuración de la placa, asegúrese de que su placa esté enchufada y seleccione el puerto correcto en el menú Herramientas.

Si su código se carga pero la entrada de su monitor serial es irreconocible, verifique que su velocidad en baudios coincida con la especificada en su boceto (38400 en este caso).

Si la entrada de su monitor en serie no parece correcta, verifique su cableado con el diagrama del circuito. ¿Está su resistencia pull-up de 10K en su lugar entre el pin de datos y 3.3V? ¿Están los datos y el reloj conectados a los pines correctos? ¿Están la energía y la tierra conectadas como deberían estar en todo el circuito? ¡No continúe hasta que este simple boceto esté funcionando!

El siguiente paso es específico del ESP8266 y configura la parte de informe del sensor inalámbrico opcional del proyecto de muestra. Si está utilizando un microcontrolador compatible con Arduino estándar (no inalámbrico), continúe desarrollando su boceto final de Arduino y pase a Preparar la placa de carga solar.

Paso 3: configuración del software

Configuración del software
Configuración del software

Para compilar el código para este proyecto con el ESP8266, necesitará instalar algunas bibliotecas Arduino más (disponibles a través del administrador de bibliotecas):

  • Adafruit IO Arduino
  • Adafruit MQTT
  • ArduinoHttpClient

Descargue el código adjunto a este paso, luego descomprima el archivo y abra Solar_Powered_Soil_Moisture_Monitor_Tutorial en su software Arduino.

#incluir

#include #include #include #include // Especifica las conexiones de datos y reloj y crea una instancia del objeto SHT1x #define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // configurar la alimentación AdafruitIO_Feed * humedad = io.feed ("humedad"); AdafruitIO_Feed * temperatura = io.feed ("temperatura"); const int sleepTime = 15; // 15 minutos

configuración vacía ()

{Serial.begin (115200); // Abrir conexión serial para reportar valores al host Serial.println ("Iniciando"); // conectarse a io.adafruit.com Serial.print ("Conectando a Adafruit IO"); io.connect (); // espera una conexión while (io.status () <AIO_CONNECTED) {Serial.print ("."); retraso (500); } // estamos conectados Serial.println (); Serial.println (io.statusText ()); }

bucle vacío ()

{io.run (); // io.run (); mantiene al cliente conectado y es necesario para todos los bocetos. float temp_c; float temp_f; flotar la humedad; temp_c = sht1x.readTemperatureC (); // Leer valores del sensor temp_f = sht1x.readTemperatureF (); humedad = sht1x.readHumidity (); Serial.print ("Temperatura:"); // Imprime los valores al puerto serie Serial.print (temp_c, DEC); Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Humedad:"); Serial.print (humedad); Serial.println ("%"); humedad-> guardar (humedad); temperatura-> guardar (temp_f); Serial.println ("ESP8266 está durmiendo…"); ESP.deepSleep (sleepTime * 1000000 * 60); // Dormir }

Este código es un mashup del código del sensor de antes en este tutorial y un ejemplo básico del servicio de datos en la nube Adafruit IO. El programa ingresa al modo de bajo consumo y permanece inactivo la mayor parte del tiempo, pero se despierta cada 15 minutos para leer la temperatura y la humedad del suelo e informa sus datos a Adafruit IO. Vaya a la pestaña config.hy complete su nombre de usuario y clave de Adafruit IO, así como el nombre y contraseña de su red wifi local, luego cargue el código en su microcontrolador ESP8266.

Imagen
Imagen

Tendrá que hacer un poco de preparación en io.adafruit.com. Después de crear alimentaciones para temperatura y humedad, puede crear un tablero para su monitor con un gráfico de los valores del sensor y los datos de ambas alimentaciones entrantes. Si necesita un repaso sobre cómo comenzar con Adafruit IO, consulte esta lección en mi Clase de Internet de las cosas.

Paso 4: Prepare la placa de carga solar

Prepare la placa de carga solar
Prepare la placa de carga solar

Prepare la placa de carga solar soldando su condensador y algunos cables a las almohadillas de salida de carga. Estoy personalizando el mío para que se cargue a un ritmo más rápido con una resistencia adicional opcional (2,2 K soldada en PROG) y lo hago más seguro para dejarlo desatendido reemplazando la resistencia de montaje en superficie con un termistor de 10 K conectado a la batería. Esto limitará la carga a un rango de temperatura seguro. Cubrí estas modificaciones con más detalle en mi proyecto de cargador solar USB.

Paso 5: Construya el circuito del microcontrolador

Construir circuito de microcontrolador
Construir circuito de microcontrolador
Imagen
Imagen
Imagen
Imagen

Suelde la placa del microcontrolador y el interruptor de encendido a una placa perma-proto.

Imagen
Imagen

Conecte la salida de energía del cargador solar a la entrada de su interruptor, que debe tener una capacidad nominal de al menos 1 amperio.

Imagen
Imagen

Cree y suelde las conexiones de cables de la placa de pruebas descritas en el diagrama de circuito anterior (o según las especificaciones de su versión personal), incluida la resistencia pull-up de 10K en la línea de datos del sensor.

Los pines de carga del cargador solar proporcionarán energía de batería de 3.7V cuando no exista energía solar, pero se alimentarán directamente desde el panel solar si está enchufado y soleado. Por lo tanto, el microcontrolador debe poder tolerar una variedad de voltajes, tan bajos como 3.7V y hasta 6V DC. Para aquellos que requieren 5V, se puede usar un PowerBoost (500 o 1000, dependiendo de la corriente requerida) para modular el voltaje de carga a 5V (como se muestra en el proyecto Cargador USB Solar). A continuación, se muestran algunas placas comunes y sus rangos de voltaje de entrada:

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

Para lograr la mayor duración posible de la batería, debe tomarse un tiempo para considerar y optimizar la corriente total que consume. El ESP8266 tiene una función de suspensión profunda que usamos en el boceto de Arduino para reducir drásticamente su consumo de energía. Se despierta para leer el sensor y consume más corriente mientras se conecta a la red para informar el valor del sensor, luego vuelve a dormir durante un período de tiempo específico. Si su microcontrolador consume mucha energía y no se puede hacer dormir fácilmente, considere la posibilidad de trasladar su proyecto a una placa compatible que consuma menos energía. Envíe una pregunta en los comentarios a continuación si necesita ayuda para identificar qué tablero podría ser el adecuado para su proyecto.

Paso 6: Instale prensaestopas

Imagen
Imagen

Para hacer puntos de entrada resistentes a la intemperie para el cable del panel solar y el cable del sensor, instalaremos dos prensaestopas en el costado del gabinete resistente a la intemperie.

Imagen
Imagen
Imagen
Imagen

Pruebe el ajuste de sus componentes para identificar la ubicación ideal, luego marque y taladre agujeros en un recinto impermeable con un taladro escalonado. Instale los dos prensaestopas.

Imagen
Imagen

Paso 7: Montaje del circuito completo

Montaje de circuito completo
Montaje de circuito completo

Inserte el lado del puerto de un cable de alimentación impermeable en uno y suéltelo a la entrada de CC del cargador solar (rojo a + y negro a -).

Imagen
Imagen

Inserte el sensor de suelo a través de la otra glándula y conéctelo al perma-proto según el diagrama del circuito.

Imagen
Imagen

Pega la sonda del termistor a la batería. Esto limitará la carga a un rango de temperatura seguro mientras el proyecto se deja desatendido afuera.

Imagen
Imagen

La carga mientras está demasiado caliente o demasiado fría podría dañar la batería o provocar un incendio. La exposición a temperaturas extremas puede causar daños y acortar la vida útil de la batería, así que llévela adentro si está por debajo del punto de congelación o por encima de 45 ℃ / 113F.

Imagen
Imagen

Apriete los prensaestopas para hacer un sello resistente a la intemperie alrededor de sus respectivos cables.

Paso 8: preparar el panel solar

Prepare el panel solar
Prepare el panel solar

Siga mis instrucciones para empalmar el cable de su panel solar con el lado del enchufe del juego de cables de alimentación de CC a prueba de agua.

Paso 9: Pruébelo

Pruébalo
Pruébalo

Conecte su batería y encienda el circuito presionando el interruptor de encendido.

Imagen
Imagen

Pruébelo y asegúrese de que esté informando a Internet antes de cerrar el recinto e instalar el sensor en su jardín de hierbas, plantas preciosas en macetas u otro suelo dentro del rango de señal de su red wifi.

Imagen
Imagen

Una vez que los datos del sensor se registran en línea, es fácil configurar una receta para alertas por correo electrónico o mensajes de texto en el sitio de la puerta de enlace de API If This Then That. Configuré el mío para que me envíe un correo electrónico si el nivel de humedad del suelo cae por debajo de 50.

Para probarlo sin esperar a que mi planta se seque, ingresé manualmente un punto de datos en mi alimentación de humedad en Adafruit IO que cayó por debajo del umbral. Unos momentos después, llega el correo electrónico. Si los niveles del suelo caen por debajo de mi nivel especificado, recibiré un correo electrónico cada vez que se actualice la alimentación hasta que riegue el suelo. Para mi cordura, actualicé mi código para muestrear el suelo con mucha menos frecuencia que cada 15 minutos.

Paso 10: ¡Úselo afuera

¡Úselo afuera!
¡Úselo afuera!
¡Úselo afuera!
¡Úselo afuera!

Este es un proyecto divertido para personalizar en función de las necesidades de hidratación de su planta, y es fácil cambiar o agregar sensores o integrar las funciones de energía solar en sus otros proyectos de Arduino.

¡Gracias por seguirnos! Me encantaría escuchar lo que piensas; por favor publique en los comentarios. Este proyecto es parte de mi Clase Solar gratuita, donde puede encontrar proyectos sencillos en el patio trasero y más lecciones sobre cómo trabajar con paneles solares. ¡Compruébalo e inscríbete!

Si te gusta este proyecto, puede que te interesen algunos de mis otros:

  • clase gratuita de Internet de las cosas
  • Contador de suscriptores de YouTube con ESP8266
  • Pantalla de seguimiento de estadísticas sociales con ESP8266
  • Pantalla meteorológica WiFi con ESP8266
  • San Valentín de Internet

Para estar al día en lo que estoy trabajando, sígueme en YouTube, Instagram, Twitter, Pinterest y Snapchat.

Recomendado: