Maneira mais barata de controlar vários soquetes de energia (luzes) por Wi-Fi

41

O que eu gostaria de ver é a maneira mais barata possível de controlar minhas luzes usando meu Raspberry Pi.

O que eu imagino controlá-lo

Eu construo uma interface no meu smartphone através da qual posso enviar comandos para o meu Raspberry Pi. O Raspberry Pi envia um pacote (ou outra coisa) para uma coisa que eu possa colocar dentro da minha tomada (para que eu não a veja). Observe que essa coisa deve estar conectada através de Wi-Fi (de que outra forma ele receberá a mensagem do meu Raspberry Pi?).

O que é essa coisa eo que é mais barato maneira possível possível, como eu estou planejando para conectar uma dúzia de luzes?

Rick Hoving
fonte
Há uma outra wi-fi tomada controlada feita por cerca de US $ 20 em peças (não incluindo o pi framboesa) ProvoTronics.com
Ty Jones

Respostas:

22

Estou usando estes itens:

Fora da caixa, você tem um controle remoto que envia um sinal para o dispositivo receptor e o liga ou desliga.

No meu caso, eu criei esta situação:

  • Criei um site HTML no meu Raspberry Pi ( /switch.html)
  • Eu chamo essa página no meu smartphone
  • Na página há quatro botões (eu controlo quatro dispositivos / luzes)
  • Quando clico em um botão, ele dispara assincronamente uma chamada para /switch.php(o .php está no Raspberry Pi)
  • A switch.phpchama de um switch.pyprograma que controla o remetente 433 MHz (ver abaixo)
  • O remetente de 433 MHz faz a mesma coisa que o controle remoto pronto para uso.

Este é o remetente, ou seja, o substituto do controle remoto padrão: 433 MHz Superregeneração do módulo transmissor sem fio para Arduino

Também criei um cenário para uso externo.

Como não queria conectar meu Raspberry Pi por meio do meu roteador doméstico diretamente à Internet, construí outra página da Web (em meu próprio domínio) que não controla o Raspberry Pi diretamente, mas envia um email para um (conhecido apenas por me) endereço de e-mail ( Gmail ).

O Raspberry Pi verifica essa conta de email a cada 10 minutos para ver se há algum email. Nesse email, por exemplo, digo A ativado ou desativado.

Portanto, quando chegamos tarde em casa e as luzes já estão apagadas, navegamos para o site no meu celular (os planos são torná-lo um aplicativo Android), clique no botão, a página é publicada e no servidor um email é enviado, e nos próximos 0 a 10 minutos, o Raspberry Pi verifica o email, vê quatro novos emails (A ativado, B ativado, C ativado e D ativado) e acende as luzes.

Como começar

Então, para começar, estas são as coisas que eu fiz para fazer tudo funcionar. No meu caso, programei o controle do remetente de 433 MHz em Python (que é uma linguagem fácil se você já sabe como programar).

Primeiro você instala a rpi.gpiobiblioteca.

Esta biblioteca é usada para controlar os pequenos pinos no seu Raspberry Pi a partir do seu script Python. Consulte Instalar a biblioteca Python RPi.GPIO .

Em seguida, você pode opcionalmente ler o artigo Tutorial: Como usar o Raspberry Pi como um Arduino , é sobre o que você pode fazer com a rpi.gpiobiblioteca, por exemplo, LEDs piscando .

No entanto, não é obrigatório o interruptor da luz Elro.

Então você obtém o código incrível para o Elro comandando por HeikoHeiko, em http://pastebin.com/aRipYrZ6 . Você cola esse código em um arquivo chamado ' switchelro.py'.

Em seguida, altere a sequência na linha 94 para as suas próprias configurações de jumper (conforme definido no controle remoto e no dispositivo de tomada de parede. Verifique se o dispositivo de combinação de tomada de parede remota funciona antes de tentar com o Raspberry Pi. Se não funcionar com os componentes padrão, provavelmente também falhará com o Raspberry Pi).

Você altera o número do alfinete ao qual o remetente está anexado na linha 97.

O número do pino pode ser obtido nos periféricos de baixo nível RPi e em File: RPi P1 header.png .

Você precisa usar a contagem de 1 a 26 (a imagem em preto), não o GPIO34, GPIO24 etc. (imagem verde).

Então você digita isso no prompt de comando:

sudo python switchelro.py 2 1

o que significa 'ativar B' (seguindo este esquema: A = 1, B = 2, C = 4, D = 8, E = 16para o primeiro número e 1 = ativado, 0 = desativado para o segundo).

Mudei o repeat = 10sobre line 30a repeat = 20no início (não me lembro o porquê) e que funciona. Nunca tentei novamente com a configuração '10'.

Michel
fonte
1
ah, e o preço .. aqui na Holanda, um conjunto de 3 receptores de saída de parede (que você clica na saída de parede e a luz entra no receptor) com controle remoto custa 15 euros. Os custos do remetente 433 MHz cerca de $ 5
Michel
Parece exatamente o que estou procurando! Você poderia me enviar os arquivos do projeto? (O switch.html, switch.php e, o switch.py) Meu email está em uma resposta acima. Além disso, onde posso comprar o receptor on-off2 na Holanda? O site que você forneceu não fornece preços.
Rick Hoving
Excelente post- Você pode adicionar onde encontrou a fonte dos comandos enviados via serial? Você está usando uma biblioteca? Como você segmenta os dispositivos? +1
Piotr Kula
1
@Nitin No meu sistema, você pode definir o interruptor no receptor (os 5 botões liga / desliga) e 5 letras (A .. E). Portanto, com o código default_key = [1,0,0,0,1]do código pastebin.com/aRipYrZ6 , você controla os interruptores DIP e, com a pinpropriedade no def __init__(self, device, key=[1,1,1,1,1], pin=4):código, controla o A .. E (a = 1 .. e = 16)
Michel
1
@ Nitin Não sei como controlá-lo com c #. Ansioso por isso também, porque o PI mais recente executará o Win10 e, esperançosamente, o C #. Dito isto, enquanto eu sou um programador C #, Python é um fácil aprender
Michel
6

A coisa se chama X10 , é um padrão do setor para a maioria das tarefas de automação residencial, incluindo o controle de luzes. O sinal de controle é enviado pela mesma linha de energia à qual seus aparelhos estão conectados.

Para poder controlar tudo, desde o computador, você pode ler sobre o X10 Computer Interfaces no site OpenRemote. O modelo que você provavelmente está procurando é o CM15A com interface USB, que oferece suporte ao Linux.

Além disso, pode ser uma boa ideia verificar o ebay quanto a soquetes de parede habilitados para X10 e aparafusar os módulos de lâmpadas, que podem ser comprados com um preço bastante baixo, na faixa de US $ 10 a 20.

lenik
fonte
6

O que você está procurando é um relé de estado sólido ou relé mecânico . A idéia é que uma pequena quantidade de corrente em baixa tensão (como no seu RPi) possa ser usada para acionar o fluxo de uma quantidade maior de corrente em alta tensão (como uma lâmpada).

Eu recomendaria o módulo de relé SainSmart de 8 canais DC 5V de US $ 12 para o Arduino Raspberry Pi , pois ele já foi fabricado em uma placa com terminais de parafuso prontos para uso. Possui FETs para fornecer a corrente extra necessária para o acionamento dos relés mecânicos. Existem placas diferentes da mesma empresa, em uma ampla variedade de layout / número de relés. O que enviei são 8 canais, portanto, pode não ser suficiente para suas necessidades, embora existam 16 versões de canais disponíveis . Eles geralmente são mais baratos do que comprar vários relés separadamente e facilitar a conexão com eles.

São necessárias 4 conexões:

  • Um terreno comum (compartilhado com todos os relés) que se conecta ao RPi
  • Entradas separadas, alimentadas por linhas RPi GPIO individuais (para acionar relés)
  • Uma entrada de alta tensão
  • Uma saída de alta tensão

As entradas / saídas de alta tensão são as conexões feitas ou interrompidas pelos relés de acordo com suas linhas de entrada.

Eu já tenho um programa C IMPRESSIONANTE para alternar remotamente os pinos GPIO sobre SSH. Se você quiser, posso fornecer o código-fonte ou até mesmo explicar como ele funciona.

Alexander
fonte
Como posso dizer não a um programa IMPRESSIONANTE. Embora C não esteja no meu repertório de idiomas, posso pelo menos analisar o código ao longo do tempo.
Rick Hoving
Você pode enviá-lo para [email protected]? Desde já, obrigado!
Rick Hoving
Se sua pergunta foi respondida, clique na marca de seleção abaixo das setas de votação.
22413 Alexander
@XAleXOwnZX também posso ver esse código impressionante? Talvez você deva abrir uma pergunta "Alguém tem um programa C IMPRESSIONANTE para alternar remotamente os pinos GPIO por SSH"?
puk 30/09/13
Vou precisar do seu endereço de e-mail, vou enviá-lo e postar a pergunta + responder amanhã #
1/13 Alexander
2

meu sistema é barato: EUR 43.- (receptor + transmissor) veja abaixo.

para automação residencial, conecto simplesmente um transmissor FS20 de 868,35 MHz compatível com 3,3V ao RPI:

http://www.elv.de/elv-fs20-uart-sender-fs20-us-komplettbausatz.html

este transmissor interage diretamente (por apenas 4 fios) com as portas GPIO da RPI (3.3V, GND, TXD, RXD) e é simplesmente controlado via interface de linha serial.

agora você pode controlar a enorme variedade de dispositivos FS20, como interruptores, interruptores, dimmers, temporizadores e rádios. receptores multicanais etc. transmitindo alguns bytes pela interface do console serial UART da RPI.

Visão geral do sistema FS20:

http://www.elv.de/fs20-funkschaltsystem.html

(infelizmente, o site está disponível apenas em alemão)

Pessoalmente, prefiro a CLI simples para controlar meus dispositivos domésticos. Se você preferir alguma GUI, pode dar uma olhada aqui:

http://fhem.de/fhem.html

felizmente em inglês :-)

Embora muito flexível, o sistema FS20 é muito barato. Amostra de custos para um simples botão liga / desliga:

mudar: http://www.elv.de/elv-funk-schaltsteckdose-fs20-st.html EUR 22,95

Transmissor UART: http://www.elv.de/elv-fs20-uart-sender-fs20-us-komplettbausatz.html EUR 19,95

Eu recomendo controlar o próprio RPI por um teclado sem fio. Para isso, você opcionalmente pode comprar esta coisinha engenhosa:

RT-MWK03 [2,4 Ghz sem fio] ( http://www.riitek.com/en/product-detail-428.html )

sparkie
fonte
0

Embora não seja exatamente barato, aqui está a minha solução:

http://www.everyhue.com/?page_id=38#/discussion/707/raspberry-touchpad-some-success

Basicamente, você usa o Philips Hue (luzes LED multicoloridas programáveis ​​e controláveis ​​por wifi) junto com um RPi e um touchpad. A superfície do touchpad USB atua nas dimensões de cor e brilho, enquanto os botões do mouse ativam e desativam as luzes. O custo é RPi + dongle Wifi (US $ 11) + touchpad USB barato (US $ 15) + conjunto Philips Hue (US $ 200 para ponte e 3 luzes, depois US $ 60 / luz).

Ilya Haykinson
fonte
0

Eu tenho uma abordagem diferente: estou usando o dongle CUL USB do Busware (suporta FS20 + HMS + FHT + outros protocolos e dispositivos) e implementei minha própria API Java para abstrair os dispositivos e permitir automação fácil através de um aplicativo Java.

Caso alguém se interesse pelo meu pequeno projeto: http://www.paulo-lima.org/hans

Paulo Lima
fonte