Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Sensor de qualidade da água baseado em IoT

Componentes e suprimentos

Arduino UNO
× 1
Cabos de jumper masculino / feminino
× 1
Módulo Bluetooth HC-05
× 1
Cátodo comum difuso RGB
× 1
Resistor 330 ohm
× 3
Potenciômetro rotativo (genérico)
× 1
Kit RGB LCD Shield, visor de caracteres 16x2
× 1
Resistor 1k ohm
× 1

Ferramentas e máquinas necessárias

Decapador e cortador de fios, fios sólidos e trançados 26-14 AWG

Aplicativos e serviços online

Arduino IDE
Ardutooth

Sobre este projeto


A água é um recurso essencial em nossa vida cotidiana. Portanto, devemos ter certeza de que é de boa qualidade para uso.





O que é TDS?


TDS significa Total de Sólidos Dissolvidos. Como o nome sugere, ele nos dá o número de sólidos dissolvidos em uma certa quantidade de água, em ppm (partes por milhão). O TDS é calculado com base na condutividade elétrica [S / m]. Quanto maior for a condutividade elétrica, maior será o valor de TDS. Aqui está uma lista dos valores TDS de diferentes tipos de água:
  • Água pura:80-150
  • Água da torneira:250-350
  • Água subterrânea:500-1000
  • Água do mar:cerca de 30000

Conforme recomendado pela OMS (Organização Mundial da Saúde), o TDS adequado para água potável é inferior a 300. No entanto, a água com TDS inferior a 100 não pode ser consumida, pois faltaria os minerais essenciais. Água acima de 300 é considerada muito "dura", pois contém mais minerais do que o necessário.

Normalmente, usamos uma caneta TDS para medir o TDS da água. No entanto, não podemos integrar a caneta com o Arduino. Portanto, existem medidores TDS especiais disponíveis que podem ser integrados ao Arduino. No entanto, decidi fazer este projeto sem o uso da caneta TDS.





O circuito


Arduino
  • Conecte 5V do Arduino a um barramento de alimentação da placa de ensaio
  • Conecte o aterramento do Arduino ao outro barramento de alimentação da placa de ensaio
  • Conecte uma extremidade de um resistor de 1k ohm ao aterramento e a outra extremidade à placa de ensaio. Conecte o pino analógico A0 no Arduino ao resistor. Finalmente, conecte um fio ao resistor e outro fio a 5V. Conecte as pontas livres desses fios aos clipes de crocodilo.





LCD Exibir
  • Conecte o pino VSS ao trilho de aterramento
  • Conecte o pino VDD ao trilho 5V
  • Conecte V0 ao pino central do potenciômetro
  • Conecte as extremidades do potenciômetro a 5V e aterramento
  • Conecte o pino RS ao pino 7 do Arduino
  • Conecte o pino R / W ao trilho de aterramento
  • Conecte o pino E ao pino 8 do Arduino
  • Conecte o D4 ao pino 10 do Arduino
  • Conecte o D5 ao pino 11 do Arduino
  • Conecte o D6 ao pino 12 do Arduino
  • Conecte o D7 ao pino 13 do Arduino





Módulo Bluetooth HC-05
  • Conecte o pino VCC ao trilho 5V
  • Conecte o pino GND ao aterramento
  • Conecte o pino TX ao pino 3 do Arduino (serve como RX)
  • Conecte o pino RX ao pino 2 do Arduino (serve como TX)





LED RGB
  • Conecte o cátodo comum (pino mais longo) ao aterramento
  • Conecte o pino vermelho (à direita do pino catódico) ao pino 9 do PWM no Arduino por meio de um resistor de 330 ohms
  • Conecte o pino verde (à esquerda do pino catódico) ao pino 6 do PWM no Arduino por meio de um resistor de 330 ohms
  • Conecte o pino azul (extrema esquerda) ao pino 5 do PWM no Arduino por meio de um resistor de 330 ohms








Derivação para calcular a resistência entre fios livres


Estaremos usando a lei de Ohm, que afirma que a tensão [V] através de um resistor de resistência R é diretamente proporcional à corrente [I] que flui através do resistor. Em outras palavras, V =IR

Embora haja um fio conectado entre os 2 resistores [R₁ - 1000 ohm e R₂ - entre os fios livres] ao pino analógico A0 no Arduino, a resistência desse fio pode ser desprezada e, portanto, podemos dizer que corrente mínima flui através do fio. Portanto, R₁ e R₂ estão conectados em série.

Então, podemos dizer que V₁ =IR₁ e V₂ =IR₂ .

Portanto, podemos dizer V₂ / V₁ =IR₂ / IR₁ =R₂ / R₁

. No entanto, não conhecemos V₂.

Sabemos que em uma combinação em série de resistores, V₁ + V₂ =V , onde V =5 Volts. A partir disso, podemos obter V₂ =5-V₁

Finalmente, substituindo o valor que obtivemos por V₂ em V₂ / V₁ =R₂ / R₁ , podemos definir um buffer variável como 5-V₁ / V₁ , em vez de V₂ / V₁ .

Finalmente, podemos dizer que R₂ =buffer * R₁ .





O trabalho


Calcularemos a resistência da água em teste e, a partir disso, obteremos a resistividade. Temos que considerar o comprimento e a área da seção transversal do nosso contêiner para isso.
  R =r L / A => r =R A / L  

A partir da resistividade, podemos obter a condutividade
  c =1 / r  

Finalmente, obtemos o TDS da condutividade
  TDS =c * 7000  





Bibliotecas

  • Biblioteca de cristal líquido:https://www.arduinolibraries.info/libraries/liquid-crystal
  • Biblioteca serial de software:https://pdfpunk.weebly.com/softwareserial-library-download.html

Você pode baixar essas bibliotecas e adicioná-las ao seu Arduino IDE ou pode ir para Ferramentas -> gerenciar bibliotecas -> procurar a biblioteca que deseja baixar




Código

  • Código de monitoramento da qualidade da água
Código de monitoramento da qualidade da água Arduino
 // inclui bibliotecas # include  #include  // para bluetooth - cria um objeto chamado BTserial, com pino RX em 3 e pino TX em 2SoftwareSerial BTserial (3,2); // RX | TX // decraração de todas as nossas variáveis ​​leituras flutuantes; int pin =A0; float vOut =0; // queda de tensão em 2 pontosfloat vIn =5; float R1 =1000; float R2 =0; float buffer =0; float TDS; float R =0; // resistência entre os 2 fios flutuantes r =0; // resistividade flutuante L =0,06; // distância entre os fios em mdoble A =0,000154; // área da seção transversal do fio em m ^ 2float C =0; // condutividade em S / mfloat Cm =0; // condutividade em mS / cmint rPin =9; int bPin =5; int gPin =6; int rVal =255; int bVal =255; int gVal =255; // usaremos esta fórmula para obter a resistividade após usar a lei de ohm -> R =r L / A => r =RA / L // criando o objeto lcd da biblioteca Liquid CrystalLiquidCrystal lcd (7,8,10,11,12,13 ); void setup () {// inicializar o monitor serial e serial BT Serial.begin (9600); BTserial.begin (9600); // inicializar lcd lcd.begin (16, 2); // define pinos led rgb (todos como pinos pwm no Arduino) como saída pinMode (rPin, OUTPUT); pinMode (bPin, OUTPUT); pinMode (gPin, OUTPUT); pinMode (pin, INPUT); // Imprime mensagem estagnada no LCD lcd.print ("Condutividade:");} void loop () {lê =analogRead (A0); vOut =lê * 5/1023; Serial.println (lê); // Serial.println (vOut); buffer =(vIn / vOut) -1; R2 =R1 * tampão; Serial.println (R2); atraso (500); // converter tensão em resistência // Aplicar a fórmula mencionada acima r =R2 * A / L; // R =rL / A // converter resistividade em condicividade C =1 / r; Cm =C * 10; // converte a condutividade em mS / cm para TDS TDS =Cm * 700; // Define o cursor do LCD para a próxima linha lcd.setCursor (0,1); lcd.println (C); // exibe as cores correspondentes no led rgb de acordo com a leitura analógica if (lê <600) {if (lê <=300) {setColor (255, 0, 255); } if (lê> 200) {setColor (200, 0, 255); }} else {if (lê <=900) {setColor (0, 0, 255); } if (lê> 700) {setColor (0, 255, 255); }} // enviar dados para o aplicativo Ardutooth no telefone móvel através de bluetoothBTserial.print (C); BTserial.print (","); BTserial.print (TDS); BTserial.print (";"); delay (500); } void setColor (int vermelho, int verde, int azul) {analogWrite (rPin, 255 - vermelho); analogWrite (gPin, 255 - verde); analogWrite (bPin, 255 - azul); } 

Peças personalizadas e gabinetes

Usei um tubo de ensaio antigo que tive para fazer isso. Eu fiz furos em cada extremidade do tubo e inseri os fios de cada uma das extremidades. Finalmente, para segurar os fios no lugar, coloquei um pouco de massa.

Esquemas


Processo de manufatura

  1. IoT básica - RaspberryPI HDC2010 como
  2. Projeto Raspberry PI IoT Conectando o Sensor DHT11
  3. IoT celular:Lixeira inteligente
  4. Sensor de qualidade do ar de hélio
  5. Sensor de água de alta sensibilidade em MCP3008
  6. Windows 10 IoT Core e SHT15
  7. Sensor de temperatura múltipla
  8. Garrafa de água alimentada por Arduino
  9. Pistola de água com sensor de movimento
  10. Sensor de qualidade do ar à base de carbono