Sistema de monitoreo de la salud de las plantas

Seguimiento del agua y luz que recibe una planta

Eres un amante de las plantas y tienes que viajar a algún lugar. Le pides a tu hermano a que cuide las plantas de tu casa. Pero, ¿qué pasa si tu hermano se olvida de regar o de cuidarlos? Bueno, no te preocupes, te tengo una solución para ti. Con algunos conceptos simples y geniales de IoT, puede evitar que eso suceda. Aquí la idea básica es enviarle mensajes programados por correo electrónico o un mensaje normal que le diga si el nivel de humedad y la cantidad de luz solar que recibe la planta son buenos o bajos. ¡Déjame enseñarte como!

Componentes de hardware requeridos

Sensor de humedad del suelo

IoT salud plantas

Módulo Wifi Bolt IoT

IoT salud plantas

Sensor LDR

Resistencia – 10k ohmios

Cargador de teléfono inteligente

Cables de puente, macho a hembra

Conector hembra / Pin de encabezado

Aplicaciones / servicios utilizados :

  1. Bolt Cloud

Los datos recopilados por los sensores se envían a la nube donde se procesan y analizan.

  1. Integromat

Con el enfoque interactivo de Integromat, se puede observar en tiempo real cómo se ejecuta su automatización y, en consecuencia, activar mensajes programados en su teléfono. Saber más en integromat.com

  1. Twilio

Twilio se utiliza para canales de comunicación como voz, texto, chat, video y correo electrónico al virtualizar la infraestructura de comunicaciones del mundo a través de API que son lo suficientemente simples para que las use cualquier desarrollador. Aquí usamos solo la función de mensaje de texto. Conozca más en twilio.com.

Conexiones de hardware 

  1. Inserte un cable del LDR en el pin 3v3 del módulo de conexiones. Inserte otro cable del LDR en el pin A0
  2. Inserte una pata de la resistencia de 10k Ohm en el pin GND. Inserte la otra pata de la resistencia también en el pin A0.
  3. Conecte la sonda del sensor de suelo al circuito del amplificador usando los cables de puente hembra a hembra.
  4. Ahora, conecte el VCC, GND, DO (Pin de salida digital) del circuito amplificador a 3.3V, GND, 0 (pin GPIO / Pin digital) del módulo Wifi BOLT respectivamente. Conecte el cable USB al Módulo Wifi BOLT, antes de encender el dispositivo asegúrese de que los pines o cables de 3.3V y GND que salen de ellos no se toquen entre sí.

IoT salud plantas

Construyendo la lógica en Integromat 

  1. Si no tiene una cuenta en Integromat, utilice el siguiente link enlace.
  2. En la sección del tablero en la esquina superior derecha, haga clic en «Crear nuevo escenario» para crear un nuevo escenario.
  3. Ahora cree el siguiente flujo lógico como se muestra a continuación.

IoT salud plantas

  1. Después de construir la lógica, ahora necesitamos ingresar las credenciales para los servicios que se están utilizando. Es decir, el ID del dispositivo Bolt y la clave API para el servicio BoltIoT y SSID, número de token de autenticación, número del remitente para el servicio Twilio. Puede encontrar todos estos en cloud.boltiot.com twilio.com respectivamente. Mire las imágenes a continuación para obtener más ayuda.

IoT salud plantas

IoT salud plantas

  1. Adjunte el controlador de errores de reanudación a ambos servicios BoltIoT para evitar que Integromat detenga el escenario automáticamente en caso de cualquier error. En el controlador, use cualquier número que deba asignarse al Pin en caso de error. Por ej. 12345 (en el caso de nuestro) como se muestra en la imagen siguiente.

IoT salud plantas

Códigos

nano conf.py

Este código de Python consta de las configuraciones

SSID  =  ‘Puede encontrar SSID en su Panel de Twilio’

AUTH_TOKEN  =  ‘Puede encontrarlo en su panel de Twilio’

FROM_NUMBER  =  ‘Este es el no. generado por Twilio. Puede encontrar esto en su Panel de Twilio ‘

TO_NUMBER  =  ‘Este es su número. Asegúrese de agregar +91 al principio ‘

API_KEY  =  ‘Esta es la clave API de su cuenta de Bolt Cloud’

DEVICE_ID  =  ‘Este es el ID de su dispositivo Bolt’

FRAME_SIZE  =  10

MUL_FACTOR  =  6

sudo nano anomaly_detection.py

import conf, json, time, math, statistics
from boltiot import Sms, Bolt
def compute_bounds(history_data,frame_size,factor):
    if len(history_data)<frame_size :
        return None

    if len(history_data)>frame_size :
        del history_data[0:len(history_data)-frame_size]
    Mn=statistics.mean(history_data)
    Variance=0
    for data in history_data :
        Variance += math.pow((data-Mn),2)
    Zn = factor * math.sqrt(Variance / frame_size)
    High_bound = history_data[frame_size-1]+Zn
    Low_bound = history_data[frame_size-1]-Zn
    return [High_bound,Low_bound]

mybolt = Bolt(conf.API_KEY, conf.DEVICE_ID)
sms = Sms(conf.SSID, conf.AUTH_TOKEN, conf.TO_NUMBER, conf.FROM_NUMBER)
history_data=[]

while True:
    response = mybolt.analogRead('A0')
    data = json.loads(response)
    if data['success'] != 1:
        print("There was an error while retriving the data.")
        print("This is the error:"+data['value'])
        time.sleep(10)
        continue

    print ("This is the value "+data['value'])
    sensor_value=0
    try:
        sensor_value = int(data['value'])
    except e:
        print("There was an error while parsing the response: ",e)
        continue

    bound = compute_bounds(history_data,conf.FRAME_SIZE,conf.MUL_FACTOR)
    if not bound:
        required_data_count=conf.FRAME_SIZE-len(history_data)
        print("Not enough data to compute Z-score. Need ",required_data_count," more data points")
        history_data.append(int(data['value']))
        time.sleep(10)
        continue

    try:
        if sensor_value > bound[0] :
            print ("The light level increased suddenly. Sending an SMS.")
            response = sms.send_sms("Someone turned on the lights")
            print("This is the response ",response)
        elif sensor_value < bound[1]:
            print ("The light level decreased suddenly. Sending an SMS.")
            response = sms.send_sms("Someone turned off the lights")
Acerca de Rohith Challa 1 Articles
Aficionado al cine, al fitness y a los automóviles. Soy un estudiante de último año que cursa mi licenciatura en Ingeniería Electrónica y de la Comunicación del Instituto de Tecnología Keshav Memorial. Internet de las cosas es uno de mis dominios favoritos en la era moderna, ya que es la combinación de hardware y software, y siempre hay espacio para la innovación y hace la vida más fácil. Soy un apasionado de los automóviles. Mis pasatiempos incluyen jugar al fútbol y leer revistas de automóviles.

1 Comentario

Dejá un Comentario

Tu dirección de correo no será publicada.


*