#include <WiFi.h>
#include <HTTPClient.h>
#include <ArduinoJson.h>
const char* ssid = "Wokwi-GUEST";
const char* password = "";
const char* apiUrl = "http://api.openweathermap.org/data/2.5/forecast?id=524901&appid=904f05c2f80aff859fbacf58e5c2fabc"; // Remplacez par l'URL de votre API
void setup() {
Serial.begin(115200);
delay(10);
// Se connecter au réseau Wi-Fi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connexion au WiFi...");
}
Serial.println("Connecté au WiFi");
// Récupérer et afficher les données de l'API
getAndDisplayData();
}
void loop() {
// Votre code principal
}
void getAndDisplayData() {
HTTPClient http;
Serial.println("Récupération des données depuis l'API...");
if (http.begin(apiUrl)) {
int httpCode = http.GET();
if (httpCode > 0) {
if (httpCode == HTTP_CODE_OK) {
String payload = http.getString();
// Créer un document JSON pour analyser les données
DynamicJsonDocument doc(1024); // Ajustez la taille selon les besoins
DeserializationError error = deserializeJson(doc, payload);
if (!error) {
// Récupérer les données souhaitées de l'API
JsonObject firstEntry = doc["list"][0];
float temperature = firstEntry["main"]["temp"];
int weatherId = firstEntry["weather"][0]["id"];
int cloudsAll = firstEntry["clouds"]["all"];
float windSpeed = firstEntry["wind"]["speed"];
// Afficher les données dans la console série
Serial.println("Température : " + String(temperature) + " °C");
Serial.println("ID de la météo : " + String(weatherId));
Serial.println("Pourcentage de nuages : " + String(cloudsAll) + "%");
Serial.println("Vitesse du vent : " + String(windSpeed) + " m/s");
} else {
Serial.println("Erreur lors de la désérialisation JSON.");
}
} else {
Serial.println("Échec de la requête HTTP avec le code d'erreur : " + String(httpCode));
}
} else {
Serial.println("Erreur lors de la connexion à l'API.");
}
http.end();
} else {
Serial.println("Impossible de se connecter à l'API.");
}
}