Tabla de contenido:
Video: Monitor de planta con ESP32 Thing y Blynk: 5 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
Visión general
El objetivo de este proyecto es crear un dispositivo compacto capaz de monitorear las condiciones de una planta de interior. El dispositivo permite al usuario verificar el nivel de humedad del suelo, el nivel de humedad, la temperatura y la temperatura "similar a la que se siente" desde un teléfono inteligente utilizando la aplicación Blynk. Además, el usuario recibirá una alerta por correo electrónico cuando las condiciones se vuelvan inadecuadas para la planta. Por ejemplo, el usuario recibirá un recordatorio para regar la planta cuando los niveles de humedad del suelo caigan por debajo de un nivel adecuado.
Paso 1: requisitos
Este proyecto utiliza una cosa Sparkfun ESP32, un sensor DHT22 y un sensor electrónico de humedad del suelo de ladrillos. Además, se requiere una red wifi y la aplicación Blynk. Preferiblemente, se debe crear un recinto impermeable para contener el ESP32. Si bien este ejemplo usa una toma de corriente estándar para una fuente de energía, la adición de una batería recargable, un panel solar y un controlador de carga permitiría que el dispositivo se alimentara con energía renovable.
Paso 2: Blynk
Para ser, descarga la aplicación Blynk y crea un nuevo proyecto. Tome nota del token de autenticación: se usará en el código. Cree nuevos widgets de visualización en la aplicación Blynk y seleccione los pines virtuales correspondientes definidos en el código. Establezca el intervalo de actualización para presionar. A cada widget se le debe asignar su propio pin virtual.
Paso 3: IDE de Arduino
Descarga Arduino IDE. Siga las instrucciones de descarga para el controlador de cosa ESP32 y la demostración para garantizar la conectividad wifi. Descargue las bibliotecas Blynk y DHT incluidas en el código. Complete el token de autenticación, la contraseña wifi, el nombre de usuario wifi y el correo electrónico en el código final. Utilice el código de demostración del sensor de humedad del suelo para encontrar los valores mínimo y máximo para el tipo de suelo. Registre y reemplace estos valores en el código final. Reemplace los valores mínimos de temperatura, humedad del suelo y humedad de la planta en el código final. Sube el código.
Paso 4: Constrúyelo
Primero, conecte el sensor de humedad del suelo a 3.3V, tierra y el pin de entrada 34. Tenga en cuenta que es integral que el interruptor esté en A porque se usará la configuración analógica para este sensor. Luego, conecte el sensor DHT a 3.3V, tierra y el pin de entrada 27. El sensor DHT22 requiere una resistencia de 10K Ohmios entre el VCC y el pin de salida de datos. Asegúrese de revisar el diagrama DHT para asegurarse de que esté cableado correctamente. Configure el ESP32 dentro de un recinto impermeable con el sensor de humedad en el suelo y el sensor DHT sobre la superficie. Conéctese a una fuente de alimentación y disfrute de los datos sobre el entorno de su planta.
Paso 5: Código
// Bibliotecas incluidas
#define BLYNK_PRINT Serie
#include #include #include #include "DHT.h"
// Información del sensor DHT
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #define DHTPIN 27 // Pin digital conectado al sensor DHT DHT dht (DHTPIN, DHTTYPE); // Inicializar el sensor DHT.
// definir pines de entrada y salidas
int suelo_sensor = 34; // definir el número de pin de entrada analógica conectado al sensor de humedad
int output_value; // definir como salida
int nivel de humedad; // definir como salida
int notificado = 0; // define notifed como 0
int timedelay = 60000L; // establece el temporizador para que se ejecute y obtenga datos una vez cada minuto o 60, 000 milisegundos
// establecer valores mínimos para la planta
int min_moisture = 20; int min_temperature = 75; int min_humidity = 60;
// Debería obtener el token de autenticación en la aplicación Blynk.
char auth = "Auth_Token_Here";
// Tus credenciales de WiFi.
char ssid = "Wifi_Network_Here"; char pass = "Wifi_Password_Here";
Temporizador BlynkTimer;
// Esta función envía el tiempo de actividad de Arduino cada segundo a Virtual Pin (5).
// En la aplicación, la frecuencia de lectura del widget debe establecerse en PUSH. Esto significa // que usted define con qué frecuencia enviar datos a la aplicación Blynk.
void Sensors () // función principal para leer sensores y presionar para blynk
{output_value = analogRead (suelo_sensor); // Leer la señal analógica del suelo_sensor y definir como output_value // Mapear output_vlaue de los valores mínimo, máximo a 100, 0 y restringir entre 0, 100 // Usar código de muestra y monitor de serie para encontrar el valor mínimo y valores máximos para el sensor individual y el tipo de suelo para una mejor calibración nivel de humedad = restricción (mapa (valor_salida, 1000, 4095, 100, 0), 0, 100); flotar h = dht.readHumidity (); // Leer humedad flotante t = dht.readTemperature (); // Lee la temperatura como Celsius (por defecto) float f = dht.readTemperature (true); // Leer la temperatura como Fahrenheit (isFahrenheit = true) // Calcular el índice de calor en Fahrenheit (predeterminado) float hif = dht.computeHeatIndex (f, h); // Compruebe si alguna lectura falló y salga antes (para volver a intentarlo). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println (F ("¡No se pudo leer el sensor DHT!")); regreso; } // Esto conecta los vales a los pines virtuales definidos en los widgets en la aplicación Blynk Blynk.virtualWrite (V5,iditylevel); // Envía el nivel de humedad al pin virtual 5 Blynk.virtualWrite (V6, f); // Envía la temperatura a virtual pin 6 Blynk.virtualWrite (V7, h); // Enviar humedad al pin virtual 7 Blynk.virtualWrite (V8, hif); // Enviar índice de calor al pin virtual 8
si (notificado == 0)
{if (nivel de humedad <= min_moisture) // Si el nivel de humedad es igual o inferior al valor mínimo {Blynk.email ("Email_Here", "Plant Monitor", "Water Plant!"); // Enviar correo electrónico a la planta de agua} delay (15000); // Los correos electrónicos de Blynk deben tener una diferencia de 15 segundos. Retraso 15000 milisegundos if (f <= min_temperature) // Si la temperatura es igual o inferior al valor mínimo {Blynk.email ("Email_Here", "Plant Monitor", "Temperature Low!"); // Envíe un correo electrónico que indique que la temperatura es baja
}
retraso (15000); // Los correos electrónicos de Blynk deben tener una diferencia de 15 segundos. Retraso 15000 miliseconos if (h <= min_humidity) // Si la humedad es igual o inferior al valor mínimo {Blynk.email ("Emial_Here", "Plant Monitor", "Humidity Low!"); // Envíe un correo electrónico que indique que la humedad es baja} notificados = 1; timer.setTimeout (timedelay * 5, resetNotified); // multiplica el retraso por el número de minutos deseados entre los correos electrónicos de advertencia repetidos}}
void resetNotified () // función llamada para restablecer la frecuencia del correo electrónico
{notificado = 0; }
configuración vacía ()
{Serial.begin (9600); // Consola de depuración Blynk.begin (auth, ssid, pass); // conectarse a blynk timer.setInterval (timedelay, Sensors); // Configure una función para que se llame cada minuto o qué tiempo de retardo se establece en dht.begin (); // ejecutar el sensor DHT}
// El bucle vacío solo debe contener blynk.run y timer
bucle vacío () {Blynk.run (); // Ejecuta blynk timer.run (); // Inicia BlynkTimer}
Recomendado:
Cómo construir un monitor de planta con Arduino: 7 pasos
Cómo construir un monitor de planta con Arduino: En este tutorial aprenderemos cómo detectar la humedad del suelo usando un sensor de humedad y hacer parpadear un LED verde si todo está bien y Pantalla OLED y Visuino
Monitor de planta Arduino con sensor capacitivo de suelo - Tutorial: 6 pasos
Monitor de planta Arduino con sensor capacitivo de suelo - Tutorial: En este tutorial aprenderemos cómo detectar la humedad del suelo utilizando un sensor de humedad capacitivo con pantalla OLED y Visuino. ¡Vea el video
Monitor inteligente de plantas para interiores: sepa cuándo su planta necesita riego: 8 pasos (con imágenes)
Monitor inteligente de plantas para interiores: sepa cuándo su planta necesita riego: Hace un par de meses, hice una varilla de control de la humedad del suelo que funciona con baterías y se puede pegar en la tierra de la maceta de su planta de interior para brindarle información útil sobre el suelo. el nivel de humedad y los LED parpadean para indicarle cuándo debe
Gestión de planta solar basada en peso con ESP32: 7 pasos (con imágenes)
Manejo de plantas basado en el peso solar con ESP32: cultivar plantas es divertido y regarlas y cuidarlas no es realmente una molestia. Las aplicaciones de microcontroladores para monitorear su salud están en Internet y la inspiración para su diseño proviene de la naturaleza estática de la planta y la facilidad de monitoreo
Monitor de planta: 12 pasos (con imágenes)
Monitor de planta: El propósito del monitor de planta es escanear y administrar agua si es necesario a una planta conectada al sensor de suelo analógico dado. Las piezas necesarias para este proyecto son: 1x Arduino Uno1x Pantalla LCD1x Servo Motor1x Unidad de sensor de suelo1x Potenciómetro1x Medical 30c