Índice:
- Etapa 1: descoberta
- Etapa 2: Design
- Etapa 3: Gabinete
- Etapa 4: Código
- Etapa 5: Exemplo de integração
Vídeo: Controle de cabeceira de cama MQTT sem fio: 5 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
Há alguns anos, compramos uma nova cama de espuma com memória e, como acontece com a maioria das camas, era necessário comprar também uma de suas "bases aprovadas" para manter a garantia. Portanto, optamos pela base menos cara que também incluía a capacidade de levantar e abaixar a cabeceira da cama. Poucos dias depois, nosso colchão e nossa base barata American Adjustables com controles com fio (um para cada lado da cama) foram entregues e montados.
A primeira coisa que notamos foi que os cabos do showroom que eram bons e longos não eram o que tínhamos em nossa cama! Os do showroom tinham extensões. Essas extensões NÃO foram incluídas com nossa cama e, interessante o suficiente, ninguém estava interessado em nos vender um par de cabos de extensão. Isso nos deixou com controles que mal alcançavam o topo da cama e que tínhamos que virar para usar.
Você recebe o que você paga
Após cerca de 6 meses, notamos que os colares de alívio de tensão em um dos controles estavam começando a rasgar. Poucos meses depois - fio desencapado. Avançando cerca de um ano, um dos controles não funciona mais e o outro está ficando um pouco inquieto.
Novamente, ninguém estava interessado em nos vender peças de reposição. Então me dei conta!
Espere um minuto! Não estou construindo um sistema de automação residencial e controle?!?
Etapa 1: descoberta
Eu queria ver o que eu poderia fazer com o que tinha, então peguei o appart do controlador com defeito e uau! havia muita porcaria lá! Para que servia tudo isso? Eu dei um passo para trás e apenas olhei para as linhas que entravam e saíam. Pude ver que havia uma linha de alimentação de 12 volts e uma linha de aterramento. As outras duas linhas pareciam linhas de sinal para os dois botões para cima e para baixo. Então, arrisquei e simplesmente conectei a fonte de 12v à linha de sinal "para cima". A cama começou a se mover! Em seguida, movi meu fio de jumper para a linha de sinal "para baixo" e a cama caiu!
Na caixa existem contatos para mais 4 linhas de sinal e mais 4 botões. Meu melhor palpite é que esta placa controladora é usada em todos os seus modelos de base com fio e eles apenas colocam placas frontais diferentes sobre a placa, conforme necessário. Então, eu tinha uma teoria de trabalho. Testei a linha de suprimento para ver se ela afundava durante o uso ou apresentava picos a qualquer momento - não. Havia muito pouco consumo de corrente nas linhas de sinal, mas elas exigiam 12 volts para ativar o motor.
Etapa 2: Design
Portanto, uma simples conexão de contato entre o VCC e o pino de sinal é tudo o que é necessário, mas como isso é feito no meu sistema. Dois relés seriam necessários para os contatos e um ESP8266 funcionaria para o controlador sem fio. Como os relés podem exigir mais corrente do que os pinos digitais podem fornecer, é melhor usar um optoisolador entre o controlador e o relé. Isso permitirá que um pequeno sinal ligue uma chave de corrente mais alta (neste caso, um transistor acionado por luz) e ative com segurança a bobina do relé. Além disso, um optoisolador isola o controlador de quaisquer picos que possam se formar quando a bobina do relé é liberada e o campo magnético entra em colapso. Felizmente, existem módulos de relé que já contêm todos esses circuitos e por um preço muito baixo.
A cama será a fonte de alimentação do controlador e para lidar com os 12 volts fornecidos, precisaremos de um conversor de dólar variável. Um muito barato foi relacionado abaixo e funciona lindamente. A linha de 12 V e as linhas GND se conectam ao lado de entrada do conversor e o lado regulado de 5 volts se conecta ao VCC do NodeMCU e ao pino VCC no módulo de relé. O aterramento (-) no conversor se conecta aos pinos GND em o módulo de relé e o NodeMCU.
O NodeMCU se conecta a IN1 usando D1 (GPIO5) e IN2 usando D2 (GPIO4). A linha de sinal para cima na cama se conecta ao terminal de parafuso normalmente aberto para o relé 1 e a linha de sinal para baixo se conecta ao conector do bloco de terminal normalmente aberto do relé 2. Você precisará conectar o fio de 12 V que está conectado ao lado da entrada do conversor Buck também à outra conexão do bloco de terminais para AMBOS os relés 1 e 2.
Peças
- 1 - NodeMCU
- 1 - Módulo de relé duplo com isolamento de corrente
- 1 - Conversor de buck de entrada / saída variável
- 1 - Placa de ensaio PCB
- Fio de núcleo de cobre trançado calibre 22
- 2 - parafusos M3x 8
Etapa 3: Gabinete
O gabinete pode ser encontrado aqui:
Projetei um invólucro simples com Tinkercad que permite que o cabo de controle da cama entre na caixa entre os suportes de alívio de tensão dentro da caixa. Existem slots para um zip tie aqui que ajudariam a evitar que o cabo deslizasse, mas no meu caso o ajuste era muito confortável e não precisava dele. A tampa é aparafusada com 2 parafusos M3x 8. Eu recomendaria fazer o upload do código e testar o sistema antes de montá-lo na caixa.
Usei cola quente para segurar as placas no lugar, mas isso pode não ser necessário.
Etapa 4: Código
O código pode ser encontrado aqui:
NOTA: Este projeto usa a biblioteca pubsubclient que pode ser adicionada no Library Manager no Arduino IDE
O código aqui é bastante básico e foi projetado com base no tipo Cover MQTT no Home Assistant. A ideia aqui é simples: quando você pressiona o botão para cima ou para baixo no assistente de casa, o relé apropriado fecha até que o comando de parada seja recebido OU o sistema atinge um tempo máximo de ativação e para.
O tempo máximo é uma medida de segurança caso o usuário esqueça de interrompê-lo ou se o comando foi enviado acidentalmente e é improvável que alguém o interrompa. Não queremos o relé ligado indefinidamente ou quaisquer problemas inesperados com a cama devido ao fechamento prolongado do contato.
No meu código, esse tempo limite é de 20 segundos e pode ser ajustado no bloco de variável global na parte superior do código.
Uma segunda precaução de segurança foi sempre certificar-se de que se eu estiver ativando um relé, uma desativação intencional do outro é sempre chamada, mesmo se o último estado já estiver desligado. Não quero enviar 12v para ambas as linhas de sinal, pois não sei o que isso fará com a cama.
Fora isso, a cama divulga que está disponível a cada 60 segundos e pronto. Sem sinos ou assobios aqui. Como a cama não tem feedback de posição, não pude enviar de volta para o Assistente Doméstico.
Etapa 5: Exemplo de integração
O código que escrevi usa MQTT para se comunicar por WiFi e, portanto, pode se comunicar com qualquer hub de automação ou dispositivo que usa MQTT. Eu uso o Home Assistant que possui um corretor MQTT integrado. Abaixo está um exemplo da minha configuração HA.
Em HA, tenho um arquivo covers.yaml com a seguinte definição:
- plataforma: mqtt
name: "Master Bed Headboard" command_topic: "master_bed_control / cmd" disponibilidade_topic: "master_bed_control / disponibilidade" qos: 0 retém: false payload_open: "UP" payload_close: "DOWN" payload_stop: "STOP" payload_available: "online" payload_not_available: " offline "otimista: verdadeiro
Isso me dá uma entrada em minha interface HA com um botão para cima / parar / para baixo definido com a ação conforme descrito acima.
Além disso, defini dois botões em meu Painel de controle de cabeceira (Instrutível / Postagem no blog) para levantar e abaixar a cabeceira. Os botões no painel de controle são definidos como sensores MQTT:
- plataforma: mqtt
state_topic: "bedside_cp1 / button5" name: ícone "Bedside CP1 Button 5": mdi: circle
- plataforma: mqtt
state_topic: "bedside_cp1 / button6" name: ícone "Bedside CP1 Button 6": mdi: circle
… E 4 regras de automação para quando cada botão é pressionado e solto. Quando pressionado, o comando de subir ou descer é enviado para a cama dependendo de qual botão foi ativado, quando o botão é liberado, o comando de parada é enviado:
- id: '1548308650383'
alias: MBR Bedside CP Button 5a trigger: - entity_id: sensor.bedside_cp1_button_5 de: 'Off' platform: state to: 'On' condition: action: - data: entity_id: 'cover.master_bed_headboard' serviço: cover.open_cover - id: '1548308758911' alias: MBR Botão CP 5b de cabeceira acionador: - entity_id: sensor.bedside_cp1_button_5 de: 'On' platform: state to: 'Off' condição: action: - data: entity_id: serviço 'cover.master_bed_headboard': cover.stop_cover - id: '1548308863495' alias: Botão CP de cabeceira do MBR 6a gatilho: - entity_id: sensor.bedside_cp1_button_6 de: 'Off' platform: state to: 'On' condição: action: - data: entity_id: ' cover.master_bed_headboard 'service: cover.close_cover - id:' 1548308911467 'alias: MBR Bedside CP Botão 6b acionador: - entity_id: sensor.bedside_cp1_button_6 de:' On 'plataforma: estado para:' Off 'condição: ação: - data: entity_id: 'cover.master_bed_headboard' serviço: cover.stop_cover
Recomendado:
Lâmpada LED Stripe da cabeceira da cama com ESP8266-01: 5 etapas
Abajur de cabeceira da cama LED Stripe Lamp com ESP8266-01: Este é um projeto muito fácil que eu negligenciei há muito tempo, mas por causa da quarentena, fiz algo diferente com as peças que tenho em mãos. A ideia era ter uma luz dimmerizable, que poderia ser controlado por comandos TCP simples ou por uma chave manual
Robô Arduino sem fio usando módulo sem fio HC12: 7 etapas
Robô Arduino sem fio usando módulo sem fio HC12: Olá pessoal, bem-vindos de volta. Em meu post anterior, eu expliquei o que é um circuito de ponte H, L293D motor driver IC, pegando carona L293D Motor driver IC para dirigir drivers de motor de alta corrente e como você pode projetar e fazer sua própria placa de driver de motor L293D
Ponto de acesso sem fio com alcance de cinquenta metros com adaptador sem fio TP Link WN7200ND USB no trecho Raspbian: 6 etapas
Ponto de acesso sem fio com alcance de cinquenta metros com adaptador sem fio USB TP Link WN7200ND no Raspbian Stretch: Raspberry Pi é ótimo para criar pontos de acesso sem fio seguros, mas não tem um bom alcance, usei um adaptador sem fio USB TP Link WN7200ND para estendê-lo. Quero compartilhar como fazer por que quero usar um pi de framboesa em vez de um roteador?
Faça você mesmo de microfone sem fio para sistema de guitarra sem fio: 4 etapas
Faça você mesmo de microfone sem fio para sistema de guitarra sem fio: Tenho assistido a alguns vídeos e bandas e quase todas usam um sistema sem fio na guitarra. Enlouquecer, mover-se, caminhar e fazer o que quiserem sem o cabo, então sonho em ter um .. Mas .. para mim agora é muito caro então eu vim para isso
Transforme uma campainha sem fio em um interruptor de alarme sem fio ou botão liga / desliga: 4 etapas
Transforme uma campainha sem fio em um interruptor de alarme sem fio ou botão liga / desliga: recentemente construí um sistema de alarme e o instalei em minha casa. Usei interruptores magnéticos nas portas e os conectei através do sótão. As janelas eram outra história e fiação direta não era uma opção. Eu precisava de uma solução sem fio e isso é