Ir al contenido

TempSense: cómo diseñar una UI OLED para ESP32 para trabajar en la red eléctrica ​

Unidades receptora y transmisora de TempSense mostrando datos de temperatura en vivo en sus pantallas OLED

Imagina la forma antigua de trabajar. Los operarios están en lo alto de una torre de transmisión, un ingeniero está en el suelo y entre ellos cuelga un conductor con una sonda de temperatura de barbacoa enganchada. El ingeniero necesita la temperatura de ese conductor para calcular cuánto se comba la línea hacia el suelo. Entonces pulsa el walkie-talkie, un operario entrecierra los ojos ante la sonda, responde «16 Celsius» y empieza el cálculo. Cuando termina, el conductor ya está a 20 y todo el baile vuelve a empezar.

Vinod vio eso y pensó que podía hacerlo mejor. Tenía razón.

Conoce a Vinod ​

Vinod es ingeniero graduado en Transpower, la empresa propietaria y operadora de la red nacional de transmisión de Nueva Zelanda. Estudió mecatrónica, así que llevaba años trasteando con microcontroladores y Python, pero nunca había lanzado un dispositivo embebido real para la industria. Cuando su equipo no dejaba de pelearse con la rutina de la sonda de barbacoa durante las operaciones de combado de líneas, le propuso a su jefe crear algo mejor. Después lo construyó todo él mismo: la electrónica, el firmware y el CAD de la carcasa.

El problema: una temperatura fiable, de un vistazo ​

El trabajo de combado de líneas depende de la temperatura del conductor. Si te equivocas, los cálculos de distancia de seguridad también salen mal. El método manual era lento y variaba mientras el equipo trabajaba, así que Vinod quería un dispositivo que leyera el conductor directamente y mostrara el número en una pantalla que tanto el equipo como el ingeniero pudieran ver en tiempo real.

Quería una pantalla OLED para ello. Los píxeles negros en OLED son negro de verdad, así que el contraste se mantiene a plena luz del día y se ve nítido en interiores. El dispositivo combina una unidad con sonda y un receptor mediante un enlace LoRa que supera los dos kilómetros, resuelve la temperatura con una precisión de 0,5 °C y funciona hasta nueve horas con una carga. Apodó la primera versión «10 cents». El equipo la conoce como TempSense.

Transmisor TempSense V2, receptor, maletín de transporte y pinza para el conductor

Dónde entró Lopaka ​

La pantalla era la parte que Vinod solía temer. Antes de Lopaka, diseñar una UI OLED significaba abrir Photoshop, dibujar un rectángulo con el tamaño de píxel correcto, arrastrarlo para encontrar las coordenadas y después copiar esos números a mano en el código U8g2 del sketch de Arduino. Flashear, mirar, ajustar, repetir. Lo describió como tanta fricción que evitaba hacer cualquier cosa elaborada con pantallas.

Lopaka eliminó ese paso. Diseñó las pantallas de TempSense de forma visual, colocó sus rectángulos y textos donde quería y añadió sus propios logotipos, que Lopaka convirtió en bitmaps listos para la pantalla. Eligió U8g2 como biblioteca para que el código exportado encajara directamente en su firmware. La secuencia de arranque por etapas, en la que el logotipo y las lecturas aparecen por turnos, surgió de pequeños retardos que añadió en el código sobre un diseño que sí podía ver mientras lo creaba.

Su resumen de Lopaka para un compañero ingeniero: una herramienta web con una GUI agradable donde colocas formas y bitmaps, traes tu propia imagen y todo se convierte para que coincida con tu pantalla; después llevas el código a tu proyecto y lo conectas.

Cómo se unió todo ​

La primera iteración le llevó a Vinod aproximadamente un mes, incluido el CAD y la impresión 3D. Era tosca y funcionaba. La construcción completa llevó unos seis meses y TempSense ya va por su segunda versión, con las dos unidades enlazadas en tiempo real en ese alcance LoRa de dos kilómetros. Incluso diseñó una pinza impresa que asienta la sonda en el haz de conductores, con el texto «This side down» grabado para que nadie la monte al revés.

Pantallas OLED de TempSense, impresión de la carcasa y la pinza para el conductor

Los módulos TX y RX se enlazan mediante ese enlace LoRa a través de conectores pogo-pin coincidentes, etiquetados en la propia carcasa impresa para que no haya dudas sobre qué unidad va en cada sitio en el campo.

Primer plano de los módulos TX y RX de TempSense mostrando sus conectores pogo-pin etiquetados

El resultado ​

TempSense le valió a Vinod el People's Choice Award en APEX25, el Annual Power Engineering Exchange. Dentro de Transpower y en el proveedor de servicios Northpower, donde probó los prototipos sobre el terreno, hay un interés real en convertirlo en un producto que otros proveedores puedan usar en lugar de la rutina de sonda y walkie-talkie.

Receptor, transmisor y base de carga de TempSense

Lopaka se quedó en su caja de herramientas después de que el proyecto se lanzara. Recurre a él cada vez que aparece una pantalla OLED en una construcción, unas cinco veces al año, y valora perderlo con un 8 sobre 10 por el trastorno que causaría a su trabajo con OLED. Paga Plus por las pantallas ilimitadas y porque se notaba que lo había creado alguien a quien le importa la herramienta.

Crea la tuya ​

Si tu próximo proyecto lleva una pantalla pequeña, no tienes que colocar píxeles a mano como hacía Vinod. Diseña la pantalla en el navegador, elige tu biblioteca y copia el código. Para paneles monocromo, empieza con el convertidor de imágenes U8g2. ¿Pasas a una pantalla en color como los módulos ESP32 económicos que Vinod ha estado probando? Mira qué admite Lopaka para LVGL y otras bibliotecas de pantallas en color en el mismo editor.

Buen trabajo, Vinod. A vender mil unidades.

Preguntas frecuentes ​

¿Cómo diseño una UI OLED para ESP32? ​

Diseña la pantalla de forma visual en Lopaka, coloca tu texto, formas y bitmaps en un lienzo 1:1, elige U8g2 como tu biblioteca y copia el código generado en tu proyecto de Arduino o PlatformIO. Sin contar coordenadas de píxeles a mano.

¿Cómo convierto una imagen en un bitmap de U8g2? ​

Suelta tu logotipo o ícono en el lienzo, ajusta el umbral monocromo y exporta el bitmap de U8g2 con su llamada de dibujo. Vinod trajo así sus propios logotipos para TempSense.

¿Puedo diseñar una pantalla OLED monocromo sin programarla a mano? ​

Sí. El editor genera el código de diseño por ti, así que tú escribes la lógica de datos y el manejo de eventos, no las posiciones de píxel de cada rectángulo y etiqueta.

¿Funciona Lopaka con SSD1306 y otros controladores OLED? ​

Elige el tamaño de tu panel y U8g2 se encarga de controladores OLED comunes como SSD1306 y SH1106, con el bitmap exportado y el código de dibujo coincidiendo con la pantalla. Sigues eligiendo tú el constructor de U8g2 para tu controlador, interfaz y pines.

Créditos ​

TempSense y fotografía de Vinod Rodrigo.