Biblioteca transforma expressões aritméticas em regras de automação no ESP32

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.

Biblioteca transforma expressões aritméticas em regras de automação no ESP32 - Imagem do artigo original

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