Como eu 'iotizei' um desumidificador

mqtt
tasmota

(Ricardo Reis) #1


Material necessário:

  • Desumidificador (ou outro aparelho)
  • Wemos D1 mini (flashado com Tasmota)
  • Fios
  • Multimetro
  • Resistors
  • Optoacopladores 4N25
  • Material e equipamento para soldar

Achar a solução

Usar optos para ler os LEDs e simular toque do botão da placa de controlo

A minha ideia inicial era ler os leds e controlar os botões do painel de controlo. Seriam 6 leds e 2 botões. Utilizando o optoacoplador 4N25, um para cada controlo achava eu que chegava ao que pretendia sem grande dificuldade. A coisa começou a complicar-se quando tentava ligar o opto em paralelo ao LED, o 4N25 precisa de voltagem e acabava por não funcionar nem o led nem o opto.

O botão não tinha dificuldade porque a voltagem era fornecida pelo Wemos e não pelo botão, então ele não perdia voltagem nenhuma.

Usar LDRs para saber o estado dos LEDs

Depois do desespero tentei implementar um LDR a cada led e saber se está ligado ou não. Como não tenho experiência com LDRs não consegui meter a funcionar, não sei se tinha haver com os pinos do wemos serem digitais e não analógicos.

Ler o estado diretamente aos componentes

Depois do fracasso dos LDRs, decidi ir diretamente aos componentes e saber o estado deles. Analisando a placa principal na parte de baixo, encontrei a fonte, os 5V para o Wemos, o Switch para o tanque e o relay que controla motor. Ou seja, deste modo, consigo simular o botão a ser pressionado, saber o estado do desumidificador, se ligou ou não e saber o estado do tanque.

O switch tem três pinos na parte de baixo da placa mas só os das pontas é que estão ligados ao switch, ele opera com 5VDC enquanto que o relay opera com 12VDC.

Fiz as ligações. No switch ligo 1 fio que posteriormente dá retorno ao GND da fonte. Quanto ao relay, reparei que se o equipamento estivesse desligado não passava tensão nenhuma, então liguei os dois fios lá. Assim, quando o equipamento ligar o opto vai ligar também.

Depois dos testes estarem OK, passei a cablagem para uma placa. Usei os resistors para diminuir a tensão para que não queime os optos. Não esquecer de aplicar a lei de Ohm para saber que resistor aplicar.

O botão ligado ao opto:

Wemos com Tasmota

Utilizei tasmota, assim não tenho que perder tempo a programar.
Para flashar o wemos ver este link

Configurar o módulo para generic e fazer as alterações dos pinos:

O Relay1 é o Botão, Switch2 é o Tanque e o Switch3 é o estado (se está ligado ou desligado).

na consola alterar o pulsetime e o switchmode

# Isto faz com que o relay1 passe a OFF imediatamente após ter estado em ON. Aliás, este relay é apenas o clique do botão, não queremos o botão sempre pressionado.
pulsetime1 1

switchmode1 0

switchmode2 2
switchmode3 2

alterar as configurações de mqtt a vosso gosto:

Home Assistant

homeassistant:
  customize:
    switch.dehumidifier_power_button:
      friendly_name: "Ligar/Desligar"
      icon: "mdi:page-layout-footer"

switch:
  - platform: mqtt
    name: "dehumidifier_power_button"
    command_topic: "casa/desumidificador_becken/cmnd/power"
    payload_on: "ON"
    payload_off: "ON"
    availability_topic: "casa/desumidificador_becken/tele/LWT"
    payload_available: "Online"
    payload_not_available: "Offline"
    state_topic: "casa/desumidificador_becken/cmnd/POWER3"
    state_on: "ON"
    state_off: "OFF"
    qos: 1
    retain: true
  
  - platform: mqtt
    name: "dehumidifier_water_box_switch"
    command_topic: "casa/desumidificador_becken/cmnd/power2"
    payload_on: "ON"
    payload_off: "OFF"
    availability_topic: "casa/desumidificador_becken/tele/LWT"
    payload_available: "Online"
    payload_not_available: "Offline"
    state_topic: "casa/desumidificador_becken/cmnd/POWER2"
    qos: 1
    retain: true

sensor:
  - platform: template
    sensors:
      dehumidifier_water_box_status:
        friendly_name: "Estado do Tanque"
        value_template: >
          {% if is_state('switch.dehumidifier_water_box_switch', 'on') %}
            Cheio
          {% elif is_state('switch.dehumidifier_water_box_switch', 'off') %}
            OK
          {% else %}
            Indisponível
          {% endif %}
        icon_template: >
          {% if is_state('switch.dehumidifier_water_box_switch', 'on') %}
            mdi:cup-water
          {% elif is_state('switch.dehumidifier_water_box_switch', 'off') %}
            mdi:cup-off
          {% else %}
            mdi:alert
          {% endif %}

A funcionar:

Se estiver desligado:


(Henrique Ferreira) #2

Boas, devido ao quarto estar sempre com humidade, gostaria de fazer uma coisa parecida, mas mais simples ? no meu desumidificador ? já o desmontei todo segue as fotos. ( o problema é que aquilo tem um botão de pressão que liga e desliga o desumidificador) (senão fazia ligação directa e estava sempre ligado… :frowning: assim é mais complicado) , com o tasmosta dá para colocar um gpio (switch) soldado ao botao on/off e quando quisermos que ele fique on, faça passagem no interruptor do botao (CONTACTO de pressao)? precisava de ajuda, não percebo muito de electrónica.
fico a aguardar resposta … obrigado !


(Ricardo Reis) #3

Quando carregas no botão, o botão volta à posição inicial ou fica pressionado até o pressionares outra vez?
De qualquer das formas podes usar o que eu usei que é o 4N25


(Henrique Ferreira) #4

quando carrego no botao ou liga ou desliga o desumidificador… nao há uma maneira mais simples ? sem o 4n25 ? com o sonoff num gpio nao consigo que ele faça o bypass no interruptor on/off ?


(Ricardo Reis) #5

Sim. Podes utilizar o sonoff e o 4N25 ligado ao gpio do sonoff para fazer o bypass


(Henrique Ferreira) #6

consegues-me fazer o esquema de ligação ? é que não percebo muito disto…


(Ricardo Reis) #7

Vê este tópico: 📑 Como abrir a garagem com o comando Original a partir do Home Assistant


(Henrique Ferreira) #8

já percebi ! o botao do power nao é sempre negativo (ground ) ? pq dizem para ver a polariedado do botao do power no comando ? e para o tanque cheio como fazes ? o 4n25 tem q ficar enconstado ao led ? por causa do ldr ?


(Ricardo Reis) #9

o 4n25 só faz chante para que simule o pressionar do botão. Não acredito que negativo ou positivo influencie no funcionamento do 4N25. Aconselho-te a perceberes primeiro como funciona o 4N25
Está tudo explicado no texto, lê o tópico que vais perceber, e o LDR foi uma tentativa falhada. Mais uma vez, está escrito no texto


(Henrique Ferreira) #10

posso utilizar um Sonoff Basic e assim vou buscar os 220 v ? e no sonoff so teria ligado o gpio com o 4n25 para fazer o chante ao botao do power? certo ?


(Ricardo Reis) #11

Sim, podes fazer dessa forma