Les presento un modulo TTGO ESP32, este dispositivo ha llamado mi atención dado que es muy completo, he pedido uno a la tienda en linea Banggood.com para pruebas, lo interesante es la unión del conocido modulo ESP32 , Sensor DHT11 (Temperatura/Humedad Relativa), Pantalla OLED blanca de 0,96 pulgadas, circuito de carga para batería de Litio, PCB perforada para mejoras y una carcasa protectora todo en solo dispositivo.
Características y Desarmado
Esta versión de ESP32 cuenta con características particulares:
Modulo ESP32 en encapsulado QFN
Pantalla OLED blanca de 0,96 pulgadas por i2c asociada a los pines :
- OLED_SDA — GPIO4
- OLED_SCL — GPIO15
- OLED_RST — GPIO16
Circuito y interfaz de carga para la batería de litio.
integrado serial a USB CP2102.
Codigo por defecto
Por defecto trae el código básico de lectura del sensor DHT11 y visualiza sus valores en el display oled blanco.
Por defecto tiene este Ejemplo: LilyGO/ESP32-DHT-SSD1306
Por curiosidad he desarmado el modulo y conocer que tiene en su interior. tiene 2 tornillo en la parte de atrás para abrirlo.
Cuidadosamente sacar el modulo Wemos del Socket y tiene una pcb perforada para adicionar mas sensores o funciones, tiene otros 4 tornillos entre la pcb perforada y la carcaza.
La batería, no tiene referencia aparentemente una batería de litio o polímero de litio realmente ni idea, desconozco su capacidad .
El sensor DHT11 esta soldado a la PCB perforada, como podemos observar.
Advertencia: Por favor no realizar ninguna modificación a la batería, si no tiene conocimiento las baterías de litio mal manejadas son peligrosas, SI Explotan, no modificar!!!.
Dado que no hay información detallada de la conexión del sensor DTH11, realizando seguimiento esta conectado al pin 22 o exactamente GPIO22.
ESP32, Circuito de carga y Antena
Donde Comprarlo muy barato
Pruebas Realizadas
Hemos realizado 2 pruebas con este modulo con 2 plataformas de programación para los ESP32 las cuales son Arduino IDE y ESP-IDF.
Realizare la primera prueba en Arduino IDE con placas ESP32 por facilidad.
La segunda prueba con ESP-IDF para mi es la mas interesante dado que es la plataforma de desarrollo oficial de para los ESP32 y tiene mas ventajas en uso de recursos eso si es un poco mas compleja su implementacion, pero la recomiendo para aplicaciones robustas ya que tiene FreeRTOS.
Arduino IDE
Después de algunas pruebas, he creado este ejemplo en arduino IDE, Requiere las librerías:
- Wire.h para DTH11 compatible con ESP32.
- SSD1306.h para el display oled.
Nota: Pueden descargar el código al final del articulo desde Github.
ESP-IDF
Puede parecer complejo y difícil pero los invito a utilizar ESP-IDF, no soy un experto en FreeRTOS, pero hay gran documentación y es muy robusto, si no les gusta make desde terminal de comandos y prefieren una interface pueden utilizar «eclipse».
Oficialmente este ejemplo no esta terminado, solo tengo la lectura del sensor DHT11, aun estoy probando y configurando el display oled, en esp-idf.
Realice pruebas de varios ejemplos disponibles de ESP-IDF y DHT11, los ejemplos utilizaban librerías no funcionaron muy bien, la lectura de thingspeak-esp32-dht11 es es una trama, he encontrado un muy buen ejemplo creado hamsternz agradecimiento total por compartir su conocimiento.
el ejemplo thingspeak-esp32-dht11 lo tome como referencia lo descargue y realice algunas modificaciones, su ejemplo es muy útil para próximas pruebas dado que utiliza muy bien el modo sueño en esp32, el cual realmente se utiliza de manera eficiente en ESP-IDF.
He retirado del código toda comunicación y solo he utilizado la lectura del sensor y he creado una tarea «DHT_task» para que sea cíclico.
Nota: Pueden descargar el código al final del articulo desde Github.
Compilar código en ESP-IDF «make all»
Descargar código a ESP32 «make flash»
Visualizar terminal lectura de Sensor DHT11, «make monitor»
A diferencia de librerías este ejemplo en su trama y lectura del sensor permite solicitar la Temperatura con un decimal 33.9 °C, excelente, posiblemente con algunas modificaciones en las librerías arduino también pueda hacerlo.
Pruebas con librerias SSD1306.h en ESP-IDF
Actualmente estoy realizando pruebas con el display oled y las librerias SSD1306.h, probando gran variedad de librerías creadas por TaraHoleInIt/tarablessd1306 de antemano gracias por compartir su conocimiento, cuando tenga un ejemplo concreto con el oled lo compartiré.
Código de prueba de SSD1306.h en ESP-IDF.
Video: Review Wemos TTGO ESP32 Oled 2.0 Sensor : Arduino IDE & ESP-IDF
Conclusiones y Sugerencias
Personalmente es un buen equipo que reúne las características que necesitamos en un dispositivo de medición, encapsulado que técnicamente protege nuestro ESP32, un sensor, batería y posible expansión.
Agradecimientos a la tienda Banggood.com por este producto.
Es muy util para nuestras pruebas IoT, se podria implemntar periodos de sueño y transmisiones HTTPo HTTPS o MQTT, Confiezo no he investigado el modo bajo consumo de esp32, quizas com pruebas descubramos cuanto máximo dura.
Conclusión 1 : Duración de batería
Me imagino que se preguntan cuanto dura la batería, no he realizado pruebas concretas o reales, solo he realizado una prueba básica, inicialmente he descargado el código del ejemplo arduino ide, que utilizamos arriba, sin modo sueño o modo bajo consumo, cronometrando el modulo ha cargado por USB 10 minutos o mas y al desconectarlo ha durado encendido solo lectura 1 hora con 46 minutos hasta que se visualizo NaN en ambas lecturas y se apago.
Tener en cuenta
Mencionare factores que afectan la duración de batería no considerados en la prueba anterior:
- Display encendido todo el tiempo.
- Sin modo sueño o bajo consumo.
- Sin comunicación Wifi o Bluetooth
- No se de des habilitaron periféricos no utilizados del ESP32.
- Obviamente al habilitar el Wifi el consumo incrementara considerablemente, quizás esta batería no de mucho tiempo.
Sugerencias
Yo entiendo la facilidad de la programación en Arduino IDE, pero Recomiendo utilizar ESP-IDF, por la gran cantidad de ventajas que presenta Vs Arduino ide, ESP-IDF utiliza FreeRTOS, permite utilizar y des-habilitar hardware, depuración como un sistema Operativo, permite administrar al 100% el ESP32, tiene mas ejemplos e implementaciones detalladas, esta muy bien documentado.
Por supuesto que seguiré probando en Arduino IDE, Solo presento 2 posibilidades.
Futuras Implementaciones
Este modulo quizás con un panel solar y en modo bajo consumo, realicemos integraciones con plataformas IoT como Emoncms , Ubidots, Cayenne, Blynk o Node-RED utilizando protocolos MQTT o HTTP.
Quizás adicionar un modulo LoRa dado que hay espacio, o mas sensores con protocolo i2c o SPI.
Ejemplos Interesantes o Recomendados
Descargas
- Ejemplo por defecto: LilyGO/ESP32-DHT-SSD1306
- Ejemplo Arduino IDE:
- Ejemplo ESP-IDF. (Solo DHT11)