Monitor de Temperatura com Raspberry via Telegram – Montagem e Programação
O esquemático do projeto Telegram Bot com Raspberry Pi 3 pode ser visto na figura abaixo:
Agora vamos criar o nosso programa executável. Para criar o arquivo, digite o seguinte comando dentro do terminal:
sudo nano <nome_arquivo>.py
Agora, cole o código abaixo diretamente no terminal:
import sys
import time
import random
import datetime
import telepot
import time
import board
import busio
import adafruit_am2320
import picamera
# Comandos que vem do software Telegram e sao processados pela Raspberry PI
def handle(msg):
# pega o id do usaruio que mandou mensagem e qual comando
chat_id = msg['chat']['id']
command = msg['text']
# usado para jogar no terminal o comando dado
print ('Comando Informado: %s' % command)
# se comand for temperatura
if command == 'Temperatura':
# abre a porta e pega os dados da temperatura
i2c = busio.I2C(board.SCL, board.SDA)
am = adafruit_am2320.AM2320(i2c)
# joga na janela a temperatura
print("Temperatura: ", am.temperature)
# joga no telegram(ainda nao envia) a temperatura
bot.sendMessage(chat_id=chat_id, text=am.temperature)
# se comand for Umidade
elif command =='Umidade':
# abre a porta e pega os dados da umidade
i2c = busio.I2C(board.SCL, board.SDA)
am = adafruit_am2320.AM2320(i2c)
# joga na janela a umidade
print("Umidade: ", am.relative_humidity)
# joga no telegram(ainda nao envia) a umidade
bot.sendMessage(chat_id=chat_id, text=am.relative_humidity)
# se comand for foto
elif command =='Foto':
if chat_id == <id do usuario> :
#Habilita disparo da camera através da Raspberry PI
camera = picamera.PiCamera()
camera.capture('./Capture.jpg')
camera.close()
bot.sendPhoto(chat_id=chat_id, photo=open('./Capture.jpg', 'rb'))
else:
bot.sendMessage(chat_id=chat_id, text="Usuario não permitido para fotos")
else:
bot.sendMessage(chat_id=chat_id, text="Digite Umidade ou Temperatura ou Foto")
# Permite que os comandos digitados no telegram sejam enviados a Raspberry PI
bot = telepot.Bot('<token>')
bot.message_loop(handle)
#fica esperando comando no telegram de novo
print('Esperando Comando...')
# loop infinito para aplciacao ficar sempre rodando
while 1:
time.sleep(10)
Agora pressione Ctrl+X e depois Y (Inglês) ou S (Português) para sair e salvar o arquivo.
Pronto! O arquivo foi gerado, é possível executa-lo a qualquer momento, utilizando o seguinte comando:?
python3 <nome_arquivo>.py |
Abra novamente o software Telegram e clique na página de comando criada anteriormente “t.me/username_bot.”
Abaixo a tela no telegram do funcionamento: