Aula 15: Campainha com Telegram

Agora que já vimos como funciona a API para o Telegram e como podemos utilizar um botão com a Raspberry Pi, nesta aula iremos construir uma campainha que manda mensagem no Telegram.

gif de funcionamento

Para montagem do circuito, vamos precisar de:

1x Chave Táctil Push-Button
1x Resistor 6,8 kΩ
1x Protoboard
3x Jumpers macho-fêmea

Montagem do circuito

O circuito é parecido com o visto na aula passada, porém sem o LED, que não utilizaremos. O esquema fica desta forma:

Programa

Neste programa também utilizamos a API instalada na aula 13, em uma estrutura muito próxima com o programa da aula passada, no lugar de acender o LED, mandamos uma mensagem.

Começamos o programa declarando as bibliotecas a serem utilizadas, inicializamos a GPIO e o bot do telegram (linha 15). Veja que mais uma vezes precisamos colocar o token.

# Bibliotecas utilizadas
import RPi.GPIO as GPIO  # Para utilizar os pinos de GPIO
import time  # Para usar o time.sleep
import telepot  # Para usar a API do telegram

GPIO.setmode(GPIO.BOARD)

pinoBotao = 11 # Vamos utilizar o pino 11 da placa para o botao
GPIO.setwarnings(False)  # Desabilitamos avisos de erros da GPIO

# Define o pino do botao como entrada
GPIO.setup(pinoBotao, GPIO.IN)

# Na linha abaixo precisamos colar o token to access
bot = telepot.Bot('898584132:BBD8YPZD3JiKty5Z_jFVGjdJ1mTMgR8VYmw')
print('Campainha ligada')
# Para enviar a mensagem, colocamos o ID do usuario
bot.sendMessage(123456789,'Campainha ligada') # Envia uma mensagem, avisando que esta funcionando

while(1): # Repete esta secao sempre
    if GPIO.input(pinoBotao) == True: # Se o botao for apertado
        # Envia esta mensagem sempre que o botao e apertado
        bot.sendMessage(123456789,'Alguém em casa?') 
        print("Foi!") # Escreve uma mensagem no terminal
        # Espera soltar o botao
        while (GPIO.input(pinoBotao) == True):
            time.sleep(0.1)

Para enviar uma mensagem, como vemos nas linhas 17 e 21, utilizamos a função “sendMessage“, que recebe o ID de quem iremos enviar a mensagem e o conteúdo da mensagem em si. Para descobrir o seu ID, basta mandar uma mensagem para o “userinfobot” que ele responde com seu nome, sobrenome e ID. Esse número você substitui no código para as mensagens do bot irem para você.

Como feito em alguns posts do blog, você pode substituir a mensagem por algo que avise que seu pet foi alimentado, ou mesmo incluir uma foto da câmera na mensagem. O que pode ser feito com esse botão fica a critério da sua imaginação.