Tabla de contenido
resumen
En este proyecto, construiremos un proyecto de sistema de monitoreo del nivel del agua utilizando Arduino y GSM Network. En uno de los proyectos anteriores, Indicador de nivel de agua por inducción Usando algunos CI y transistores, también construimos Indicador de nivel de agua de IoTPero este es otro proyecto que utiliza Arduino como unidad de procesamiento.
El nivel del agua es uno de los parámetros más comúnmente medidos, ya que los datos precisos del nivel del agua son esenciales para muchas aplicaciones. El cambio climático, el monitoreo de la contaminación y el uso industrial del agua son las razones generales para monitorear los niveles de agua, pero a lo largo de esta página, discutiremos aplicaciones más específicas. El nivel es reconocido como uno de los parámetros de agua más simples. En general, es el nivel de agua en cuerpos de agua, aguas subterráneas, tanques, etc.
En este proyecto, usará un interruptor de flujo para determinar si el tanque está lleno. Utilice el módulo SIM800L GSM para enviar SMS. Cuando el dispositivo está encendido y el motor arranca, el módulo GSM enviará un SMS al número de móvil preferido. Cuando el tanque esté lleno, recibirá otro SMS indicando que el tanque está lleno. En este momento, el motor se detendrá automáticamente. Además de la parte SMS, el estado ON/OFF del motor y el nivel de agua también se muestran en la pantalla LCD 16×2.
Lista de materiales
Un proyecto de monitoreo del nivel del agua de Arduino requiere los siguientes componentes: Todos estos componentes se pueden comprar en Amazon.
Esquema y configuración
Aquí está el circuito de un sistema de monitoreo de nivel de agua basado en GSM que usa Arduino, todos los componentes activos-pasivos están conectados a los pines digitales del Arduino.
La fuente de alimentación es la parte más importante de este proyecto. El módulo convertidor reductor CC-CC LM2596 se utiliza para alimentar el Arduino SIM800L Módulo GSM. El voltaje de entrada del LM2596 es de 3V a 40, pero el voltaje de salida debe ajustarse entre 3.4V y 4.4V usando un potenciómetro. Del mismo modo, los pines TX y RX del SIM800L están conectados a los pines Arduino D2 y D3.
Tiene dos LED, verde y rojo, conectados a los pines D4 y D6 de la placa Arduino a través de una resistencia de 560 ohmios. Un LED verde indica que el motor está en el estado ENCENDIDO porque el tanque no está lleno. Del mismo modo, un LED rojo indica el estado de apagado cuando el tanque está lleno. El zumbador está conectado al pin D5 en la placa Arduino y se enciende cuando el tanque está lleno.
Un sensor de flotador es un dispositivo utilizado para detectar el nivel de líquido en un tanque. El imán dentro de la estructura de la bombilla es un interruptor electromagnético de encendido / apagado que ayuda a detectar el nivel de agua presente en el tanque superior o sumidero. Se puede utilizar cualquier tipo de interruptor de sensor de flotador, incluidos los interruptores de flotador de láminas. En este proyecto, el terminal positivo del interruptor de flotador está conectado al A14 del Arduino, que es el pin digital 0.
Del mismo modo, el relé está conectado al pin analógico A15, que es el pin digital 15 del Arduino. Puede conectar la bomba de agua al relé. La bomba de agua se encenderá en función del estado ON/OFF del sensor de flotador. La pantalla LCD 16X2 se alimenta a través de una placa Arduino de 5V. Los pines LCD 4,6,11,12,13,14 están conectados a los pines digitales Arduino 12, 11, 10, 9, 8, 7.
Puede ensamblar circuitos en una placa de pruebas o placa Vero o usar su propia PCB personalizada para aplicaciones comerciales.
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. Utilicé EasyEDA para diseñar el esquema y la PCB. Placa esquemática y PCB Sistema de monitoreo del nivel de agua Arduino 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 puedes ordenar.
Puede ensamblar los componentes en la placa PCB.
Código fuente/Programa
El código fuente del sistema de monitoreo del nivel del agua está escrito en el IDE de Arduino. Copie el código a continuación y cárguelo en su nanoplaca Arduino.
Pero antes de cargar el código, inserte su número de teléfono móvil en la siguiente línea. Tanque de mensajes salientes lleno Función.
Sim 800.Printrung(“AT+CMGS=\”+91xxxxxxxxxx\”\r”); |
El código completo se muestra a continuación.
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 | #include< LCD.h> #include<wire.h> #include <SoftwareSerial.h> #define RX pin 2 #define TX pin 3 Software Serie Sim 800(RX Pin, Pin TX); Cristal líquido Pantalla de cristal líquido(12, 11, 10, 9, 8, 7); entero Sensor de flotador = 14; entero rojo = 6; entero verde = 4; entero relé = 15; entero zumbador = 5; entero Estado del botón = 1; No válido arreglo() { serial.empezar(9600); Sim 800.empezar(9600); serial.Printrung(“Inicialización serie del software SIM800L”); Sim 800.Printrung(“En”); Modo Pin(Sensor de flotador, INPUT_PULLUP); Modo Pin (rojo, salida); Modo Pin (relé, salida); Modo Pin (verde, salida); Modo Pin (zumbador, salida); Pantalla de cristal líquido.empezar(16, 2); Pantalla de cristal líquido.Establecer cursor(0, 0); Pantalla de cristal líquido.Impresión(“Bienvenido”); Pantalla de cristal líquido.Establecer cursor(0, 1); Pantalla de cristal líquido.Impresión(“Nuestro Proyecto”); demorar(3000); Pantalla de cristal líquido.Establecer cursor(0, 0); Pantalla de cristal líquido.Impresión(Representado por: – “); Pantalla de cristal líquido.Establecer cursor(0, 1); Pantalla de cristal líquido.Impresión(“How-to Electronics”); demorar(3000); Pantalla de cristal líquido.claro(); } No válido bucle() { Estado del botón = Lectura digital(Sensor de flotador); Si (Estado del botón == Alto) { Escritura digital(rojo, Bajo); Escritura digital(verde, Alto); Escritura digital(zumbador, Bajo); Escritura digital(relé, Bajo); serial.Printrung(“Nivel del agua – bajo”); Pantalla de cristal líquido.Establecer cursor(0, 0); Pantalla de cristal líquido.Impresión(“Nivel W:-Normal”); Pantalla de cristal líquido.Establecer cursor(0, 1); Pantalla de cristal líquido.Impresión(“Motor encendido”); SendMessageTankNotFull(); } de otra manera { Escritura digital(rojo, Alto); Escritura digital(verde, Bajo); Escritura digital(zumbador, Alto); Escritura digital(relé, Alto); serial.Printrung(“Nivel del agua – alto”); Pantalla de cristal líquido.Establecer cursor(0, 0); Pantalla de cristal líquido.Impresión(“Nivel W: – Completo ..”); Pantalla de cristal líquido.Establecer cursor(0, 1); Pantalla de cristal líquido.Impresión(“Motor apagado”); Tanque de mensajes salientes lleno();; } demorar(1000); } No válido Tanque de mensajes salientes lleno() { Sim 800.Printrung(“AT+CMGF=1”); demorar(1000); Sim 800.Printrung((chamuscar)26); demorar(100); Sim 800.Printrung(“AT+CMGS=\”+91xxxxxxxxxx\”\r”); demorar(1000); Sim 800.Printrung(“¡El tanque de agua está lleno, revisa la bomba!”); demorar(1000); } No válido SendMessageTankNotFull() { Sim 800.Printrung(“AT+CMGF=1”); demorar(1000); Sim 800.Printrung((chamuscar)26); demorar(100); Sim 800.Printrung(“AT+CMGS=\”+91xxxxxxxxxx\”\r”); demorar(1000); Sim 800.Printrung(“Iniciar el monitoreo del nivel del agua”); demorar(1000); } |
Pruebas del sistema de monitoreo y control del nivel del agua
Una vez que se carga el código, la placa está lista para ser probada. Sin embargo, el SIM800L solo funciona con redes 2G, por lo que antes de probar, debe insertar una SIM de 800G en la bandeja del SIM2L.
Luego encienda el dispositivo e inícielo. SIM800L también estará activo después de unos minutos una vez que obtenga una conexión de red. Inicialmente, el motor está apagado.
Si el tanque no está vacío o lleno (detectado por el interruptor de flotador), el motor arrancará automáticamente y continuará llenando el tanque hasta que esté lleno.
Cuando el tanque esté lleno, el motor se apagará automáticamente. En este punto, el interruptor del sensor de flotador indica la posición de apagado detectada por el pin digital Arduino.
Los SMS se envían cuando el motor arranca y cuando el motor se detiene. Puede establecer su propio mensaje personalizado con el código anterior.
Eso es todo para el sistema de monitoreo de nivel de agua basado en GSM que usa Arduino con notificaciones por SMS. Este proyecto se puede utilizar como una aplicación industrial o un proyecto universitario de demostración.
Video Tutorial y Guía
El sistema de monitoreo y control de nivel de tanque de agua basado en GSM utiliza Arduino con alertas SMS