Tabla de contenido:
- Paso 1: diagrama de bloques del sistema
- Paso 2: Detalle del componente
- Paso 3: diagrama de circuito
- Paso 4: archivo de código y video de trabajo
- Paso 5: Código de programa
Video: Monitoreo de planta con alerta SMS: 5 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
Aquí creo Monitoreo de planta con alerta SMS. No se requiere servidor para este sistema de alerta. Es un proyecto muy económico y confiable.
Paso 1: diagrama de bloques del sistema
En los invernaderos de hoy, se requieren muchas mediciones de parámetros
monitorear y controlar la buena calidad y productividad de las plantas. Pero para obtener los resultados deseados hay algunos factores muy importantes que entran en juego como la temperatura, la humedad, la luz y el buen suelo, que son necesarios para un mejor crecimiento de la planta. Teniendo estos parámetros en mente, he construido un Sistema de Monitoreo Automático de Plantas sobre un módulo GSM usando Arduino. Este sistema es muy eficaz para cultivar plantas de buena calidad. La otra parte importante de este proyecto es que es completamente automático y funciona en baja tensión como; Suministro de 5-12 V CC.
Hoy en día, el módulo GSM se usa ampliamente para enviar el estado de SMS de cualquier tipo de datos. Aquí, en este proyecto, mediante el uso del módulo GSM SIM900A, podemos mantener información sobre los efectos del clima en las plantas. El sistema también deberá demostrar los cambios climáticos que afectan a la planta en su productividad y calidad, etc. El propósito principal de este proyecto es construir un Monitoreo Automático de Planta en el cual el módulo GSM envía la información sobre Temperatura, Humedad, Intensidad de Luz, Suelo humedad.
Como soy ciudadano indio, usé el módulo SIM900A (A es sinónimo de red asiática), pero puede usar diferentes tipos de módulo SIM según su país. Los códigos AT pueden diferir.
Paso 2: Detalle del componente
------------------ Mido cuatro tipos de parámetros, que van
para discutir a continuación: ------------------
Temperatura y humedad
El sensor DHT11 se utiliza para detectar la temperatura y la humedad. Cuando la temperatura y la humedad son altas, la raíz de las plantas se daña y la planta no crece bien.
Intensidad de luz
La intensidad de la luz es un factor importante para el crecimiento de las plantas. Para detectar la intensidad de la luz se utiliza LDR (resistencia dependiente de la luz). La intensidad de la luz se mide en LUX y, por lo tanto, para la demostración se utiliza luz de 100 LUX como nivel definido o umbral.
La humedad del suelo
La humedad del suelo es muy importante para el buen crecimiento de las plantas. Aquí el sensor de suelo se utiliza para medir el contenido de humedad en el suelo. Con este sensor podemos medir los datos del suelo en ambos sentidos, tanto analógicos como digitales.
Notificación por SMS:
Cuando el valor de cualquiera de los parámetros anteriores se excede de un nivel definido o nivel crítico, el sistema envía automáticamente un SMS al propietario o al operador con información de los parámetros relacionados y cuando el valor se encuentra en el rango normal o por debajo del nivel definido nuevamente, el sistema automáticamente enviar SMS al propietario o al operador con información de datos relacionados.
La notificación se envía solo una vez hasta que la condición no cambie, por lo que el propietario u operador no recibe SMS con frecuencia. Por lo tanto, se requiere un paquete de SMS más bajo.
Paso 3: diagrama de circuito
Todas estas piezas están fácilmente disponibles en cualquier sitio de compras en línea.
o con un conocido distribuidor de repuestos electrónicos. Todas las hojas de datos de los componentes están disponibles en la web. Si tiene alguna dificultad, no dude en ponerse en contacto con mi correo.
Paso 4: archivo de código y video de trabajo
Vídeo final de trabajo del proyecto
Paso 5: Código de programa
#incluir
#incluir
LiquidCrystal lcd (2, 3, 4, 5, 6, 7);
dht DHT; #define dht_dpin A1 #define LUX A0 #define suelo A3
flotador voltio, lux, valor; int valor_salida; int temperatura, humedad; int lightflag = 0; int humflag = 0; int bandera de suelo = 0; int tempflag = 0; int check; int prueba, prueba1; grado de byte [8] = {0b00011, 0b00011, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000};
configuración vacía ()
{Serial.begin (9600); // Inicializar serial para comunicarse con GSM Modem lcd.begin (16, 2); pinMode (suelo, ENTRADA); lcd.createChar (1, grado); lcd.setCursor (0, 0); lcd.print ("Sanidad vegetal"); lcd.setCursor (0, 1); lcd.print ("Monitoreo"); retraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("PROYECTO AGRI"); lcd.setCursor (0, 1); lcd.print ("Por S K CHHAYA"); retraso (1000); lcd.clear (); } bucle vacío () {valor_salida = lectura_análoga (suelo); valor_salida = mapa (valor_salida, 550, 0, 0, 100); valor = analogRead (LUX); voltio = (valor / 1023.0) * 5; lux = ((2500 / voltio) - 500) / 3,3; retraso (10000); // Dar suficiente tiempo para que GSM se registre en la red DHT.read11 (dht_dpin); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temp"); lcd.setCursor (0, 1); lcd.print (temperatura = DHT.temperatura); // Datos temporales en LCD lcd.write (1); lcd.print ("C"); retraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Humedad"); lcd.setCursor (0, 1); lcd.print (humedad = DHT.humedad); // Datos de humedad en LCD lcd.print ("%"); retraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Claro"); lcd.setCursor (0, 1); lcd.print (lux); // Datos de luz en LCD lcd.print ("LUM"); retraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Humedad"); lcd.setCursor (0, 1); lcd.print (valor_salida); // Datos del suelo en LCD lcd.print ("%"); retraso (1000); lcd.clear ();
si (temperatura 40) {SendSMS (); // SMS para temperatura alta} if (humedad 40) {SendSMS2 (); // SMS para Humedad alta} if (lux 100) {SendSMS4 (); // SMS para Luz alta} if (output_value == 950) {SendSMS7 (); // SMS para suelo seco} else if (output_value! = 950) {SendSMS6 (); // SMS para suelo húmedo}} void SendSMS () {if (tempflag == 0) {Serial.println ("AT + CMGF = 1"); retraso (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); retraso (500); Serial.print ("Temp alta,"); Serial.print ("Temp"); Serial.print (temperatura); Serial.println ("grado C"); Serial.println ((carácter) 26); lcd.setCursor (0, 0); lcd.print ("Temp alta"); retraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temperatura"); lcd.setCursor (0, 1); lcd.print (temperatura); lcd.write (1); lcd.print ("C"); retraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Envío de SMS"); retraso (1000); lcd.clear (); tempflag = 1; comprobar = 0; prueba = 0; retraso (10); }} void SendSMS1 () {if (tempflag == 1) {Serial.println ("AT + CMGF = 1"); retraso (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); retraso (500); Serial.print ("Temp baja,"); Serial.print ("Temp"); Serial.print (temperatura); Serial.println ("grado C"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Temp baja"); retraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temperatura"); lcd.setCursor (0, 1); lcd.print (temperatura); lcd.write (1); lcd.print ("C"); retraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Envío de SMS"); retraso (1000); lcd.clear (); tempflag = 0; comprobar = 0; prueba = 0; retraso (10); }} void SendSMS2 () {if (humflag == 0) {Serial.println ("AT + CMGF = 1"); retraso (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); retraso (500); Serial.print ("Humedad alta"); Serial.print (humedad); Serial.println ("%"); Serial.println ((carácter) 26); lcd.setCursor (0, 0); lcd.print ("Humedad alta"); retraso (1000); lcd.setCursor (0, 1); lcd.print ("Humedad"); lcd.print (humedad); lcd.print ("%"); retraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Envío de SMS"); retraso (1000); lcd.clear (); humflag = 1; comprobar = 0; prueba = 0; retraso (10); }}
void SendSMS3 () {if (humflag == 1) {Serial.println ("AT + CMGF = 1"); retraso (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); retraso (500); Serial.print ("Humedad baja"); Serial.print ("Humedad"); Serial.print (humedad); Serial.println ("%"); Serial.println ((carácter) 26); lcd.setCursor (0, 0); lcd.print ("Humedad baja"); retraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Humedad"); lcd.setCursor (0, 1); lcd.print (humedad); lcd.print ("%"); retraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Envío de SMS"); retraso (1000); lcd.clear (); humflag = 0; comprobar = 0; prueba = 0; retraso (10); }} void SendSMS4 () {if (lightflag == 0) {Serial.println ("AT + CMGF = 1"); // Para enviar SMS en modo de texto, retraso (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); // Retraso del cambio al número de teléfono de destino (500); Serial.print ("Buena LUZ"); Serial.print ("Intensidad"); Serial.print (lux); Serial.println ("LUX"); Serial.println ((carácter) 26); // el carácter de parada Ctrl + Z lcd.setCursor (0, 0); lcd.print ("Buena luz"); retraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Intensidad"); lcd.setCursor (0, 1); lcd.print (lux); lcd.print ("LUX"); retraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Envío de SMS"); retraso (1000); lcd.clear (); bandera de luz = 1; comprobar = 0; prueba = 0; retraso (10); }} void SendSMS5 () {if (lightflag == 1) {Serial.println ("AT + CMGF = 1"); retraso (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); retraso (500); Serial.print ("LUZ BAJA,"); Serial.print ("Intensidad"); Serial.print (lux); Serial.println ("LUX"); Serial.println ((carácter) 26); lcd.setCursor (0, 0); lcd.print ("Poca luz"); retraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Intensidad"); lcd.setCursor (0, 1); lcd.print (lux); lcd.print ("LUX"); retraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Envío de SMS"); retraso (1000); lcd.clear (); lightflag = 0; comprobar = 0; prueba = 0; retraso (10); }} void SendSMS6 () {if (bandera de suelo == 0) {Serial.println ("AT + CMGF = 1"); retraso (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); retraso (500); Serial.print ("Suelo seco"); Serial.print ("Humedad"); Serial.print (valor_salida); Serial.println ("%"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("suelo seco"); retraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Humedad"); lcd.setCursor (0, 1); lcd.print (valor_salida); lcd.print ("%"); retraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Envío de SMS"); retraso (1000); lcd.clear (); bandera de suelo = 1; comprobar = 0; prueba = 0; retraso (10); }} void SendSMS7 () {if (bandera de suelo == 1) {Serial.println ("AT + CMGF = 1"); retraso (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); retraso (500); Serial.print ("Suelo húmedo"); Serial.print ("Humedad"); Serial.print (valor_salida); Serial.println ("%"); Serial.println ((char) 26); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Suelo húmedo"); retraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Humedad"); lcd.setCursor (0, 1); lcd.print (valor_salida); lcd.print ("%"); retraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Envío de SMS"); retraso (1000); lcd.clear (); bandera del suelo = 0; comprobar = 0; prueba = 0; retraso (10); }}
Recomendado:
Sistema de alerta de suelo con poca humedad para su planta: 5 pasos
Sistema de alerta de suelo de baja humedad para su planta: En varias residencias, es común encontrar frascos con diferentes tipos de plantas. Y con la gran cantidad de actividades del día a día, la gente se olvida de regar sus plantas y acaban muriendo por falta de agua. Para evitar este problema, decidimos
Alarma de planta de alerta de sed: 13 pasos
Alerta de sed Alarma de planta: tengo que confesarme: soy un padre de planta horrible. Es bueno sacar eso de mi pecho. No puedo entenderlo, ya sea que esté golpeando la fotosíntesis con demasiada fuerza o que se esté volviendo liviano con el viejo H2O. Parece que nada de lo que haga mantendrá a estos tíos
Sistema de distribución y monitoreo remoto de energía de una planta de energía solar: 10 pasos
Sistema de distribución y monitoreo remoto de energía de una planta de energía solar: El propósito de este proyecto es monitorear y distribuir la energía en los sistemas de energía (sistemas de energía solar). El diseño de este sistema se explica en abstracto como sigue. El sistema contiene varias redes con aproximadamente 2 paneles solares en
Monitoreo y alertas de planta con ESP8266 y AskSensors IoT Cloud: 6 pasos
Monitoreo y alertas de plantas con ESP8266 y AskSensors IoT Cloud: este proyecto tiene como objetivo construir un sistema inteligente de monitoreo de plantas utilizando ESP8266 y la plataforma AskSensors IoT. Este sistema se puede usar para realizar un seguimiento del nivel de humedad del suelo para proporcionar criterios objetivos para las decisiones de riego. que ayudan a asegurar el riego
Monitoreo de temperatura ambiente controlada por Raspberry Pi con salida de imagen Gnuplot y capacidad de alerta por correo electrónico: 7 pasos
Monitoreo de temperatura ambiente controlada de Raspberry Pi con salida de imagen Gnuplot y capacidad de alerta por correo electrónico: donde trabajo, hay una sala muy importante que alberga muchas computadoras. La temperatura ambiente de esta sala debe ser muy fría para optimizar el rendimiento de estos sistemas. Se me pidió que creara un sistema de monitoreo que tuviera la capacidad de