3 Langkah Mudah! Tutorial Menghidupkan dan Mematikan Lampu via Telegram

www.tutorialiot.com

Saat posisi lagi mager banget hehehe, trus temen-temen terpaksa harus hidupin lampu ruang tamu, taman, dapur, mematikan AC, TV dll, gimana perasaan temen-temen? pastinya males banget kan, apalagi dah ngantuk banget dan udah PW di atas kasur tinggal merem trus lupa lampu kamar belum dimatiin, hehehe.

Tenang aja, kali ini ada solusinya dan temen-temen bisa langsung mencobanya dengan MUDAH dan MURAH, berikut adalah cara menghidupkan dan mematikan (ON/ OFF) peralatan rumah menggunakan Telegram.

Alat dan Bahan yang dibutuhkan :

1. ESP32
2. Relay
3. Komputer/Laptop (Sudah ada aplikasi Arduino IDE)
4. Kabel Data Smartphone, tapi bukan yang Iphone
5. Kabel Jumper
6. LED (barang tambahan jika temen-temen nggak punya Relay, untuk uji coba saja)
7. Secangkir kopi dan roti biar nggak baper

Simak baik-baik langkah-langkahnya dibawah ini :

1. Hubungkan ESP32 dengan Relay/LED menggunakan kabel jumper seperti gambar di bawah ini. Ingat Led hanya untuk uji coba saja, seharusnya pakai Relay jika mau mematikan lampu rumah, hehehe.



2. Buat akun Telegram jika belum punya, dan buat juga Bot Telegram, jika belum bisa silahkan baca Tutorial Membuat Bot Telegram ada pada artikel sebelumnya yakni "Servo vs Telegram?", setelah Bot Telegram berhasil dibuat maka akan terlihat seperti gambar dibawah ini.


3. Setelah selesai dengan urusan akun Telegram dan Bot Telegram, silahkan buka aplikasi Arduino IDE di laptop/komputer dan masukkan kode di bawah ini.

#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>

char ssid[] = "Ganti Dengan Nama Wifi Kalian";   
char password[] = "Ganti dengan Password Wifi Kalian";

// Initialize Telegram BOT
#define BOTtoken "Ganti dengan Bot Token Telegram Kalian"

WiFiClientSecure client;
UniversalTelegramBot bot(BOTtoken, client);

int Bot_mtbs = 1000;
long Bot_lasttime;
bool Start = false;

const int lampu1 = 13;
int status_lampu = 0;

void handleNewMessages(int numNewMessages) {
  Serial.println("handleNewMessages");
  Serial.println(String(numNewMessages));

  for (int i=0; i<numNewMessages; i++) {
    String chat_id = String(bot.messages[i].chat_id);
    String text = bot.messages[i].text;

    String from_name = bot.messages[i].from_name;
    if (from_name == "") from_name = "Guest";

    if (text == "/lampuon") {
      digitalWrite(lampu1, HIGH);   // turn the LED on (HIGH is the voltage level)
      status_lampu = 1;
      bot.sendMessage(chat_id, "Lampu Dinyalakan!", "");
    }

    if (text == "/lampuoff") {
      status_lampu = 0;
      digitalWrite(lampu1, LOW);    // turn the LED off (LOW is the voltage level)
      bot.sendMessage(chat_id, "Lampu Dimatikan!", "");
    }

    if (text == "/status") {
      if(status_lampu){
        bot.sendMessage(chat_id, "Led is ON", "");
      } else {
        bot.sendMessage(chat_id, "Led is OFF", "");
      }
    }

    if (text == "/start") {
      String welcome = "Selamat Datang di channel kontrol Lampu Online, " + from_name + ".\n";
      welcome += "Ini adalah contoh menyalakan lampu via Telegrarm Bot.\n\n";
      welcome += "/lampuon : untuk menyalakan lampu\n";
      welcome += "/lampuoff : untuk mematikan lampu\n";
      welcome += "/status : cek status lampu -> nyala atau mati\n";
      bot.sendMessage(chat_id, welcome, "Markdown");
    }
  }
}


void setup() {
  Serial.begin(115200);

  // Attempt to connect to Wifi network:
  Serial.print("Connecting Wifi: ");
  Serial.println(ssid);

  // Set WiFi to station mode and disconnect from an AP if it was Previously
  // connected
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(500);
  }

  Serial.println("");
  Serial.println("WiFi connected");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  pinMode(lampu1, OUTPUT); // initialize digital ledPin as an output.
  delay(10);
  digitalWrite(lampu1, LOW); // initialize pin as off
}

void loop() {
  if (millis() > Bot_lasttime + Bot_mtbs)  {
    int numNewMessages = bot.getUpdates(bot.last_message_received + 1);

    while(numNewMessages) {
      Serial.println("got response");
      handleNewMessages(numNewMessages);
      numNewMessages = bot.getUpdates(bot.last_message_received + 1);
    }

    Bot_lasttime = millis();
  }
}

Sudah Selesai, jika kalian males ngetik, kode programnya bisa kalian download disini.

Berikut ini adalah hasil screenshot project yang sudah jadi.


Post a Comment

1 Comments

  1. Mohon maaf Pak, ArduinoJson.h -nya harus pakai yang versi berapa? Terima Kasih.

    ReplyDelete