#include "CTBot.h"
#define lampu 15
#define lampu 2
#define lampu 4
#define lampu 5
#define LAMPU_1_ON "Lampu_1_ON"
#define LAMPU_1_ON "Lampu_1_OFF"
#define LAMPU_2_ON "Lampu_2_ON"
#define LAMPU_2_ON "Lampu_2_OFF"
#define LAMPU_3_ON "Lampu_3_ON"
#define LAMPU_3_ON "Lampu_3_OFF"
#define LAMPU_4_ON "Lampu_4_ON"
#define LAMPU_4_ON "Lampu_4_OFF"
#define SEMUA_LAMPU_ON "Semua_Lampu_ON"
#define SEMUA_LAMPU_OFF "Semua_Lampu_OFF"
#define TIDAK "Tidak"
string Status_Lampu_1;
string Status_Lampu_2;
string Status_Lampu_3;
string Status_Lampu_4;
int Lampu_1 = LOW;
int Lampu_2 = LOW;
int Lampu_3 = LOW;
int Lampu_4 = LOW;
bool TampilkanTombol;
string ssid = "wokwi -GUEST";
String pass = "";
string token = "";
CTBot myBot;
CTBotReplyKeyboard Tbl;
CTBotInlineKeyboard Tblp1on, Tblp2on, Tblp3on, Tblp4on, Tblp1off, Tblp2off, Tblp3off, Tblp4off, TblpAllon, TblpAlloff;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Memulai Koneksi...");
myBot.wifiConnecr(ssid, pass);
myBot.setTelegramToken(token);
if(myBot.testConnection())
Serial.println("\nKoneksi ke Telegram BOT Berhasil!");
else
Serial.println("\nTidak Terkoneksi ke Telegram BOT");
pinMode(Lampu1, OUTPUT);
pinMode(Lampu2, OUTPUT);
pinMode(Lampu3, OUTPUT);
pinMode(Lampu4, OUTPUT);
digitalWrite(Lampu1, LOW);
digitalWrite(Lampu2, LOW);
digitalWrite(Lampu3, LOW);
digitalWrite(Lampu4, LOW);
Tbl.addButton("Lampu 1");
Tbl.addButton("Lampu 2");
Tbl.addButton("Lampu 3");
Tbl.addButton("Lampu 4");
Tbl.addRow();
Tbl.addButton("Semua Lampu ON");
Tbl.addButton("Semua Lampu OFF");
Tbl.addRow();
Tbl.addButton("Cek Status");
Tbl.enableResize();
TampilkanTombol = false;
Tblp1on.addButton("✅ Ya", LAMPU_1_ON, CTBotKeyboardButtonQuery);
Tblp1on.addButton("❌ Tidak", TIDAK, CTBotKeyboardButtonQuery);
Tblp2on.addButton("✅ Ya", LAMPU_2_ON, CTBotKeyboardButtonQuery);
Tblp2on.addButton("❌ Tidak", TIDAK, CTBotKeyboardButtonQuery);
Tblp3on.addButton("✅ Ya", LAMPU_3_ON, CTBotKeyboardButtonQuery);
Tblp3on.addButton("❌ Tidak", TIDAK, CTBotKeyboardButtonQuery);
Tblp4on.addButton("✅ Ya", LAMPU_4_ON, CTBotKeyboardButtonQuery);
Tblp4on.addButton("❌ Tidak", TIDAK, CTBotKeyboardButtonQuery);
Tblp1off.addButton("✅ Ya", LAMPU_1_OFF, CTBotKeyboardButtonQuery);
Tblp1off.addButton("❌ Tidak", TIDAK, CTBotKeyboardButtonQuery);
Tblp2off.addButton("✅ Ya", LAMPU_2_OFF, CTBotKeyboardButtonQuery);
Tblp2off.addButton("❌ Tidak", TIDAK, CTBotKeyboardButtonQuery);
Tblp3off.addButton("✅ Ya", LAMPU_3_OFF, CTBotKeyboardButtonQuery);
Tblp3off.addButton("❌ Tidak", TIDAK, CTBotKeyboardButtonQuery);
Tblp4off.addButton("✅ Ya", LAMPU_4_OFF, CTBotKeyboardButtonQuery);
Tblp4off.addButton("❌ Tidak", TIDAK, CTBotKeyboardButtonQuery);
TblpAllon.addButton("✅ Ya", SEMUA_LAMPU_ON, CTBotKeyboardButtonQuery);
TblpAllon.addButton("❌ Tidak", TIDAK, CTBotKeyboardButtonQuery);
TblpAlloff.addButton("✅ Ya", SEMUA_LAMPU_OFF, CTBotKeyboardButtonQuery);
TblpAlloff.addButton("❌ Tidak", TIDAK, CTBotKeyboardButtonQuery);
}
void loop() {
TBMessage msg;
if (myBot.getNewMessage(msg)) {
if (msg.text.equalsIgnoreCase("/start")) {
myBot.sendMessage(msg.sender.id, "Halo..\nSelamat Datang Di percobaan VI Bot.\n\nCunakan tombol dibawah untuk mengontrol lampu 👇🏻", Tbl);
Serial.println("\nUser memulai Bot \n");
TampilkanTombol = true;
} else if (msg.text.equalsIgnoreCase("Lampu 1")) {
if (Lampu_1 == HIGH) {
myBot.sendMessage(msg.sender.id, "Saat ini Lampu 1 dalam keadaan ON\nApakah anda ingin mematikan Lampu 1", Tblp1off);
Serial.println("\nUser mengirim perintah 'Lampu 1' \nSaat ini lampu 1 dalam keadaan ON \n");
} else {
myBot.sendMessage(msg.sender.id, "Saat ini Lampu 1 dalam keadaan OFF\nApakah anda ingin mematikan Lampu 1", Tblp1on);
Serial.println("\nUser mengirim perintah 'Lampu 1' \nSaat ini lampu 1 dalam keadaan OFF \n");
}
} else if (msg.text.equalsIgnoreCase("Lampu 2")) {
if (Lampu_2 == HIGH) {
myBot.sendMessage(msg.sender.id, "Saat ini Lampu 2 dalam keadaan ON\nApakah anda ingin mematikan Lampu 2", Tblp2off);
Serial.println("\nUser mengirim perintah 'Lampu 2' \nSaat ini lampu 2 dalam keadaan ON \n");
} else {
myBot.sendMessage(msg.sender.id, "Saat ini Lampu 2 dalam keadaan OFF\nApakah anda ingin mematikan Lampu 2", Tblp2on);
Serial.println("\nUser mengirim perintah 'Lampu 2' \nSaat ini lampu 2 dalam keadaan OFF \n");
}
} else if (msg.text.equalsIgnoreCase("Lampu 3")) {
if (Lampu_3 == HIGH) {
myBot.sendMessage(msg.sender.id, "Saat ini Lampu 3 dalam keadaan ON\nApakah anda ingin mematikan Lampu 3", Tblp3off);
Serial.println("\nUser mengirim perintah 'Lampu 3' \nSaat ini lampu 3 dalam keadaan ON \n");
} else {
myBot.sendMessage(msg.sender.id, "Saat ini Lampu 3 dalam keadaan OFF\nApakah anda ingin mematikan Lampu 3", Tblp3on);
Serial.println("\nUser mengirim perintah 'Lampu 3' \nSaat ini lampu 3 dalam keadaan OFF \n");
}
} else if (msg.text.equalsIgnoreCase("Lampu 4")) {
if (Lampu_4 == HIGH) {
myBot.sendMessage(msg.sender.id, "Saat ini Lampu 4 dalam keadaan ON\nApakah anda ingin mematikan Lampu 4", Tblp4off);
Serial.println("\nUser mengirim perintah 'Lampu 4' \nSaat ini lampu 4 dalam keadaan ON \n");
} else {
myBot.sendMessage(msg.sender.id, "Saat ini Lampu 4 dalam keadaan OFF\nApakah anda ingin mematikan Lampu 4", Tblp4on);
Serial.println("\nUser mengirim perintah 'Lampu 4' \nSaat ini lampu 4 dalam keadaan OFF \n");
}
} else if (msg.text.equalsIgnoreCase("Semua Lampu ON")) {
myBot.sendMessage(msg.sender.id, "Apakah anda ingin menyalakan semua lampu?", TblpAllon);
Serial.println("\nUser ingin menyalakan semua lampu\n");
} else if (msg.text.equalsIgnoreCase("Semua Lampu OFF")) {
myBot.sendMessage(msg.sender.id, "Apakah anda ingin mematikan semua lampu?", TblpAlloff);
Serial.println("\nUser ingin mematikan semua lampu\n");
} else if (msg.text.equalsIgnoreCase("Cek Status")) {
if (Lampu_1 == LOW) {
Status_lampu_1 = "Lampu 1 OFF";
} else {
Status_lampu_1 = "Lampu 1 ON";
}
if (Lampu_2 == LOW) {
Status_lampu_2 = "Lampu 2 OFF";
} else {
Status_lampu_2 = "Lampu 2 ON";
}
if (Lampu_3 == LOW) {
Status_lampu_3 = "Lampu 3 OFF";
} else {
Status_lampu_3 = "Lampu 3 ON";
}
if (Lampu_4 == LOW) {
Status_lampu_4 = "Lampu 4 OFF";
} else {
Status_lampu_4 = "Lampu 4 ON";
}
Serial.println("\nUser mengirim perintah 'Cek status'\n");
myBot.sendMessage(msg.sender.id, "Status saat ini : \n\n👉🏻 " + Status_lampu_1 + "\n\n👉🏻 " + Status_lampu_2 + "\n\n👉🏻 " + Status_lampu_3 +
"\n\n👉🏻 " + Status_lampu_4 + "\n\nGunakan tombol dibawah untuk mengontrol lampu 👇🏻", Tbl);
Serial.println("\nStatus saat ini : \n\n👉🏻 " + Status_lampu_1 + "\n\n👉🏻 " + Status_lampu_2 + "\n\n👉🏻 " + Status_lampu_3 + "\n\n👉🏻 " +
Status_lampu_4 + "\n");
} else if (msg.messageType == CTBotMessageQuery) {
if (msg.callbackQueryData.equals(LAMPU_1_ON)) {
digitalWrite(Lampu1, HIGH);
Lampu_1 = HIGH;
myBot.sendMessage(msg.sender.id, "💡 Lampu 1 Telah Dinyalakan");
Serial.println("\nUser menyalakan Lampu 1\n");
} else if (msg.callbackQueryData.equals(LAMPU_1_OFF)) {
digitalWrite(Lampu1, LOW);
Lampu_1 = LOW;
myBot.sendMessage(msg.sender.id, "🚫 Lampu 1 Telah Dimatikan");
Serial.println("\nUser mematikan Lampu 1\n");
} else if (msg.callbackQueryData.equals(LAMPU_2_ON)) {
digitalWrite(Lampu2, HIGH);
Lampu_2 = HIGH;
myBot.sendMessage(msg.sender.id, "💡 Lampu 2 Telah Dinyalakan");
Serial.println("\nUser menyalakan Lampu 2\n");
} else if (msg.callbackQueryData.equals(LAMPU_2_OFF)) {
digitalWrite(Lampu2, LOW);
Lampu_2 = LOW;
myBot.sendMessage(msg.sender.id, "🚫 Lampu 2 Telah Dimatikan");
Serial.println("\nUser mematikan Lampu 2\n");
} else if (msg.callbackQueryData.equals(LAMPU_3_ON)) {
digitalWrite(Lampu3, HIGH);
Lampu_3 = HIGH;
myBot.sendMessage(msg.sender.id, "💡 Lampu 3 Telah Dinyalakan");
Serial.println("\nUser menyalakan Lampu 3\n");
} else if (msg.callbackQueryData.equals(LAMPU_3_OFF)) {
digitalWrite(Lampu3, LOW);
Lampu_3 = LOW;
myBot.sendMessage(msg.sender.id, "🚫 Lampu 3 Telah Dimatikan");
Serial.println("\nUser mematikan Lampu 3\n");
} else if (msg.callbackQueryData.equals(LAMPU_4_ON)) {
digitalWrite(Lampu4, HIGH);
Lampu_4 = HIGH;
myBot.sendMessage(msg.sender.id, "💡 Lampu 4 Telah Dinyalakan");
Serial.println("\nUser menyalakan Lampu 4\n");
} else if (msg.callbackQueryData.equals(LAMPU_4_OFF)) {
digitalWrite(Lampu4, LOW);
Lampu_4 = LOW;
myBot.sendMessage(msg.sender.id, "🚫 Lampu 4 Telah Dimatikan");
Serial.println("\nUser mematikan Lampu 4\n");
} else if (msg.callbackQueryData.equals(SEMUA_LAMPU_ON)) {
digitalWrite(Lampu1, HIGH);
digitalWrite(Lampu2, HIGH);
digitalWrite(Lampu3, HIGH);
digitalWrite(Lampu4, HIGH);
Lampu_1 = HIGH;
Lampu_2 = HIGH;
Lampu_3 = HIGH;
Lampu_4 = HIGH;
myBot.sendMessage(msg.sender.id, "Semua 💡💡💡💡 Lampu Telah Dinyalakan");
Serial.println("\nUser telah menyalakan Semua Lampu\n");
} else if (msg.callbackQueryData.equals(SEMUA_LAMPU_OFF)) {
digitalWrite(Lampu1, LOW);
digitalWrite(Lampu2, LOW);
digitalWrite(Lampu3, LOW);
digitalWrite(Lampu4, LOW);
Lampu_1 = LOW;
Lampu_2 = LOW;
Lampu_3 = LOW;
Lampu_4 = LOW;
myBot.sendMessage(msg.sender.id, "🚫 Semua Lampu Telah Dimatikan");
Serial.println("\nUser telah mematikan Semua Lampu\n");
} else if (msg.callbackQueryData.equals(TIDAK)) {
myBot.sendMessage(msg.sender.id, "❌ Perintah Telah Dibatalkan!!");
Serial.println("\nUser telah membatalkan perintah\n");
}
} else {
myBot.sendMessage(msg.sender.id, "⛔ ERROR: Perintah tidak dikenali?!\n\nGunakan tombol dibawah untuk mengontrol lampu 👇🏻", Tbl);
Serial.println("\nUser mengirim perintah yang tidak dikenal\n");
}
}
delay(500);
}