I can't connect my esp32 to thinger.io

hi, since i’am a newbie here, i have problem to connect my esp32 to thinger, and thinger just keep send email like this to me. Here is my code and email from thinger

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <ThingerESP32.h>

LiquidCrystal_I2C lcd(0x27, 16, 4); // set the LCD address to 0x27 for a 16 chars and 2 line display

#define USERNAME “agungw”
#define DEVICE_ID “TUGASAKHIR”
#define DEVICE_CREDENTIAL “e+rMXuboI3ikJ7zZ”
#define SSID “12345”
#define SSID_PASSWORD “123456789”
ThingerESP32 thing(USERNAME, DEVICE_ID, DEVICE_CREDENTIAL);

#include “DHT.h”
#define DHTPIN 15 // Digital pin connected to the DHT sensor
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
#define buzzer 27
DHT dht(DHTPIN, DHTTYPE);
int kelembapan,suhutampil;
float suhu;

unsigned char i = 0;
unsigned char Rx_DATA[12];
uint8_t skalaoksigen;
uint8_t resolusioksigen;
float flowoksigen,flowoksigen1,flowoksigen2;
uint16_t lajuoksigen;
float konsentrasi,konsentrasi2;
uint16_t kadaroksigen;
float flowtampil,konsentrasitampil,konsentrasitampil2;

#define waktulcd 100
#define waktukirim 100
uint32_t tsLastReport = 0;
uint32_t tsLastReport1 = 0;

void oksigen()
{
i = 0;
while (Serial.available())
{
Rx_DATA[i++] = (Serial.read());
}

//chek data HEX yang masuk ke arduino
flowoksigen = (Rx_DATA[5]); lajuoksigen = (Rx_DATA[6]);
resolusioksigen = (Rx_DATA[3]); skalaoksigen = (Rx_DATA[4]);

//pengamblan nilai konsentrasi dan flow
lajuoksigen = (Rx_DATA[5]) | (Rx_DATA[6]) << 8;
kadaroksigen = (Rx_DATA[4]) | (Rx_DATA[3]) << 8;

konsentrasi = kadaroksigen, DEC;
konsentrasi2 = (konsentrasi / 10) ;
konsentrasitampil = konsentrasi2;

//penyesuaian hasil sensor dengan kalibrator
if (konsentrasitampil == 21) {
konsentrasitampil2 = konsentrasitampil;
}
if (konsentrasitampil > 21) {
konsentrasitampil2 = konsentrasitampil + 3;
}

flowoksigen1 = lajuoksigen, DEC;
flowoksigen2 = (flowoksigen1 / 256) ;
flowtampil = flowoksigen2;

if (flowtampil <= 2.0){
flowtampil = 0 ;
}
}

void setup()
{
lcd.init(); // initialize the lcd
lcd.backlight();
Serial.begin(9600);
dht.begin();
thing.add_wifi(SSID, SSID_PASSWORD);
pinMode(buzzer, OUTPUT);

}

void loop()
{
oksigen(); // pemanggilan void oksigen();
kelembapan = dht.readHumidity();
suhu = dht.readTemperature();
suhutampil=suhu;

if (millis() - tsLastReport > waktulcd)
{
lcd.clear();
lcd.setCursor(1,0);
lcd.print(“SUHU=”);
lcd.setCursor(6,0);
lcd.print(suhu);
lcd.setCursor(11,0);
lcd.print("'C");
lcd.setCursor(1,1);
lcd.print(“KELEMBAPAN=”);
lcd.setCursor(12,1);
lcd.print(kelembapan);
lcd.setCursor(14,1);
lcd.print("%");
lcd.setCursor(-3,2);
lcd.print(“FLOW=”);
lcd.setCursor(2,2);
lcd.print(flowtampil);
lcd.setCursor(12,2);
lcd.print(“Lpm”);
lcd.setCursor(-3,3);
lcd.print(“O2=”);
lcd.setCursor(0 ,3);
lcd.print(konsentrasitampil);
lcd.setCursor(5,3);
lcd.print("%");

tsLastReport = millis();
}

if (millis() - tsLastReport1 > waktukirim)
{
thing.handle();
thing[“SUHU”] >> [](pson& out){
out[“SUHU”] = suhutampil;
};
thing[“KELEMBAPAN”] >> [](pson& out){
out[“KELEMBAPAN”] = kelembapan;
};
thing[“FLOW”] >> [](pson& out){
out[“FLOW”] = flowtampil;
};
thing[“KONSENTRASI”] >> [](pson& out){
out[“KONSENTRASI”] = konsentrasitampil;
};

if(suhutampil<=20){ // batas bawah suhu
thing.call_endpoint(“SUHU”);
digitalWrite (buzzer,HIGH);
}
if(suhutampil>=50){// batas atas suhu
thing.call_endpoint(“SUHU”);
digitalWrite (buzzer,HIGH);
}
if(kelembapan<=40){// batas bawah kelembapan
thing.call_endpoint(“KELEMBAPAN”);
digitalWrite (buzzer,HIGH);
}
if(kelembapan>=70){// batas atas kelembapan
thing.call_endpoint(“KELEMBAPAN”);
digitalWrite (buzzer,HIGH);
}
if(flowtampil<=10){// batas bawah flow
thing.call_endpoint(“FLOW”);
digitalWrite (buzzer,HIGH);
}
if(flowtampil>=30){// batas atas flow
thing.call_endpoint(“FLOW”);
digitalWrite (buzzer,HIGH);
}
if(konsentrasitampil<=20){// batas bawah konsentrasi
thing.call_endpoint(“KONSENTRASI”);
digitalWrite (buzzer,HIGH);
}
if(konsentrasitampil>=40){// batas atas konsentrasi
thing.call_endpoint(“KONSENTRASI”);
digitalWrite (buzzer,HIGH);
}
else{
digitalWrite (buzzer,LOW);
}

tsLastReport1 = millis();
}

// Serial.print(“SUHU = “);
// Serial.print(suhu);
// Serial.print(”'C / kelembapan = “);
// Serial.print(kelembapan);
// Serial.print(”% / flowoksigen=”);
// Serial.print(flowtampil);
// Serial.print(“lpm / konsentrasi=”);
// Serial.println(konsentrasitampil);
}

Hi,

As the mail says, the device is disabled due excesive calls in a short timelapse.

Check the documentation → https://docs.thinger.io/coding/coding-guide about how and where to define the resources.

Format the code as code (by the “</>” button) to make it easy to read.

Hope this helps.