ESP32 Projekt: Anzeige für Wettervorhersage - AZ-Delivery

Proyecto ESP32: Visualización del pronóstico del tiempo

 

¿Cómo será el tiempo mañana y pasado? Los proyectos de estación meteorológica clásica que se ven en la escena no pueden hacer una declaración al respecto, ya que solo muestran y registran los valores de temperatura actuales. Aquí tomamos un enfoque diferente: con el ESP32 (https://az-delivery.de/products/esp32-developmentboard) invitamos al pronóstico del tiempo para los próximos cinco días a partir de https://openweathermap.org y mostrarlos en una pequeña pantalla OLED (https://az-delivery.de/products/0-96zolldisplay) .

 

El proyecto se implementa en tres etapas: (1) preparación de hardware, (2) generación de una clave de API para OpenWeatherMap para acceder a los datos y (3) software para descargar y ver la previsión meteorológica.

 

Hardware

 

 

La pantalla está conectada al ESP32 con 3.3 V y GND. Para la conexión I2C, SCL también está conectado a G22 y SDA a G21. La figura siguiente muestra el hardware cableado terminado.

Los gráficos incluso se pueden mostrar en la minipantalla. Con los bocetos de muestra de la biblioteca, están a solo unos clics de distancia.

 

Los gráficos incluso se pueden mostrar en la minipantalla. Con los bocetos de muestra de la biblioteca, están a solo unos clics de distancia.

 

Openweathermap API

OpenWeatherMap es una empresa de TI que proporciona datos meteorológicos. A pequeña escala, incluso de forma gratuita. Para obtener los datos meteorológicos, debe enviar solicitudes HTTP a la API OpenWeatherMap (https://openweathermap.org/forecast5) . Esto requiere autenticación de clave de API. Puede obtener su clave de API en la página de precios (https://openweathermap.org/price). Por ejemplo, se ve así:


a254362geggeg715dce096a37b32c17aa

 

 

Si ahora tiene la URL en el navegador, http://api.openweathermap.org/data/2.5/forecast?q=Karlsruhe,de&appid=a254362gegeg715dce096a37b32c17aa recibirás el pronóstico del tiempo para los próximos cinco días para Karlsruhe. En la URL, reemplace Karlsruhe por el nombre de su ciudad y la clave de API detrás appid a través de la suya.

 

Los datos devueltos están en formato JSON. El atributo Temp da la temperatura pronosticada en Kelvin para el momento Alemán Para. Este último es un Marca de tiempo Unix, que se utiliza una vez más en forma legible como dt_txt enviado a lo largo. Ejemplo del comienzo de una respuesta:

 

{
bacalao: "200",
mensaje: 0.0447,
cnt: 40,
lista: [
   {
     dt: 1503241200,
Principal:
       temp: 293.69,
temp_min: 293.69,
temp_max: 293.738,
presión: 1017.16,
sea_level: 1037.44,
grnd_level: 1017.16,
Humedad: 53,
temp_kf: -0.05
     },
tiempo: [
       {
id: 800,
principal: "Clear",
descripción: "cielo despejado",
icono: "01d"
       }
     ],
Nubes:
todos: 0
     }, [...]

 

 

Software

En esta sección se describe cómo funciona el programa. Para una comprensión más profunda, una mirada al código (https://github.com/Simsso/Microcontroller-Examples/tree/master/ESP32/WeatherDisplay) es esencial. Las tareas del proyecto son las siguientes:

  • WeatherDisplay.ino: Arduino-Sketch, Programa principal: Conecta todos los componentes.
  • OpenWeatherMapAPI.h: Archivo de encabezado de API OpenWeatherMap: define cómo acceder a OpenWeatherMap.
  • OpenWeatherMapAPI.cpp: Archivo de código de API OpenWeatherMap: implementa los métodos del archivo de encabezado anterior.
  • OLEDScreen.h: Archivo de encabezado de pantalla OLED: Controla la pantalla OLED y genera los datos meteorológicos gráficamente.
  • WeatherForecastSample.cpp: Muestra de previsión meteorológica: Clase que representa un único pronóstico del tiempo.

 

Accesos API con el ESP32

Para ver la información meteorológica, ESP32 debe obtener los datos enumerados en parte de la API OpenWeatherMap. El código para descargar y leer se encuentra en archivos C++ independientes, que se incluyen en el boceto principal, debido a su longitud. #include estar integrado. Para ejecutar el programa de ejemplo, debe utilizar todo el contenido de la carpeta de https://github.com/Simsso/Microcontroller-Examples/tree/master/ESP32/WeatherDisplay y luego abra el archivo .ino con el IDE de Arduino. En el programa, los datos meteorológicos se descargan a intervalos regulares (por defecto 2 horas). Estos se proporcionan con la biblioteca ArduinoJson (https://github.com/bblanchon/ArduinoJson/) analizados, es decir, la lectura de auges para que puedan ser reutilizados en el programa.

 

Para poner el código en funcionamiento, debe instalar las bibliotecas

  • Ingrese su SSID wlan y contraseña (archivo WeatherDisplay.ino),
  • Actualice la ciudad para la que se va a realizar una previsión (Archivo WeatherDisplay.ino, Variable Consulta) y
  • introduzca una clave de API OpenWeatherMap válida (WeatherDisplay.ino, Variable apiKey).

 

Visualización del pronóstico del tiempo

Por ejemplo, la visualización que muestra los datos meteorológicos descargados se puede controlar con la biblioteca de Ai_Ardulib_SSD1306 (https://github.com/acrobotic/Ai_Ardulib_SSD1306). En el momento de publicar este mensaje, contenía un error que se solucionó en esta solicitud de extracción: https://github.com/barbeque/Ai_Ardulib_SSD1306/tree/patch-1Por lo tanto, por razones de seguridad, descargue el código a través de este último enlace.

 

En la versión actual, el programa WeatherDisplay muestra el pronóstico del tiempo sin formato, es decir, sin más formato. Se le invita cordialmente a agregar gráficos de nube/ sol a la pantalla, por ejemplo (tutorial en inglés: http://www.instructables.com/id/Display-Images-on-OLED-Screen-With-Arduino-ATtiny8/.

 

Con este pronóstico del tiempo - 13 oC - jugar con el ESP32 es simplemente la mejor ocupación.

DisplaysEsp-32Projekte für anfänger

29 comentarios

Deja un comentario

Todos los comentarios son moderados antes de ser publicados