Sensor de nível de água para Arduino, ESP8266, Raspberry…

Tanta coisa que podemos automatizar que algumas vezes nos perdemos diante tantos brinquedos. No caso desse sensor de nível, o propósito mais cabível para ele é interromper o fluxo de água que esteja vindo de algum lugar. Espero que o parceiro AutoCore envie uma solenóide para abrir e fechar a passagem de água, mas enquanto isso, vamos ver um tutorial que simplesmente gerará a interrupção no ESP8266. Poderia ser também no Arduino, Raspberry etc, afinal o procedimento é basicamente o mesmo. Os conceitos necessários para cada plataforma que desejar está descrito nos posts a seguir:

E há uma razão, um “porquê” de utilizarmos interrupção. Se você escrever todo o código no loop para ficar executando uma sequência de comandos, isso aumenta o consumo da MCU e ainda por cima pode não atender no momento preciso. Isto é, o nível de água pode facilmente passar do limite se a MCU não conseguir atender a tempo, mas com uma interrupção a MCU para tudo o que estiver fazendo para atendê-la. Essa é uma das grandes vantagens em se utilizar interrupções.

A experiência será o mais artesanal possível, já que não tenho uma aplicação real para o momento; ou tenho, mas não estou com vontade de furar meu filtro de barro agora. Também, o código será o mais simplório possível e  a MCU também. Nesse caso, utilizarei a Attiny85 Digispark, onde descrevi os primeiros passos para utilizá-la na IDE do Arduino nesse outro artigo.

Lista de materiais

Você precisará de apenas 5 ítens:

Claro, acredito que alguma coisa você já tenha, no caso, fios jumpers. Não tem? Então você pode adquirí-lo aqui.

Wiring





Cortei um cabo jumper e os soldei às pontas dos fios do sensor de nível d’água, de modo que pude conectar o sensor diretamente ao Digispark. O Wiring mais simples possível, sem filtragem de ruído nem nada, é a conexão de um dos fios do sensor ao 5V e o outro fio ao P2. Só isso.

A conexão aqui no mundo real ficou desse jeito:

Conexão
Conexão

Como funciona o circuito

Como você pode ver, não tem nada entre o Digispark e o sensor. Ambos os fios do sensor estão conectados aos pinos do Digispark, P2 e P3 respectivamente. O sensor somente fecha o circuito quando a bóia tocar o topo, daí a tensão seguirá em sentido ao outro pino que periodicamente está fazendo leitura digital em busca da mudança de estado. Como citado ao início, a melhor opção é utilizar um dispositivo que ofereça a capacidade de lidar com interrupções e de preferência, de uma maneira fácil. Mas para a prova de conceito está perfeita a utilização de um Digispark.

Código

Na hora de escrever o código, lembre-se de que os pino P3 e P4 estão dedicados à USB. No caso, conectei um fio do sensor ao 5V e o outro fio ao pino P2, que fará leituras periódicas (a cada loop) em busca da mudança de estado com o circuito fechado pelo sensor, indicando assim que o recipiente atingiu o limite.

O código é tão pequeno quanto o próprio Digispark. Vamos utilizar o mesmo LED da board utilizado também para exemplo nesse primeiro artigo sobre o Digispark.

E um pequeno video, apenas para mostrar o LED acender quando chegar no limítrofe.

Por fim, não é necessário nenhum tipo de controlador para fazer um exemplo simples assim, mas se você estiver utilizando um controle de fluxo de água, certamente o ideal é utilizar PI, PD ou PID e nesse caso uma MCU realmente é necessária.

Inscreva-se no nosso newsletter, alí em cima à direita e receba novos posts por email.

Siga-nos no Do bit Ao Byte no Facebook.

Prefere twitter? @DobitAoByte.

Inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.

Nossos grupos:

Arduino BR – https://www.facebook.com/groups/microcontroladorarduinobr/
Raspberry Pi BR – https://www.facebook.com/groups/raspberrybr/
Orange Pi BR – https://www.facebook.com/groups/OrangePiBR/
Odroid BR – https://www.facebook.com/groups/odroidBR/
Sistemas Embarcados BR – https://www.facebook.com/groups/SistemasEmbarcadosBR/
MIPS BR – https://www.facebook.com/groups/MIPSBR/
Do Bit ao Byte – https://www.facebook.com/groups/dobitaobyte/

Projetos Arduino e Eletrônica – https://www.facebook.com/groups/projetosarduinoeletronica/

ESP8266 BR – https://www.facebook.com/groups/ESP8266BR/

Próximo post a caminho!

Comments

comments

Djames Suhanko

Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora profissionalmente, ora por lazer ) desde 2009.