How to Control Raspberry Pi Remotely from Anywhere in The World – Telegram Bot with Python

In this tutorial, you will learn how to create a telegram bot to use with python scripts.

This tutorial will allow you to control your Raspberry Pi remotely from anywhere in the world. All you need is an internet connection!

Social networks are often used as an alternative method of communication for electronic projects. It can be an excellent solution for a quick approach to sending instant messages, pictures, or commands remotely.

Telegram is an open-source instant messaging service. It became popular due to the emergence of chat groups with automation possibility. Telegram API is open for integration and it is possible to easily create functional solutions through Telegram.

Bot Setup in Telegram

Go to the telegram search bar and search for “BotFather“:

Once the BothFather screen opens, type the command “/start“:

To create a new bot, type the command “/newbot” into the chat:

Note: Save the “access token”, it will be the key responsible for communication in the next steps.

Setup Raspberry Pi

If you already used the raspberry pi via SSH before, skip this tutorial for the next step. (You can read the detailed tutorial here.)

Open Putty

Connect Pi with SSH

Install “Pip Installs Packages”

sudo apt-get install python-pip

Install “Telepot”

sudo pip install telepot

Now it is necessary to create the executable on the raspberry.

Create a program named “telegrambot” using the code:

sudo nano telegrambot.py

Paste the code below:

# Import the required libraries
 
import sys
import time
import random
import datetime
import telepot
import RPi.GPIO as GPIO
import picamera

# Set warnings to false to avoid error messages 
GPIO.setwarnings(False)
Pin numbers of the Raspberry PI configured in BOARD mode.
GPIO.setmode(GPIO.BOARD)
# Set pin 13 as output
GPIO.setup(13, GPIO.OUT)
 
#LED
def On(pin):
    GPIO.output(pin,GPIO.HIGH)
    return
def Off(pin):
    GPIO.output(pin,GPIO.LOW)
    return

 
# Commands that come from the Telegram and are processed by the Raspberry PI 
def handle(msg):
chat_id = msg['chat']['id']
command = msg['text']
print ('got command: %s' % command)
 
if command == 'On':
    bot.sendMessage(chat_id, On(13))
if command =='Off':
    bot.sendMessage(chat_id, Off(13)) 
# Allows commands typed in telegram to be sent to Raspberry PI
bot = telepot.Bot('Put here your Acess Token')
bot.message_loop(handle)
print(Waiting Code...')
while True:
    time.sleep(10)

Run the Code

sudo python telegrambot.py

Connect an LED to Rapsberry Pi

Find your bot’s chat window and send the commands you previously configured:

You can use this bot for many different functions on your Raspberry Pi. You can remotely take pictures, connect stream on rpi camera, open gates/doors. Now it’s a simple imagination question!


Have fun!

References

[1] – https://core.telegram.org/bots

[2] – https://www.filipeflop.com/blog/telegram-bot-com-raspberry-pi-3/

Leave a Reply

Your email address will not be published.