Kontrol Nyala LED Arduino Menggunakan Telegram

Kontrol Nyala LED Arduino Menggunakan Telegram
4.3 (86%) 2 votes

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.

Baca Juga  Tutorial Belajar Pemrograman Arduino untuk Pemula Part 3 : Menyalakan LED

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

 

Vote and Share your Fell !
  • Fascinated
  • Happy
  • Sad
  • Angry
  • Bored
  • Afraid

About Giri Wahyu Pambudi

Giri Wahyu Pambudi - Seorang Anak Desa yang berkeinginan membangun Indonesia dengan Sedikit Ilmu yang dimiliki
Jumlah Post : 352 Artikel

Artikel Serupa

Check Also

Cara Memprogram LCD OLED SSD1306 0.96″ menggunakan Arduino