Índice:
- Etapa 1: O que você precisa
- Etapa 2: configurar as tomadas
- Etapa 3: configurar uma conta PubNub
- Etapa 4: preparar Raspberry Pi
- Etapa 5: Criação do circuito
- Etapa 6: Obtenha seus códigos RF
- Etapa 7: executando o programa
- Etapa 8: Execução na inicialização
- Etapa 9: Adicionar mais interruptores
- Etapa 10: Indo além
- Etapa 11: créditos
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Sempre quis ser capaz de controlar as luzes sem fio, mas as opções comerciais geralmente são caras. As luzes Philips Hue custam cerca de US $ 70, e as luzes conectadas por Wi-Fi também são caras. Este tutorial explicará como controlar até cinco luzes / lâmpadas / fios de luz de Natal por cerca de US $ 50 e pode ser expandido para incluir mais luzes também.
Etapa 1: O que você precisa
Materiais:
Raspberry Pi Zero W (edição sem fio)
Cartão Micro SD (pelo menos 4gb)
Conversor / cabo mini HDMI para HDMI (há uma diferença entre mini e micro, certifique-se de obter o correto!)
Micro USB para cabo / conversor USB
Teclado USB
Observação: recebi um kit inicial Raspberry Pi Zero W da Amazon que veio com Raspberry Pi Zero W, cartão SD, capa, cabo de alimentação, conversor HDMI e conversor USB. Por apenas $ 30, é uma boa opção (link)
Você pode usar um modelo diferente de Raspberry Pi, mas o Raspberry Pi deve ter algum tipo de conexão com a internet, e o Pi Zero W é a opção mais barata.
Tomadas remotas - usei estas
Transmissor e receptor RF (Nota: a frequência do transmissor / receptor deve corresponder à frequência das tomadas remotas) - Eu usei estes
Fio para antena (usei fio de cobre de núcleo sólido de calibre 22, outro fio pode funcionar)
Placa de ensaio, fios de jumper, conector macho-macho de 40 pinos
Programas:
Raspberry Pi OS (faça download do Raspbian Desktop)
Imager de disco Etcher (para gravar o Pi OS no cartão SD)
Ferramentas:
Ferro de solda
Computador para baixar Pi OS e Etcher
Etapa 2: configurar as tomadas
Comece conectando suas tomadas em uma tomada. Siga as instruções incluídas para configurá-los e conecte suas luzes / aparelhos. Verifique se o controle remoto está emparelhado corretamente e controlando os soquetes.
Etapa 3: configurar uma conta PubNub
PubNub é um servidor de internet gratuito que permite a comunicação entre dispositivos, em qualquer lugar do mundo. O script python recebe mensagens de uma página da web e usa as informações da mensagem para acender ou apagar as luzes. Você pode se inscrever para uma conta gratuita aqui. Depois de se inscrever, faça login em sua conta. Isso o levará a uma página de gerenciamento de aplicativos. Clique em "Criar novo aplicativo". Dê a você um nome de aplicativo e, em seguida, selecione-o na lista de aplicativos (se este for o seu primeiro aplicativo, será o único). Isso o levará à página de chaves do aplicativo. Clique em "Demo Keyset" e você verá três chaves diferentes. Mantenha esta página ativa, você precisará dessas chaves mais tarde. Agora que você tem sua conta PubNub, pode configurar seu pi de framboesa.
Etapa 4: preparar Raspberry Pi
Baixe Etcher e o Raspberry Pi OS em seu computador (links na lista de peças)
Instale o Etcher em seu computador e descompacte (se necessário) o Raspberry Pi OS. Insira o cartão Micro SD em seu computador e abra o Etcher. Clique em "Selecionar imagem" e navegue até o arquivo descompactado do Raspberry Pi OS. Selecione-o, clique em "Selecionar unidade" e selecione seu cartão micro SD na lista. Clique em "Flash" e espere o Etcher terminar. Assim que o Etcher for concluído, remova o cartão SD do seu computador (o Etcher o ejeta automaticamente) e insira-o no Raspberry Pi. Neste ponto, você precisará conectar o Raspberry Pi a um monitor com o conversor HDMI. Conecte um teclado (e mouse, se você tiver um hub multi-USB) e conecte o cabo de alimentação. Existem duas portas micro USB. Um é para alimentação, o outro é uma porta USB real. O mais próximo do final do Pi é a potência, enquanto o mais próximo do meio é o USB. Seu pi de framboesa começará a inicializar. Ele pode reiniciar algumas vezes durante a primeira inicialização, mas isso é normal. Assim que o raspberry pi for iniciado, conecte-o ao seu WiFi. Depois de conectá-lo ao WiFi, você pode usar um servidor SSH, mas acho mais fácil usar a GUI por enquanto. Abra uma janela de terminal e digite estes comandos:
sudo pip3 install 'pubnub == 3.9.0'
cd git clone git: //git.drogon.net/wiringPi git clone
sudo git clone https://github.com/timleland/rfoutlet.git / var / www / rfoutlet
sudo chown root.root / var / www / rfoutlet / codesend sudo chmod 4755 / var / www / rfoutlet / codesend
cd wiringPi
./construir
Agora, abra o navegador de arquivos Raspberry Pi e você deverá ver a pasta pi-home-automação. Clique duas vezes nele e você verá um arquivo chamado RFControl.py. Copie-o (clique ao lado e selecione "Copiar"), volte para a pasta pi e cole-o lá.
Desligue o raspberry pi (no menu ou executando sudo poweroff na linha de comando) e desconecte-o quando a luz verde parar de piscar.
Etapa 5: Criação do circuito
Agora é hora de criar o circuito. Usei um breadboard, mas você pode fazer como quiser.
Primeiro, devemos criar uma antena para o transmissor RF. Este tutorial instrutível explica como fazer uma antena para um transmissor RF. Siga as instruções e, em seguida, solde-o ao pino da antena do transmissor (no que usei estava identificado como ANT) com o lado mais curto mais próximo do transmissor
Conecte o transmissor
O transmissor usa estes pinos:
DADOS: GPIO 17, pino físico 11
VCC: Raspberry Pi 5v, pino físico 2
GND: Raspberry Pi GND, físico pino 6
Ligue o receptor
O receptor usa estes pinos:
GND: Raspberry Pi GND, físico pino 9
VCC: Raspberry Pi 5v, físico pino 4
DADOS: GPIO 27, pino físico 13 (há dois pinos de dados no receptor que usei e usei o mais próximo do VCC)
Etapa 6: Obtenha seus códigos RF
Depois que o circuito estiver conectado ao Raspberry Pi, verifique-o duas vezes para certificar-se de que tudo está no lugar e, em seguida, ligue-o novamente. Uma vez ligado, abra um terminal e digite
sudo / var / www / rfoutlet / RFSniffer
Em seguida, abra o programa RFControl. Colocar a janela do terminal e a janela do programa lado a lado pode ser útil na próxima etapa.
Você precisará do controle remoto incluído no kit da tomada agora. Segure-o próximo ao receptor e pressione cada botão individual. Ao pressionar um botão, você verá dois números impressos na tela. Um deles será um código de seis ou sete dígitos e o outro um código de 3 dígitos. Você precisará editar o dicionário de códigos no programa. Insira o código de 7 dígitos no local do interruptor correspondente no programa e, para cada botão liga / desliga, insira o código de 3 dígitos (este é o comprimento) no arquivo do interruptor correspondente no programa.
Por exemplo, se o switch 1 on tiver um código de 1234567, um código de off de 7654321 e um comprimento de 890, o código terá a seguinte aparência:
códigos = {
'switch1': {'on': 1234567, #Este é switch 1 on 'off': 7654321, # este é switch 1 off 'len': 890, #este é switch 1 code length}, 'switch2': {… },…}
Repita isso para cada botão. Enquanto você está editando este arquivo, altere as strings que dizem "YOUR-SUB-KEY" para sua chave de assinatura do PubNub e "YOUR-PUB-KEY" para sua chave de publicação.
Uma vez que cada botão tenha sido gravado, você pode continuar para a próxima seção.
Etapa 7: executando o programa
Agora que você tem todos os seus códigos, vá para a página do GitHub (no seu computador, não no raspberry pi) e clique no botão verde que diz "Clonar ou baixar" e, em seguida, clique em "Baixar ZIP". Assim que o download do arquivo for concluído, descompacte-o e abra a pasta. Abra o arquivo chamado main.js. Você precisará inserir suas chaves de assinatura e publicação no programa, substituindo "YOUR-PUB-KEY" pela chave de publicação e "YOUR-SUB-KEY" pela chave de assinatura.
Em seguida, volte ao seu Raspberry Pi e digite
python3 RFControl.py
Assim que imprimir "Pronto", volte ao seu computador e abra o arquivo index.html em um navegador da web fazendo um clique oposto, selecione "Abrir com" e selecione o navegador de sua preferência. Você deve ver 2 colunas de 5 botões, com os nomes das opções entre eles. Pressione qualquer um dos botões. Se controlar corretamente o soquete, ótimo! Se não, aqui estão algumas coisas que você pode tentar:
- Certifique-se de que o Raspberry Pi esteja recebendo mensagens. Ele deve ser impresso na tela sempre que receber uma mensagem da página da web. Caso contrário, certifique-se de que suas chaves de assinatura / publicação estão corretas.
- Se o Raspberry Pi estiver recebendo mensagens, verifique se os códigos RF estão corretos. Certifique-se de que as tomadas estejam emparelhadas com o controle remoto, que o controle remoto possa controlá-las e que os códigos inseridos no programa estejam corretos.
- Se os códigos RF estiverem corretos, certifique-se de que seu Raspberry Pi esteja dentro do alcance das tomadas. Se eles começarem a funcionar depois de movê-la para mais perto, pode ser necessário refazer sua antena.
- Se ainda não estiverem funcionando, conte-me seu problema nos comentários e tentarei ajudá-lo.
Etapa 8: Execução na inicialização
Para fazer seu programa Python rodar na inicialização, insira isto em seu terminal raspberry pi:
crontab -e
Em seguida, vá para a parte inferior do arquivo e digite o seguinte:
@reboot python3 /home/pi/RFControl.py &
Isso fará com que seu script Python seja executado na inicialização todas as vezes. Agora reinicie o seu Raspberry Pi.
Etapa 9: Adicionar mais interruptores
Se você quiser adicionar mais pontos de venda, siga estas instruções:
Abra RFControl.py em seu Raspberry Pi e adicione um novo switch ao dicionário de switches.
Exemplo:
switches = {
… outros interruptores … 'NOME DO INTERRUPTOR': {'on': xxxxxxx, 'off': yyyyyyy, 'len': zzz,},}
Em seguida, adicione um novo botão em seu aplicativo da web editando a variável switches em main.js em seu computador.
Exemplo:
var switches = [… Interruptores antigos… ['NOME PARA EXIBIR', 'NOME DO INTERRUPTOR'],];
Substitua NAME-TO-DISPLAY pelo nome que você gostaria que apareça na página da web e NAME-OF-SWITCH em ambos os arquivos por qualquer coisa que desejar. No entanto, deve ser diferente dos outros!
Etapa 10: Indo além
O PubNub é compatível com muitas plataformas diferentes, o que significa que você pode enviar mensagens de quase qualquer dispositivo! Usei um kit Raspberry Pi AIY Voice e PubNub para enviar comandos com a minha voz, mas isso pode ser o tópico de um Instructable posterior. Obrigado por ler meu Instructable, espero que tenha sido útil!
Etapa 11: créditos
Obrigado a Tim Leland pelo tutorial sobre como configurar o transmissor RF: tutorial
Obrigado a diy_bloke pelo tutorial sobre como criar uma antena: tutorial
Agradeço também a todos os outros que postaram tutoriais online que eu visualizei para obter ajuda!