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.