di2tnugraha
Published © CC BY

Turn a Light On/Off with Telegram

How to turn a light on/off at anytime and from anywhere via smartphone using Telegram.

IntermediateProtip5,130
Turn a Light On/Off with Telegram

Things used in this project

Story

Read more

Schematics

Turn ON The Light with a Telegram Schema

Code

Turn ON The Light with a Telegram Source Code

Arduino
//by di2tnugraha
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>

char ssid[] = "Your SSID Name";         
char password[] = "Your PASSWORD";   
#define BOTtoken "XXXXX"  //Bot Token Telegram

WiFiClientSecure client;
UniversalTelegramBot bot(BOTtoken, client);
int Bot_mtbs = 1000; 
long Bot_lasttime;   
bool Start = false;

void handleNewMessages(int numNewMessages) 
{
  Serial.print("NewMessages ");
  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 == "test") 
      {
        bot.sendMessage(chat_id, "Hello");
      }
    if (text == "lamp on") 
      {
        bot.sendMessage(chat_id, "Lamp ON");
        Serial.println("Lamp ON");
        digitalWrite(2, 0);     
      }
     if (text == "lamp off") 
      {
        bot.sendMessage(chat_id, "Lamp OFF");
        Serial.println("Lamp Off");
        digitalWrite(2, 1);   
      }
  }
}

void setup() 
{
  Serial.begin(115200);
  pinMode(2, OUTPUT);
  digitalWrite(2, 1);
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(10);

  Serial.print("Connecting Wifi: ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);

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

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

void loop() 
{
  if (millis() > Bot_lasttime + Bot_mtbs)  
  {
    int numNewMessages = bot.getUpdates(bot.last_message_received + 1);
    while(numNewMessages) 
    {
      Serial.println("");
      handleNewMessages(numNewMessages);
      numNewMessages = bot.getUpdates(bot.last_message_received + 1);
    }
    Bot_lasttime = millis();
  }
}

Credits

di2tnugraha
3 projects • 6 followers

Comments