O Sensor de Turbidez é um produto desenvolvido com o intuito de proporcionar um método simples e prático de verificação da qualidade da água. Constantemente estamos à procura de práticas que nos auxiliem na manutenção de nossa saúde e a água por ser base da sobrevivência humana, é algo que precisa de atenção.
Não podemos atribuir unicamente à turbidez a qualidade da água, porém esta está diretamente relacionada a micro-organismos e partículas sólidas diretamente relacionadas com a capacidade de proliferação de patógenos. Desta maneira destaca-se que mesmo com um índice baixo de turbidez, isto não significa que a água é potável.
De maneira resumida, o Sensor de Turbidez para Arduino detecta a qualidade da água através da medição dos níveis de turbidez / opacidade e utiliza-se de um sistema de análise para detecção de partículas suspensas na água.
O aumento na turbidez por sua vez, é causado por partículas sólidas como materiais orgânicos e argila e que consequentemente interferem na propagação da luz, associada ao sensor através do efeito de Tyndall, que descreve a dispersão da luz projetada em um líquido, ou seja, quanto maior o número de partículas, mais a luz será espalhada.
Sensor de Turbidez ST100
O Sensor de Turbidez funciona basicamente através de um sistema óptico de atuação no qual temos um LED emissor e um Fototransístor receptor de luz.
Assim, a verificação se faz da seguinte maneira: em águas claras a dispersão da luz até o receptor é mínima e à medida que a turbidez da água aumenta menor é a quantia de luz que chega até o receptor.
Abaixo, podemos observar o esquema de ligação dos dispositivos de emissão e captação de luz, responsáveis pela saída de sinal analógico.
A unidade matemática utilizada para a medição da Turbidez é o NTU, que vem do inglês, Nephelometric Turbidity Unit e que significa Unidade Nefelométrica de Turbidez. Como o Arduino disponibiliza valores de leitura em Volts, realizamos a conversão dos valores e relacionamos estes com um respectivo valor NTU, veja:
Como podemos ver através do gráfico, a relação entre o valor da voltagem e o valor em NTU é estabelecido através da equação de segundo grau y= -1120,4x²+5742,3x-4352,9, a qual iremos posterior, inserir também junto ao código.
Internamente, o Sensor de Turbidez possui um exclusivo trimpot para ajuste de leitura, normalmente este dispositivo é desenvolvido para atender a tensão máxima de 4,2V, porém é possível utilizá-lo para ajustar esta tensão de saída.
Para o presente artigo, o funcionamento do código depende de uma tensão máxima de saída de 4,2V, como trabalhamos com uma equação matemática exata para a conversão de NTU, valores menores não atenderão 100% as necessidades.
Assim como o Módulo de Leitura Óptica do Sensor, o Módulo de conversão e interpretação de dados também possui um trimpot de ajuste, responsável pela precisão de acionamento do pino digital.
Esquema de Ligação do Sensor de Turbidez com Arduino
O esquema de ligação do Sensor de Turbidez pode ser desenvolvido de duas maneiras, cada qual com diferentes propósitos. É possível desenvolvermos a ligação através do pino digital ou através do pino analógico, depende da necessidade do projeto.
Para desenvolvermos o nosso projeto em questão, porém utilizaremos o pino de leitura analógica, o qual possibilita a leitura da variação necessária para o desenvolvimento da conversão de valores em NTU.
Antes de iniciarmos a ligação do módulo com o Arduino precisamos realizar a ligação do Sensor com o módulo, um procedimento bastante simples, veja:
O esquema de ligação junto ao módulo segue a ordem de posicionamento dos fios junto ao módulo, iniciando no vermelho e indo até o amarelo. A conexão dos fios junto ao sensor é única, uma vez que conta com conectores especiais com travas.
A ligação do Módulo junto ao Arduino não deixa de ser extremamente fácil também, no módulo temos indicados 4 pinos de comunicação, são eles:
- G – Pino GND para Alimentação via Arduino.
- A – Pino Analógico para comunicação via Porta Analógica.
- D – Pino Digital para comunicação via Porta Digital.
- V – Pino VCC para Alimentação via Arduino.
Tendo ciência disto, podemos iniciar o processo de conexão dos pinos do Módulo Conversor ao Módulo Arduino, como nossa conexão necessita de uma conexão analógica, o esquema de ligação ficará da seguinte maneira:
Como vemos o esquema de ligação é extremamente fácil, não possui segredos, não necessita de componentes adicionais e trabalha com comunicação e alimentação direta, outro fator que facilita a conexão é a utilização do Display LCD com conversor I2C.
Código de Funcionamento do Sensor de Turbidez
O código de funcionamento do referente projeto também é extremamente simples, o Sensor de Turbidez não necessita de bibliotecas para o seu funcionamento, as bibliotecas utilizadas no código dizem respeito ao display I2C que integramos.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
// Inicia as bibliotecas do Display LCD #include <Wire.h> #include <LiquidCrystal_I2C.h> // Inicia o Display LCD 16x2 através do endereço 0x27 LiquidCrystal_I2C lcd(0x27, 16, 2); // Define o pino de Leitura do Sensor int SensorTurbidez = A0; // Inicia as variáveis int i; float voltagem; float NTU; void setup() { // Inicia o display LCD lcd.init(); lcd.backlight(); } void loop() { // Inicia a leitura da voltagem em 0 voltagem = 0; // Realiza a soma dos "i" valores de voltagem for (i = 0; i < 800; i++) { voltagem += ((float)analogRead(SensorTurbidez) / 1023) * 5; } // Realiza a média entre os valores lidos na função for acima voltagem = voltagem / 800; voltagem = ArredondarPara(voltagem, 1); // Se Voltagem menor que 2.5 fixa o valor de NTU if (voltagem < 2.5) { NTU = 3000; } else if (voltagem > 4.2) { NTU = 0; voltagem = 4.2; } // Senão calcula o valor de NTU através da fórmula else { NTU = -1120.4 * square(voltagem) + 5742.3 * voltagem - 4353.8; } // Imprime as informações na tela do LCD lcd.clear(); lcd.setCursor(0, 0); lcd.print("Leitura: "); lcd.print(voltagem); lcd.print(" V"); // Imprime as informações na tela do LCD lcd.setCursor(3, 1); lcd.print(NTU); lcd.print(" NTU"); delay(10); } // Sistema de arredendamento para Leitura float ArredondarPara( float ValorEntrada, int CasaDecimal ) { float multiplicador = powf( 10.0f, CasaDecimal ); ValorEntrada = roundf( ValorEntrada * multiplicador ) / multiplicador; return ValorEntrada; } |
Através deste código, poderemos observar com o auxílio do display, a leitura em Volts e também o valor da leitura já convertido em NTU através da equação descrita nas últimas linhas do mesmo.
Durante o desenvolvimento do projeto, ao carregar o código observou-se que a tensão estava inferior aos 4,2V citados anteriormente, por isto foi necessário o ajuste do trimpot interno do Sensor de Turbidez.
Vale ressaltar neste ponto que o ajuste é bem preciso e que o valor de 4,2V deve ser obtido com o sensor ótico dentro do encapsulamento do sensor de turbidez, fora dele, durante o ajuste o mesmo irá marcar aproximadamente 5V. É indispensável a utilização de um elemento de verificação em tempo real, seja através do display ou do monitor serial.
A calibração não é possível através do código demonstrado acima, uma vez que este apresenta os valores obtidos em uma média aritmética, para realizar a calibração recomendamos o código do nosso parceiro do canal WR Kits, utilizado no seguinte vídeo:
Código utilizado no vídeo: DOWNLOAD AQUI.
Conclusão
Mesmo que pareça ter um sistema de funcionamento parcialmente complicado, o Sensor de Turbidez demonstra através de seu uso que é bastante simples e apresenta valores bastante precisos. Ter um recurso deste para a verificação em tempo real de líquidos nos mais diferenciados casos é bastante importante uma vez que a qualidade da água implica em muito.
Diversos são os projetos nos quais este produto pode ser aplicado, porém ressaltamos que não é pelo fato da turbidez da água ser baixo que esta é potável. Além da turbidez outros processos devem ser realizados para garantir esta qualidade.
Deixe seu comentário falando o que achou deste sensor e sua funcionalidade, suas facilidades e adaptações realizadas.
Dae amigo,
estou buscando uma forma de conseguir saber a cor da agua dentro daques potes de testes de parâmetros para aquario, seja de ph, amonia, nitrito, etc.
A ideia é suprir uma deficiência ocular minha na detectação de cores (daltonismo) e usar a tecnologia para isso.
Pensei em usar o arduino e aqueles sensores de cores, todavia não sei se são eficiente para a cor em fluídos ou semente em objetos sólidos.
Bom Dia Gariel! Infelizmente nunca trabalhei com o sensor de cores em líquidos, porém acredito que mesmo que com variações reduzidas elas serão possíveis de detecção, mas a aplicação direta no seu projeto valeria uns testes para confirmação.
Seria show, um DIY hanna
ola gostaria de saber como posso compra e vem com a tela LD ?
Olá Paulo! Você encontra o Sensor de Turbidez e tudo o que precisa no site da Usinainfo, o link para o sensor é o seguinte: https://www.usinainfo.com.br/outros-sensores-arduino/sensor-de-turbidez-arduino-para-monitoramento-da-agua-st100-4539.html
Tem algo errado com essa medição.
A água é potável pela legislação com o máximo de 5 NTU.
Uma água bruta, retirada de uma represa ou rio, por exemplo, terá seus 18 a 22 NTU.
No resultado do vídeo apareceu 2000 NTUs está errado. Os medidores modernos nem chegam a esse valor den NTU.
O que eu digo: péssimo foi o resultado e deveriam ter vergonha de apresentar isso.
Olá Hevandyr! Este é apenas um projeto e não um produto acabado, certamente o produto final para análise de valores específicos vai precisar de calibrações mais específicas, mas este é um teste de aplicação do produto. Muito interessante as informações que traz e serão de suma importância para quem desejar dar continuidade neste projeto e realizar as devidas melhorias no mesmo.
olá, vc tem um projeto à venda que ao invés de movimentar o coletor solar pode movimentar um espelho pra refletir a luz do sol a um ponto específico durante todo o dia?
Olá Alessandro! Infelizmente não temos nenhum projeto específico desenvolvido, porém acredito que possa utilizar esta base para o desenvolvimento do mesmo, porém a lógica de programação deveria ser analisada e substituída.
hola queria preguntar haber si el codigo me lo pudiera mandar en ingles y no en portugues
Boa tarde!
Basta utilizar um tradutor online para isto.
mira bro al alterar asi el codigo no va a servir, ya que va a ver palabras que no se logren traducir, igual no serviria, hay que saber muy poco de robotica para saberlo.
Bom dia Pepa!
Infelizmente não podemos ajudar neste caso com línguas estrangeiras. Hoje em dia você pode utilizar o ChatGPT para auxiliar na tradução correta do código para sua linguagem, mantendo o funcionamento dele perfeitamente.