/**
ESP32 + DHT22 Example for Wokwi
https://wokwi.com/arduino/projects/322410731508073042
*/
#if defined(ESP8266) //deklarasi library WiFi karena programnya dibuat universal untuk board ESP8266 dan board ESP32 maka menggunakan if untuk dicek terlebih dahulu jenis board yang digunakan
#include <ESP8266WiFi.h> //apabila menggunakan board ESP8266 menggunakan library ESP8266WiFi.h
#elif defined(ESP32)
#include <WiFi.h> //apabila menggunakan board ESP32 maka menggunakan library WiFi.h
#endif
#include "DHTesp.h"
#include "ThingsBoard.h"
#include "PubSubClient.h"
#define DHTTYPE DHT22
const char* WIFI_NAME = "Wokwi-GUEST";
const char* WIFI_PASSWORD = "";
#define TOKEN "70L6V77nTFjQdWM6v9oj"
#define THINGSBOARD_SERVER "thingsboard.cloud"
String perintah;
float mysuhu;
float mykelembaban;
float mysuasanahati;
const int DHT_PIN = 15;
DHTesp dhtSensor;
WiFiClient client;
ThingsBoard tb(client);
int status = WL_IDLE_STATUS;
void setup() {
Serial.begin(115200);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
WiFi.begin(WIFI_NAME, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED){
delay(1000);
Serial.println("Wifi not connected");
}
Serial.println("Wifi connected !");
Serial.println("Local IP: " + String(WiFi.localIP()));
}
void loop() {
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.println("Suhu: " + String(data.temperature, 2) + "°C");
Serial.println("Kelembaban: " + String(data.humidity, 1) + "%");
Serial.println("Suasana Hati: " + String(data.humidity+3, 1) + "%");
Serial.println("---");
if (!tb.connected()) {
// Connect to the ThingsBoard
Serial.print("Connecting to: ");
Serial.print(THINGSBOARD_SERVER);
Serial.print(" with token ");
Serial.println(TOKEN);
if (!tb.connect(THINGSBOARD_SERVER, TOKEN)) {
Serial.println("Failed to connect");
return;
}
}
tb.sendTelemetryFloat("Suhu", data.temperature );
tb.sendTelemetryFloat("Lembab", data.humidity );
tb.loop();
delay(1000); // Wait for a new reading from the sensor (DHT22 has ~0.5Hz sample rate)
}