Kontrol Nyala LED Arduino Menggunakan Telegram

Assalamu’alaikum teman teman, kali ini kita akan coba membuat sebuah proyek IOT / Internet of Thing dimana kita akan coba untuk mengontrol nyala LED menggunakan Aplikasi Chatting Telegram. LED yang dimaksut pada tutorial ini adalah LED bawaan Wemos / NodeMCU yang biasa dibebut LED_BUILTIN. kalau pada board arduino uno LED_BUILTIN ini yang terhubung ke pin 13 itu loo. Oke Langsung saja, sebelum kita memulai project kita kali ini maka kita harus menyiapkan beberapa bahan dulu, antara lain :

  1. Wemos / NodeMCU (pastikan kalian sudah bisa memprogramnya menggunakan Arduino ya, jika belum bisa dilihat pada postingan sebelumnya tentang Cara Memprogram Wemos D1 Menggunakan Arduino IDE)
  2. Koneksi Wi-Fi, bisa menggunakan HP Android kalian untuk tethering hotspot

Setelah siap maka selanjutnya kita harus punya kode api (authentication public key) / Bot Token Telegram, kode tersebut nantinya akan kita gunakan untuk menanam akun / menjalankan akun telegram di arduino / wemos / nodemcu kita. untuk cara mendapatkan kode API bisa kalian pelajari pada tutorial Cara Mendapatkan API Key / Kode Bot Token Telegram

Sampai disini saya asumsikan kalian sudah mempunyai kode API / Bot Token Telegram, selanjutnya kita mulai masuk ke tahap koding, sebelum memulai koding kalian memerlukan sebuah libarary bernama “UniversalTelegramBot” library tersebut bisa kalian cari di library manager arduino IDE lalu install library tersebut, untuk cara installnya bisa dibaca di Cara Memasukan / Menambahkan Library di Arduino IDE

Oke, pada langkah ini saya asumsikan kalian sudah punya API key telegram dan sudah menginstall library “UniversalTelegramBOT”, lanjut ke tahapan selanjutnya adalah mulai menulis koding di Arduino

Tulislah koding berikut ini ke Arduino IDE kalian lalu uploud ke Board yang kalian gunakan (Wemos / Nodemcu / Arduino + ESP8266)

/*******************************************************************
 *  Program Kontrol LED Arduino Via Telegram                       *
 *                                                                 *
 *  written by Giacarlo Bacchio (Gianbacchio on Github)            *
 *  adapted by Brian Lough                                         *
 *                                                                 *
 *  Dipbulikasikan Oleh : Giri Wahyu Pambudi                       *
 *                        (https://www.cronyos.com)                *
 *******************************************************************/
#include <ESP8266WiFi.h> // memsaukan Library ESP8266
#include <WiFiClientSecure.h> 
#include <UniversalTelegramBot.h> // memasukan Library TelegramBot

char ssid[] = "Nama Wi-fi";     // Nama wi-fi
char password[] = "Password Wifi"; // password wifi

// Initialize Telegram BOT
#define BOTtoken "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" // kode API telegram / token bot telegram

WiFiClientSecure client;
UniversalTelegramBot bot(BOTtoken, client);

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

const int ledPin = LED_BUILTIN; // menggunakan LED bawaan Wemos / Nodemcu, bisa diganti dengan pin lain, misal const int ledPin = 13;
int ledStatus;

void handleNewMessages(int numNewMessages) {
  Serial.println("Pesan Baru Masuk");
  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 == "/ledon") 
        { 
          digitalWrite(ledPin, LOW); // hidupkan LED, karena untuk LED bawaan wemos / nodemcu untuk menghidpkan justru di LOW'kan 
          ledStatus = 1; 
          bot.sendMessage(chat_id, "Led is ON", ""); 
        } 
      else if (text == "/ledoff") 
        { 
          ledStatus = 0; 
          digitalWrite(ledPin, HIGH); // matikan LED, karena untuk LED bawaan wemos / nodemcu untuk mematikan justru di HIGH'kan 
          bot.sendMessage(chat_id, "Led is OFF", "");
        } 
      else if (text == "/status") 
        { 
          if(ledStatus)
            { 
              bot.sendMessage(chat_id, "Led is ON", ""); 
            } 
          else 
            { 
              bot.sendMessage(chat_id, "Led is OFF", "");
            }
         } 
       else if (text == "/start") 
         { // jika dapat pesan "/start" 
            String welcome = "Selamat datang di Robot Kontrol LED via Telegram, " + from_name + ".n"; 
            welcome += "/ledon : untuk menghidupkan LEDn";
            welcome += "/ledoff : untuk mematikan LEDn";
            welcome += "/status : untuk memeriksa Status LEDn"; 
            bot.sendMessage(chat_id, welcome, "Markdown");
          } 
     } 
} 

void setup() { 
  Serial.begin(115200); 
  WiFi.mode(WIFI_STA); 
  WiFi.disconnect(); // putuskan koneksi wi-fi jika sebelumnya sudah tersambung 
  delay(100);  
  Serial.print("Mengkoneksikan dengan Wi-fi : "); 
  Serial.println(ssid); 
  WiFi.begin(ssid, password); 
  
  while (WiFi.status() != WL_CONNECTED) 
    { 
      Serial.print("."); 
      delay(500); 
    } 
    
  Serial.println(""); 
  Serial.println("Terhubung dengan wi-fi"); 
  Serial.print("IP address: "); 
  Serial.println(WiFi.localIP()); 
  pinMode(ledPin, OUTPUT); // set ledPin sebagai OUTPUT 
  digitalWrite(ledPin, LOW); // matikan led 
} 

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

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

        Bot_lasttime = millis();
      }
  }

Setelah kode berhasil diupload buka serial monitor kalian dan pastikan Wemos / Nodemcu kalian sudah terhubung dengan wifi. lalu coba kirimkan pesan “/start” untuk memulai / membuka petunjuk, “/ledon” untuk menyalakan led ,”/ledoff” untuk mematikan led dan “/status” untuk melihat status led.

Cukup sekian dulu tutorial kali ini semoga bermanfaat, jika ada yang perlu datanyakan silahkan sampaikan di kolom komentar, terima kasih, Wassalamu’alaikum

 

About Giri Wahyu Pambudi

Giri Wahyu Pambudi - Seorang Pemuda Desa yang berkeinginan ikut membangun Indonesia dengan Sedikit Ilmu yang dimiliki SMK N 2 Wonogiri lulus 2015 UNIV Negeri Yogyakarta lulus 2019 2019 - Sekarang Bekerja di SMK Gajah Mungkur 1 Wuryantoro, Wonogiri

Check Also

Cara Menggunakan / Mengakses Keypad menggunakan Arduino

Assalamu’alaikum teman – teman, kali ini kita akan belajar Arduino lagi, kali ini kita akan …

5 comments

  1. ga jalan source code’y

  2. Giri Wahyu Pambudi

    sudah kami test gan, jalan kok.

  3. johanes rakinaung

    not work gan

  4. Giri Wahyu Pambudi

    anda kurang beruntung brrti gan.hehe

  5. Ga bisa nak… ini masih error conneting

Tinggalkan Balasan