#include <Arduino.h>
#include <WiFi.h>
#include <HTTPClient.h>
#include "DHTesp.h"
String wifiSSID = "Wokwi-GUEST";
String wifiPassword = "";
String tbHost = "selin.solu.co.id:8700";
String tbToken = "9iLo57bhdncNbP8ZzGmh";
const int DHT_PIN = 15;
DHTesp dhtSensor;
void connectWifi() {
WiFi.begin(wifiSSID.c_str(), wifiPassword.c_str());
while (WiFi.status() != WL_CONNECTED) {
delay(500);
}
}
void sendDataToThingsBoard(int temperature, int humidity) {
HTTPClient http;
String url = "https://" + tbHost + "/api/v1/" + tbToken + "/telemetry";
String payload = "{\"temperature\":" + String(temperature) + ",\"humidity\":" + String(humidity) + "}";
http.begin(url);
http.addHeader("Content-Type", "application/json");
http.addHeader("X-Authorization", "Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZW5hbnRAdGhpbmdzYm9hcmQub3JnIiwidXNlcklkIjoiMDg1YTA0NjAtNDdkNC0xMWVlLTg5YzYtZWI0ZDgxYWU2ZDAwIiwic2NvcGVzIjpbIlRFTkFOVF9BRE1JTiJdLCJzZXNzaW9uSWQiOiIwZTQ4ZTFiYi0zYTJlLTQ1ZWQtYjE4My04YTM5NzdlNjk2ZDYiLCJleHAiOjE3MjY2NDM2NDEsImlzcyI6InRoaW5nc2JvYXJkLmlvIiwiaWF0IjoxNzI2NjM0NjQxLCJmaXJzdE5hbWUiOiJ0ZW5hbnQgdXRhbWEiLCJlbmFibGVkIjp0cnVlLCJpc1B1YmxpYyI6ZmFsc2UsInRlbmFudElkIjoiMDc3YTA0YTAtNDdkNC0xMWVlLTg5YzYtZWI0ZDgxYWU2ZDAwIiwiY3VzdG9tZXJJZCI6IjEzODE0MDAwLTFkZDItMTFiMi04MDgwLTgwODA4MDgwODA4MCJ9.4D_lBcM1sjyN9tB8AnvZNMsZuXt-KjVW_RUqat74CXcBx7kv1b-5bIxY_GLpiNliBcOr2msMNyMC6Qn9eTJsWQ");
int httpResponseCode = http.POST(payload);
if (httpResponseCode > 0) {
Serial.println("Data sent to ThingsBoard successfully");
Serial.print("Temperature : ");
Serial.print(temperature);
Serial.print(" Humidity : ");
Serial.println(humidity);
} else {
Serial.println("Error sending data to ThingsBoard");
}
http.end();
}
void setup() {
Serial.begin(115200);
connectWifi();
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
}
void loop() {
TempAndHumidity data = dhtSensor.getTempAndHumidity();
int temperature = random(10, 40);
int humidity = random(0, 100);
sendDataToThingsBoard(temperature, humidity);
delay(1000);
}