martes, 4 de abril de 2017

Arduino + Python + Telegram BOT

Que tal Arduineros!!!
Ahora les traigo este aporte en el que aprenderemos a hacer un "bot" de Telegram que interactue con Arduino. Espero les guste y manos a la obra!!

Materiales necesarios:
1 Arduino UNO.
1 Sensor de Temperatura y Humedad DHT11.
2 Leds cualquier color.
1 Protoboard.
Cables para conexión.

Les dejo la conexión de los componentes en la siguiente imagen:

Lo primero que tenemos que hacer es descargar Telegram. En este link están todas las versiones, para móviles y Desktop.
Descarga Telegram.
En mi caso usare la aplicación para Windows.

Una vez instalada y que ya se registraron tienen que iniciar una conversación con @BotFather(es como el jefe de todos los Bots) para hacerlo solo tienen que seguir este link BotFather o bien buscarlo dentro de sus contactos en Telegram.
Cuando se abra la ventana de conversación tienen que escribir el comando /start y así iniciara la conversación con @BotFather. Enseguida les mostrara una lista de comandos.

Ahora enviaremos el comando /newbot para empezar a crear el Bot. Después de introducir este comando nos preguntara el nombre y el nickname que aparecerá en los chats, en caso de que ya exista un Bot llamado igual lo dirá y tendremos que elegir otro.
Si todo ha ido bien ya hemos creado nuestro Bot satisfactoriamente.
En el mensaje de respuesta nos dara el "TOKEN" para accesar a nuestro Bot desde la API, hay que guardarlo para su posterior uso.

Bien, dejemos a un lado Telegram para ir a programar Arduino.
El código es muy sencillo, de todas formas se los dejo explicado linea por linea.



Después de haber cargado el programa a Arduino nos iremos a programar en Python, yo he usado Python 2.7 y corre sin ningún problema.
Aquí los links para descargar las herramientas:
Python : https://www.python.org/downloads/
Libreria Telepot: https://github.com/nickoala/telepot

Nota: Al ejecutar el código de Python háganlo desde la terminal, así no les marcara ningún error relacionado con el puerto COM de Arduino.
Nota 2: Antes de ejecutar el código de Python asegúrense de tener cerrado el monitor serial en Arduino.
Aclarados estos puntos les dejo el código en Python.


Abran una terminal en Windows y ejecuten el script que acabamos de hacer con esta instruccion:
python "nombreFichero".py
Si no les ha marcado ningún error verán algo como esto:

Este sera nuestro "monitor" en el cual se mostraran los mensajes que mande el usuario a nuestro Bot.

Para iniciar la conversación tenemos que enviar el comando /start, y nos contestara de esta manera mostrando los comandos a los que puede reaccionar. Así se vera en Telegram y en la terminal:
Aquí un vídeo del resultado:


Cabe señalar que esto es solo el comienzo ya que con este método podrán controlar infinidad de dispositivos en Arduino, como relevadores para prender o apagar dispositivos de 120 v o lo que se les venga a la mente.

Hasta aquí este post, espero les guste y les sea de utilidad.
Cualquier duda que tengan comenten y enseguida la resuelvo!!!

-RIOJAS

2 comentarios:

  1. como podre importar las librerias de python serial time sys telepot?

    ResponderBorrar
    Respuestas
    1. Hola, de esta manera es como se importan las librerias y ya viene en el codigo.
      "import telepot, time, serial, sys"

      Borrar