O objetivo deste tópico é partilhar a construção do modulo que construi para controlar o portão da garagem para caso alguém esteja a pensar contruir algo idêntico possa tirar ideias, ou então sugerir alterações que possam melhorar este projeto.
Este módulo que criei é para controlar o abrir e fechar do portão de garagem utilizando um relé ligado em paralelo com um botão de pressão que tenho para abrir e fechar o portão. O local onde se ligam estes fios no motor do portão vai variar de motor para motor.
Ter sensores de fim de curso para saber quando o portão está aberto ou fechado, saber a temperatura e humidade dentro da garagem, e com o sensor ultrassónico detetar a presença do carro podendo vir a criar algumas automações que vou descrever no final.
O material utilizado é o seguinte:
1 - NodeMCU (Quando fizer nova versão vou utilizar o wemos D1 mini, mas como não tinha disponível utilizei o NodeMCU)
1 – Fonte Hi-Link HLK-PM01
1 – Relé de 5V DC com pelo menos um contacto NO
1 – Sensor de temperatura e humidade DHT22
1 – Sensor ultrassónico SR04
2 – Sensores de porta magnéticos com contacto NO
3 - Blocos de terminais de parafuso
1 - Placa de circuito perfurada ponto a ponto
1 – Caixa 75x75 ou maior para ficar com mais espaço.
https://mauser.pt/catalog/product_info.php?cPath=570_629&products_id=302-0549
Fios, ferro de soldar, estanho, ferramentas para construir os suportes para os sensores magnéticos…
De seguida o esquema das ligações. Serve de guia para poderem alterar a vosso gosto. Adicionar ou remover mais sensores…
Imagem da placa já com todos os componentes soldados e da caixa utilizada.
Nota:
Com o sensor de temperatura montado na caixa, os valores obtidos não vão ser os corretos devido ao aquecimento provocado pela fonte de alimentação e pelo NodeMCU.
Numa futura versão a opção será colocar o sensor numa caixa à parte.
Se forem seguir este exemplo à risca, tenham isso em conta e utilizem uma outra caixa para o sensor de temperatura.
Depois de ter todos os componentes soldados, flashar o firmware tasmota no NodeMCU, e configurar os dados do WiFi e MQTT tendo em conta o exemplo das seguintes imagens.
No tasmota ir a “Configuration - Configure Other” e configurar os campos segundo a imagem que se segue utilizando o seguinte template.
{"NAME":"Garagem-CPHA","GPIO":[74,0,73,0,2,21,0,0,11,22,10,23,0],"FLAG":0,"BASE":18}
De seguida ir à consola do tasmota e executar o seguinte comando para as várias configurações.
Backlog PowerOnState 0; SwitchMode1 1; Switchmode2 1; Switchmode3 1; PulseTime1 10; FriendlyName Portão da Garagem; Hostname garagem-portao; Topic garagem-portao; TelePeriod 10
Ao ir a “Configuration – Configure Template” deverão ver as configurações aplicadas como se pode ver na seguinte imagem. (Clicar na imagem para aumentar…)
No final, o aspeto da imagem inicial do tasmota será como a seguinte imagem.
De seguida vamos adicionar todos os sensores ao Home Assistant. Se já utilizarem packages o ideal é adicionar ao ficheiro da garagem, ou criar um novo ficheiro para a garagem. Se não utilizarem packages, pesquisem no fórum como o fazer que se torna mais fácil organizar tudo no Home Assistant.
Código para adicionar o relé:
switch:
- platform: mqtt
name: "Portão da Garagem"
state_topic: "stat/nodemcu-garagem-portao/POWER1"
command_topic: "cmnd/nodemcu-garagem-portao/POWER1"
availability_topic: "tele/nodemcu-garagem-portao/LWT"
qos: 1
payload_on: "ON"
payload_off: "OFF"
payload_available: "Online"
payload_not_available: "Offline"
retain: false
Código para a adicionar os sensores de fim de curso:
binary_sensor:
- platform: mqtt
name: "Portão da Garagem Aberto"
state_topic: "stat/nodemcu-garagem-portao/POWER2"
availability_topic: "tele/nodemcu-garagem-portao/LWT"
qos: 1
payload_on: "ON"
payload_off: "OFF"
payload_available: "Online"
payload_not_available: "Offline"
device_class: garage_door
- platform: mqtt
name: "Portão da Garagem Fechado"
state_topic: "stat/nodemcu-garagem-portao/POWER3"
availability_topic: "tele/nodemcu-garagem-portao/LWT"
qos: 1
payload_on: "ON"
payload_off: "OFF"
payload_available: "Online"
payload_not_available: "Offline"
device_class: garage_door
Código para o sensor ultrassónico, sensor de temperatura e humidade:
sensor:
- platform: mqtt
name: "Ultra Sonico Garagem"
state_topic: "tele/nodemcu-garagem-portao/SENSOR"
unit_of_measurement: 'Cm'
value_template: '{{ value_json.SR04.Distance | round(0) }}'
- platform: mqtt
name: "Temperatura Garagem"
state_topic: "tele/nodemcu-garagem-portao/SENSOR"
unit_of_measurement: '°C'
value_template: '{{ value_json.AM2301.Temperature }}'
- platform: mqtt
name: "Humidade Garagem"
state_topic: "tele/nodemcu-garagem-portao/SENSOR"
unit_of_measurement: '%'
value_template: '{{ value_json.AM2301.Humidity }}'
Quanto à fixação dos sensores de fim de curso no portão, deixo umas imagens dos suportes que construí para fixar os sensores e o íman no meu portão para que possam tirar ideias de como construir os vossos.
De seguida o local onde fixei a caixa com todos os componentes e os suportes com os sensores já fixados à estrutura do portão.
A caixa fica mesmo por cima do local em que fica o carro para o sensor ultrassónico poder detetar a presença do carro.
Ideias para automações em NodeRED que pretendo vir a implementar:
O portão da minha garagem tem acesso direto para a rua.
Utilizando o relé que no tasmota está programado para quando é ativado, ficar ativado só durante 1 segundo, simulando assim um clique no botão de pressão que controla o abre e fecha do portão, o sensor de fim de curso que deteta que o portão está fechado e o sensor ultrassónico que pela distancia deteta quando o carro não está na garagem, é possível criar uma automação para quando se abre o portão, o carro sai para a rua, e caso me esqueça de fechar o portão, passado 1 minuto o portão é fechado automaticamente e recebo uma mensagem no telegram a avisar que me esqueci de fechar o portão.
Quando abrir o portão com o comando RF de origem, utilizando a alteração do estado do sensor de fim de curso que deteta que o portão está fechado, definir um intervalo de tempo durante a noite em que é enviado um comando MQTT para outro tasmota utilizado para controlar o ligar e desligar das luzes da garagem. Assim quando abrir o portão durante a noite, para além da luz que tem no motor do portão, vai ligar também as luzes da garagem.
Utilizar notificações no telegram para ser notificado quando o portão é aberto ou fechado.
Quando o portão começa a abrir ou a fechar, utilizando os estados dos sensores de fim de curso aberto e fechado, e sabendo o tempo que demora a abrir e fechar o portão, criar uma automação capaz de detetar uma possível avaria de um dos sensores de fim de curso.
Se o portão estiver aberto, quando o estado do sensor aberto passar para off, caso não haja nenhuma ordem em contrário, se o sensor fechado não passar para o estado on dentro do tempo necessário para o portão fechar, podemos receber uma notificação no telegram de uma possível avaria no sensor.
Fazer o mesmo para os dois processos, abrir e fechar.
No futuro vou fazer uma nova versão deste módulo com possibilidade de ligar detetores de movimento, sensor de luminosidade e sensor de fumo.
Caso tenham mais ideias de possíveis automações, ideias e sugestões, partilhem no tópico…