TempSense: Projetando uma UI OLED para ESP32 para trabalho na rede elétrica

Imagine o jeito antigo. Eletricistas de linha sentados no topo de uma torre de transmissão, um engenheiro em pé no chão e, entre eles, um condutor com uma sonda de temperatura de churrasco presa nele. O engenheiro precisa da temperatura desse condutor para calcular o quanto a linha cede em direção ao chão. Então ele chama no rádio, um eletricista aperta os olhos para a sonda, responde “16 Celsius” e o cálculo começa. Quando termina, o condutor já está a 20, e toda a dança recomeça.
Vinod olhou para isso e pensou que podia fazer melhor. Ele estava certo.
Conheça Vinod
Vinod é engenheiro graduado na Transpower, a empresa que possui e opera a rede nacional de transmissão da Nova Zelândia. Ele estudou mecatrônica, então passou anos mexendo com microcontroladores e Python, mas nunca tinha lançado um dispositivo embarcado de verdade para a indústria. Quando sua equipe continuou lutando com a rotina da sonda de churrasco durante operações de flechamento de linhas, ele propôs ao gerente construir algo melhor. Depois construiu tudo sozinho: a eletrônica, o firmware e o CAD da caixa.
O problema: uma temperatura confiável, num relance
O trabalho de flechamento de linhas depende da temperatura do condutor. Se você errar, a matemática das distâncias de segurança erra junto. O método manual era lento e mudava enquanto a equipe trabalhava, então Vinod queria um dispositivo que lesse o condutor diretamente e colocasse o número em uma tela que tanto a equipe quanto o engenheiro pudessem ver em tempo real.
Ele queria um display OLED para isso. Os pixels pretos no OLED são pretos de verdade, então o contraste se mantém do lado de fora, sob a luz do dia, e fica nítido em ambientes internos. O dispositivo une uma unidade com sonda a um receptor por um link LoRa que alcança mais de dois quilômetros, resolve a temperatura em 0,5°C e funciona por até nove horas com uma carga. Ele apelidou a primeira versão de “10 cents”. A equipe o conhece como TempSense.

Onde o Lopaka entrou
A tela era a parte que Vinod costumava temer. Antes do Lopaka, projetar uma UI OLED significava abrir o Photoshop, desenhar um retângulo no tamanho certo em pixels, arrastá-lo para encontrar as coordenadas e depois copiar esses números à mão para o código U8g2 no sketch do Arduino. Gravar, olhar, ajustar, repetir. Ele descreveu isso como um atrito tão grande que evitava fazer qualquer coisa mais elaborada com displays.
O Lopaka removeu essa etapa. Ele montou as telas do TempSense visualmente, posicionou retângulos e texto onde queria e trouxe seus próprios logotipos, que o Lopaka converteu em bitmaps prontos para o display. Ele escolheu o U8g2 como biblioteca, então o código exportado entrou direto no firmware dele. A sequência de inicialização em etapas, em que o logotipo e as leituras aparecem por vez, veio de pequenos atrasos que ele adicionou no código sobre um layout que ele realmente conseguia ver enquanto projetava.
O resumo dele sobre o Lopaka para um colega engenheiro: uma ferramenta web com uma GUI agradável em que você posiciona formas e bitmaps, traz sua própria imagem, e ela converte tudo para combinar com o seu display; depois você leva o código para o seu projeto e faz a ligação.
Como tudo se juntou
A primeira iteração levou cerca de um mês para Vinod, incluindo CAD e impressão 3D. Era rudimentar, e funcionou. A construção completa levou aproximadamente seis meses, e o TempSense agora está na segunda versão, com as duas unidades se conectando em tempo real por aquele alcance LoRa de dois quilômetros. Ele até projetou uma garra impressa que assenta a sonda no feixe de condutores, com o selo “This side down” para ninguém montá-la ao contrário.

Os módulos TX e RX se pareiam por esse link LoRa através de conectores pogo-pin correspondentes, identificados direto na caixa impressa, para não haver dúvida sobre qual unidade vai onde no campo.

O resultado
O TempSense rendeu a Vinod o People's Choice Award no APEX25, o Annual Power Engineering Exchange. Dentro da Transpower e na prestadora de serviços Northpower, onde ele testou os protótipos no local, há um interesse real em transformá-lo em um produto que outros prestadores possam usar em vez da rotina de sonda e rádio.

O Lopaka continuou no kit dele depois que o projeto foi lançado. Ele recorre a ele sempre que um display OLED aparece em uma construção, cerca de cinco projetos por ano, e avalia que perdê-lo seria um 8 de 10 no transtorno que causaria ao seu trabalho com OLED. Ele paga pelo Plus pelas telas ilimitadas, e porque percebeu que foi feito por alguém que se importa com a ferramenta.
Construa o seu
Se o seu próximo projeto tem uma telinha, você não precisa posicionar pixels à mão como Vinod fazia. Projete a tela no navegador, escolha sua biblioteca e copie o código. Para painéis monocromáticos, comece pelo conversor de imagens U8g2. Vai mudar para um display colorido, como os módulos ESP32 baratos que Vinod vem testando? Veja o que o Lopaka oferece para LVGL e outras bibliotecas de displays coloridos no mesmo editor.
Bom trabalho, Vinod. Vá vender mil deles.
Perguntas frequentes
Como projeto uma UI OLED para ESP32?
Monte a tela visualmente no Lopaka, posicione seu texto, formas e bitmaps em uma tela de desenho 1:1, escolha o U8g2 como sua biblioteca e copie o código gerado para o seu projeto Arduino ou PlatformIO. Nada de contar coordenadas de pixels à mão.
Como converto uma imagem em um bitmap U8g2?
Solte seu logotipo ou ícone na tela de desenho, ajuste o limiar monocromático e exporte o bitmap U8g2 com sua chamada de desenho. Foi assim que Vinod trouxe seus próprios logotipos para o TempSense.
Posso projetar uma tela OLED monocromática sem programá-la à mão?
Sim. O editor gera o código do layout para você, então você escreve a lógica dos seus dados e o tratamento de eventos, não as posições em pixels de cada retângulo e rótulo.
O Lopaka funciona com SSD1306 e outros drivers OLED?
Escolha o tamanho do seu painel e o U8g2 cuida de drivers OLED comuns como SSD1306 e SH1106, com o bitmap exportado e o código de desenho combinando com o display. Você ainda escolhe o construtor U8g2 para o seu controlador, interface e pinos.
Créditos
TempSense e fotografia de Vinod Rodrigo.