/**
ESP32 + DHT22 + ThingSpeak Example using Wokwi
*/
#include <WiFi.h>
#include "DHTesp.h"
#include "ThingSpeak.h"
const int DHT_PIN = 15; // capteur DHT22 Pin GPIO
const char* WIFI_NAME = "Wokwi-GUEST";
const char* WIFI_PASSWORD = "";
//id de la chaine thingspeak
const int myChannelNumber = 2575016;
//clef de lecture
const char *myApiKey = "7HBNCV482PV7QAMO";
const char* server = "api.thingspeak.com"; // ThingSpeak server address
// Create une instance de lq biblioteque DHTesp
DHTesp dhtSensor;
//objet representant le client wifi
WiFiClient client;
void setup() {
// Initialiser la communication serie avec 15200 baud ratio
Serial.begin(115200);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22); // initialiser le capteur DHT22
WiFi.begin(WIFI_NAME, WIFI_PASSWORD); // Connection au reseau wifi
while (WiFi.status() != WL_CONNECTED){
delay(1000);
Serial.println("Wifi connecté");
}
Serial.println("Wifi non connecté !"); // Print a message if WiFi is connected
Serial.println("Local IP: " + String(WiFi.localIP())); // Print the local IP address
WiFi.mode(WIFI_STA); // station mode pour le wifi
ThingSpeak.begin(client); // Initialiser la bibliotheque ThingSpeak
}
void loop() {
// Lecture de la temperature a partir du capteur
TempAndHumidity data = dhtSensor.getTempAndHumidity();
data.humidity = 18;
data.temperature = 30;
//modifier le champ 1
ThingSpeak.setField(1,data.temperature);
//modifier le champ 2
ThingSpeak.setField(2,data.humidity);
//ecrire les donnees sur la chaine thingspeak
int status = ThingSpeak.writeFields(myChannelNumber,myApiKey);
Serial.println("Temperature: " + String(data.temperature, 2) + "°C");
Serial.println("Humidité: " + String(data.humidity, 1) + "%HR");
//statut de reponse HTTP
if(status == 200){
Serial.println("Donnees envoyees avec succes");
}else{
Serial.println("Erreur d'envoi" + String(status));
}
Serial.println("---");
delay(10000); // Delay for 10 seconds
}