#include <WiFi.h>
#include "ThingsBoard.h"
#include "DHTesp.h"
#define CURRENT_FIRMWARE_TITLE "TEST"
#define CURRENT_FIRMWARE_VERSION "1.0.0"
const char* ssid = "Wokwi-GUEST";
const char* password = "";
#define TOKEN "percobaanKirimData"
#define THINGSBOARD_SERVER "thingsboard.cloud"
//baud rate for debug serial
#define SERIAL_DEBUG_BAUD 115200
//initialize thingsboard client
WiFiClient espClient;
//initialize thingsboard instance
ThingsBoard tb(espClient);
//the wifi radio's status
int status = WL_IDLE_STATUS;
//DHT22 dan Potensiometer
const int DHT_PIN=15;
DHTesp dhtSensor;
const int pot=34;
int potval=0;
void InitWiFi()
{
Serial.println("Connecting to AP ...");
WiFi.begin(ssid, password);
while (WiFi.status()!=WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println("Connected to AP");
}
void reconnect()
{
status=WiFi.status();
if(status!=WL_CONNECTED)
{
WiFi.begin(ssid, password);
while (WiFi.status()!=WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println("Connected to AP");
}
}
void setup()
{
Serial.begin(SERIAL_DEBUG_BAUD);
Serial.println();
InitWiFi();
//DHT22 dan Potensiometer
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
}
void loop()
{
delay(1000);
if (WiFi.status()!=WL_CONNECTED)
{
reconnect();
}
if(!tb.connected())
{
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;
}
}
Serial.println("Sending data...");
TempAndHumidity data = dhtSensor.getTempAndHumidity();
potval=analogRead(pot);
int temp=data.temperature;
float hum=data.humidity;
tb.sendTelemetryInt("temperature", temp);
tb.sendTelemetryFloat("humidity", hum);
tb.sendTelemetryInt("Potensiometer", potval);
Serial.print("suhu = ");
Serial.println(temp);
Serial.print("kelembaban = ");
Serial.println(hum);
Serial.print("potensiometer = ");
Serial.println(potval);
tb.loop();
}