Introducción
Requisitos
Paso 1: Crear un Bot en Telegram
a) Para ello, tendrás que abrir la aplicación y buscar @BotFather. BotFather puede crear y gestionar bots.
b) Envía /start al BotFather para recibir una lista de comandos. ("/" es una convención de telegramas para enviar comandos al bot).
c) Para crear un nuevo bot, envía /newbot. A continuación, el BotFather te enviará las instrucciones a seguir, como decidir el nombre, el nombre de usuario, etc.
d) Una vez hecho esto, recibirás un "Token". Asegúrate de guardarlo y de no compartirlo con personas no confiables.
Paso 2: Creación de un script en Python para comunicarse con el bot desde el PLC
a) Instala las dependencias.
$sudo apt-get install python-pip
$sudo pip install telepot
b) Prueba tu token.
Entra en la consola de Python escribiendo $python en tu terminal. A continuación, introduce los siguientes comandos. Deberías recibir un diccionario con los datos de tu bot. Si no es así, debe haber algún error.
>>>import telepot >>>bot = telepot.Bot('*** copy bot token from browser ***') >>>bot.getMe()
c) Crea el archivo .py con tu código para controlar las salidas digitales del PLC. La idea para este tutorial es encender y apagar un LED enviando mensajes en Telegram.
$sudo nano bottest.py
Código
import os
import time
import telepot
from telepot.loop import MessageLoop
def test(msg):
chat_id = msg['chat']['id']
command = msg['text']
print 'Got command: %s' % command
if command == '/on':
bot.sendMessage(chat_id, 'The LED is on!')
os.system("sudo ./set-digital-output Q0.4 1")
if command == '/off':
bot.sendMessage(chat_id, 'The LED is off!')
os.system("sudo ./set-digital-output Q0.4 0")
elif command == 'Is the bot working fine?':
bot.sendMessage(chat_id, 'Yes it is')
bot = telepot.Bot('***Your Token***')
MessageLoop(bot, handle).run_as_thread()
print 'I am listening ...'
while 1:
time.sleep(10)
Asegúrate de mantener el archivo "set-digital-output" de "/home/pi/test/analog/" en la misma carpeta que tu "bottest.py".
Paso 3: Una vez creado el archivo, es el momento de ejecutarlo y probar el bot.
a) Ejecuta el siguiente comando para ejecutar el archivo que acabamos de crear.
$python bottest.py
b) En las aplicaciones de Telegram, ejecuta /on y /off para probar.
Y voilà, ahora tu PLC industrial Raspberry Pi se controla a distancia con tu aplicación de Telegram.
Telegram Bot con controlador PLC Raspberry Pi