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:

8 Curtiram

O portão também não pode ser ligado aqui?

Não percebi a pergunta…

Se te referes à alimentação do motor do portão, esse está sempre ligado para poder abrir e fechar através do comando RF.

Eu tenho um sonoff para poder abrir o portão no HA (simula um botão de parede).

Não é possível incluir neste esquema?

O problema de usares um sonoff é que não vais ter GPIOS suficientes disponiveis para todos estes sensores…

Eu na altura utilizei o NodeMCU porque era o que tinha disponivel. Se fosse hoje utilizava um Wemos D1 Mini.

Se já tens o sonoff para abrir/fechar o portão, podes adicionar para sensor de portão aberto e de temperatura, sensores zigbee da xiaomi.

Achei este projeto interessante e por isso é que o fiz. Mas se pudesse ter tudo aqui, retirava o sonoff com que abro portão (é uma coisa mais básica que esta)!

O toggle1 quando ativado, é um pulso que dá!
Não poderia enviar esse pulso ao motor?

Após as ajudas do @FSousa (ao que agradeço imenso), tenho este projeto feito.

Tenho um problema, ao qual no estou a conseguir resolver

Está imagem mostra o estado do meu portão fechado.

O toggle 2 e 3 são os dois red-switch.

Mas algumas horas depois, onde está on passa a off e não encontro o motivo. E isso faz com que o meu portão da garagem fique com informação errada no HA

Alguma ideia?

O reed switch está bem montado, a distancia ao iman está ok ?
Verifica se não há nenum problema com o reed e está a dar o contacto perfeito , é raro mas ás vezes avariam.

Tenho uma solução wemos a comandar 2 portões e c/ 4 switch, um dos switch fazia “double information” devido à posição ( horizontal) dava dois impulsos qd o portão estava a fechar e ás vezes confome o portão ficava uns milimetros deslocado falhava o contacto. Corrigi mudando localização do reed e para posição vertical e diminui a distancia, até agora tem estado 5* .
O reed no contador do gás já tive de mudar , pois não sei pk deixou de dar.

1 Curtiu

Vou verificar isso :slight_smile:
Assim que o fizer dou feedback.

Não é dos reed! Coloquei um novo, fez a mesma coisa.
Hoje desliguei os fios, e passado umas horas fez a mesma coisa passou novamente de on para off.

Vou testar passar para Switchmode2 2 e verificar se passa também de off para on ao fim de algum tempo!

No meu caso o comando do portão é este, com uma tranca manual com um microswitch que impede a abertura.

Como tenho redes wifi e zigbee na garagem, usei um Shelly Uni com Tasmota, dentro da caixa do motor. A placa do portão alimenta o Uni directamente. Os dois relés do Uni estão ligados:

  1. Em série com o microswitch da tranca manual. Tenho assim uma tranca electrónica, para além da manual, a fim de evitar que se abra o portão por fora estando o alarme ligado (tive que definir este relé com lógica inversa no tasmota)
  2. Como se fosse um botão (com um pulsetime de meio segundo)

Tenho também botões (do Ikea) e um sensor de contacto (da Xiaomi) que detecta o portão totalmente fechado, ambos zigbee. Pode ser que um dia ligue um DHT22 ao Shelly Uni, só ainda não sei para quê.

A garagem é para dois carros, por isso não tenho sensor de presença dos carros.

A tranca electrónica também serve para o seguinte: se a activar e desactivar sei que o próximo impulso vai abrir o portão. É assim possível ter comandos para abrir e/ou fechar o portão, independentemente do último movimento.

Ando à procura dum método para poder abrir o portão quando me aproximo pelo lado de fora (a pé ou de carro).


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


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