Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Ei!
Neste projeto, implementaremos o controle do LED com base no Google Assistant usando Raspberry Pi 4 usando HTTP em Python. Você pode substituir o LED por uma lâmpada (obviamente não literalmente, você precisará de um módulo de relé no meio) ou qualquer outro eletrodoméstico para que este projeto possa ser implementado posteriormente para fins de automação residencial.
Suprimentos
O que você precisará para este projeto:
1. Raspberry Pi
2. LED
3. Jumper fios-2 (macho para fêmea)
4. Placa de ensaio
5. Aplicativo IFTTT (https://play.google.com/store/apps/details?id=com.ifttt.ifttt&hl=en_IN)
6. Conta Thingspeak (https://thingspeak.com/)
Alguns pré-requisitos:
1. Noções básicas de rede -
2. Python para acessar os dados da web
Etapa 1: Criação de um canal Thingspeak
Se você é novo no Thingspeak e nunca o usou antes, siga as etapas abaixo:
Acesse
Você terá que se inscrever antes de começar a usar o Thingspeak
Depois de se inscrever, vá para a seção Canais
Em Canais, selecione Novo canal (veja a imagem para referência)
Em Novo Canal, você verá diferentes caixas de informações. Você apenas tem que preencher a caixa Nome. Você pode nomear seu canal como quiser. Anexei uma imagem em que nomeei meu canal como Raspberry Pi 4. Deixe o resto das caixas como estão.
Parabéns! Você criou com sucesso um canal para o seu projeto IoT. (veja a imagem em anexo onde você pode ver meu canal chamado Raspberry Pi 4 criado com sucesso)
Etapa 2: usando o aplicativo IFTTT
Temos que usar este aplicativo para acionar uma solicitação GET para postar dados em seu canal Thingspeak criado usando o Google Assistant. Pense neste aplicativo como uma interface entre o Google Assistant e seu canal Thingspeak.
Em seguida, criamos solicitações GET no aplicativo IFTTT.
Baixe o aplicativo IFTTT em
crie sua conta
Vá para fazer seus próprios miniaplicativos do zero
Toque em Se esta opção
Selecione o serviço de gatilho como Google Assistant
Nela, selecione Diga uma frase simples
Sob essa opção, algumas caixas de informações irão aparecer. Para isso, consulte as imagens e preencha os detalhes de acordo! (existem duas imagens para este propósito: 1. Para ligar o LED 2. Para desligar o LED)
Concluímos a parte If This, que é o Google Assistant. Agora selecionamos Então aquela opção que é Webhooks.
Abaixo disso, selecione Fazer uma solicitação da web
Consulte a imagem para obter as informações que devem ser preenchidas nas caixas. Consulte este URL https://api.thingspeak.com/update?api_key=INSERT YOUR WRITE API KEY & field1 = 1
No URL acima, você notará que mencionei sobre INSERT YOUR WRITE API KEY. Esta é a chave API que é uma identidade do canal que você criou no Thingspeak (veja a imagem). A chave de API de gravação ajudará você a gravar dados específicos em seu canal e, da mesma forma, a chave de API de leitura o ajudará a obter dados do canal.
Além de sua chave de API de gravação, o resto das informações das caixas permanecem as mesmas.
Então, aqui você criou um gatilho em que, quando diz ao Google Assistente: "Ligue o LED", ele enviará um "1" para o canal do Thingspeak.
Agora, de forma semelhante, você deve criar um novo miniaplicativo no aplicativo IFTTT para desligar o LED. Anexei imagens se você estiver confuso sobre o mesmo. Caso contrário, o procedimento para desligar o LED é o mesmo que você fez acima, exceto por algumas pequenas alterações.
Etapa 3: finalmente começando a codificar
Vou explicar o objetivo principal do código Python. Precisamos buscar os dados do canal Thingspeak, que serão "1" ou "0" com base no que você disser ao Google Assistente. Temos que ligar ou desligar o LED com base nisso. Se o valor carregado no canal Thingspeak for "1", então ligamos o LED, e se for um "0", desligamos.
No código, você precisará de duas coisas: 1. Sua chave de API de leitura 2. Seu ID de canal (consulte as imagens para o mesmo)
Aqui está o código (supondo que você conheça os pré-requisitos de HTTP e Python):
importar urllib
pedidos de importação
import json
tempo de importação
importar RPi. GPIO como GPIO
GPIO.setmode (GPIO. BOARD)
GPIO.setup (7, GPIO. OUT)
Experimente:
enquanto (1):
URL = 'https://api.thingspeak.com/channels/INSERIR SEU ID DO CANAL / fields / 1.json? Api_key =' KEY = 'INSERT YOUR READ API KEY'
CABEÇALHO = '& resultados = 2'
NEW_URL = URL + CHAVE + CABEÇALHO
#print (NEW_URL)
get_data = requests.get (NEW_URL).json ()
#print (get_data)
feild_1 = get_data ['feeds']
#print ("Campo:", feild_1)
t =
para x em feild_1:
t.append (x ['campo1'])
imprimir (t [1])
se int (t [1]) == 1:
GPIO.output (7, 1)
elif int (t [1]) == 0:
GPIO.output (7, 0)
exceto KeyboardInterrupt:
GPIO.cleanup ()