Índice:

Tomadas principais de controle remoto Raspberry Pi RF (plugues de alimentação): 6 etapas
Tomadas principais de controle remoto Raspberry Pi RF (plugues de alimentação): 6 etapas

Vídeo: Tomadas principais de controle remoto Raspberry Pi RF (plugues de alimentação): 6 etapas

Vídeo: Tomadas principais de controle remoto Raspberry Pi RF (plugues de alimentação): 6 etapas
Vídeo: Zigbee Ethernet шлюз Zigstar Lilyzig с поддержкой Power over Ethernet, ставим второй zigbee2mqtt 2024, Novembro
Anonim
Tomadas principais de controle remoto Raspberry Pi RF (plugues de alimentação)
Tomadas principais de controle remoto Raspberry Pi RF (plugues de alimentação)
Tomadas principais de controle remoto Raspberry Pi RF (plugues de alimentação)
Tomadas principais de controle remoto Raspberry Pi RF (plugues de alimentação)
Tomadas principais de controle remoto Raspberry Pi RF (plugues de alimentação)
Tomadas principais de controle remoto Raspberry Pi RF (plugues de alimentação)
Tomadas principais de controle remoto Raspberry Pi RF (plugues de alimentação)
Tomadas principais de controle remoto Raspberry Pi RF (plugues de alimentação)

Controle as tomadas elétricas de 433 MHz baratas (tomadas de parede) usando um Raspberry Pi. O Pi pode aprender a saída dos códigos de controle do controle remoto dos soquetes e usá-los sob o controle do programa para ativar qualquer um ou todos os soquetes remotos em toda a casa.

O design não depende de conectividade externa com a Internet (ou seja, 'Internet das Coisas' e, portanto, (IMHO) muito mais seguro do que controladores baseados na web. Dito isso, eu tentei a integração com o Google Home, mas rapidamente perdi a vontade de viver quando os comandos às vezes demoravam várias dezenas de segundos para serem executados ou nunca eram executados.

Uma aplicação óbvia na época do Natal é controlar as luzes da árvore de Natal e (se você estiver inclinado para isso) as luzes de exibição externas. Embora seja um uso simples, ao construir este Instructable você acabará com um controlador de soquetes super flexível que pode responder às entradas do sensor e a outros dispositivos em sua rede doméstica, como Raspberry Pis executando Linux Motion.

Por exemplo, eu tenho um conjunto de luzes de cozinha que se acendem quando uma câmera executando 'Motion' detecta movimento na cozinha e as desliga após cinco minutos sem atividade. Funciona muito bem!

Com 'Tasker' e 'AutoTools SSH' da Google Play Store, você pode configurar todos os tipos de controles remotos sofisticados para telefones.

O projeto depende de placas receptoras e transmissoras de 433 MHz baratas, amplamente disponíveis no eBay. Eles são compatíveis com (pelo menos no Reino Unido) tomadas de alimentação remotas de 433 MHz vendidas com controles remotos. Meu projeto inclui um receptor para que novos conjuntos de comandos de controle remoto possam ser incorporados de forma fácil e rápida. Um ponto a ser observado - os soquetes remotos disponíveis no Reino Unido parecem vir em dois tipos - aqueles com um ID programado por um interruptor no soquete e aqueles que dependem da programação do controle remoto. Este projeto é compatível com ambos, mas os primeiros não perdem sua identidade em um corte de energia e, portanto, são preferíveis.

O projeto usa um gabinete de roteador antigo - eu tenho alguns desses e eles têm a maioria dos conectores externos necessários, como alimentação, ethernet, USB e antena (s). O que você usará dependerá do que você tem disponível, portanto, este Instructable é provavelmente mais útil como um guia geral do que um conjunto de instruções passo a passo.

Embora não seja estritamente necessário para este projeto, também adicionei uma ventoinha de resfriamento e uma placa controladora. Sem um ventilador, o Pi pode ficar bem quente (cerca de 60 ° C). Os detalhes podem ser fornecidos em um Instructable posterior.

Devo dizer que não sou um programador. O software é (principalmente) escrito em Python e as coisas inteligentes são copiadas de pessoas que sabem o que estão fazendo. Reconheci as fontes onde posso - se tiver esquecido alguma, por favor me avise e corrigirei o texto.

O Instructable pressupõe alguma habilidade de soldagem e uma familiaridade passageira com Python, Bash e como falar com seu Pi via SSH (embora eu tente tornar as instruções o mais abrangentes possível). Também é escrito em inglês britânico, portanto, se você estiver lendo do outro lado do lago, ignore as letras extras nas palavras e os nomes estranhos de coisas (como 'tomadas principais', que você conhecerá como algo como 'tomadas de parede').

Quaisquer comentários, sugestões de melhorias e usos, etc. também são bem-vindos!

Etapa 1: preparação do caso

Preparação de Caso
Preparação de Caso
Preparação de Caso
Preparação de Caso
Preparação de Caso
Preparação de Caso

Usei um roteador TP-Link TD-W8960N antigo para este projeto. É um bom tamanho e depois de descobrir como colocá-lo, muito fácil de trabalhar.

Eu também mantive a fonte de alimentação 12v @ 1A do roteador, que está um pouco mal alimentada, mas na prática está OK para esta aplicação.

Abrir a caixa é uma questão de remover dois parafusos na parte inferior da caixa e, em seguida, usar uma ferramenta de alavanca ao redor da borda da caixa para facilitar a abertura dos clipes. Os dois parafusos estão sob os pés de borracha na parte traseira do gabinete (veja as setas vermelhas). Os clipes mais difíceis de abrir são os da frente, mas eu tive fé e eles se curvaram à minha ferramenta.

Assim que a caixa estiver aberta, desaperte as duas porcas dos conectores da antena e a placa de circuito pode ser levantada.

Como você usará as duas antenas posteriormente, retire a solda dos cabos coaxiais da placa de circuito e coloque-os de lado.

Se você estiver se sentindo corajoso (como eu estava), você pode remover o interruptor, o soquete CC e os soquetes RJ45 da placa de circuito. A melhor maneira que descobri de fazer isso é prender a placa em um torno e aplicar o calor de uma pistola de ar quente enquanto pressiona com uma ferramenta de abertura de caixa adequada ou chave de fenda. A lógica é que todas as conexões de solda são derretidas ao mesmo tempo, reduzindo o estresse térmico geral na caixa de plástico do componente em comparação com o uso de um ferro de solda em cada junção. Essa é a teoria, pelo menos. Na prática, um pouco de sorte está envolvida! A quantidade de calor a ser aplicada é uma questão de julgamento, mas tenha cuidado e prefira usar muito pouco. Se tudo correr bem, você acabará com os componentes utilizáveis mostrados na foto (no entanto, você notará o botão do interruptor derretido e o soquete RJ45 ligeiramente deformado!).

Caso contrário, vá para a Internet para comprar seus bits.

Etapa 2: Lista de peças

Raspberry Pi - suspeito que qualquer sabor serve, mas usei um 3B +

Placa transmissora de 433 MHz - pesquise no eBay por 'Transmissor RF de 433 MHz com Kit de receptor para Arduino Arm Mcu Wireless' ou similar

Placa receptora de 433 MHz - idem. Normalmente £ 1,98 por par

Regulador LM2596 Buck - eBay, normalmente £ 1,95. Para converter a potência de 12v em 5v para o Pi

Tubo de luz - pesquise no eBay por 'Cabo de fibra óptica - 0,25 / 0,5 / 0,75 / 1 / 1,5 / 2 / 2,5 / 3 mm de diâmetro - Guia de luz' - Usei um tubo de 2 mm, mas 1,5 mm teria sido mais fácil de trabalhar (paguei £ 2,95 por 1m)

Chave seletora miniatura de 2 pólos (bom ter, mas opcional)

Soquete soldável de 180 ° USB tipo A - via eBay, paguei £ 1,90 por dez

Interruptor de pressão de pólo duplo (bom ter, mas opcional) - Peguei o meu na placa do modem / roteador

Soquete (s) RJ45 - recuperado da placa do modem / roteador

Tomada de alimentação DC - via eBay (10X DC Power Supply Jack Socket Fêmea Conector de montagem em painel 5,5 x 2,1 mm £ 0,99)

Antenas de 430 MHz - converte as antenas de 2 GHz do modem / roteador

Fonte de alimentação 12 V DC 12 W (mínimo) - de preferência, ela virá com o modem / roteador. Caso contrário, você precisa se certificar de que o soquete de alimentação DC acima corresponde ao que você usa. O requisito de 12 V é determinado pelo transmissor de 433 MHz

As peças para o modo de ventilador de resfriamento serão detalhadas em um Instrutível posterior.

Etapa 3: consumíveis e ferramentas

Você precisará dos seguintes consumíveis:

Solda (conforme necessário)

Cola termofusível (conforme necessário)

Fio de interconexão - (por exemplo) 22 e 24AWG (conforme necessário)

Manga termorretrátil (conforme necessário)

Gato sacrificial. 5 patch cable ethernet

Cabo de patch USB 2 sacrificial.

Ferramentas:

Decapantes de arame

Cortadores de fio (de preferência cortadores embutidos)

Ferramenta de premiação

Chave de fenda adequada para desmontar a caixa.

Ferro de solda

Pistola de cola

Secador de cabelo (para dobrar os tubos de luz e para quaisquer interrupções improvisadas no cabeleireiro)

Receptor de comunicações FM de 433 MHz (opcional - para solucionar problemas do transmissor) - (por exemplo) AR1000

Etapa 4: Montagem

conjunto
conjunto
conjunto
conjunto
conjunto
conjunto
conjunto
conjunto

Como você monta o Pi e as placas auxiliares depende do gabinete que você está usando. As fotos mostram o que fiz.

O Pi fica mais ou menos no meio do case, permitindo espaço suficiente para os vários conectores serem usados (observe que o HDMI não é usado porque o Pi é comunicado via SSH (ou seja, sem cabeça).

Anexei o Pi à base usando alguns fechos plásticos recuperados (veja a foto). Como a caixa não foi projetada para uso portátil, você pode se safar usando apenas dois fechos. Você pode facilmente usar parafusos de 2,5 mm com isolantes ou até mesmo cola hot-melt (que eu usei no passado - apenas certifique-se de não usar muito e evite quaisquer componentes de montagem em superfície na parte inferior, como você inevitavelmente terá para remover a placa em algum momento (primeira lei da construção - você terá que desmontá-la)).

Usei cola quente para fixar as várias placas nas laterais do gabinete. As mesmas considerações acima se aplicam.

Depois que tudo estiver no lugar, você pode conectar as coisas.

O diagrama de blocos mostra o esquema de fiação que usei. Observe que eu uso a chave seletora opcional para alternar a alimentação entre as placas do transmissor e do receptor - provavelmente há pouco risco de fazer isso, mas eu não queria fritar o receptor durante a transmissão.

Também me ocorreu que o botão de pressão poderia ter sido usado para desligar o Pi normalmente (há uma série de designs disponíveis na Internet). Não me incomodei - neste caso, ele atua como um simples botão liga / desliga. Só preciso ter cuidado para desligar o Pi via SSH antes de pressionar o botão.

Você notará os tubos de luz usados para canalizar a luz dos dois LEDs no Pi e do LED de status da fonte de alimentação para a frente do gabinete. Usei o calor de um secador de cabelo para dobrar os canos (você definitivamente NÃO quer usar uma pistola de ar quente!). É muito tentativa e erro, mas vale a pena no final, pois você pode ver diretamente o que os LEDs estão sinalizando, em vez de depender de software e LEDs externos. A escolha é sua, é claro. O corte dos canos é feito com um alicate de corte afiado (cortadores nivelados são os melhores), mas você também pode usar uma tesoura afiada. Novamente, a cola termofusível pode ser usada para fixar os canos no lugar, mas tome cuidado para usar apenas uma pequena quantidade - que esfria rapidamente - pois a cola pode distorcer os canos.

Idealmente, você deve modificar as antenas. Eles normalmente serão dimensionados para operar a 2 GHz e serão antenas muito ineficientes quando usados a 433 MHz.

Para fazer isso, você deve primeiro remover a tampa da antena para expor o fio da antena. Acho que tive sorte, pois a capa de cada antena saiu com apenas um pequeno valor.

Corte onde mostrado para remover a antena original de 2 GHz e expor o co-machado. Acesse com cuidado o núcleo interno, removendo bem a trança e solde-a em um novo pedaço de arame, conforme mostrado. O comprimento do novo fio é aproximadamente um comprimento de onda de 1/4 de 433 MHz (ou seja) comprimento = 0,25 * 3E8 / 433E6 = 17 cm. A parte inferior pode ser enrolada com uma pequena broca ou similar para permitir que todo o comprimento caiba na cobertura da antena.

Antes da remontagem, verifique se não há curto-circuito entre os contatos interno e externo da antena.

Eu apenas modifiquei a antena do transmissor como um receptor 'surdo' e provavelmente é vantajoso ao aprender os códigos do controle remoto RF (veja mais adiante).

A conexão Ethernet é feita pela fiação de um gato sacrificial. 5 cabo de interconexão ao soquete RJ45 resgatado do modem. Corte o cabo de acordo com a distância entre o soquete Ethernet Pi e o soquete RJ45 da caixa e descubra todos os oito fios. Use um testador de continuidade para garantir que você conecte o pino 1 do cabo ao pino 1 do soquete, etc. Uma maneira simples de fazer isso é plugar o conector no soquete ao qual você está ligando e colocar um anel entre os contatos do soquete e as extremidades do cabo desencapado. Como apenas um dos quatro soquetes RJ45 externos é usado, marque o soquete com fio de acordo para evitar erros embaraçosos mais tarde.

Da mesma forma, o conector USB é conectado usando um cabo de patch USB 2 sacrificial, conectado pino 1 ao pino 1 etc. O conector USB externo é colado a quente no lugar, usando o orifício na caixa deixado pela tomada da linha telefônica.

Etapa 5: Notas do transmissor

Notas do transmissor
Notas do transmissor
Notas do transmissor
Notas do transmissor
Notas do transmissor
Notas do transmissor

As placas de transmissão e recepção de 433 MHz que usei são onipresentes na internet e, como são muito baratas, encomendei dois pares de cada (para permitir disparos experimentais). Descobri que os receptores são confiáveis, mas o transmissor que usei precisava ser modificado para funcionar de maneira confiável.

O circuito do transmissor FS1000A que comprei * é mostrado no diagrama. Eu descobri por tentativa e erro que um capacitor 3pF precisava ser instalado na posição C1 SoT (selecione no teste) para fazer a coisa funcionar. Como eu tenho um receptor de banda larga que cobre 430 MHz, foi relativamente fácil solucionar isso. Como você pode testar sem um receptor é uma questão interessante….

* Nota: comprei um segundo lote de transmissores depois de não conseguir fazer os dois primeiros funcionarem. Todos estes vieram sem a bobina do coletor. Hmmm!

Eu tinha um capacitor de 3pF em minha caixa de sucata, mas esse não será o caso para a maioria das pessoas e, em qualquer caso, o valor necessário pode ser mais, digamos 7pF. Uma substituição grosseira pode ser feita com dois bits de fio trançado (o cabo de par trançado que eu conheço tem uma capacitância de cerca de 100pF por pé para lhe dar um guia de comprimento), mas não é recomendado, pois outros problemas podem surgir. Espero que você tenha sorte e não tenha esse problema. Você sempre pode comprar um transmissor mais caro (e, portanto, provavelmente) melhor feito.

Observe também que a frequência do transmissor não é muito precisa ou estável, mas na prática tem sido boa o suficiente para operar os soquetes remotos de maneira confiável.

Observe também que o orifício laminado adjacente à palavra 'ANT' no transmissor NÃO é a conexão da antena - é aquele no canto sem marcação (veja a foto). Este foi o primeiro erro que cometi….

A conexão de pino útil marcada como 'ATAD' deve, na verdade, ler 'DADOS', é claro.

Etapa 6: Visão geral do software

Visão geral do software
Visão geral do software

Lembre-se de que não sou um programador. Como afirmado anteriormente, o mais inteligente é o código de outras pessoas, mas eu sei o suficiente para pinçá-lo e adaptá-lo para que funcione em conjunto. Este também é o primeiro Instructable que publiquei com código, então, desculpas se fiz isso errado! Se você tiver alguma dúvida, lembre-se disso …

O software básico que usei é o seguinte:

  • Raspbian Stretch Lite
  • PiGPIO (uma biblioteca fantástica para dirigir servos etc.)
  • Código _433.py (para codificar e decodificar códigos de controle de RF) - vinculado ao site do PiGPIO.
  • Python3 (vem com Raspbian)

Software adicional que eu uso:

  • pyephem (calcula os horários do amanhecer e do anoitecer - útil para a troca de luz)
  • O excelente 'Tasker' e 'AutoTools SSH' para criar um controle remoto no meu telefone Android - ver foto (ambos disponíveis na loja Google Play). [Como criar uma 'cena' de Tasker está fora do escopo deste Instructable, pois há uma curva de aprendizado bastante íngreme envolvida, mas estou feliz em discutir o que fiz]

Meu próprio código (em Python). Bruto, mas funcional:

  • tx.py - software de menu e / ou argumento de linha de comando que envia o código apropriado para o transmissor de 433MHz.
  • amanhecer-anoitecer - calcula os horários do amanhecer e do anoitecer na minha localização e atualiza o crontab do usuário (usado para as luzes da árvore de Natal, etc.)

O código pessoal acima pode ser acessado via GitHub:

A funcionalidade do projeto é fornecida pelo código PiGPIO e _433.py. Este último tem uma função de recepção que escuta os comandos do controle remoto de seu controle remoto RF 433MHz e decodifica os pulsos de tempo, produzindo uma saída que pode ser armazenada para uso posterior pela função de transmissão. Isso permite que o sistema aprenda qualquer controle remoto RF de 433 MHz 'normal'. Em princípio, também pode ser usado para aprender os controles remotos RF do seu vizinho. Eu aconselharia fortemente contra isso, pois os vizinhos raramente veem o lado engraçado de campainhas tocando aleatoriamente. Eu não iria.

Configurar

Como o Pi neste aplicativo é executado 'sem cabeça' (isto é) sem monitor ou teclado, você precisa falar com ele via ssh. Existem muitos guias disponíveis que abordam como configurar um Pi sem cabeça, mas para manter as coisas simples, assumirei que você primeiro iniciará o Pi com um monitor e teclado. Uma vez inicializado, inicie o terminal e digite 'sudo raspi-config'. Selecione '5. Opções de interface 'e então' P2 SSH '. Habilite o servidor ssh e feche o raspi-config (que provavelmente terminará em uma reinicialização).

As comunicações subsequentes com o Pi podem ser conduzidas de um terminal remoto via ssh. Observe que o código não precisa de um endereço IP fixo de LAN para o Pi, mas certamente ajuda (e é certamente necessário se você se aprofundar no controle do Tasker). Novamente, há muitos tutoriais on-line sobre como fazer isso. Meu roteador doméstico me permite atribuir um endereço IP fixo ao endereço MAC do Pi, então faço isso dessa forma, em vez de editar a configuração do Pi.

Instalando PiGPIO:

ssh no Pi e digite os seguintes comandos:

atualização do apt sudo

sudo apt install pigpio python-pigpio python3-pigpio

sudo apt install git

git clone

sudo apt install python3-RPi. GPIO

Para executar o PiGPIO na inicialização:

crontab -e

adicione a seguinte linha:

@reboot / usr / local / bin / pigpiod

Obtenha o código Python para transmitir e decodificar códigos remotos RF de 433 MHz:

wget

descompacte _433_py.zip

Mova o _433.py descompactado para um diretório adequado (por exemplo) ~ / software / apps

Digitando (nesse diretório)

_433.py

coloca o Pi no modo 433 rx, aguardando códigos de controle remoto RF demodulados no pino 38 do GPIO.

Com o receptor de 433 MHz conectado, quando um controle remoto de 433 MHz é usado nas proximidades, algo como os seguintes dados serão vistos na tela:

código = 5330005 bits = 24 (intervalo = 12780 t0 = 422 t1 = 1236)

Esses dados são usados em seu programa Python para regenerar a transmissão do controle remoto.

Para canalizar esses dados para um arquivo para uso posterior, execute:

_433.py> ~ / software / apps / remotedata.txt

Depois de obter os dados, a próxima etapa é usá-los para editar o código 'tx.py' que você pode copiar do meu repositório GitHub. Este código usa os dados para gerar formas de onda compreendidas pelo (s) soquete (s) remoto (s) a serem transmitidos pelo transmissor de 433 MHz. Esperançosamente, as edições necessárias serão razoavelmente óbvias e o resto depende de você …

Recomendado: