Medindo o volume da caixa de água

exato, são 2 rasp iguais… só consegui compilar no de casa, que é o que tem mais coisa rodando…

1 curtida

Primeiramente gostaria de parabenizar o projeto. Estou desenvolvendo o meu para o curso de Engenharia de Controle e Automação e estou esbarrando em várias dificuldades, mas sigo em frente.

No meu caso, estou tendo que utilizar o openHAB, dá para aproveitar algo em relação a exibição desses dados no hub do OH?

1 curtida

Não tenho conhecimento nessa plataforma, os cálculos são reproduzíveis, basta adaptar na linguagem que você usa, já a exibição depende da sua plataforma.

Com relação aos cálculos, estou usando como projetei por aqui…

Sábado agora meu planejamento é furar a caixa pra instalar o sensor ultrassônico a prova d’água, mas já tô pensando na possibilidade de fazer uma bucha adaptadora pra evitar que que a água condense e atrapalhe a leitura do sensor.

Minha maior dificuldade mesmo está sendo pra poder criar algo que possa exibir esses dados de forma parecida com o que você fez. O Openhab também traz muitas possibilidades, mas pra usuários novos acaba sendo bem complicado.

Outra dúvida amigo, a que distância entre o sensor e o esp eu posso ligar sem que ele tenha problemas na transmissão dos dados?

Estou um pouco receoso pois minha caixa fica mais ou menos há uns 15m de onde ficaria a caixa com o Esp.

Uma tampinha de Rexona atenua o problema, pois a condensação tende a pingar pelas bordas da tampinha

1 curtida

Ainda é funcional?
O código está reportando diversos erros de config para mim. Estou tentando fazer o tuto agora e nada de dar bom rsrs

INFO Reading configuration /config/esphome/esphome-web-0c7af8.yaml…
WARNING ‘casa_caixa_agua’: Using the ‘_’ (underscore) character in the hostname is discouraged as it can cause problems with some DHCP and local name services. For more information, see Frequently Asked Questions — ESPHome
Failed config

sensor.ultrasonic: [source /config/esphome/esphome-web-0c7af8.yaml:181]
platform: ultrasonic
id: HMED
trigger_pin: D6
echo_pin: D7
name: Caixa Água - Distância Medida Sensor
internal: False
accuracy_decimals: 6
update_interval: 0.5s
filters:

Cannot have two filters in one item. Key 'median' overrides 'window_size'! Did you forget to indent the block inside the median?.
- median: 
  window_size: 20
  send_every: 20
  send_first_at: 20

Realmente estava apresentando erro, possivelmente pela mudança de algo no ESPHome. Já atualizei o código e está funcional.

1 curtida

Agora me surgiu outro problema.
Não consigo subir o código pelo esphome, ele trava o HA quando está no processo fazendo que eu tenha que desligar e ligar para voltar o HA…

Esse acho que já não tem a ver com o código que está tentando compilar… te respondi outro tópico.

1 curtida

Bom dia Douglas,

Poderia postar uma foto de como ficou fixado seu sensor na tampa de sua caixa d´água ? Pode postar também fotos do seu projeto pronto, para eu ver como ficou a instalação física na caixa d´água ?

Obrigado

Opa! Não tenho fotos, e como ele fica lá em cima não vou conseguir por agora…

Que tipo de sensor está usando?

Algumas pessoas fazem dessa forma com sensor resistente a água:



Só a título de curiosidade, fiz o projeto utilizando os seguintes componentes:

Placa: NodeMCU V3
Sensor: SR04M-2

Minha mudança com relação ao projeto daqui é que fiz o flash com o Tasmota Sensor para liga-lo direto no Home Assistant pelo Add-on do Tasmota + Mosquito MQTT.

Reparei que não estavam entrando as medições, reconfigurei 10x, troquei os cabos até que ele funcionou em 2 ocasiões aleatórias. A medição estava totalmente maluca, uns 4.000cm pra mais… Lembrei aqui do tópico e vim dar uma olhada no projeto e, minha ligação estava com a alimentação em 3.3V da placa do NodeMCU para a placa do sensor. Coloquei a saída 5V de uma outra placa na entrada 5V da placa do sensor (SRO04M-2) e o sistema começou a funcionar OK.

O sensor, mesmo fixado na mesa apontando para a parede, apresenta ainda pequenas diferenças nos intervalos de medição (5 minutos):
30cm (medidos na régua entre a posição do sensor e a parede) e a variação fica entre 28cm e 32cm (~+/-2cm) num período de 2 horas de medição. A cada medição a distância sofre variação.

Nessas condições tenho duas dúvidas:

  1. Essa variação ocorre para vocês? É normal?
    Exemplo (mudei ele para apontar para o chão, preso na mesa):

  2. Eu havia considerado somente uma entrada de alimentação (cabo USB) no suporte que vou colocar as placas, que seria para a placa do NodeMCU, qual a sugestão de vocês para uma solução mais clean já que terei que alimentar 5V na placa do sensor?

Obrigado e parabéns por compartilharem o projeto.

Como disseram, obra da engenharia !! Obrigado por compartilhar.

Gostaria de compartilhar os resultados que obtive hoje:

  • Sensores SR04M-2
  • NodeMCU v2

Considerações:

  • Foi necessário ajuste de OFFSET para acertar a precisão do sensor.
  • No código, seria possível utilizar o parametro OFFSET da própria linguagem, porém, preferi criar a lógica, assim o debug (dumb) dos valores me ajudaria no log de acerto.

Código:

 - platform: ultrasonic
   name: "Ultrasonic Sensor"
   trigger_pin: D6
   echo_pin: D7
   accuracy_decimals: 6
   update_interval: 1.0s
   timeout: 4.0m
   pulse_time: 20us
   filters:
     - filter_out: nan
     - lambda: |-
         static float OFFSET = 0.040;  // adjust this or set 0.0 !
         static float y = x;
         float MAX_DIFFERENCE = 0.5;  // adjust this!
         static float last_value_t = NAN;
         static int count_missed_t = 0;
         x = x+OFFSET;
         ESP_LOGW("sensor", "Received / Ofsset / Last_Value %.3f / %.3f / %.3f", y, x, last_value_t);
         if (count_missed_t == 3) last_value_t = x;
         if (isnan(last_value_t) || std::abs(x - last_value_t) < MAX_DIFFERENCE) {
           if (count_missed_t)
             ESP_LOGI("sensor", "New echo value %.3f", x);
             count_missed_t = 0;              
             return last_value_t = x;
           } 
           else {
             count_missed_t += 1;
             ESP_LOGW("sensor", "Missed echo value %.3f => %.3f, %d", last_value_t, x, count_missed_t);
             return last_value_t;
          }  

Confirmando a precisão:

próximo passo é instalar e acertar o código com base no código deste tópico.

Postei um código neste tópico e nele há um filtro que ajusta estas variações. Veja se faz sentido no seu ambiente este código.

Opa, obrigado. Vou fazer mais testes via ESPHome e posto aqui.

Nessa imagem as variações que aparecem entre 14:30 e 15:30 foram propositais ou o sensor oscilou?

A propósito, você chegou a utilizar qual sistema de ligação entre a placa NodeMCU e a do sensor?

Eu mudei o sistema de ligação para esse aqui:

*** EDIT
Outra dúvida, você chegou a fazer algum teste para verificar até quanto é a precisão mínima? Na especificação do produto diz que são 25cm.

Obrigado por compartilhar. :clap:

Medição mínima são os 25cm mesmo, menos que isso, não dá certo.

Liguei normalmente, sem resistores. Direto mesmo.

Usei D6 e D7 para RX/TX, e o Vin da placa 5V.

Os horários que teve oscilação, foram propositais, alguns testes para verificar se a leitura alterava e atualizava rápido.

Está bastante estável,

Deixo aqui uma breve atualização da minha jornada:

Depois de não conseguir que o sensor SR04M-2 me desse um resultado satisfatório, como eu compartilhei aqui, acabei comprando o JSN-SR20 que utiliza dois sensores ao invés de um só.

Resolvido o problema. Abaixo ele instalado sem a aplicação de nenhum filtro de correção:

O sensor SR04M-2 funcionou, porém reparei que, dependendo de onde ele é fisicamente instalado, mesmo com correções, as medições podem não ser satisfatórias. Portanto, se eu fosse recomendar a um colega que deseja realizar esse projeto, iria de JSN-SR20.

1 curtida

Folks, perdoe-me se isso é contra a regra dos fóruns. Moro em Porto Alegre - RS e conseguiria comprar os componentes, mas tenho zero experiência em conectá-los juntos e alguns itens descritos aqui não faço idéia … exemplo: “level shift converter”.

Alguém possui esse projeto pronto para venda?
Procurei no AliExpress por algum produto que faça isso sem precisar de montagem, mas não encontrei. Se alguém tiver um link agradeço muito.

Meu objetivo para ter algo assim é porque tenho muita falta de água, e é uma chatice ter que ficar verificando a torneira na rua para ver se está faltando ou até mesmo quando voltou…

Obrigado a todos!

1 curtida