Tabla de contenido:

Estación meteorológica WiFi ESP32 con sensor BME280: 7 pasos (con imágenes)
Estación meteorológica WiFi ESP32 con sensor BME280: 7 pasos (con imágenes)

Video: Estación meteorológica WiFi ESP32 con sensor BME280: 7 pasos (con imágenes)

Video: Estación meteorológica WiFi ESP32 con sensor BME280: 7 pasos (con imágenes)
Video: ESP32 IoT con ThingSpeak | Estación meteorológica en la nube WiFi con ESP32 y BME280 | Micropython 2024, Noviembre
Anonim
Image
Image
Estación meteorológica WiFi ESP32 con sensor BME280
Estación meteorológica WiFi ESP32 con sensor BME280
Estación meteorológica WiFi ESP32 con sensor BME280
Estación meteorológica WiFi ESP32 con sensor BME280

Queridos amigos, ¡bienvenidos a otro tutorial! ¡En este tutorial vamos a construir un proyecto de estación meteorológica habilitado para WiFi! Vamos a utilizar el nuevo e impresionante chip ESP32 por primera vez junto con una pantalla Nextion.

En este video, vamos a hacer esto. Es otro proyecto de estación meteorológica que conozco, ¡pero esta vez usamos el nuevo chip ESP32! También utilizamos el nuevo sensor BME280 que mide la temperatura, la humedad y la presión barométrica. Cuando encendemos el proyecto, se conecta a la red WiFi y va a recuperar el pronóstico del tiempo para mi ubicación desde el sitio web de openweathermap. Luego, mostrará el pronóstico en esta pantalla táctil Nextion de 3.2”junto con las lecturas del sensor. ¡Las lecturas se actualizan cada dos segundos y el pronóstico del tiempo cada hora! Como puede ver, en este proyecto utilizamos las últimas tecnologías disponibles para un fabricante en la actualidad. Si es un veterano del bricolaje, puede construir este proyecto en cinco minutos.

Si eres un principiante, debes ver un par de videos antes de intentar este proyecto. Puede encontrar enlaces a estos videos en este Instructable, no se preocupe.

¡Empecemos!

Paso 1: obtenga todas las piezas

Obtenga todas las piezas
Obtenga todas las piezas

Para construir este proyecto necesitamos las siguientes partes:

  • Una placa ESP32 ▶
  • Un sensor BME280 I2C ▶
  • Una pantalla Nextion de 3,2”▶
  • Una pequeña placa de pruebas ▶
  • Algunos cables ▶

El costo del proyecto ronda los 30 $.

En lugar del ESP32, podríamos usar el chip ESP8266 más barato, pero decidí usar el ESP32 para ganar algo de experiencia con él y ver qué funciona y qué no.

Paso 2: el ESP32

Image
Image
El ESP32
El ESP32

Este es el primer proyecto que construyo con el nuevo chip ESP32.

Si no está familiarizado con él, el chip ESP32 es el sucesor del popular chip ESP8266 que hemos usado muchas veces en el pasado. ¡El ESP32 es una bestia! Ofrece dos 32 núcleos de procesamiento que operan a 160MHz, una gran cantidad de memoria, WiFi, Bluetooth y muchas otras características con un costo de alrededor de 7 $. ¡Cosas asombrosas!

Por favor, mire la revisión detallada que he preparado para esta placa. He adjuntado el video en este Instructable. ¡Ayudará a comprender por qué este chip cambiará la forma en que hacemos las cosas para siempre!

Paso 3: la pantalla Nextion

Image
Image
Sensor BME280
Sensor BME280

Además, este es el primer proyecto que construyo con una pantalla táctil Nextion.

Las pantallas Nextion son un nuevo tipo de pantallas. Tienen su propio procesador ARM en la parte posterior que es responsable de controlar la pantalla y crear la interfaz gráfica de usuario. Entonces, podemos usarlos con cualquier microcontrolador y lograr resultados espectaculares.

He preparado un Instructable detallado sobre esta pantalla Nextion que explica en profundidad cómo funcionan, cómo usarlos y sus inconvenientes. Puede leerlo haciendo clic aquí:

Paso 4: Sensor BME280

Sensor BME280
Sensor BME280

El BME280 en un nuevo gran sensor de Bosch.

Hasta ahora estaba usando el sensor BMP180 que puede medir la temperatura y la presión barométrica. ¡El sensor BME280 puede medir temperatura, humedad y presión barométrica! ¡Cuan genial es eso! ¡Solo necesitamos un sensor para construir una estación meteorológica completa!

Además de eso, el sensor es de tamaño muy pequeño y muy fácil de usar. El módulo que vamos a utilizar hoy utiliza la interfaz I2C por lo que facilita la comunicación con Arduino. Solo tenemos que conectar la alimentación y dos cables más para que funcione.

¡Ya hay muchas bibliotecas desarrolladas para este sensor, por lo que podemos usarlo en nuestros proyectos muy fácilmente! El costo del sensor es de aproximadamente 5 $. Puede obtenerlo aquí ▶

NOTA: Necesitamos el sensor BME280. También hay un sensor BMP280 que no ofrece medición de humedad. Tenga cuidado de ordenar el sensor que necesita.

Paso 5: Conexión de las piezas

Conexión de las piezas
Conexión de las piezas
Conexión de las piezas
Conexión de las piezas
Conexión de las piezas
Conexión de las piezas

La conexión de las piezas es sencilla, como puede ver en el diagrama esquemático.

Dado que el sensor BME280 utiliza la interfaz I2C, solo necesitamos conectar dos cables para comunicarnos con ESP32. He conectado el sensor a los pines 26 y 27. En teoría, cada pin digital de la placa ESP32 se puede utilizar con periféricos I2C. Sin embargo, en la práctica, descubrí que algunos pines no funcionaban porque están reservados para otros usos. ¡Los pines 26 y 27 funcionan muy bien!

Para enviar datos a la pantalla, solo necesitamos conectar un cable al pin TX0 del ESP32. Tuve que doblar el pin así para conectar el cable hembra de la pantalla ya que la placa ESP32 es demasiado grande para esta placa.

Después de conectar las partes, tenemos que cargar el código en el ESP32 y tenemos que cargar la GUI en la pantalla de Nextion. Si tiene problemas para cargar el programa en la placa ESP32, mantenga presionado el botón BOOT después de presionar el botón de carga en el IDE de Arduino.

Para cargar la GUI en la pantalla de Nextion, copie el archivo WeatherStation.tft que voy a compartir con usted en una tarjeta SD vacía. Coloque la tarjeta SD en la ranura para tarjetas SD en la parte posterior de la pantalla. Luego encienda la pantalla y se cargará la GUI. Luego retire la tarjeta SD y vuelva a conectar la alimentación.

Después de cargar con éxito el código, el proyecto se conectará a la red WiFi, obtendrá el pronóstico del tiempo del sitio web openweathermap.org y mostrará las lecturas del sensor. Veamos ahora el lado del software del proyecto.

Paso 6: el código del proyecto

El Código del Proyecto
El Código del Proyecto
El Código del Proyecto
El Código del Proyecto
El Código del Proyecto
El Código del Proyecto

Para analizar los datos meteorológicos, necesitamos la excelente biblioteca JSON de Arduino. También necesitamos una biblioteca para el sensor.

? ESP32 BME280: https://github.com/Takatsuki0204/BME280-I2C-ESP32? Arduino JSON:

Veamos el código ahora.

Al principio, tenemos que configurar el SSID y la contraseña de nuestra red WiFi. A continuación, tenemos que ingresar la APIKEY gratuita del sitio web operweathermap.org. Para crear su propia clave API, debe registrarse en el sitio web. Obtener datos y pronósticos meteorológicos actuales es gratis, pero el sitio web ofrece más opciones si está dispuesto a pagar algo de dinero. A continuación, tenemos que encontrar la identificación de nuestra ubicación. Busque su ubicación y copie la identificación que se puede encontrar en la URL de su ubicación.

Luego ingrese la identificación de su ciudad en la variable CityID. Además, ingrese la altitud de su ciudad en esta variable. Este valor es necesario para obtener lecturas precisas de presión barométrica del sensor.

const char * ssid = "suSSID"; const char * contraseña = "su contraseña"; String CityID = "253394"; // Esparta, Grecia String APIKEY = "yourAPIkey"; #define ALTITUDE 216.0 // Altitud en Esparta, Grecia

Ahora estamos listos para seguir adelante.

Al principio, inicializamos el sensor y nos conectamos a la Red WiFi. Luego solicitamos datos meteorológicos del servidor.

Recibimos una respuesta con los datos meteorológicos en formato JSON. Antes de enviar los datos a la biblioteca JSON, elimino manualmente algunos caracteres que me estaban causando problemas. Luego, la biblioteca JSON se hace cargo y podemos guardar fácilmente los datos que necesitamos en variables. Una vez que hayamos guardado los datos en variables, lo único que tenemos que hacer es mostrarlos en pantalla y esperar una hora antes de solicitar nuevos datos al servidor. La única información que presento es el pronóstico del tiempo, pero puede mostrar más información si lo desea. Todo aquí guardado en variables. Luego leemos la temperatura, la humedad y la presión barométrica del sensor y enviamos los datos a la pantalla Nextion.

Para actualizar la pantalla, simplemente enviamos algunos comandos al puerto serie como este:

void showConnectingIcon () {Serial.println (); String command = "weatherIcon.pic = 3"; Serial.print (comando); endNextionCommand (); }

La GUI de Nextion consta de un fondo, algunos cuadros de texto y una imagen que cambia según el pronóstico del tiempo. Vea el tutorial de visualización de Nextion para obtener más información. Puede diseñar rápidamente su propia GUI si lo desea y mostrar más cosas en ella.

¡Como siempre, puede encontrar el código del proyecto adjunto a este Instructable

Paso 7: Reflexiones finales y mejoras

Reflexiones finales y mejoras
Reflexiones finales y mejoras

Como puede ver, un creador experimentado hoy en día puede crear proyectos emocionantes en solo unas pocas horas con unas pocas líneas de código y solo tres partes. ¡Un proyecto como este hubiera sido imposible de hacer ni siquiera hace dos años!

Por supuesto, esto es solo el comienzo del proyecto. Me gustaría agregarle muchas características, como gráficos, funcionalidad táctil que ahora falta, tal vez una pantalla más grande y, por supuesto, una hermosa carcasa impresa en 3D. También diseñaré una interfaz gráfica de usuario e iconos más atractivos. ¡Tengo algunas ideas muy frescas para implementar!

Me encantaría conocer tu opinión sobre el proyecto de hoy. ¿Qué tipo de características quieres que agregue al proyecto? Te gusta como se ve? ¿Cómo quieres que evolucione? Publique sus ideas en la sección de comentarios a continuación; ¡Me encanta leer tus pensamientos!

Concurso inalámbrico
Concurso inalámbrico
Concurso inalámbrico
Concurso inalámbrico

Finalista en el concurso inalámbrico

Recomendado: