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.



martes, 21 de junio de 2016

Arduino ISP - Problemas con los drivers

        Yo no suelo grabar directamente el programa mediante programador en Arduino, El arduino es un sistema muy pobre, y solo lo uso para realizar pequeños tes previos de algunos componentes. por lo tanto no había usado un grabador hasta ahora.
        Pero yo uso mucho el terminal VM800P50 de FTDI. Es una pantalla muy cómoda para realizar HMI o pequeñas utilidsades para control y presentación de datos. En este caso esta versión de entrenamiento lleva un ATmega328 embebido.
       Como en todos los arduinos lleva cargado el bootloader, pro lo que para programarla no es necesario grabador. Pero Se me quemo el ATmega y tuve que cambiarlo y reprogramarlo. Para ello en vez de comprar el programador de FTDI para el VM800 decidí comprar el  de arduino que me permitía usarlo de forma más genérica con cuaquier arduino. Aunque como he dicho antes yo realmente prefiero PIC.
     El hecho es que compré el Arduino ISP.
     Cuando me llegó voy a usarlo, y como es de espera el sistema me pide el driver.... Yo, confiado, voy a la página de arduino y me bajo el driver. Pero nada, no lo reconoce. Verifico en  el administrador de dispoditivos, y si, el sistema ha reconocido el dispositivo en el usb como Arduino ISP. Pero nada, no instala el driver.
    Dí vueltas, por la red, y no hay indicaciones del problema. Hasta que encontré un hilo en que hablaba del VID. Y esa era la solución, aunque no lo explicaba claramente.
    Por eso he decidido hacer esta entrada. Para explicar más directamente el problema, para que pueda aparece en la red y lo resuelva al que le vuelva a aparecer. porque sucederá facilmente.

     El problema está en la identificación y software de control de usb grabado en el ATtiny44. Resulta que hay dos páginas diferentes de arduino. Arduino. org y arduino.cc y se están fabricando arduinos certificados bajo estas dos licencias. El caso es que el ISP que yo he comprado está hecho en Italia y efectivamente en su placa por el reverso dice ARDUINO.ORG

   Mientras que la placa de arduino.cc es así.
         
 Pequeñas diferencia. ¿No? Que más dá si es certificado Arduino. Pues no. Si es una diferencia improtante. El VID de la tarjeta y el driver son diferentes. Por lo tanto, no sirve el de uno para el otro.

       Es decir. Si tenemos la .org debemos descargar del driver de Arduino.org. Si tenemos la .cc debemos descargar el driver de Arduino.cc

       Si el arduino ISP no es certificado y es clon habrá que estar seguro de que VID tiene, El VID de arduino.cc es 2341, mientras que el arduino.org es 2A03. Ese número se puede ver en las propiedades del equipo en el Administrador de dispositivos.

       



Como no podía ser de otro modo, cuando queramos usar el grabador, el software tampoco lo reconocerá si fue cargado desde .cc.
        Para que reconozca el grabador el IDE debe de ser cargado desde arduino.org. Entonces como grabador te aparecera Arduino ISP y Arduino ISP org 
    Y por fin podrems grabar.