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.