//#include <ESP8266WiFi.h>
#include <WiFi.h>
#include <ArduinoJson.h>
#include <PubSubClient.h>
#include "DHTesp.h"
const char* ssid = "Wokwi-GUEST";
const char* password = "";
String payload;
String channel="Test";
String resTemp="Temperature"; String topic_temp="Test/temp";
String resHum="hum"; String topic_hum="Test/hum";
const char* server = "mqtt.beebotte.com";
//const char* ClientID = "kamelechaieb";
const char* username = "token:token_ylttBHEK4Dx6JybB";
const int port = 1883;
WiFiClient client;
PubSubClient clientmqtt(server,1883,client);
DHTesp dht;
void setup() {
dht.setup(23, DHTesp::DHT22);
Serial.begin(115200);
WiFi.begin(ssid, password);
Serial.print("Connecting to WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
clientmqtt.setServer(server,port);
Serial.println("Server ready");
}
void loop() {
if(!clientmqtt.connected()){
Serial.println("MQTT not connected");
String ClientID="sendkamel"+String(random(1000));
clientmqtt.connect(ClientID.c_str(),username,NULL);
delay(3000);
Serial.println("MQTT Try to connect");
}
else // client connected
{ Serial.println("MQTT connected");
float temperature = dht.getTemperature();
float humidity = dht.getHumidity();
delay(500);
Serial.print("La temperature est : ");
Serial.println(temperature);
Serial.print("L'humidité est: ");
Serial.println(humidity);
String myjsonTemperature="";
StaticJsonDocument<200> JT;
JT["channel"]=channel;
JT["resource"]=resTemp;
JT["write"]=true;
JT["data"]=temperature;
serializeJson(JT,myjsonTemperature);
clientmqtt.publish(topic_temp.c_str(),myjsonTemperature.c_str());
Serial.println("Temperature send");
delay(1000);
String myjsonHumidity="";
StaticJsonDocument<200> JH;
JH["channel"]=channel;
JH["resource"]=resHum;
JH["write"]=true;
JH["data"]=humidity;
serializeJson(JH,myjsonHumidity);
clientmqtt.publish(topic_hum.c_str(),myjsonHumidity.c_str());
Serial.println("Humidity send");
delay(1000);
}
clientmqtt.loop();
delay(8000);
}