Tabla de contenido
- resumen
- Lista de materiales
- ¿Qué es la conductividad eléctrica del agua (EC)?
- Sensor TDS analógico
- DS18B20 Sensor de temperatura impermeable
- Circuito: sistema de monitoreo de calidad del agua basado en IoT
- Proyecto PCB Gerber File & PCB Ordering Online
- Configuración de Thingspeak Server
- Código fuente/Programa
- Monitoreo de la calidad del agua con ESP32 en Thingspeak Server
- Video Tutorial y Guía
resumen
En este proyecto, Sistema de monitoreo de calidad del agua potable basado en IoT Y ESP32 módulo wifi, Sensores TDS/EC & Sensor de temperatura. Este sistema completo se puede utilizar para controlar la calidad del agua potable, es decir, el agua Conductividad eléctrica o Comisión Europea Agua y agua temperatura. Los valores de EC y temperatura se pueden monitorear en línea desde cualquier parte del mundo. Servidor IoT Llamado Singspeak.
Por lo que escuché, Normas de la Organización Mundial de la Salud, el valor CE no debe exceder 400 micro S/cm o 0,4 ms/centímetroLa temperatura óptima para el agua potable es la temperatura ambiente (20°C / 68°FMáximo sabor o frialdad refrigerada (6 grados Celsius / 43 grados FahrenheitPara una actualización máxima.
En este proyecto, Sensor TDS Y DS18B20 Temperatura impermeable Junto con el sensor Módulo LAN inalámbrico ESP32 Mide parámetros de monitoreo de la calidad del agua, como la conductividad eléctrica y la temperatura. Los valores de EC y temperatura son Pantalla OLED I2C de 0,96 pulgadasTambién puede monitorear los mismos datos gráficamente Servidor Sing Speak En línea.
Echa un vistazo a proyectos anteriores relacionados con los sensores TDS.
1. Medidor TDS basado en Arduino
2. Medidor IoT ESP8266 TDS
3. Sistema de monitoreo de la calidad del agua del acuario
Lista de materiales
hacer Sistema de monitoreo de la calidad del agua basado en IoT, se requieren los siguientes componentes: Todos estos componentes se pueden comprar en línea a través de los enlaces dados.
¿Qué es la conductividad eléctrica del agua (EC)?
La EC o conductividad eléctrica del agua es corriente eléctricaLas sales y otros productos químicos solubles en agua pueden descomponerse en iones cargados positivamente y cargados negativamente. estos Iones libres Dado que conduce electricidad en el agua, la conductividad eléctrica del agua es concentración de iones.
salinidad Y Sólidos disueltos totales (TDS) Se utiliza para calcular la EC del agua, lo que ayuda a indicar la pureza del agua. Cuanto más pura es el agua, menor es la conductividad. Para dar un ejemplo del mundo real, agua destilada Casi un aislante, agua salada Es un conductor eléctrico altamente eficiente.
Sensor TDS analógico
el Sensor TDS analógico El Sensor/medidor TDS compatible con Arduino Kit para medir el valor TDS del agua. Se puede aplicar al agua doméstica, hidroponía y otros campos de prueba de calidad del agua. Este producto es compatible con 3.3 ~ 5.5V entrada de voltaje amplia, y 0 ~ 2.3V La salida de voltaje analógico lo hace compatible con sistemas o placas de control de 5V o 3.3V.
El origen de la excitación es Señal alterna, puede prevenir eficazmente la sonda polarización Ayuda a prolongar la vida útil de la sonda y, mientras tanto, aumenta la estabilidad de la señal de salida. el Sonda TDS Es impermeable y se puede sumergir en agua para su medición durante mucho tiempo.
El rango de medición TDS del sensor es 0 ~ 1000ppm, y la precisión es 10% FS (25 ° C). La sonda no se puede utilizar en agua por encima de 55 grados centígrados.
especificación
- Voltaje de entrada: 3.3 ~ 5.5V
- Voltaje de salida: 0 ~ 2.3V
- Corriente de trabajo: 3 ~ 6mA
- Rango de medición TDS: 0 ~ 1000ppm
- Precisión de medición TDS: ± 10% F.S. (25 °C)
- Sonda impermeable
DS18B20 Sensor de temperatura impermeable
Esto está precableado y Versión impermeable de DS18B20 Sensor Se utiliza para medir objetos distantes o en condiciones húmedas. El sensor puede medir la temperatura entre -55 a 125°C (-67°F a +257°F). El cable está encamisado con PVC. Estos sensores de temperatura digitales de 1 cable son bastante precisos, ±0.5 ° C en la mayor parte del rango. Funcionan bien con cualquier microcontrolador que utilice pines digitales SI NGLE.
El sensor requiere dos bibliotecas: Biblioteca de sensores de temperatura de Dallas & Biblioteca One Wire.Además 4,7 mil La resistencia requerida como un pull-up desde el DATA a la línea VCC cuando se utiliza el sensor. Para obtener más información sobre este sensor, consulte nuestra publicación anterior. DS18B20 Sensor Tutorial.
Circuito: sistema de monitoreo de calidad del agua basado en IoT
Despedida interfaz analógico Sensor TDS y sensor de temperatura DS18B20 con ESP32 Tabla. La razón para usar un sensor de temperatura es que se requiere un parámetro de temperatura durante la corrección del valor EC de conductividad eléctrica. El valor de EC cambia significativamente con el aumento y la caída de las temperaturas.
Es fácil de esta manera Diagrama de conexión Para el proyecto.
Conecte el TDS y el sensor de temperatura Teletipo & Teletipo Pin al pin ESP32 de 3.3V y al pin GND respectivamente. Conecte el pin analógico de salida del sensor TDS al ESP32 Clase A0 Pin: PIN GPIO36. Del mismo modo, conecte la salida del DS18B20 al ESP32. IO14 Anclar. Se requiere un tirón de resistencia de 4.7K, y el pin de salida DS18B20 y el VCC de 3.3V deben conectarse como un suministro parásito.
Los componentes se pueden ensamblar en una placa de pruebas para fines de prueba.
Proyecto PCB Gerber File & PCB Ordering Online
Si no desea ensamblar el circuito en una placa de pruebas, Placa de circuito impreso Para el proyecto, y aquí está la PCB para usted. Diseñé la PCB usando EasyEDA. Placa PCB para Monitoreo de la calidad del agua de IoT Debería verse así:
El archivo Gerber de la PCB se muestra a continuación. Simplemente descargue el archivo Gerber y solicite la PCB. Todas las placas de circuito impreso Y $1$ Solamente.
Puede usar este archivo Gerber para solicitar una PCB de alta calidad para este proyecto. Para ello, Todas las placas de circuito impreso Visite el sitio web oficial haga clic aquí: https://www.allpcb.com/.
Con esto[今すぐ引用]Puede seleccionar una opción para cargar su archivo Gerber. De estas opciones, puede seleccionar el tipo de material, las dimensiones, la cantidad, el grosor, el color de la máscara de soldadura y otros parámetros requeridos.
Una vez que haya ingresado todos los detalles, seleccione su país y método de envío. Finalmente, puede realizar un pedido.
Puede ensamblar los componentes en la placa PCB.
Configuración de Thingspeak Server
Para supervisar Conductividad eléctrica (CE) Para obtener datos de temperatura en Thingspeak Server, consulte primero Singspeak. Para configurar el servidor Thingspeak, visite el siguiente sitio Web: https://thingspeak.com/Cree una cuenta o simplemente inicie sesión si creó una cuenta antes. A continuación, cree un nuevo canal con los siguientes detalles:
A continuación, vaya a la sección API del panel y haga clic en Clave APINecesita esta clave de API en la parte de código.
Código fuente/Programa
El código fuente / programa para el monitoreo de la calidad del agua potable basado en IoT utilizando ESP32 está escrito en C / C ++ en Arduino IDE. Este código utiliza muchas bibliotecas en este proyecto.
Algunas de las bibliotecas para este proyecto y sus enlaces de descarga se enumeran a continuación. Primero, descargue todas estas bibliotecas y agréguelas a su carpeta de biblioteca Arduino.
1. Biblioteca de un cable: https://github.com/PaulStoffregen/OneWire
2. Biblioteca de temperatura de Dallas: https://github.com/milesburton/Arduino-Temperature-Control-Library
3. Biblioteca ADS1015: https://github.com/adafruit/Adafruit_ADS1X15 (Versión 1.4 instalada)
4. Biblioteca DFRobot ESP EC: https://github.com/GreenPonik/DFRobot_ESP_EC_BY_GREENPONIK
5. Biblioteca Adafruit GFX: https://github.com/adafruit/Adafruit-GFX-Library
6. Biblioteca Adafruit SSD 1306: https://github.com/adafruit/Adafruit_SSD1306
El código completo para el proyecto se muestra a continuación. Antes de cargar el código en la placa ESP32, debe realizar algunos cambios en las siguientes líneas:
hilo Apikey = “****************”; Ingrese la clave Escribir API desde ThingSpeak. constante chamuscar *SSID = “****************”; Reemplace su WiFi SSID y clave WPA2 con constante chamuscar *pasar = “****************”; |
Reemplace la clave API de Thingspeak con la clave que copió anteriormente de la pestaña API de configuración de Thingspeak. Luego cambie el SSID WiFi y la contraseña, reemplazándolos con su SSID local y contraseña.
Ahora puede cargar el código en el módulo WiFi ESP32.
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 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | #include <Arduino.h> #include <wire.h> #include <EEPROM.h> #include <WiFi.h> #include <OneWire.h> #include <Dallas temperature.h> #include <Adafruit_ADS1015.h> #include <DFRobot_ESP_EC.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 // Ancho de pantalla OLED en píxeles #define SCREEN_HEIGHT 64 // Altura de pantalla OLED en píxeles Declaración de pantalla SSD1306 conectada a I2C (SDA, PIN SCL) Adafruit_SSD1306 Monitor(SCREEN_WIDTH, SCREEN_HEIGHT, y alambre, -1); #define ONE_WIRE_BUS 14 // Este es el pin 13 GPIO del ESP32. Un cable Un cable(ONE_WIRE_BUS); Temperatura Dallas sensor(&oneWire); DFRobot_ESP_EC Comisión Europea; Adafruit_ADS1115 anuncio; flotar voltaje, ecValue, temperatura = 25; hilo Apikey = “**************”; Ingrese la clave Escribir API desde ThingSpeak. constante chamuscar *SSID = “**************”; Reemplace su WiFi SSID y clave WPA2 con constante chamuscar *pasar = “**************”; constante chamuscar* servidor = 「api.thingspeak.com」; Cliente WiFi cliente; No válido arreglo() { serial.empezar(115200); EEPROM.empezar(32);Se requería EEPROM. Comience a guardar la calibración k en EEPROM Comisión Europea.empezar(); sensor.empezar(); Si (!Monitor.empezar(SSD1306_SWITCHCAPVCC, 0x3C)) { Dirección de 128×64 0x3D serial.Printrung(F(“Error al asignar SSD1306”)); para (;;); } demorar(2000); Monitor.Borrar pantalla(); serial.Printrung(“Conectar a”); serial.Printrung(SSID); LAN inalámbrica.empezar(SSID, pasar); mientras (LAN inalámbrica.posición() != WL_CONNECTED) { demorar(500); serial.Impresión(“.”); } serial.Printrung(“”); serial.Printrung(“Conexión LAN inalámbrica”); } No válido bucle() { voltaje = Lectura analógica(Clase A0); A0 es GPIO 36. sensor.Requisitos de temperatura(); temperatura = sensor.getTempCByIndex(0); Lea el sensor de temperatura y realice la compensación de temperatura ecValue = Comisión Europea.CE de plomo(voltaje, temperatura); Conversión de voltaje a EC con compensación de temperatura serial.Impresión(“Temperatura:”); serial.Impresión(temperatura, 2); serial.Printrung(“ºC”); serial.Impresión(“CE:”); serial.Printrung(ecValue, 2); Monitor.Establecer tamaño de texto(2); Monitor.Establecer color de texto(Blanco); Monitor.Establecer cursor(0, 10); Monitor.Impresión(“T:”); Monitor.Impresión(temperatura, 2); Monitor.Dibujar círculo(85, 10, 2, Blanco); Poner el signo de grado (°) Monitor.Establecer cursor(90, 10); Monitor.Impresión(“C”); Monitor.Establecer cursor(0, 40); Monitor.Impresión(“CE:”); Monitor.Impresión(ecValue, 2); Monitor.Monitor(); demorar(1500); Monitor.Borrar pantalla(); Comisión Europea.calibración(voltaje, temperatura); Proceso de calibración con Celaille CMD Si (cliente.conectar(servidor, 80)) “184.106.153.149” o api.thingspeak.com { hilo postStr = Apikey; postStr += “&Campo1=”; postStr += hilo(temperatura, 2); postStr += “&campo2=”; postStr += hilo(ecValue, 2); postStr += “\r\n\r\n”; demorar(500); cliente.Impresión(“Contribuir/actualizar HTTP/1.1\n”); cliente.Impresión(“Anfitrión: api.thingspeak.com\n”); cliente.Impresión(“Conectar: Cerrar\n”); cliente.Impresión(“X-THINGSPEAKAPIKEY: “ + Apikey + “\n”); cliente.Impresión(“Tipo de contenido: application/x-www-form-urlencoded\n”); cliente.Impresión(“Longitud del contenido: “); cliente.Impresión(postStr.largura()); cliente.Impresión(“\n\n”); cliente.Impresión(postStr); demorar(500); } cliente.parar(); } |
Monitoreo de la calidad del agua con ESP32 en Thingspeak Server
Después de cargar el código en la placa ESP32, el ESP32 intentará conectarse a la red WiFi. Cuando se conecta a una red WiFi, comienza a leer los valores de EC y temperatura del sensor. Puede abrir el monitor serie y leer estos valores.
El sensor de temperatura muestra la temperatura ambiente. Si el sensor TDS está seco y no expuesto al aire, el valor de EC se muestra como cero. Estos datos se pueden ver en pantallas OLED.
Cuando los sensores de temperatura y TDS se sumergen en agua, el OLED muestra los valores de EC y temperatura del agua.
Agregar sal al agua aumenta la conductividad eléctrica del agua, lo que conduce a un aumento significativo en el valor EC del agua.
Supervise los mismos datos en el panel de control de ThingspeakPuedes. Para ver los datos, acceda a la vista privada de Thingspeak, que carga datos de EC y temperatura cada 15 segundos.
Esta es la forma de crear su propio monitoreo de calidad de agua potable basado en IoT utilizando el módulo WiFi ESP32, el sensor TDS analógico y el sensor de temperatura DS18B20.
Video Tutorial y Guía
Sistema de monitoreo de calidad de agua potable basado en IoT con ESP32