12 de setembro de 2025 – Brasil – O blog da Eletrogate divulgou o lançamento da ExpressionParser, biblioteca criada para interpretar expressões aritméticas em placas ESP32 e ESP8266. A ferramenta permite que dispositivos embarcados avaliem fórmulas digitadas pelo usuário, eliminando a necessidade de recompilar o firmware sempre que a lógica de controle precisa ser ajustada.
Objetivo e motivação
A proposta é oferecer uma alternativa flexível para projetos de automação residencial, industrial ou agrícola, nos quais condições de acionamento de relés, alarmes ou outros atuadores podem mudar com frequência. Com a nova biblioteca, o usuário pode escrever sentenças como (UMIDADE < 40 && HORA >= 6 && HORA <= 8) e permitir que o microcontrolador tome decisões em tempo real, sem intervenção no código-fonte.
Funcionamento interno
O pacote realiza três etapas principais:
- Tokenização – divide a expressão em números, operadores, variáveis e funções;
- Conversão infixa para pós-fixa – usa o algoritmo Shunting-Yard para respeitar precedência e associatividade;
- Avaliação – percorre a forma pós-fixa empilhando operandos, aplicando operadores ou chamando callbacks registrados.
Variáveis podem ser criadas dentro da expressão (A=10;A/2) ou registradas via API. Funções personalizadas também são aceitas e executadas por meio de callbacks, o que abre caminho para leituras de sensores ou consultas externas durante o cálculo.
Operadores e funções disponíveis
A biblioteca reconhece operadores matemáticos (+, –, *, /, %, # para potência), relacionais (==, !=, <, >, <=, >=) e lógicos (&, |, ^, !). Entre as funções pré-definidas estão SIN, COS, TAN, LOG, LN, SQR, ABS, FACT e verificações como PRIME. Constantes PI, E e Last vêm registradas por padrão.
Demonstrações práticas
Duas aplicações acompanham o pacote:
- BasicDemo – interação via console serial, inclui novas funções (MMC, MDC) e variável aleatória X;
- WebDemo – interface HTML com três abas: calculadora de expressões, painel de automação (usa um LED como atuador) e guia de sintaxe. O circuito utiliza um ESP32, sensores DHT11 e LDR, além de resistores e um LED.
A WebDemo ainda integra Wi-Fi, sincronização NTP e serviço mDNS (http://expression.local) para facilitar o acesso em rede local.
Imagem: Internet
Compatibilidade e instalação
Desenvolvida especificamente para ESP32 e ESP8266, a biblioteca exige mais memória do que dispositivos AVR como Arduino Uno ou Nano podem oferecer. O pacote é distribuído em arquivo ZIP compatível com o gerenciador de bibliotecas do Arduino IDE e inclui o código-fonte completo das duas demonstrações.
Autores
O projeto foi elaborado por Alberto de Almeida Menezes, bacharel em Engenharia de Áudio e Produção Musical pela Berklee College of Music, e Dailton de Oliveira Menezes, bacharel em Ciência da Computação pela Universidade Federal de Minas Gerais.
Com o lançamento, desenvolvedores podem transformar regras de automação em simples textos armazenados no próprio dispositivo, ganhando agilidade na manutenção e maior liberdade para personalizar o comportamento de sistemas embarcados.
Com informações de Eletrogate

