Tema
O tema do projeto, como indica o título, é converter um desumidificador “Burro”, num desumidificador inteligente.
Vídeo no youtube com o funcionamento do desumidificador:
Resumo
O que me levou a criar este projeto foi a necessidade de poder controlar remotamente o meu desumidificador e monitorizar o mesmo; ou seja, ligá-lo e desligá-lo, saber o estado do tanque e adicionar um feature que não tinha (obter a temperatura e nível de humidade da divisão onde ele se encontra). Pretendia também que fossem enviadas alertas quando este fosse ligado, desligado ou o tanque estivesse cheio.
A vontade de desenvolver este projeto partiu também do facto do meu apartamento ser bastante húmido e necessitar de algum dispositivo que vá controlando a humidade do ar, sendo que não queria investir num inteligente, pois já tinha um desumidificador.
Também foi um desafio que me levou a testar os meus conhecimentos e adquirir novas competências na área da eletrónica, que eram muito básicas e limitadas e por isso tornaram este projeto mais difícil, mas ao mesmo tempo aliciante.
Este projeto foi baseado num tópico já criado por @ricreis394 em https://forum.cpha.pt/t/como-eu-iotizei-um-desumidificador/1486em que ele utilizou os optoacopladores 4n25, tentando saber o estado do desumidificador através da placa assim como os estados do led do menu.
Tal como o próprio comentou “A minha ideia inicial era ler os leds e controlar os botões do painel de controlo.” mas “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”.
Tentou, portanto, usar LDRs para saber o estado dos LEDs, “tentativa falhada”, e a solução por ele encontrada foi: “ler o estado diretamente dos componentes” (do desumidificador).
Inicialmente e após alguma pesquisa / perguntas no fórum, foi-me proposto utilizar o projeto da página https://www.hackster.io/zvonko-bockaj/wemos-esp8266-remote-pc-switch-062c7a que consistia em ligar / desligar um pc remotamente com um wemos.
Para isto, bastava utilizar transístor e resistências, dai ter tentado adaptar esse projeto para o meu desumidificador inteligente utilizando apenas transístores e resistências, para este ligar e desligar.
Sobre este assunto, podem encontrar mais informações no seguinte tópico que me inspirou:
Como tornar um desumidificador inteligente?
A minha grande dor de cabeça concentrou-se no mesmo problema que o @ricreis394 : “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”.
Aconteceu-me o mesmo, ou seja, com os led’s e transístores só conseguia ligar e desligar o desumidificador; a partir do momento em que tentava colocar a funcionar o circuito implementando, o circuito do power led, simplesmente deixava de funcionar e / ou o estado do tanque cheio, deixava de funcionar.
Então, após muitas tentativas e seguindo a sugestão do @Maddoctor, resolvi alterar todo o circuito para utilizar os optoacopladores (4n25).
Começa aí o meu novo projeto, a segunda parte da odisseia: a de colocar tudo a funcionar com optoacopladores.
Consegui com os 4n25, ligar e desligar o desumidificador e ler os estados dos led’s, através do painel principal do botão on / off e estado dos Led (verde para o power e vermelho quando o tanque do desumidificador está cheio).
Isto é, utilizar três Optoacopladores, cada um deles para saber cada um dos estados.
O primeiro Octo para ligar / desligar, um segundo Octo para saber o estado do power Led e o terceiro Octo para saber o estado do tanque, cheio ou ok.
Descrição
Como referido no tema, utilizei três opto acopladores, para ler cada estado do desumidificador.
Um opto acoplador é um dispositivo de emissão e receção que funciona como um interruptor, ativado através de uma luz (díodo emissor de infravermelho) que satura e faz conduzir um foto-transístor, fazendo com que o coletor do transístor faça passagem ao emissor (à terra GND), sendo que cada um dos dois circuitos são independentes (input e output), e não tem nada em comum em ambos.
Assim sendo, o opto acoplador permite evitar completamente o contato elétrico entre o circuito a controlar e o circuito controlado.
O pino 1 do Octo é o ânodo, ou seja, o positivo; o pino 2 é o cátodo, ou seja, o negativo do díodo. O pino 5 é o coletor do transístor, ou seja, o positivo da carga a controlar. Por sua vez, o pino 4 é o emissor que normalmente é o “ground” da carga a controlar.
Todos os optoacopladores tem dois lados: o lado da entrada (input) e o lado da saída (Output), onde um será o que controla o circuito (input) e o outro o circuito controlado (output).
Dessa forma, o lado que vai controlar o funcionamento do outro circuito será o lado da entrada (que é geralmente o lado conectado a um wemos, Arduíno, etc), isto porque, com este lado conectado ao wemos, podemos assim controlar o led que está localizado dentro do chip (foto díodo).
Quando fazemos passar corrente por esse led interno do chip, ele acende. Ao acender nós não conseguimos ver, mas a outra parte do chip irá detetar essa luz, e assim permitir que passe corrente no circuito localizado no lado da saída, fazendo com que o mesmo funcione.
Para o lado da entrada (input do Octo, onde está localizado o díodo), terá sempre de ser utilizado uma resistência no circuito antes, para que o díodo (led), não queime.
Para isso necessitamos de saber vários valores e realizar cálculos baseados na lei de ohm.
No caso do segundo Octo, o do power led, e o do led para o tanque cheio, o lado da entrada (input) é o lado que está ligado aos leds do desumidificador, pois são eles que vão ativar o led interno do Octo fazendo ativar o circuito do wemos, com isto conseguimos saber o estado do mesmo: on ou off (através de 0 v para low ou 3 v para high).
Sendo que os led’s do desumidificador serão o circuito que queremos controlar e o lado do wemos mini o circuito que será controlado (neste caso informado se o led estará on ou off).
Para o Octo do Circuito do power será o contrário, ou seja, o circuito que queremos controlar (input) será o wemos (neste caso dar o comando de ligar ou desligar). Mandar um sinal, estado high 3v para ligar e o estado low caso esteja desligado 0 v.
O lado do circuito a ser controlado (output) será o switch do desumidificador, que irá ligar e desligar.
Por exemplo:
- Para realizar o cálculo da resistência para o Octo do botão do power, utilizamos os seguintes cálculos:
Sabemos que o wemos nos pinos, nos fornecem 3 v, que será a voltagem de entrada no Octo, ou seja, para calcularmos a resistência em Ohm a colocar antes do Octo, faz-se a voltagem de entrada (3 V) – 1.3 V (que é a voltagem recomendada a passar no Led para que conduza - Forward voltage Type (ver Datasheet 4n25)) = Voltagem da resistência (1.7v)
Então a resistência do led do Octo será calculada pela lei de Ohm:
R = V / I = (3 – 1.3 v) / I(F) 50 mA ou seja 1.7 / 0,050 = 34 Ohm valor mínimo da resistência para que não queime.
O I(F) é sempre de 50 mA (0,050 A) que é da corrente máxima do led do Octo (Datasheet 4n25)
Forward voltage TYP → isto é a tensão recomendada, que o led deve ter, caso este valor seja ultrapassado, estamos a colocar o led em stresse, este deve ser o valor utilizado.
FORWARD CURRENT I(F) → É o máximo de corrente que o led aguenta. A Forward Voltage Type é feita no teste com o Forward Current (I(F) = 50 mA, dai ser este utilizado no cálculo.
Para mais segurança e como não tinha uma resistência do mesmo valor, utilizei no meu projeto uma resistência de 47 Ohm, para o Octo do botão do Power.
Para os outros dois Octos foi utilizar a mesma fórmula e aplicar a lei de Ohm alterando para os valores correspondentes.
Datasheet do Octo 4n25: https://www.vishay.com/docs/83725/4n25.pdf
Para que o ligar / desligar do desumidificador, funcione, através do wemos, o ground, do wemos e do desumidificador têm de ser os mesmos (ou seja, tem de ser comuns e ter contacto com todo o circuito desde o wemos até ao desumidificador).
Foto:
- (Fotos)
Esquema elétrico do circuito do desumidificador com os optoacopladores e o sensor de humidade e temperatura, para a construção do projeto:
Fotos da ligação do wemos e montagem no desumidificador:
- Montagem do circuito, os Octo soldados na board:
- Circuito de alimentação do wemos no desumidificador:
Soldei as pontas do transformador, na fase e neutro do desumidificador, e coloquei um cabo microusb, para alimentar o wemos d1.
- Placa montada no desumidificador:
- Ligações do conector da board dos leds (placa de cima), à placa principal do desumidificador
- Soldas e montagem do wemos d1 mini no desumidificador:
- Wemos já com a resistência do DTH11 (soldada – sensor de temperatura e humidade)
Tudo montado no desumidificador:
Antes de arrumar e fechar o desumidificador:
Aspeto final com cabos minimamente arrumados:
Desumidificador com as tampas / aspeto final:
Para a realização deste projeto decidi utilizar o Wemos d1 mini porque é baseado num esp32, e tem vários pins de input e output, que podem ser configurados / programados, com a grande vantagem de ser de tamanho reduzido.
Para não gastar tempo a programar e dado que já existem várias soluções open source, que já permitem fazer praticamente tudo sem ter que o programar, utilizei o software tasmota: https://github.com/arendst/Tasmota
Como flashar o wemos d1 mini:
Após a configuração da rede ssid, aceder ao ip do tasmota e configurar o módulo para genérico:
Fazer as seguintes alterações nos pinos:
-
O relay 1 do pin d6 é o que ira fazer ligar e desligar o desumidificador
-
O switch 1 do pino d2 é o pino através do qual iremos saber se o led do power está aceso ou desligado, ou seja, se o desumidificador está ligado / desligado
-
O switch 2 do pino d1 é o pino através do qual vamos saber se o led vermelho do tanque esta aceso (tanque cheio) ou desligado.
-
O DTH11 é configurado no pin d5; será através dele que iremos saber a temperatura e humidade do sensor.
-
(Código)
Em seguida vamos à consola e damos os seguintes comandos:
pulsetime1 10
SwitchMode1 2
Setoption73 1
Seriallog 0
weblog 2
switchmode 2
Rule1 on switch1#state do publish2 %topic%/stat/POWER_LED %value% endon
#Esta regra publica o estado como 1 ou 0
rule1 1
para o led vermelho tanque cheio:
switchmode2 2
Rule2 on switch2#state do publish2 %topic%/stat/TANQ_CHEIO_LED %value% endon
rule2 1
backlog TimeZone 99; TimeDST 0,0,3,1,1,60; TimeSTD 0,0,10,1,2,0; IPAddress4 8.8.8.8;
powerretain 1
O comando pulse time1 10 faz com que o botão do power seja de pressão, ou seja o botão do rele 1, seja pressionado apenas 1 segundo (10 milissegundos), simulando o pressionar físico do botão do power no desumidificador.
O SwitchMode serve para alterar o comportamento de um periférico de entrada física no GPIO do wemos, onde o 1 é o número do switch da configuração do GPIO no tasmota e o 2 serve para inverter o modo de atuar do switch ou seja 0 = On e 1 = OFF).
Assim sendo, quando o switch estiver ligado o relay estará desligado. Quando o output do octo esta a 0 V (a terra) o led do power está ligado, ficando com o estado 1 e desligado com 3 v, com estado 0.
Setoption73 1: desliga a associação direta dos botões aos relés
Weblog 2 : para o led verde detetar que o botão do power esta ligado
Rule1 on switch1#state do publish2 %topic%/stat/POWER_LED %value% endon → Utiliza-se esta regra para enviar o estado do power led por mqtt
rule1 1 → para ativar a regra.
backlog TimeZone 99; TimeDST 0,0,3,1,1,60; TimeSTD 0,0,10,1,2,0; IPAddress4 8.8.8.8;
O comando de backlog serve para o Timezone 99; é o de Portugal Continental, para assegurar a mudança de hora de Verão e Inverno e para atualizar a hora automaticamente na consola.
O IPAddress4 define o DNS (8.8.8.8 é da Google) e serve para resolver o NS ao servidor de NTP.
Powerretain 1 - Em caso de falha de luz elétrica, guarda o estado dos botões / switch no tasmota (se ligado / desligado)
Após estas configurações na consola, ir ao menu principal e aceder a configuração Other e dar o nome que queremos que apareça no tasmota, no meu caso (device name, desumidificador), e ativar a opção Emulation, Belkin WeMo single device, para que a Alexa consiga ligar e desligar o desumidificador.
Em seguida, voltar as configurações e colocar as configurações do nosso mqtt:
Configurações no Home Assistant:
- (**Configuração**)
Na pasta Packages:
Criar ficheiro desumidificador.yaml com o seguinte conteúdo:
# customização de entidades:
homeassistant:
customize:
switch.desumidificador:
friendly_name: "Ligar/Desligar"
icon: "mdi:page-layout-footer"
switch: #tomada:
- platform: mqtt # switch wemos d1 mini desumidificador ligar /desligar:
name: "desumidificador"
state_topic: "desumidificador/stat/POWER"
command_topic: "desumidificador/cmnd/POWER"
payload_on: "ON"
payload_off: "OFF"
retain: false # para que não vá buscar estados anteriores
- platform: mqtt #switch wemos d1 desumidificador estado led Power (verde ligado 1)
name: "estado_led_power"
command_topic: "desumidificador/cmnd/Switch1"
payload_on: "1"
payload_off: "0"
availability_topic: "desumidificador/tele/LWT"
payload_available: "Online" # se esta ligado ou desligado
payload_not_available: "Offline"
state_topic: "desumidificador/stat/POWER_LED"
qos: 1
retain: false # para que nao va buscar estados anteriores
- platform: mqtt #wemos d1 desumidificador estado do tanque
name: "estado_tanque_desudimidificador"
command_topic: "desumidificador/cmnd/Switch2"
payload_on: "1"
payload_off: "0"
availability_topic: "desumidificador/tele/LWT"
payload_available: "Online" # se esta ligado ou desligado
payload_not_available: "Offline"
state_topic: "desumidificador/stat/TANQ_CHEIO_LED"
qos: 1
retain: false # para que não vá buscar estados anteriores
sensor: ### SENSORES
# Wemos D1 mini sensor temperatura:
- platform: mqtt
state_topic: 'desumidificador/tele/SENSOR'
name: 'Temperature sala desumidificador wemos'
unit_of_measurement: '°C'
value_template: '{{ value_json.DHT11.Temperature }}'
- platform: mqtt
state_topic: 'desumidificador/tele/SENSOR'
name: 'Humidity sala desumidificador wemos'
unit_of_measurement: '%'
value_template: '{{ value_json.DHT11.Humidity }}'
# template do sensor para o estado do power led, para alterar o valor de 0 e 1 para ligado ou desligado
- platform: template
sensors:
estado_power_led:
#friendly_name: "Led do power"
friendly_name: "O Desumidificador está:"
value_template: >
{% if is_state('switch.estado_led_power', 'on') %}
Ligado
{% elif is_state('switch.estado_led_power', 'off') %}
Desligado
{% else %}
Indisponível
{% endif %}
icon_template: >
{% if is_state('switch.estado_led_power', 'on') %}
mdi:led-on
{% elif is_state('switch.estado_led_power', 'off') %}
mdi:power-plug-off
{% else %}
mdi:alert
{% endif %}
# template do sensor para o tanque cheio, para alterar o valor de 0 e 1 para cheio ou vazio
- platform: template
sensors:
estado_tanque_desudimidificador:
friendly_name: "Estado do Tanque"
value_template: >
{% if is_state('switch.estado_tanque_desudimidificador', 'on') %}
Cheio
{% elif is_state('switch.estado_tanque_desudimidificador', 'off') %}
OK
{% else %}
Indisponível
{% endif %}
icon_template: >
{% if is_state('switch.estado_tanque_desudimidificador', 'on') %}
mdi:cup-water
{% elif is_state('switch.estado_tanque_desudimidificador', 'off') %}
mdi:cup-off
{% else %}
mdi:alert
{% endif %}
-
Adicionar no FrontEnd do Lovelace do Home Assistant:
O seguinte código na entities Card:
entities:
- entity: switch.desumidificador
- entity: sensor.estado_power_led
- entity: sensor.estado_tanque_desudimidificador
- entity: sensor.temperature_sala_desumidificador_wemos
- entity: sensor.humidity_sala_desumidificador_wemos
- entity: switch.tz3000_g5xawfcq_ts0121_on_off
- entity: sensor.tz3000_g5xawfcq_ts0121_electrical_measurement
show_header_toggle: false
title: Desumidificador
type: entities
state_color: true
Imagens no Front End do Home Assistant:
Desumidificador Ligado:
Desumidificador Desligado:
Desumidificador com o Tanque Cheio:
Desumidificador Indisponível:
Automações ligadas ao desumidificador:
- Ao ligar o desumidificar envia notificação whatsApp / Telegram:
- id: '1599939490794'
alias: Ao ligar o desumidificar envia notificação whatsApp / Telegram
description: ''
trigger:
- entity_id: sensor.estado_power_led
from: Desligado
platform: state
to: Ligado
- entity_id: sensor.estado_power_led
from: Indisponível
platform: state
to: Ligado
condition: []
action:
- data:
message: https://api.callmebot.com/whatsapp.php?phone=+35191xxxxxx&text=Desumidificador+Ligado.&apikey=xxxxxx
service: notify.whatsapp
- service: notify.whatsapp
data:
message: https://api.callmebot.com/whatsapp.php?phone=+35193xxxxx&text=Desumidificador+Ligado.&apikey=xxxxx
- service: notify.geraltelegram
data:
message: Desumidificador Ligado.
Foto da notificação no WhatsApp:
Envia notificações para WhatsApp para dois números de telemóveis, e para dois telemóveis com o telegram, com a mesma conta.
Para que estas notificações funcionem, deve-se adicionar o seguinte código no ficheiro configuration.yaml:
telegram_bot: ############# TELEGRAM BOT
- platform: polling
api_key: !secret telegramAPItoken #meu bot
allowed_chat_ids:
- !secret telegram_chat_id_number #yourchatIDnumber
- !secret telegram_chat_id_number_cris
notify: #notificaçoes:
- name: WhatsApp #enviar sms via whatupp
platform: command_line
command: 'wget $(cat) -O /dev/null'
- platform: telegram # TELEGRAM
name: telegram #!secret telegram_user_name //mandar mensagem só para o meu telegram
chat_id: !secret telegram_chat_id_number #telegram_user_id
- platform: telegram # TELEGRAM cris /mandar mensagens só para o telegrama da cris
name: telegramcris #!secret telegram_user_name
chat_id: !secret telegram_chat_id_number_cris #telegram_user_id
- name: geraltelegram # para mandar serviçe: notify.geraltelegram mandar mensagem para os dois telegrams meu e da cris
platform: group
services:
- service: telegram
- service: telegramcris
- Ao desligar o desumidificar envia notificação WhatsApp / Telegram
- id: '1599939910954'
alias: Ao desligar o desumidificar envia notificação WhatsApp / Telegram
description: ''
trigger:
- entity_id: sensor.estado_power_led
from: Ligado
platform: state
to: Desligado
condition: []
action:
- data:
message: https://api.callmebot.com/whatsapp.php?phone=+351919370635&text=Desumidificador+Desligado.&apikey=224426
hora=sensor.time
service: notify.whatsapp
- service: notify.whatsapp
data:
message: https://api.callmebot.com/whatsapp.php?phone=+351914977838&text=Desumidificador+Desligado.&apikey=470798
- service: notify.geraltelegram
data:
message: Desumidificador Desligado.
mode: single
Foto da notificação no telegram:
- Se o tanque do desumidificar estiver cheio envia SMS para dois números de telemóveis
- id: '1608770107636'
alias: Se o tanque do desumidificar estiver cheio envia sms para 2 telemóveis
description: ''
trigger:
- platform: state
entity_id: sensor.estado_tanque_desudimidificador
from: OK
to: Cheio
- platform: state
entity_id: sensor.estado_tanque_desudimidificador
to: Cheio
from: Indisponível
condition: []
action:
- service: notify.clicksend
data:
message: TANQUE DO DESUMIDIFICADOR CHEIO, POR FAVOR DESPEJE O TANQUE ;)
mode: single
Para esta automação utilizei a plataforma Clicksend para enviar SMS grátis para dois números de telemóvel (configuração no config.yaml).
Fotos do resultado do SMS enviado:
notify: #notificaçoes:
- platform: clicksend # enviar sms gratis da clicksend
name: clickSend
username: !secret email_clicksend
api_key: !secret api_clicksend
recipient: [+35191xxxxxx, +35193xxxxxx]
sender: "Henrique"
- Se o tanque do desumidificar estiver cheio envia notificação WhatsApp / Telegram e Alexa
- id: '1599935539188'
alias: Se o tanque do desumidificar estiver cheio envia notificação WhatsApp / Telegram e a ALEXA
description: ''
trigger:
- entity_id: sensor.estado_tanque_desudimidificador
from: OK
platform: state
to: Cheio
- entity_id: sensor.estado_tanque_desudimidificador
from: Indisponível
platform: state
to: Cheio
condition: []
action:
- data:
message: https://api.callmebot.com/whatsapp.php?phone=+35191xxxxxx&text=TANQUE+DO+DESUMIDIFICADOR+CHEIO,+POR+FAVOR+DESPEJE+O+TANQUE.&apikey=xxxx
service: notify.whatsapp
- service: media_player.volume_set
data:
volume_level: '0.9'
entity_id: media_player.henrique_s_echo_dot
- delay: '5'
- data_template:
data:
type: announce
message: <voice name='Ines'><lang xml:lang='pt-PT'><amazon:auto-breaths frequency='high'
volume='soft' duration='x-short'> O Tanque do Desumidificador está Cheio!
Por favor despeje o tanque. Desumidificador Desligado. </amazon:auto-breaths></lang></voice>
target: media_player.henrique_s_echo_dot
service: notify.alexa_media_henrique_s_echo_dot
- service: notify.whatsapp
data:
message: https://api.callmebot.com/whatsapp.php?phone=+35191xxxxx&text=TANQUE+DO+DESUMIDIFICADOR+CHEIO,+POR+FAVOR+DESPEJE+O+TANQUE.&apikey=xxxx
- service: notify.twilio_sms
data:
data:
delay: 1
loop: 2
voice: alice
language: pt-PT
speed: slow
message: Tanque Cheio! Por favor esvazie a água. OFF. Terminado. Obrigado!
target:
- 35191xxxxxxx
- service: notify.geraltelegram
data:
message: O Tanque do Desumidificador está cheio! Por favor despeje o tanque.
Desumidificador Desligado.
mode: single
Nesta automação utilizei também a Alexa para dizer que o tanque está cheio e a plataforma twilio, que faz uma chamada para o telemóvel a dizer que o tanque está cheio.
Configuração do ficheiro configuração.yaml:
twilio:
account_sid: !secret twilio_account_sid
auth_token: !secret twilio_auth_token
alexa_media:
accounts:
- email: !secret email_alexa_amaz
password: !secret password_alexa
url: amazon.com
- platform: alexa_media # tts da alexa
name: alexa_media
Notify:
- name: twilio_sms # twilio sms
platform: twilio_call
from_number: +140872xxxx #Atenção, este número é o número
#obtido na conta Twilio, e não do nosso telemóvel.
- Se desumidificador chegar a baixo dos 50 % humidade desliga
- id: '1612818187332'
alias: Se desumidificador chegar a baixo dos 48 % humidade desliga
description: ''
trigger:
- platform: time_pattern
minutes: /5
seconds: '1'
condition:
- condition: and
conditions:
- condition: template
value_template: '{% if states(''sensor.humidity_sala_desumidificador_wemos'')
| int <= 50 %} true {% else %} false {% endif %}
'
- condition: and
conditions:
- condition: state
entity_id: sensor.estado_power_led
state: Ligado
action:
- service: switch.toggle
entity_id: switch.desumidificador
- service: notify.geraltelegram
data:
title: Desumidificador abaixo de 50 % humidade.
message: desumidificador abaixo dos 50 % de humidade, desumidificador desligado!
mode: single
Foto enviada para o telegram quando o nível de humidade do desumidificador está abaixo dos 50% :
Dificuldades sentidas na realização do projeto:
Tal como referido no tema, um dos grandes problemas que enfrentei surgiu durante os testes com a breadboard. O circuito do power funcionava, mas após colocar os outros optoacopladores, o mesmo deixava de funcionar.
Um dos meus grandes erros que me «roubou» bastante tempo e deu origem a várias tentativas foi utilizar jumper wires na breadboard de má qualidade. Que ao fim de algum tempo partiam por dentro, alterando a resistência do circuito ao ground ou mesmo interrompendo o circuito, fazendo com que o circuito deixasse de funcionar, e ficando assim sem saber o porquê.
Tive de perder muito tempo a fazer novamente e várias vezes todas as medições de voltagem. Até que, após «partir muita pedra», descobri onde estava a falha.
Foto do erro:
Outro erro que estava a cometer era que, no final de todo o circuito feito e testado na breadboard, parti para a solda do mesmo numa placa. Aí deparei-me novamente com grandes dificuldades, pois após soldar tudo e na parte dos testes deixava de funcionar novamente o circuito, sem que eu percebesse o porquê.
Mais tarde e após variadas tentativas e soldas na placa, soldando novamente todos os componentes de diferentes formas, descobri que era a própria eletricidade estática que estava a chegar ao 4n25 do botão do power e estava a fazer com que o relé «colasse» e «descolasse» rapidamente, de forma errática; é o chamado efeito de ghost switch.
Outra das dificuldades sentida foi tentar proteger todos os componentes soldados na board, ou seja, qual a melhor forma de colocar a placa dentro do desumidificador, dado que a mesma ficava perto do radiador e de componentes com humidade e água.
Pensei que se colocasse cola quente por cima dos mesmos, caso houvesse alguma humidade ou mesmo água, estes estariam protegidos, evitando assim um eventual curto-circuito.
Mas após este procedimento, o circuito deixava de funcionar novamente e, só após, muitas medições e «partir muita pedra», é que percebi que não poderia colocar cola quente pois a mesma para além de sair muito quente, isolava o circuito e componentes da temperatura e ambiente (ar) externo, alterando as suas propriedades de funcionamento.
Outra das dificuldades foi devida aos leds do desumidificador partilharem a parte positiva da pista entre os leds do power e o led do tanque cheio.
Isto fazia com que os leds no desumidificador não funcionassem. Consegui ultrapassar esta parte com a colocação de duas resistências de 150 ohm antes dos optoacopladores.
Lista de Material
-
1 x Desumidificador
-
1 x wemos D1 mini (Flashado com Tasmota) : https://mauser.pt/catalog/product_info.php?cPath=1667_2604_2607&products_id=096-8518
-
3 x optoacopladores 4n25 https://mauser.pt/catalog/product_info.php?cPath=324_244&products_id=001-6712
-
1 x sensor de humidade e temperatura DTH11: https://mauser.pt/catalog/product_info.php?cPath=1667_2669_2676&products_id=096-7807
-
1 resistência de 47 ohm:
https://mauser.pt/catalog/product_info.php?cPath=324_526_527&products_id=104-70 -
2 resistências de 150 ohm:
https://mauser.pt/catalog/product_info.php?cPath=324_526_527&products_id=104-7014 -
Fios
-
Multímetro
https://mauser.pt/catalog/product_info.php?cPath=115_484_485&products_id=096-1726 -
Material e equipamento para soldar