#include "DHTesp.h"
#include "CTBot.h"
CTBot bot;
String token = "6028107999:AAEiyN8rS8bWHF9ULba4l2WaKXbeIrXt4w4";
#define ldrPin 2
int relay = 4;
const int DHT_PIN = 15;
const float gama = 0.7;
const float rl10 = 50;
DHTesp dhtSensor;
void setup() {
Serial.begin(115200);
pinMode(relay, OUTPUT);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
Serial.print("Connecting to Telegram");
bot.wifiConnect("Wokwi-GUEST","");
bot.setTelegramToken(token);
if(bot.testConnection()){
Serial.println("Terhubung");
}
else{
Serial.println("Gagal Terhubung");
}
}
void loop() {
TempAndHumidity data = dhtSensor.getTempAndHumidity();
float suhu = data.temperature; //nilai suhu
int kelembaban = data.humidity; //nilai kelembaban
int nilaiLDR = analogRead(ldrPin);
nilaiLDR = map(nilaiLDR, 4095, 0, 1024, 0); //mengubah nilai pembacaan sensor LDR dari nilai ADC arduino menjadi nilai ADC ESP32
float voltase = nilaiLDR / 1024.*5;
float resistansi = 2000 * voltase / (1-voltase/5);
int ldr = pow(rl10*1e3*pow(10,gama)/resistansi,(1/gama)); //nilai ldr
TBMessage chat;
if(bot.getNewMessage (chat)){
Serial.println("Ada pesan masuk dari "+String(chat.sender.id));
Serial.println("----> "+String(chat.text));
if(chat.text.equalsIgnoreCase("MONITOR")){
Serial.print("Monitor");
bot.sendMessage (chat.sender.id,"Monitoring Sensor Realtime <br/> Suhu : "+String(suhu)+" °C <br/> Kelembaban : "+String(kelembaban)+" % <br/> LDR : "+String(ldr)+" Lux");
Serial.println(" <Berhasil dijawab>");
}
else if (chat.text.equalsIgnoreCase("RELAY ON")){
digitalWrite(relay, HIGH);
Serial.print("Relay On");
bot.sendMessage (chat.sender.id,"Relay dinyalakan");
Serial.println(" <Berhasil dijawab>");
}
else if (chat.text.equalsIgnoreCase("RELAY OFF")){
digitalWrite(relay, LOW);
Serial.print("Relay Off");
bot.sendMessage (chat.sender.id,"Relay dimatikan");
Serial.println(" <Berhasil dijawab>");
}
else{
bot.sendMessage (chat.sender.id,"Kamu bukan bos saya");
}
}
Serial.println("Temp: " + String(suhu) + "°C");
Serial.println("Humidity: " + String(kelembaban) + "%");
Serial.println("LDR: " + String(ldr)+" Lux");
Serial.print("---");
delay(1000);
}