Tabla de contenido:

Estación meteorológica ESP32 con energía solar: 9 pasos
Estación meteorológica ESP32 con energía solar: 9 pasos

Video: Estación meteorológica ESP32 con energía solar: 9 pasos

Video: Estación meteorológica ESP32 con energía solar: 9 pasos
Video: ESP32 IoT con ThingSpeak | Estación meteorológica en la nube WiFi con ESP32 y BME280 | Micropython 2024, Junio
Anonim
Image
Image
Estación meteorológica ESP32 con energía solar
Estación meteorológica ESP32 con energía solar
Estación meteorológica ESP32 con energía solar
Estación meteorológica ESP32 con energía solar

En este tutorial vamos a construir un proyecto de estación meteorológica habilitada para WiFi.

El objetivo es diseñar una estación meteorológica con casi todas las funciones posibles:

  • Muestra las condiciones actuales, tiempo, temperatura, humedad, presión
  • Mostrar previsión para los próximos días
  • Actualización en el aire
  • Sitio web integrado para configuración y representación de datos
  • Cargue datos en la nube para obtener estadísticas del historial
  • Integrado con Aple Home Kit o MQTT
  • Accu independiente alimentado con posible recarga o conexión a panel solar

No puedo agregar más y no más imaginación qué más debe o puede ser

Paso 1: Piezas necesarias

Partes que son necesarias
Partes que son necesarias
Partes que son necesarias
Partes que son necesarias
Partes que son necesarias
Partes que son necesarias
  • ESP32 (he usado el módulo de desarrollo)
  • LCD TFT 240x320 de 2,8 "SPI ILI9341
  • Contendor de plastico
  • 3 x 18650 Accu
  • Sensor meteorológico BME280 para medir temperatura, humedad y presión
  • Módulo cargador de litio USB
  • Paso DC-DC UP18650
  • soporte de batería (3 piezas)
  • Detector de movimiento HC-SR505
  • Resistencia de 220 Om
  • 2x resistencias de 10 kOm
  • El transistor TIP120 NPN (Darlington) se puede utilizar con cualquier otro transistor compatible
  • ButtonWires, switch, placa de soldadura….

Paso 2: cableado y montaje

Cableado y montaje
Cableado y montaje
Cableado y montaje
Cableado y montaje
Cableado y montaje
Cableado y montaje
Cableado y montaje
Cableado y montaje

El primer paso es el montaje de los poderes de la estación.

He dividido la caja de plástico en dos pares, uno de ellos utilizado para batería, interruptor, cargador USB y DC-DC. En esta parte, coloco el soporte de la batería y hago ventanas para el interruptor y el cargador USB. Tenga en cuenta que el módulo del cargador USB funciona bastante, por lo que he usado una placa de aluminio y coloqué el cargador USB en este con pegamento Star 922.

El segundo paso es ensamblar la parte de los controladores.

Ver diagrama de cableado cómo debe conectarse

He usado la tabla de pan para este propósito con los siguientes pasos

  • Placa de desarrollo de soldadura ESP32
  • Escudo de soldadura para mantener la pantalla TFT
  • Soldar otros componentes electrónicos: BME280, resistencias, botones
  • Suelde el cableado entre los componentes según el diagrama

El tercer paso es preparar el montaje de la placa de pruebas en la segunda parte de la caja de plástico. Imprimí en mi impresora 3d dos barras, las monté en el tablero con tornillos y realicé un corte rectangular para la pantalla de visualización.

Pegué soportes de barras de plástico al cuerpo de la caja de plástico. Ahora, cuando el pegamento esté seco, la cabina de la placa de pan se desmonta con tornillos.

El siguiente paso es:

  • Cableado de soldadura para fuente de alimentación
  • Cableado de soldadura para el estado del voltaje de la batería
  • Detector de movimiento para soldar y montar

Último paso:

  • Configure el convertidor DC-DC sintonizando el voltaje de salida 5v
  • conecte dos partes del controlador de la estación a la alimentación: cables de alimentación y lectura de voltaje

Para el detector de movimiento y el botón, hice agujeros adicionales en el lado frontal.

Paso 3: carga de firmware a ESP32

Para este proyecto he utilizado un software universal, desarrollado por mí mismo.

Por favor, eche un vistazo a la página de github ESPHomeController. Esta contiene instrucciones completas sobre cómo compilar y configurar.

! Si no está familiarizado con la compilación y Arduino, eche un vistazo al paso Cargar firmware listo

Tan pronto como cargue el firmware por primera vez, el ESP32 se iniciará en modo de configuración (modo de punto de acceso)

Deberías configurarlos. Para ello abre en cualquier dispositivo la lista de WiFi disponible. Busque HomeController y conéctese a él. El portal cautivo debería iniciarse automáticamente. Si no ingresa en la URL de su navegador: 192.168.4.1 y verá la pantalla de configuración

Siga las instrucciones y configure las credenciales WiFi para su red WiFi.

El ESP se reiniciará después de eso como cliente WiFi y se conectará a su Wifi.

A medida que se produce la primera conexión de sson, se montará automáticamente el sistema de archivos Spiffs y descargará los archivos necesarios para el portal web:

  • index.html
  • filebrowse.html
  • js / bundle.min.js.gz

La descarga se realiza desde la carpeta

Ahora puede ver el contenido del archivo a través del navegador web. para esto, ahora debe la dirección IP de su ESP32

Puede encontrarlo de una de las siguientes maneras:

  • Uso del monitor de puerto serie para ver los registros de un ESP32
  • Usar cualquier escáner tcp para escanear sus dispositivos de red
  • Presione un botón en la estación meteorológica y verá la información del sistema

Ingrese a navegar https://192.168.0. XX/browse y verá una lista de archivos de su ESP

(192.168.0. XX es la dirección IP de su dispositivo

Para el ajuste final, debe preparar los archivos de configuración.

Paso 4: carga de firmware listo

Carga de firmware listo
Carga de firmware listo

Esta sección es especialmente para auditores que no van a producir firmware por su cuenta. Solo necesita cargar el firmware "listo"

1. Descargue las herramientas de carga flash desde esta página

2. Descargue los archivos adjuntos (extractos de archivos) HomeController.bin y bootloader_qio_80m.bin a su disco duro

3. Inicie la herramienta de descarga ESP32 e ingrese los valores según la captura de pantalla

4. Presione iniciar

Paso 5: configuración

Antes de comenzar la preparación de la configuración, necesita:

  1. Crea tu canal en el lenguaje de las cosas y la clave para tu canal. Prepare 4 campos y nómbrelos correctamente Temperatura, Humedad, Presión, Voltaje
  2. Regístrese en Weather.com para obtener su clave de API

Se necesitan Thingspeak para cargar sus datos y monitorear tendencias y valores

El tiempo es necesario para obtener datos de pronóstico.

Ok, finalmente necesitas crear un archivo services.json con el siguiente contenido

[{"service": "TimeController", "name": "Time", "enabled": true, "interval": 1000, "timeoffs": 7200, "dayloffs": 3600, "server": "pool.ntp.org "," enableleep ": true," sleeptype ": 1," sleepinterval ": 900000," restartinterval ": 18000000}, {" service ":" BME280Controller "," name ":" BME "," enabled ": true, "interval": 900000, "i2caddr": 118, "uselegacy": true, "temp_corr": - 3.0, "hum_corr": 10.0}, {"service": "WeatherClientController", "name": "WeatherForecast", "habilitado": verdadero, "intervalo": 500000, "uri": "https://api.weather.com/v3/wx/forecast/daily/5day?geocode=50.30, 30.70 & format = json & units = m & language = en -US & apiKey = weatherapi "}, {" service ":" WeatherDisplayController "," nombre ":" WeatherDisplay "," habilitado ": verdadero," intervalo ": 500}, {" habilitado ":" verdadero "," intervalo ": 600000, "pin": 36, "service": "LDRController", "name": "LDR", "cvalmin": 0.0, "cvalmax": 7.2, "cfmt": "%. 2f V", "acctype": 10}, {"servicio": "ThingSpeakController", "nombre": "ThingSpeak", "habilitado": verdadero, "intervalo": 1200000, "valor": [1, 1, 1, 1, 0, 0, 0, 0], "apiKey": "thingspea kapi "}, {" habilitado ": verdadero," intervalo ": 1," pin ":" "," servicio ":" ButtonController "," nombre ":" Botón "," pines ": [27]}]

!Por favor cámbialo

  • thingspeakapi con la clave de la API de thingspeak
  • weatherapi con la clave de la API del tiempo
  • geocodificar con su ubicación para la que desea obtener el pronóstico

Que preparar el segundo archivo triggers.json

[{"type": "BMEToWeatherDisplay", "source": "BME", "destination": "WeatherDisplay"}, {"type": "TimeToWeatherDisplay", "source": "Time", "destination": "WeatherDisplay "}, {" type ":" WeatherForecastToWeatherDisplay "," fuente ":" WeatherForecast "," destino ":" WeatherDisplay "}, {" tipo ":" BMEToThingSpeak "," fuente ":" BME "," destino ": "ThingSpeak", "t_ch": 1, "h_ch": 2, "p_ch": 3}, {"type": "ButtonToWeatherDisplay", "source": "Button", "destination": "WeatherDisplay"}, { "tipo": "LDRToThingSpeak", "fuente": "LDR", "destino": "ThingSpeak", "ch": 4}]

Ambos archivos deben cargarse en la raíz de esp.

Puede hacerlo a través del navegador https://192.168.0. XX/browse, donde https://192.168.0. XX es la dirección IP de su dispositivo.

Después de cargar, el ESP debe reiniciarse y todo se hizo correctamente. Esp mostrará la pantalla adecuada como en la foto y el video de arriba

Paso 6: Ajuste y consumo de energía

Tuning y consumo de energía
Tuning y consumo de energía

Estoy usando mi dispositivo con la conexión al panel solar y para asegurarme de que pueda funcionar "infinitamente"

el consumo de energía es importante y después de varios experimentos he usado dos trucos principales

Reducir el consumo del LED de fondo de la pantalla TFT

Según la medición, consume 15-20 mA (mucho), por lo que he usado tácticas con el detector de movimiento. Funciona perfectamente. Detectores de movimiento capaces de reconocer cualquier detección hasta 8-10 metros y elevar la tensión en el cable de señal. Se trata de aberturas que un transistor y un LED de fondo reciben una potencia. Por lo general, el detector mantiene este estado hasta 10 segundos, que es más que suficiente para ver el monitor, pero si continúa con los movimientos, la señal sigue siendo alta y el LED se enciende.

Tal enfoque me da una gran economía, sin efectos adicionales, no me encuentro con ningún problema para ver mi pantalla cuando quiero

2. Reducir el consumo de energía mediante ESP32

Cuando el ESP está conectado a WiFi, consume constantemente de 7 a 10 mA, estoy hablando de tiempo constante, no de inicio y primera conexión. Esto puede ser aceptable si siempre ha visto la fecha y hora reales, acceda a su sistema desde el kit de inicio de Apple

Para mi energía solar en invierno, también era compatible con trabajos sin fuentes de energía adicionales, Por lo tanto, decidí poner periódicamente el ESP32 en modo de suspensión (comer es menos de 1 mA). Esto está bien para mí, por ejemplo, ESP está durmiendo 20 minutos, luego se despierta, actualiza la pantalla (datos reales y pronóstico) envía datos al lenguaje de cosas y vuelve al modo de suspensión nuevamente

Las desventajas son:

  • La pantalla del tiempo muestra valores de tiempo desactualizados
  • La estación no es accesible desde el navegador y el Apple Home Kit durante el tiempo de suspensión

Depende de usted decidir qué es más importante, puede simplemente reconfigurarlo.

Por favor, eche un vistazo al archivo y la línea services.json

[{"service": "TimeController", "name": "Time", "enabled": true, "interval": 1000, "timeoffs": 7200, "dayloffs": 3600, "server": "pool.ntp.org "," enableleep ": true," sleeptype ": 1," sleepinterval ": 900000," restartinterval ": 18000000}

"enableleep": true habilita el sueño en absoluto, si se pone allí false o elimina el parámetro (false es el valor predeterminado) ESP nunca dormirá

"sleepinterval": 900000 esto es milis, o 15 min, significa que cada 15 min el ESP se despertará y el personal necesario

Entonces, ahora todos pueden jugar fácilmente según sus necesidades.

Paso 7: Ajuste de los sensores

Para minimizar el impacto del calentamiento interno en el sensor de temperatura BME280

Primero hice un tubo alrededor del sensor y los agujeros. Hovewer en mi modo cuando el LED normalmente está apagado y el ESP está durmiendo no es tan importante. En otros casos, el sensor BME280 debe moverse a algún lugar para excluir la influencia del calentamiento interno. Cualquiera que sea la pequeña influencia que encontré, por lo tanto, hay dos parámetros para compensar

"hum_corr": 10.0

lo que significa que esos valores se agregarán después de la medición

El segundo es calibrar la medición del voltaje de la batería, {"enabled": "true", "interval": 600000, "pin": 36, "service": "LDRController", "name": "LDR", "cvalmin": 0.0, "cvalmax": 7.2, " cfmt ":"%. 2f V "," acctype ": 10}, "cvalmin": 0.0

"cvalmax": 7,2

son para este propósito, debido a que el voltaje se mide después de los divisores de resistencias y se compara con 3.3 V, jugando con el valor cvalmax, puede alcanzar un ajuste de voltaje exacto con su valor multimétrico

Paso 8: Agregar dispositivo al kit de inicio de Apple

Agregar dispositivo a Apple Home Kit
Agregar dispositivo a Apple Home Kit

Finalmente, cuando su dispositivo funcione correctamente, se puede agregar a Apple Home Kit y podrá ver

valores de los sensores en la pantalla de inicio de Apple.

Primero necesita reiniciar el dispositivo, tan pronto como el dispositivo se inicie, no se irá a dormir 20 minutos es más que suficiente

Luego, abra la aplicación Home Kit en su dispositivo iOS y seleccione o cree un nuevo Home1. Presione Agregar (+)

2. Seleccione Agregar accesorio.

3. Presione No tengo un código o No puedo escanear (se agregará más información sobre escaneo)

4. si todo va bien, debería ver su nuevo dispositivo esp en una lista (ver imagen)

5. Seleccione el dispositivo y confirme la adición sin certificación oficial.

6. Escriba la contraseña 11111111

7. ¡Eso es todo! Debería ver que el dispositivo se emparejó correctamente; de lo contrario, comience el proceso de emparejamiento nuevamente.

Según esta configuración, verá dos dispositivos en Apple

1. Sensor de temperatura y sensor de zumbido, profundizando, mostrará los valores en pantalla completa

2. Sensor de luz:) En realidad, Apple puede mostrar un ambiente ligero, pero no un voltaje, por lo que el voltaje de la batería se muestra en Lux.

Paso 9: OTA: actualizaciones por aire

Antes de comenzar cualquier actualización, es mejor reiniciar ESP32, como se mencionó anteriormente, no se suspenderá los primeros 20 minutos

Hay dos posibilidades para actualizar

  1. Configuración usando https://192.168.0. XX/browse, puede acceder a su sistema de archivos en ESP y cambiar los archivos de configuración
  2. Puede actualizar completamente el firmware. para este propósito, primero necesita crear uno nuevo. Se puede hacer a través de Arduino o Visual Studio IDE. Luego escriba en el navegador https://192.168.0. XX/update, seleccione su firmware y presione actualizar. Espere hasta que finalice el proceso y obtendrá una respuesta correcta; de lo contrario, repita el paso nuevamente

Recomendado: