Raspberry Pi siempre ha sido divertido y fácil de construir proyectos. Su potente arquitectura ARM y su sistema operativo de código abierto basado en Linux nos han ayudado mucho a poner nuestros proyectos en línea en poco tiempo. En este tutorial aprenderemos otra forma interesante de compartir datos (archivos / fotos / videos / audios / texto) entre Raspberry Pi y nuestro teléfono móvil a través de una popular aplicación de chat llamada Telegram.
Para aquellos que son nuevos en Telegram, es una aplicación basada en chat disponible en Play Store para Android (también disponible para Iphone y Windows) que es muy similar a Whatsapp. Tiene más de 100 millones de descargas (como el 5-10-2017) en Play Store y la gente afirma que es más rápido y más funcional que Whatsapp (dedos cruzados). Una característica especial de esta aplicación es que admite bots. Lo que significa que esta aplicación de teléfono inteligente no solo puede ser utilizada por humanos sino también por máquinas. En nuestro caso la máquina será Raspberry Pi. Una vez que entrenes a Raspberry Pi sobre cómo actuar como un bot, cualquiera (si lo haces público) puede chatear con tu Raspberry Pi como si charlara con cualquier persona normal e incluso compartir Fotos, Documentos y archivos de audio. Incluso puedes entrenarlo para que sea tu propio asistente personal, ¿suena bien, verdad? Aprendamos a construir unBot de telegrama de frambuesa pi.
Materiales necesarios:
- Cualquier Raspberry Pi conectada a Internet
- Una aplicación de Telegram móvil que se ejecuta.
No hay mucho hardware involucrado en este proyecto, así que relájese en su silla con su Pi y siga los pasos a continuación. Si es nuevo en Raspberry Pi, siga nuestro artículo Introducción a Raspberry Pi y otros tutoriales de Raspberry Pi.
Paso 1: Instalar Telegram en tu móvil
El primer paso sería instalar Telegram en tu móvil. Telegram está disponible para Android, IOS e incluso para la plataforma Windows, así que sigue adelante y descarga tu aplicación de Telegram. Al igual que todas las aplicaciones, habrá un pequeño procedimiento de registro para comenzar a usar Telegram, continúe con él hasta que llegue a su pantalla de inicio.
Paso 2: hablar con el padre de bot
El siguiente paso sería solicitar al Padre Bot que nos cree un nuevo Bot. En la esquina superior derecha de la pantalla de inicio habrá un icono de búsqueda, haga clic en él para buscar el nombre "botfather". Botfather es un bot en sí mismo, lo guiará para crear un nuevo bot para usted. Haga clic en iniciar y seleccione / newbot como se muestra en la siguiente imagen. Ahora, el bot le pedirá algunos detalles como el nombre de su Bot y el nombre de usuario del bot. Complete esos detalles y recuerde el nombre de usuario, ya que lo necesitaremos en el futuro.
Paso 3: obtener su token para acceder
He nombrado bot como circuitdigest y el nombre de usuario como circuitdigestBot. Después de este proceso, el padre bot le dará un Token para acceder. Esto es como la contraseña de su bot, la gente puede controlar el programa de su bot usando esta clave de token. Así que guárdelo a salvo y no lo comparta con nadie. Una vez que haya recibido esta clave de token, es hora de pasar a Raspberry Pi.
Paso 4: Telepot para instalar Telegram en Raspberry Pi
El uso de Telegram Bot en Raspberry Pi es posible gracias al paquete de Python llamado Telepot. Necesitamos instalar este paquete en Raspberry Pi usando los siguientes comandos en el terminal Lx
sudo apt-get install python-pip sudo pip install telepot
Una vez que Telepot se importa a Raspberry, podemos usar este paquete en nuestro programa Python para comunicarnos con nuestro Telegram Bot.
Paso 5: Programa tu Raspberry Pi
El bot que acabamos de crear en Telegram es como un bebé, no puede hacer nada por sí solo a menos que le enseñemos qué y cómo hacer las cosas. Esta enseñanza se puede realizar a través del script Raspberry Pi y Python. En este tutorial he programado el bot para realizar algunas acciones básicas como enviar un mensaje, foto, audio y documento. Entonces, cuando diga un comando en particular, responderá con una acción en particular, el comando y la acción se enumeran en la tabla siguiente
Comando de Telegram |
Respuesta de Raspberry Pi |
/Hola |
Responde con una cadena “¡Hola! CircuitDigest ” |
/hora |
Respuestas con la hora actual |
/logo |
Respuestas con una imagen (logotipo de CircuitDigest) |
/archivo |
Responde con un archivo (que contiene el programa actual) |
/audio |
Respuestas con un archivo de audio de demostración |
El programa completo para realizar las acciones anteriores se da al final de esta página. Pero justo debajo, he explicado los fragmentos importantes del programa para ayudarlo a comprender cómo funciona.
El primer paso es importar todas las bibliotecas, aquí obviamente necesitaremos la biblioteca de teletransportación para usar el bot de Telegram. También utilizamos la biblioteca time, timedate para leer la hora actual de Raspberry pi. Luego creamos un objeto ahora en el que se almacena el valor.
importar hora, fecha y hora importar telepot desde telepot.loop importar MessageLoop ahora = datetime.datetime.now ()
El siguiente paso es crear una función para tomar acciones basadas en los comandos entrantes de la aplicación Telegram en el móvil. Aquí el nombre de la función es acción. Es dentro de esta función donde el bot cobra vida. Nuestro bot no puede iniciar una conversación por sí solo, solo puede responder si le preguntamos algo. Entonces, cada vez que preguntemos algo, habrá una identificación de chat. Esta identificación de chat es algo similar a una dirección, solo usando esta identificación de chat un bot puede respondernos. Entonces, el primer paso es leer la identificación del chat y el mensaje que está tratando de decirnos. También imprimimos el mensaje recibido con fines de depuración.
def action (msg): chat_id = msg command = msg print 'Recibido:% s' comando%
Más abajo dentro de la función, comparamos este comando con un texto predefinido y realizamos tareas particulares. Este primer comando será / hola al que respondemos “¡Hola! CircuitDigest ”
if comando == '/ hi': telegram_bot.sendMessage (chat_id, str ("Hola! CircuitDigest"))
El siguiente comando será / time , al que respondemos la hora actual. Ya tenemos la hora y la fecha ahora, aquí simplemente divídala en función de la hora y los minutos y agréguela como usando la función str .
comando elif == '/ time': telegram_bot.sendMessage (chat_id, str (ahora.hora) + str (":") + str (ahora.minuto))
El siguiente comando será / logo , al que el bot obtendrá una imagen de una url y nos la enviará. Se puede enviar una imagen desde una URL o desde el disco duro. Aquí acabo de usar la URL que muestra el logotipo de CircuitDigest.
comando elif == '/ logo': telegram_bot.sendPhoto (chat_id, photo = "https://i.pinimg.com/avatars/circuitdigest_1464122100_280.jpg")
El siguiente comando será / file , que enviará el archivo llamado Aisha.py desde el disco duro. Puede enviar cualquier archivo que desee cambiando la dirección del directorio
comando elif == '/ archivo': telegram_bot.sendDocument (chat_id, document = open ('/ home / pi / Aisha.py'))
El último comando será / audio . Esto puede enviar cualquier archivo mp3 desde el disco duro, acabo de usar un archivo de audio llamado test.mp3 como demostración aquí
comando elif == '/ audio': telegram_bot.sendAudio (chat_id, audio = open ('/ home / pi / test.mp3'))
Bien, ahora viene el paso más importante, aquí es donde damos acceso a nuestro bot de Telegram al script de Python. Aquí nombramos al bot como telegram_bot y le asignamos la dirección del token que nos dio nuestro padre bot en el paso 3. En la línea siguiente, he eliminado los últimos dígitos de mi token por cuestión de privacidad. También usamos el print get me para mostrar los detalles del Bot en la pantalla de shell, esto nos ayudará a notar que las cosas funcionan.
telegram_bot = telepot.Bot ('468382312: AAFhURMxpVlMWEdFzbIQLszBPFEUpXXXXXX') print (telegram_bot.getMe ())
Espero que haya entendido cómo funciona el programa, ahora pasemos al siguiente paso.
Paso 6: Ejecutar el programa en su Raspberry Pi
Como se dijo anteriormente, el programa completo se proporciona al final de esta página, también puede descargar el mismo desde aquí. Una vez que abra el código, asegúrese de cambiar la dirección del token del programa a su dirección del token.
Ahora ejecute el código de Python y debería ver los detalles de su bot en la ventana de shell como esta
Aquí, el nombre de usuario de mi bot es circuitdigestBot. Si obtiene el nombre de su bots aquí, significa que todo va bien.
Una vez que vea " en funcionamiento ", significa que su bot está listo para la acción y ahora puede responder a sus comandos.
Paso 7: disfrutar del resultado
Ahora, todo lo que queda es verificar qué tan bien está respondiendo su bot para su programa. Busque el nombre de su bot en mi caso es "circuitdigestBot". Busque el nombre de usuario y no el nombre del bot, su nombre de usuario debe terminar con bot.
Una vez que abra su bot, haga clic en Inicio y escriba cualquier comando como / hola, / hora, / archivo, / logo o / audio y debería recibir la respuesta correspondiente.
Puede utilizar el script de shell para ver a qué responde actualmente su script. El trabajo completo se puede encontrar en el video que se encuentra al final de esta página.
Paso 8: Dame un choca esos cinco
Espero que haya entendido el tutorial y ahora pueda crear este bot de telegramas Raspberry pi y comunicarse con Raspberry Pi usando la aplicación Telegram. ¡Pobre de mí! Si tiene algún problema, hágamelo saber a través de la sección de comentarios e intentaré comunicarme con usted. Además, avíseme si le gustó este proyecto o qué le gustaría que construya con esto en los próximos proyectos.
Además, en nuestro próximo tutorial. Haremos que esto se vea mejor cambiando la forma en que enviamos los comandos y a algo más relacionado con el hardware en Raspberry Pi.