#include "DHTesp.h"
#include <WiFi.h>
#include <HTTPClient.h>
#include <ArduinoJson.h>
#include <PubSubClient.h>
const char* ssid = "Wokwi-GUEST";
const char* password = "";
String payload;
//secret channel token at Beebotte (https://beebotte.com/)
//const char channelToken[] = "token_Kgaz3zIlO7vPsZvf";
const char channelToken[] = "souhir oualha";
// Channel name at Beebotte
//String channel = "esp82ss";
String channel = "TP2";
// resource name at Beebotte
String resourcetemp = "temp";
String resourcehum = "hum";
// The Beebotte server
//const char host[] = "mqtt.beebotte.com";
const char host[] = "ds-lce3-2023.jap.";
// client ID
const char clientID[] = "souhir oualha";
const int DHT_PIN = 23;
float temperature;
float humidity;
DHTesp capteur;
WiFiClient Clientwifi;
PubSubClient clientmqtt(host,1883,Clientwifi);
void setup() {
Serial.begin(115200);
capteur.setup(DHT_PIN, DHTesp::DHT22);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
}
void loop() {
if (! clientmqtt.connected()) {
Serial.println("MQTT NOT connected");
delay(5000);
String username = "";
//String username = "token:";
username += channelToken;
Serial.print("username=");Serial.println(username.c_str());
//clientmqtt.connect(clientID, username.c_str(),NULL);
clientmqtt.connect( username.c_str(),"user","user");
Serial.println("MQTT connected");
}
else { // Client connected
Serial.println("MQTT connected");
delay(1000);
temperature = capteur.getTemperature();
humidity = capteur.getHumidity();
Serial.print("Temperature: "); Serial.println(temperature);
Serial.print("Humidity (%): "); Serial.println(humidity);
publishdata(temperature, resourcetemp);
publishdata(humidity, resourcehum);
Serial.println("MQTT DATA sent");
}
clientmqtt.loop();
Serial.println();
delay(8000);
}
void publishdata (float t, String res){
String d;
StaticJsonDocument <1024> T;
T["channel"]= channel;
T["resource"]= res;
T["write"]= true;
T["data"]= t;
serializeJson (T, d);
String top = channel + "/" + res;
const char * topic= top.c_str();
const char * data= d.c_str();
clientmqtt.publish(topic,data );
}