Módulo para portão de garagem com sensores de fim de curso + Extras

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… :wink:

3 Likes

Copyright © 2017-2020. Todos os direitos reservados
CPHA.pt - info@cpha.pt


FAQ | Termos de Serviço/Regras | Política de Privacidade