#include <WiFi.h>
#include <HTTPClient.h>
#include <ArduinoJson.h> // Inclure ArduinoJSON
const char* ssid = "Wokwi-GUEST";
const char* password = "";
void setup() {
Serial.begin(115200);
delay(1000);
// Connexion au réseau Wi-Fi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connexion au réseau Wi-Fi en cours...");
}
Serial.println("Connexion Wi-Fi établie");
// Effectuer la requête HTTP
getWeatherData();
}
void loop() {
// Vous pouvez ajouter d'autres fonctionnalités ici si nécessaire
}
void getWeatherData() {
HTTPClient http;
String url = "http://api.openweathermap.org/data/2.5/weather?q=tunis&appid=54cfa3e65e0c8baac7a86765f61c4e1b";
// Commencer la connexion HTTP
http.begin(url);
int httpCode = http.GET();
if (httpCode > 0) {
if (httpCode == HTTP_CODE_OK) {
String payload = http.getString();
Serial.println(payload); // Afficher la réponse JSON
// Analyser la réponse JSON avec ArduinoJSON
DynamicJsonDocument doc(1024); // Taille du document JSON
deserializeJson(doc, payload);
// Extraire les informations météorologiques
float temperature = doc["main"]["temp"];
float humidity = doc["main"]["humidity"];
float pressure = doc["main"]["pressure"];
float windSpeed = doc["wind"]["speed"];
String weatherDescription = doc["weather"][0]["description"];
Serial.print("Température : ");
Serial.println(temperature);
Serial.print("Humidité : ");
Serial.println(humidity);
Serial.print("Pression atmosphérique : ");
Serial.println(pressure);
Serial.print("Vitesse du vent : ");
Serial.println(windSpeed);
Serial.print("Description météo : ");
Serial.println(weatherDescription);
}
} else {
Serial.println("Erreur de connexion HTTP");
}
http.end();
}