#if defined (ESP8266)
#include<ESP8266WiFi.h>
#elif defined(ESP32)
#include <WiFi.h>
#include<PubSubClient.h>
#endif

#include "ThingsBoard.h"
#include "DHTesp.h"
#define  CURRENT_FIRMARE_TITLE   "TEST"
#define  CURRENT_FIRMARE_VERSION   "1.0.0"

const char* ssid = "WOKWi-GUEST";
const char* password = "";
#define TOKEN ""
#define THINGSBOARD_SERVER ""

#define SERIAL_DEBUG_BAUD 115200
const int DHT_PIN =15;
DHTesp dhtSensor;

WiFiClient espClient;
ThingsBoard tb(espClient);
int status= WL_IDLE_STATUS;

void InitWiFi()

Serial.println("connecting to AP...");
WiFi.begin(ssid,password);
while (wiFi.status()!=WL_CONNECTED)
{
  delay(500);

}
Serial.println("connected to AP");
}
vpid reconnect()  {
  status =WiFi.status();
  if ( status != WL_CONNECTED)
wiFi.begin(ssid,password);
while (wiFi.status()!=WL_CONNECTED)
{
  delay(500);
Serial.println("connected to AP");
}
}

void setup ()
Serial.begin(SERIAL_DEBUG_BAUD);
Serial.println();
dhtsensor.setup(DHT_PIN, DHTesp::DHT22);
}
void loop()
{
  delay(1000);
  if ( WiFi.status != WL_CONNECTED){
    rewconnect();
  }

  if (!tb.xconnected()) {
    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();
 tb.sendTelemetreryInt("temperature",data.temperature);
 tb.sendTelemetreryFloat("temperature",data.humidity);
 Serial.print("");
 Serial.print(data.temperature);
 Serial.print(" kelembaban: ")
 Serial.println(data.humidity);

 tb.loop();
 tb.loop();
}