Vistas de página en total

miércoles, 10 de julio de 2019

HiGrow Placa ESP para control de Humedad


Introducción
El módulo Higrow es un módulo de control de humedad y temperatura para plantas que por su bajo costo y alta integración puede ser muy útil.
El problema de este módulo es que su documentación deja mucho que desear, y que además tiene algunos defectos de integración. Pero , con un poco de paciencia se le puede sacar mucho partido.
Como no hay documentación ni páginas que den acceso sencillo a este módulo para sacarle más partido, he decidido realizar esta entrada en el blog.
Se le puede conseguir por poco dinero, y da una funcionalidad perfecta para integrar el control de riego del jardín en un solo módulo.
Una de las mejores características es integrar el cargador y el soporte de una batería li-ion, por lo que añadiéndole un panel solar nos permitirá tener un equipo totalmente autónomo  que podremos además conectar a un SIM800L o a un router 3G mediante wifi para comunicar con un sistema central.

Specificaciones
Chipset
ESPRESSIF-ESP32 240 MHz Xtensa®-/dual-core de 32-bit LX6 Microprocesador
FLASH
QSPI/flash/SRAM hasta 4x16, 4x18 MB
SRAM
SRAM de 520 kB
Clave
Bota y restablecer
Interruptor
Sistema de interruptor de potencia
Indicador de potencia de la lámpara
Rojo
USB a TTL
CP2102
Interfaz modular
Tarjeta SD UART SPI SDIO LED PWM TV PWM I2S I2C IRGPIO sensor táctil ADC DACLNA de amplificador-
-Chip sensor
Sensor Hall sensor de humedad de temperatura
En-reloj
40 MHz oscilador de cristal
Tensión de trabajo
2,3 V-3,6 V
Corriente de trabajo
De 130mA
Rango de temperatura de trabajo
-40 ~ + 85
Medio ambiente Rango de temperatura
Temperatura normal.
Tamaño
193mm * 29,5mm * 10,65mm
Fuente de alimentación de las especificaciones
Fuente de alimentación
USB 5 V/1A
Fuente de alimentación
18650 batería
WIFI
Descripción
Estándar
FCC/CE TELEC/KCC/SRRC/NCC
Protocolo
802,11 b/g/n/e/(802.11n acelerar to150Mbps) a-MPDU y A-MSDU polimerización, admite Intervalo de protección de 0,4 μS
Rango de frecuencia de
2,4 GHz ~ 2,5 GHz (2400 M ~ 2483,5 M)
Potencia de transmisión
22dBm
Distancia de comunicación
300 m
Bluetooth
Descripción
Protocolo
Cumple con bluetooth v4.2BR/EDR y BLE estándar
Frecuencia de radio
Con-98dBm sensibilidad NZIF receptor clase-1, clase-2 y emisor de clase-3 AFH
Frecuencia de audio
CVSD y SBC de frecuencia de audio
Software de especificación
Descripción
Wifi
Estación/SoftAP + estación/P2P
Mecanismo de seguridad
WPA/WPA2/WPA2-Enterprise/WPS
Tipo de cifrado
AES/RSA/ECC/SHA
Actualización del firmware
Descarga UART/OTA (a través de red/host para descargar y escribir firmware)
Desarrollo de Software
Admite el desarrollo del servidor de nube/SDK para el desarrollo del firmware del usuario
Protocolo de red
IPv4 IPv6 SSL TCP/UDP/HTTP/FTP/MQTT
Configuración de usuario
En + set de instrucciones, servidor de nube, android/iOSapp
OS
FreeRTOS


Lleva incorporado un DH11 para medir humedad y temperatura ambiente y un clon del soil moisture sensor  en su parte inferior para controlar la humedad del suelo.
Además, lleva los del ESP32 accesibles, por lo que es fácil ampliar mediante una tarjeta las funciones, tales como lectura de caudalímetros, sensores de presión, y el control de vávulas motorizadas para el riego.

Tutorial
Requirements
Pines preconectados
 De todos los pines del ESP32 algunos ya están conectados y usados para elementos incorporados en la placa. Estos son el DHT11, el Sensor de humedad y el led Azul.

//Definición Pines HiGrow
#define LED_BUILTIN 16
#define DHTPIN 22
#define Humity 32
Sensor de humedad


Esquema

Este es el esquema del soil moisture sensor, por lo que el conector representado no existe, y la señal de salda va directamente conectada al pin 32 del ESP32.

Programación
Para programar el módulo se puede seleccionar como tarjeta en Arduino NodeMCU-32s, y para que se pueda volcar el programa se deberá realizar un puente entre el pin 0 y masa antes de conectar la tarjeta al usb. Una vez puesto el puente y conectado al usb, se podrá volcar el código.
  Cuando acabe la descarga se soltará del usb y se soltará el puente.

Código de calibración
Para calibra el sensor, basta colocar este código en Arduino y volcarlo al Higrow.
En el monitor serie, a 115200 baud, aparecerá la medida y el estado según los valores límites que prefijemos. Para obtener los valores límites basta ver el valor en seco, y el valor sumergiendo el sensor en agua.
Luego se substituirán en el código por los valores aire y agua.

#define HUMITY_PIN 32
const int AirValue = 3250;   //you need to replace this value with Value_1
const int WaterValue = 1500;  //you need to replace this value with Value_2
int intervals = (AirValue - WaterValue)/3;
int Value = 0;
void setup() {
  Serial.begin(115200); // open serial port, set the baud rate to 9600 bps
}
void loop() {
Value = analogRead(HUMITY_PIN);  //put Sensor insert into soil
 Serial.println(Value);
if(Value > WaterValue && Value < (WaterValue + intervals))
{
  Serial.println("Very Wet");
}
else if(Value > (WaterValue + intervals) && Value < (AirValue - intervals))
{
  Serial.println("Wet");
}
else if(Value < AirValue && Value > (AirValue - intervals))
{
  Serial.println("Dry");
}
delay(100);
}


Conclusión

   Dado que el DHT11 se controla con un código estándar, una vez conocido su pin, no hace falta añadir ahora el ejemplo.
    Con esto ya estamos listos para programar el módulo con nuestro código, y añadir la placa especial para el control del resto de los elementos.
   En las siguientes entradas , realizaré con este módulo un control integral de riego, para ello, realizaré una tarjeta de interface para montar en el HiGrow, desde la que podré medir la presión del agua de red, leer el caudal mediante un caudalímetro de efecto hall de bajo coste, y accionar el riego mediante una válvula motorizada de bajo coste.
   Estos elementos junto con los sensores de humedad y ambiente, me permitirán realizar un control total del riego,:
  •         Controlar la presión que enviamos al sistema de goteo, cerrando la válvula de salida parcialmente evitando roturas por excesiva presión de la red.
  •         Controlar el riego mediante caudal, pudiendo detener el riego no por tiempo, sino por m3 de agua enviados.
  •         Hacer el riego solo si la humedad es poca, e incluso variar la cantidad de agua enviada, según la humedad del momento y la temperatura ambiente.
  •         Incluso podremos regar en horas sin sol, y fuera de heladas, combinando la temperatura, la humedad y la tensión dada por el panel solar, como sensor de iluminación.
  •         Comunicarnos mediante Telegram, para conocer los valores límite y variar los valores de control.