Wemos TTGO
Introducción
Wemos® TTGO, este dispositivo integra: Modulo ESP32, Sensor DHT11 (Temperatura/Humedad Relativa), Pantalla OLED 0,96 pulgadas, Modulo de carga para batería de Litio, PCB perforada para mejoras y un gabinete.
Investigando los nuevos equipos de desarrollo para IoT, dimos con un módulo de desarrollo de la compañía "Wemos", que posee integrados dispositivos de uso general, al que podemos agregar nuestro firmware para integrarlo a nuestro proyectos.
Wemos® TTGO, este dispositivo integra: Modulo ESP32, Sensor DHT11 (Temperatura/Humedad Relativa), Pantalla OLED 0,96 pulgadas, Modulo de carga para batería de Litio, placa universal para adicionar disposivos y un gabinete.
Características y Despiece
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
- Controlador de carga para la batería de litio
- Interfaz serial USB: CP2102
Firware pre-instalado
De origen trae el código básico de lectura del sensor DHT11 y visualiza sus valores en el display oled.
Despiece

- El TTGO viene con 2 tornillo en la parte de atrás para abrirlo el gabinete y tener acceso a los componentes.
- Al sacar el modulo Wemos del Socket y tiene una placa universal perforada para adicionar mas sensores o componentes, otros 4 tornillos unen el PCB al gabinete.
- La batería, no tiene especificaciones de capacidad o tipo. Parece ser una batería de litio o polímero de litio.
- El sensor DHT11 esta soldado a la placa universal.
- El wemos cuenta con un control de carga donde esta conectada la batería.
Test con sketch básico
El ejemplo a continuación utiliza dos librerías compatibles con el ESP32
librerías
/* SSD1306 */
#include "SSD1306.h"
#define SDA_PIN 4 // GPIO21 -> SDA
#define SCL_PIN 15 // GPIO22 -> SCL
#define SSD_ADDRESS 0x3c
SSD1306 display(SSD_ADDRESS, SDA_PIN, SCL_PIN);
/* DHT */
#include "DHT.h"
#define DHTPIN 22
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
float localHum = 0;
float localTemp = 0;
void setup(){
pinMode(16,OUTPUT);
pinMode(2,OUTPUT);
digitalWrite(16, LOW); // configuramos el GPIO16 bajo LOW re-setear el OLED
delay(50);
digitalWrite(16, HIGH); // Mientras el OLED esta en uso, el GPIO16 debe estar HIGH
Serial.begin(115200);
Serial.println("ESP32 DHT Temperatura y Humedad - Pantalla OLED");
dht.begin(); // Inicializamos el sensor DHT
// Inicializamos el display OLED
display.init();
display.flipScreenVertically();
display.setTextAlignment(TEXT_ALIGN_LEFT);
display.setFont(Open_Sans_Condensed_Light_20); // set a font
}
void loop(){
getDHT(); // Lee los datos del sensor
displayData(); // Muestra los datos en el display
delay(2000); // Espera 2 segundos antes de volver a empezar
}
// FUNCIONES
void getDHT(){ // Obtiene los valores del sensor
float tempIni = localTemp;
float humIni = localHum;
localTemp = dht.readTemperature();
localHum = dht.readHumidity();
if (isnan(localHum) || isnan(localTemp)) {
// Comprueba si alguna de las lecturas ha fallado y sale antes (para volver a intentarlo).
localTemp = tempIni;
localHum = humIni;
return;
}
}
void displayData(){ //Muestra los datos en la pantalla OLED
// Para debuging envía la información directa al puerto serial
Serial.print("T: ==> ");
Serial.print(localTemp);
Serial.print(" H: ==> ");
Serial.println(localHum);
display.clear(); // Borro toda información en la pantalla
// Armo cada una de las lineas a mostrar
display.drawString(0, 0, "Temp: ");
display.drawString(40, 0, String(localTemp));
display.drawString(90, 0, "°C");
display.drawString(0, 32, "Hum: ");
display.drawString(40, 32, String(localHum));
display.drawString(90, 32, "%");
// Escribe la información en la pantalla
display.display();
// Pausa 10 mili-segundos tiempo de escritura de la pantalla
delay(10);
}
Conclusiones del review del Wemos® TTGO
Duración de batería
Como no hay información de la batería no se puede estimar la duración de batería.
Vale la pena hacer pruebas con la función DEEP-SLEEP de ESP que reduce el consumo de 15mA a ~20µA
Factores a tener en cuenta en TODO proyecto IoT
Los factores que afectan la duración de batería que deben considerarse a la hora de proyectar son:
- Display: Conviene tener el display apagado y solo activarlo ante demanda (ej: utilizar el botón onboard para activar el display por unos segundos).
- ESP: Conviene usar las funciones de bajo consumo, nativas en los ESP
- Conectividad: Evitar, si no es necesario la comunicación Wifi o Bluetooth