wifi_weather_dashboard.ino
Se conecta a WiFi, consulta una API de clima y actualiza la pantalla e-paper.
Requiere las bibliotecas WiFi, HTTPClient, ArduinoJson y GxEPD2. Reemplace las credenciales de WiFi y la clave API. La pantalla se actualiza lentamente; evite actualizaciones demasiado frecuentes para ahorrar batería.
wifi_weather_dashboard.ino
#include <WiFi.h>
#include <HTTPClient.h>
#include <ArduinoJson.h>
#include <GxEPD2_BW.h>
#include <GxEPD2_4G01.h>
const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASSWORD";
GxEPD2_4G01 epd;
GxEPD2_BW<GxEPD2_4G01, GxEPD2_4G01::HEIGHT> display(epd);
void setup() {
Serial.begin(115200);
display.init(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi connected");
}
void loop() {
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
http.begin("http://api.openweathermap.org/data/2.5/weather?q=Paris&appid=YOUR_API_KEY");
int httpCode = http.GET();
if (httpCode > 0) {
String payload = http.getString();
DynamicJsonDocument doc(2048);
deserializeJson(doc, payload);
float temp = doc["main"]["temp"];
display.clearScreen();
display.setFont(&FreeSansBold12pt7b);
display.setCursor(20, 50);
display.print(String(temp, 1) + " C");
display.display();
}
http.end();
}
delay(60000); // Update every minute
}