Enviar fotos a telegram mediante Bot

Compartí con amigos:

En esta oportunidad le vamos a mostrar cómo desde debian 10 por medio de un bot creado con #telegram podemos enviarnos fotos desde una webcam conectada a nuestra #Raspberry o bien conectada a una pc.

En la entrada anterior les mostramos como crear un bot así que si quieres recordarlo o verlo ingresa a:

Raspberry controlado con bot de telegram

Para continuar con el archivo bot.py necesitamos antes instalar la herramienta que vamos a utilizar para sacar la foto la cual se llama  fswebcam

sudo apt install fswebcam

Si aún no conectaste la camara es momento de hacerlo!!

Para probar que funciona hay una forma muy grafica y sencilla para los novatos que es instalar Cheese cuya aplicacion permite sacar fotos y grabar videos

sudo apt install cheese

Luego de instalar vas a aplicaciones y la encontrarás.

Si todo está bien al abrirla la encontras funcionando a tu webcam correctamente (casi nunca pasa que no funciona el driver pero eso ya es otro tema).

Ademas si tenes una VPN montada como te lo mostramos en este tutorial:

Instalar un servidor VPN

También podrías acceder a la vpn y mirar la cámara por ejemplo por vnc. En fin, si bien no es la idea, son parámetros para que vayas viendo lo que se puede hacer.

Nos queda armar una entrada en el bot.py el cual permita enviandole el mensaje foto sacar una foto y enviarnosla, asi que cree una funcion que lo hace perfectamente:

@bot.message_handler(func=lambda message: message.text.lower() == 'foto'and message.chat.id == ownner)
def foto(message):
                
                foto = "/tmp/" + (time.strftime("%H%M%S-%d%m%y")) + ".jpeg"
                bot.send_chat_action(ownner, 'upload_photo')
                os.system('fswebcam -d /dev/video0 -r 800x600 --no-banner %s' % foto)
                bot.send_photo(ownner, open(foto, 'rb'))
                bot.send_message(message.chat.id, "Foto Enviada");

Fijense que en el código está protegido por la variable ownner que en la entrada anterior mostramos que era nuestra id.

Otra cosa importante es que fswebcam toma la foto desde /dev/video0 así que si no te anda podrias primero ver con lsusb que tenes conectado y chequear por medio de cheese si funciona correctamente la webcam.

Ahora basta enviarle a tu bot la palabra foto para que saque una y te la envie 😉

Actualizamos el post con la funcionalidad de enviar videos gracias a la colaboración de @MatiSanchez25 de la comunidad #MakersArgentina

@bot.message_handler(func=lambda message: message.text.lower() == 'video' and message.chat.id == ownner)
def video(message):
    pathvideo = "/tmp/{}.mp4".format(time.strftime("%H%M%S-%d%m%y"))
    bot.send_chat_action(ownner, 'upload_video')
    os.system('ffmpeg -f v4l2 -framerate 25 -video_size 640x480 -t 10 -i /dev/video0 {}'.format(pathvideo))
    bot.send_video(ownner, open(pathvideo, 'rb'))
    bot.send_message(message.chat.id, "Video Enviado");

Te esperamos en #MakersArgentina para que dejes tu #HuellaMaker

 

Compartí con amigos:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *