Pular para conteúdo

Hardware — Smart Meter ESP32

Este documento consolida o material técnico de hardware/firmware do Smart Meter (camada Edge Computing) que alimenta o Mileora via MQTT. É a versão resumida e versionada do material bruto que fica em hardware/ na raiz do projeto (pasta não versionada — ver seção 9).

Status atual: protótipo monofásico montado, calibrado e instalado em um quadro elétrico residencial real, rodando na ESP32 clássica. O firmware trifásico existe e compila para as quatro placas da família ESP32 (clássica, S3, C6 e C5), mas ainda não há montagem física do trifásico. A plataforma definida para o produto é a ESP32-S3 N16R8, e o pedido atual de componentes cobre 2 medidores monofásicos e 3 trifásicos nessa placa (seção 2).

Compras: o link de afiliado usado nas compras de componentes é https://meli.la/1aKzpWS.


1. Arquitetura Edge (monofásico)

Componente Modelo Função
Microcontrolador ESP32-S3 N16R8 (DevKitC-1, 44 pinos, 16 MB Flash, 8 MB PSRAM, USB-C nativa) Processamento e conectividade. Substituiu a ESP32 clássica de 30 pinos em 16/09/2026, quando a S3 passou a ser a plataforma do produto (ver ~/life/Trabalho/Nascer/mileora-comparativo-esps.md)
Expansão / borne Borne de parafuso ou placa de expansão de 44 pinos Conexões externas. O shield de 30 pinos da clássica não serve na S3, e encaixar à força pode inverter polaridade
Fonte Chaveada AC/DC 5 V, 2 A Alimentação. A S3 trabalha com 5 V no pino 5V ou na USB-C; não alimentar com 12 V, a placa queima
Caixa Plástica Patola (PB-114/2 TE, 38x97x148mm) Alojamento
Sensor de tensão ZMPT101B Amostragem pelo ADS1115, canal A0 da fase, e não pelo ADC interno do ESP32. Ler tensão e corrente no mesmo conversor é o que reduz o erro de fase do fator de potência
Sensor de corrente SCT-013-100 (100A/1V, não invasivo) Corrente via pinça amperimétrica, no canal A1 do mesmo ADS1115 da fase
Conversor A/D ADS1115 (16 bits, I2C, endereço 0x48) Tensão e corrente da fase, em alta resolução
Circuito de bias 2x resistores 10kΩ + 1x capacitor 10µF Gera referência DC de 1.65V para o SCT-013
RTC DS3231 (I2C, endereço 0x68, bateria CR2032) Hora válida desde o boot, sem depender de NTP — timestamps do buffer offline e TLS (firmware v3, montado e validado em 18/07/2026)

O DS3231 compartilha o barramento I2C com os ADS1115 — endereço 0x68 não conflita com os 0x48/0x49/0x4A dos conversores.

Pinagem mudou com a troca de placa. No firmware, o mapa da S3 é: I2C em GPIO8 (SDA) e GPIO9 (SCL), botão de reset em GPIO4. Ficam fora de uso os GPIO22 a 25, que não existem na S3, os GPIO33 a 37, ocupados pela PSRAM octal do módulo N16R8, os GPIO19 e 20, que são a USB nativa, e os pinos de strapping (GPIO0, 3, 45 e 46). A clássica usava I2C em 21/22 e botão em 13.

Como a tensão passou a ser lida no ADS1115, a S3 não depende mais de pinos de ADC interno, o que era a principal restrição de pinagem na versão antiga (D35, D34 e D33 na clássica).


2. Orçamento (BOM)

Valores revisados em 16/09/2026, na troca da ESP32 clássica pela ESP32-S3 e no fechamento do pedido de 2 medidores monofásicos e 3 trifásicos. O preço da placa S3 é o do anúncio atual; os itens marcados como referência ainda precisam de conferência no ato da compra.

Monofásico (protótipo base)

Componente Qtd. Preço Unit. (R$) Subtotal (R$)
Microcontrolador ESP32-S3 N16R8 (DevKitC-1, 44 pinos, 16 MB + 8 MB PSRAM, USB-C duplo) 1 66,99 66,99
Expansão / borne de parafuso para 44 pinos 1 29,90 (referência) 29,90
Fonte Chaveada AC/DC (5 V, 2 A) 1 29,90 (referência) 29,90
Caixa Plástica Patola (PB-114/2 TE) 1 48,30 48,30
Módulo Sensor de Tensão AC (ZMPT101B) 1 22,97 22,97
Sensor de Corrente AC Não Invasivo (SCT-013, 100A/1V) 1 47,90 47,90
Módulo Conversor ADC (ADS1115, 16 bits, I2C) 1 19,00 19,00
Kit Jumper Fêmea-Fêmea 20cm (10 un.) 1 11,00 11,00
Módulo RTC DS3231 (I2C, com bateria CR2032) 1 18,00 (estimativa) 18,00
Total monofásico R$ 293,96

Trifásico (escala comercial)

Componente Qtd. Preço Unit. (R$) Subtotal (R$)
Microcontrolador ESP32-S3 N16R8 (DevKitC-1, 44 pinos, 16 MB + 8 MB PSRAM, USB-C duplo) 1 66,99 66,99
Expansão / borne de parafuso para 44 pinos 1 29,90 (referência) 29,90
Fonte Chaveada AC/DC (5 V, 2 A) 1 29,90 (referência) 29,90
Caixa Plástica Patola (PB-114/2 TE) 1 48,30 48,30
Módulo Sensor de Tensão AC (ZMPT101B) 3 22,97 68,91
Sensor de Corrente AC Não Invasivo (SCT-013, 100A/1V) 3 47,90 143,70
Módulo Conversor ADC (ADS1115, 16 bits, I2C) 3 19,00 57,00
Kit Jumper Fêmea-Fêmea 20cm (10 un.) 3 11,00 33,00
Módulo RTC DS3231 (I2C, com bateria CR2032) 1 18,00 (estimativa) 18,00
Total trifásico R$ 495,70

O núcleo de processamento e alojamento (S3, expansão, fonte, caixa) mantém-se único na versão trifásica; apenas os sensores de leitura e conversores são triplicados.

Compra atual: 2 monofásicos e 3 trifásicos

Lista consolidada do pedido, com as quantidades somadas:

Componente Qtd. Preço Unit. (R$) Total (R$)
ESP32-S3 N16R8 (DevKitC-1, USB-C duplo) 5 66,99 334,95
Expansão / borne de parafuso 44 pinos 5 29,90 149,50
Fonte Chaveada AC/DC 5 V, 2 A 5 29,90 149,50
Caixa Plástica Patola (PB-114/2 TE) 5 48,30 241,50
Módulo Sensor de Tensão AC (ZMPT101B) 11 22,97 252,67
Sensor de Corrente AC SCT-013-100 11 47,90 526,90
Módulo Conversor ADC ADS1115 11 19,00 209,00
Kit Jumper Fêmea-Fêmea (10 un.) 11 11,00 121,00
Módulo RTC DS3231 com bateria 5 18,00 90,00
Total do pedido 29 itens R$ 2.075,02

Por unidade: monofásico R$ 293,96 e trifásico R$ 495,70. A soma bate com o total do pedido: 2 x 293,96 mais 3 x 495,70 dá R$ 2.075,02.

Onde comprar: as compras saem por este link de afiliado do Mercado Livre, que já está apontando para a placa S3 N16R8 correta: https://meli.la/1aKzpWS

O que mudou nesta revisão, e por quê

  1. ESP32 clássica substituída pela ESP32-S3 N16R8, nas duas tabelas. A clássica compila o firmware trifásico com 90 por cento do slot de aplicação ocupado, o que deixa 120 KB livres e nenhuma folga para o portal, o OTA e o buffer. Na S3 o mesmo binário ocupa 7 por cento de um slot de 3 MB, e sobram quase 10 MB para o buffer de leituras offline. O preço da troca é de R$ 28,39 por medidor
  2. Shield expansor de 30 pinos saiu. Ele não encaixa na S3, que tem 44 pinos, e forçar o encaixe pode inverter alimentação e terra. No lugar entra uma expansão ou borne de 44 pinos
  3. Fonte passou de 12 V para 5 V. A S3 é alimentada com 5 V pelo pino 5V ou pela USB-C. Os 12 V do conjunto antigo vinham do regulador do shield, que saiu da lista. Não ligar 12 V na S3.
  4. Fonte de tensão corrigida no documento. A seção 2 dizia 12 V e o modelo de RFQ da seção 8.4 dizia 5 V. Agora está 5 V nas duas
  5. DS3231 entrou na tabela do trifásico. Ele existia na lista do monofásico e no firmware, mas faltava na lista do trifásico
  6. ADC interno saiu do caminho de medição. A S3 não depende mais de pino de ADC interno, porque tensão e corrente de cada fase são lidas no mesmo ADS1115. No trifásico são três conversores, em 0x48, 0x49 e 0x4A
  7. Valores que continuam como referência: a expansão de 44 pinos, a fonte de 5 V e o DS3231. Os três precisam de conferência no ato da compra, porque não têm anúncio confirmado como a placa tem

Comparação com o orçamento anterior

Versão Monofásico Trifásico
Antes, com ESP32 clássica e shield R$ 257,17 R$ 440,91
Agora, com ESP32-S3 R$ 293,96 R$ 495,70
Diferença +R$ 36,79 +R$ 54,79

O aumento por unidade vem da placa mais cara, mais a expansão e a fonte de 5 V entrarem no lugar do shield e da fonte de 12 V.

Este orçamento cobre compra unitária/varejo. Para a estimativa de custo em escala (100+ unidades) — ver seção 8; é uma estimativa a partir de dados públicos de atacado, não uma cotação formal confirmada por fornecedor.


3. Firmware

Stack (v1): WiFi.h, WiFiClientSecure, MQTT (biblioteca de Joël Gähwiler), Wire.h, Adafruit_ADS1X15, ArduinoJson, time.h.

Stack (v3, adições): LittleFS (buffer offline), Preferences (kWh persistente em NVS), RTClib (DS3231), ArduinoOTA (atualização por Wi-Fi), esp_sntp.h (callback de sincronização NTP → ajuste do RTC).

Versões: | Versão | Arquivo | Conteúdo | |---|---|---| | v1 | hardware/ESP32_script.txt | Medição + MQTT TLS (em produção no protótipo instalado) | | v2 | hardware/ESP32_script_v2_buffer.txt | + buffer local, kWh persistente, reconexão não-bloqueante | | v3 | firmware/smart_meter_v3/smart_meter_v3.ino (versionado) | + RTC DS3231, OTA por Wi-Fi, downsample adaptativo (gravado e validado em 18/07/2026 — em produção) |

A v3 é a primeira versão versionada no repositório: as credenciais ficam em firmware/smart_meter_v3/secrets.h (ignorado pelo git — copie de secrets.example.h e preencha antes de compilar).

Requisitos de compilação da v3: biblioteca RTClib (Adafruit) via Library Manager. Sobre a tabela de partição, a regra que vale para as duas placas: a tabela da pasta do sketch é copiada por último e ganha de qualquer esquema escolhido no menu da IDE. Basta ter o partitions.csv ao lado do .ino:

  • Na ESP32 clássica (protótipo instalado), manter o esquema "Default 4MB with spiffs" no menu e a tabela própria na pasta do sketch, que dá dois slots de aplicação de 1.440 KB, com o OTA funcionando, e 1,15 MB de buffer. Não usar "Huge APP", que remove o OTA
  • Na ESP32-S3 N16R8, a tabela de 16 MB dá dois slots de 3 MB e quase 10 MB de buffer

Antes de gravar, definir OTA_PASSWORD.

Fluxo de atualização OTA: a primeira gravação da v3 é via USB; depois, o dispositivo aparece na IDE Arduino como Porta de Rede (smartmeter-sm001, protegido por senha) e as próximas atualizações são feitas pela rede local, sem abrir a caixa. Durante o upload, a amostragem pausa e o kWh é salvo no NVS antes do reinício. O OTA só funciona na mesma LAN (não via internet).

Fluxo de execução: 1. Conecta ao Wi-Fi e sincroniza o relógio via NTP (obrigatório para validar a cadeia de certificados TLS). 2. Conecta ao broker HiveMQ Cloud via MQTTS (porta 8883), com Last Will and Testament configurado no tópico de status. 3. A cada ciclo, coleta 500 amostras de tensão e corrente (a 860 SPS no ADS1115, ~0,6s), calcula Vrms/Irms via teorema da variância (remove o offset DC sem precisar de uma constante fixa), aplica um filtro passa-alta para zerar leituras com irms < 0.1A, e calcula potência ativa e fator de potência. 4. Publica o payload a cada 5 segundos no tópico casa/{mqtt_id}/telemetria.

Payload MQTT (monofásico ativo):

{ "vrms": 220.5, "irms": 4.2, "watts": 910.1, "fp": 0.98, "kwh": 12.34, "ts": 1751500000 }

Nota de segurança: o firmware de referência (hardware/ESP32_script.txt, não versionado) contém credenciais de Wi-Fi e MQTT em texto puro, usadas apenas na bancada de testes. Não usar esse arquivo como template sem antes extrair as credenciais para fora do código-fonte.


4. Calibração e Validação

Resultados obtidos durante a validação metrológica em bancada, documentados no Relatório Técnico original (hardware/, não versionado):

  • Conectividade TLS: a ausência de RTC no ESP32 fazia o relógio iniciar em 1970, invalidando a cadeia de certificados — resolvido com sincronização NTP obrigatória antes do handshake TLS. A biblioteca PubSubClient (buffer de 256 bytes) foi substituída pela MQTTClient (buffer de 1024 bytes) para acomodar a URL do broker + cabeçalhos de criptografia. net.setInsecure() é usado para evitar esgotamento de SRAM na validação da cadeia de certificado — o tráfego permanece 100% criptografado ponto-a-ponto, apenas a validação da assinatura de terceiros é suprimida.
  • Estabilidade da conexão: desconexões intermitentes a cada ~22s ("efeito ioiô") eram causadas pela janela de amostragem bloqueando a main thread além do Keep-Alive do broker. Resolvido elevando o Data Rate do ADS1115 de 128 SPS para o máximo de hardware (860 SPS).
  • Calibração de tensão (ZMPT101B): ganho ajustado via trimpot + calibração por software, validada contra multímetro True RMS Minipa ET-3711. Variação de aproximadamente 0,6% (225,7V real vs. 227,2V amostrado).
  • Correção de offset dinâmico: o SCT-013 apresentava uma "corrente fantasma" de 0,8A em vazio, causada por dilatação térmica dos resistores do divisor de tensão (referência de 1,65V). Resolvido com o teorema da variância (calcula a média em tempo real e subtrai, isolando a componente AC do ruído DC térmico).
  • Calibração de corrente: constante CORRENTE_CAL = 0.0188, aferida cruzando a leitura da ESP com um alicate amperímetro de referência (3,32A).
  • Fator de potência: validado sob carga puramente resistiva, resultando em FP = 0,99.

Ressalva sobre o FP: carga resistiva tem FP verdadeiro igual a 1,000, e é o único ponto da curva onde um erro de fase não aparece. O valor de 0,99 indica um erro sistemático de aproximadamente 8 graus, que superestima o FP em cargas indutivas e cresce conforme o FP cai. A medição não está validada fora da carga resistiva.

Os 8 graus são ordem de grandeza inferida de um único ponto, não constante de calibração. O mecanismo proposto (leitura não simultânea de tensão e corrente) implicaria um atraso bem maior que o inferido, e parte do erro pode vir do ZMPT101B ou do núcleo do SCT-013. Por isso o número não deve ser invertido sobre leituras de produção para estimar o FP real de uma instalação: qualquer leitura mapeia para algum valor de aparência plausível, e isso não constitui medição. Análise completa, impacto quantificado e protocolo de ensaio em fator-de-potencia.md.


5. Especificação Trifásica (plano de expansão — não construído)

Arquitetura documentada no Documento Final e na Adenda Técnica (hardware/, não versionados). Não há evidência de montagem física — o bloco trifásico está comentado no firmware de referência, e as fotos de instalação existentes mostram apenas um sensor de corrente instalado.

  • 3x ZMPT101B (fases R, S, T), cada um no canal A0 do ADS1115 da sua fase, e não em pino de ADC interno. A S3 até tem ADC, mas ler tensão e corrente no mesmo conversor é o que reduz o erro de fase que fazia o fator de potência sair otimista
  • 3x SCT-013-100, cada um no canal A1 do mesmo ADS1115 da fase, um conversor dedicado por fase, para evitar o gargalo de multiplexação que reduziria a taxa efetiva de amostragem pela metade
  • Endereçamento I2C via pino ADDR: 0x48 (GND, fase R), 0x49 (VDD, fase S), 0x4A (SDA, fase T)
  • Circuito de bias único (1,65V) compartilhado entre os três sensores de corrente, para economia de espaço
  • PHASECAL (biblioteca EmonLib): corrige digitalmente o desfasamento introduzido pelo núcleo do SCT-013 e pelo tempo de resposta I2C do ADS1115, necessário para o cálculo correto de cos(φ)
  • Payload MQTT passaria a agrupar a telemetria por fase (V, I, W, FP) mais a totalização (Watts e kWh)
  • Custo: R$ 495,70 (seção 2)

A versão trifásica do firmware já existe e foi compilada para as quatro placas. Na ESP32-S3 ela ocupa 1.176.235 bytes, ou 7 por cento do slot de 3 MB do módulo de 16 MB, com 54.292 bytes de RAM em uso. O mesmo código compila sem alteração para a clássica, para o C6 e para o C5.


6. Segurança Elétrica

O protótipo monofásico já está instalado em um quadro elétrico residencial real (evidência fotográfica em hardware/, não versionada).

Precauções técnicas de projeto adotadas na instalação: desenergização total do painel durante a acoplagem do sensor, isolamento do circuito de bias, e uso de um sensor de corrente não invasivo (não há corte de fio nem contato direto com condutores energizados).

Ressalva importante: este documento registra as precauções técnicas de engenharia adotadas no projeto. Ele não substitui uma Anotação de Responsabilidade Técnica (ART) nem certifica conformidade legal com a NBR 5410 ou a NR-10. Conformidade formal exige inspeção e assinatura de um profissional habilitado (eletricista/engenheiro eletricista), o que está fora do que este projeto de software pode produzir.


7. Persistência Local (firmware v3 — implementada e validada em 18/07/2026)

O firmware v1 (hardware/ESP32_script.txt) não tem buffer local e, pior, bloqueia a medição durante quedas de rede (os while de reconexão travam o loop principal — nem o kWh acumula). O incidente de produção de 2026-07-13 (~3 dias de leituras perdidas) materializou esse risco.

O firmware v3 (firmware/smart_meter_v3/, versionado) trata o gap com três mudanças:

  1. Buffer local (LittleFS) com downsample adaptativo: leituras não publicadas são gravadas em dois arquivos em rodízio (~600KB cada). Quedas curtas (até ~4,5h) são bufferizadas na taxa cheia de 5s (fidelidade total para o NILM); acima de metade da capacidade do arquivo, a taxa cai para 1 leitura a cada 30s, estendendo a cobertura total para ~31h–62h de queda. O kWh do período nunca se perde (campo acumulativo). Ao reconectar, o backlog é reenviado em lotes com o ts original — o backend usa ts como measured_at e deduplica por janela de ±3s, então o histórico se preenche retroativamente.
  2. kWh persistente (NVS): o acumulado sobrevive a reboot/queda de energia; gravação a cada 0.05 kWh para limitar desgaste da flash.
  3. Reconexão não-bloqueante: a medição continua rodando sem rede; Wi-Fi/NTP/MQTT são retentados a cada 15s sem travar o loop.

Limitação da v2 (resolvida na v3): após queda de energia (não só de rede), o relógio só era válido depois do NTP — leituras sem hora válida não eram bufferizadas. A v3 integra o RTC DS3231 (adquirido em jul/2026): o relógio do sistema é restaurado do RTC no boot (hora em UTC, bateria CR2032), e o NTP passa a apenas corrigir o drift do RTC quando há rede.

Status: CONCLUÍDO em 18/07/2026 — DS3231 montado no barramento I2C compartilhado (GPIO21/22), firmware v3 gravado via USB (placa substituta, perfil ESP32-WROOM-DA, partição "Default 4MB with spiffs") e troca física realizada no quadro mantendo a identidade SM-001. Os 3 cenários de validação foram executados (ver PRD item 21.1.8/21.1.9): (1) queda de energia+internet com timestamp íntegro restaurado do DS3231 no boot sem rede; (2) upload OTA real com kWh contínuo através de reinícios; (3) queda de Wi-Fi prolongada (12,6 min) com 30 leituras bufferizadas entregues com ts correto e kWh estritamente crescente.


8. Custo em Escala

Natureza desta seção: o que segue é uma estimativa documentada a partir de anúncios públicos de atacado (Alibaba/AliExpress) e de prática comum de desconto por volume de distribuidores brasileiros de eletrônica para maker (FilipeFlop, RoboCore, Eletrogate) — não é uma cotação formal de um fornecedor específico para este pedido. O critério de conclusão original ("pelo menos uma cotação por lote real") ainda não foi atendido no sentido estrito — o próximo passo concreto é enviar um RFQ (pedido formal de cotação) a 2–3 distribuidores nomeados acima para um lote de 100 unidades e substituir as estimativas abaixo pelos valores reais recebidos.

8.1 Metodologia

Cotação USD/BRL de referência: R$ 5,10 (13/07/2026, Investing.com/Banco Central). Desconto de volume aplicado sobre o preço unitário de varejo (seção 2) por categoria de componente, com base no padrão observado publicamente para pedidos de 100+ unidades:

Componente Preço varejo (R$) Desconto estimado (100+ un.) Preço estimado em lote (R$) Base da estimativa
ESP32-S3 N16R8 (16 MB + 8 MB) 66,99 22% 52,25 Placa comoditizada, mas com PSRAM octal e 16 MB de flash, mais caras que a clássica de 4 MB
Expansão / borne 44 pinos 29,90 20% 23,92 PCB genérica, sem dado de mercado específico — desconto típico de categoria
Fonte Chaveada AC/DC 5 V 29,90 15% 25,42 Fontes têm margem mais apertada mesmo no atacado
Caixa Plástica Patola 48,30 25% 36,22 Injeção plástica nacional tem bom ganho de escala a partir de 100+ un.
Sensor de Tensão ZMPT101B 22,97 20% 18,38 Tabela pública Alibaba: 1un. US$0,77 → 500+un. US$0,60 (≈22%)
Sensor de Corrente SCT-013-100 47,90 15% 40,72 Núcleo bobinado encarece o custo de material; desconto de escala mais modesto que sensores passivos
Conversor ADC ADS1115 19,00 30% 13,30 Breakout board I2C muito comoditizado; preço de varejo "boutique" (~US$9,75) tem margem alta sobre o FOB
Kit Jumper (10un.) 11,00 25% 8,25 Componente de commodity extrema
Módulo RTC DS3231 (c/ bateria) 18,00 (estimativa — preencher com o valor real da compra de jul/2026) 20% 14,40 Preço de varejo nacional típico para módulo com bateria CR2032; não confirmado com o recibo real da compra
Total estimado (100 un., monofásico) 293,96 ≈ 232,85 ≈ 20,8% abaixo do varejo (ponderado)

* Total varejo com o RTC na estimativa de R$18 (a seção 2 mantém o RTC em aberto até o recibo real ser lançado).

8.2 Da estimativa de custo de componentes ao preço de venda sugerido

O custo de componentes não é o custo de produção nem o preço de venda. Adicionando estimativas conservadoras de montagem/teste, embalagem e garantia (valores próprios, não cotados):

Item Valor estimado (R$) Base
Componentes (100 un., seção 8.1) 232,85 Tabela acima
Montagem, calibração e teste por unidade 20,00 ~15–20 min de mão de obra por unidade a taxa de mercado para montagem eletrônica simples
Embalagem, etiqueta e manual 8,00 Estimativa própria
Reserva de defeito/garantia (~3%) 6,99 3% sobre o custo de componentes
Custo total de produção estimado ≈ 267,84
Margem sugerida (35%, cobre P&D/suporte/distribuição) +93,74 Estimativa própria — típica para hardware de nicho em pequena escala
Preço de venda unitário sugerido (lote de 100) ≈ R$ 361,58

8.3 Nota de honestidade sobre a distância do valor de referência do briefing

O briefing do Desafio 6 cita ~R$150 como referência de custo unitário. A estimativa acima (≈R$361,58 de venda, ≈R$267,84 de custo de produção) fica acima dessa referência, e a troca para a S3 ampliou a distância. É importante não maquiar esse número. O motivo estrutural: o BOM atual usa módulos "breakout" prontos (expansão, ADS1115 avulso, caixa injetada de terceiros) pensados para prototipagem, não uma placa de produção. Uma versão real de produto integraria o ESP32-S3, o condicionamento de sinal e o RTC em uma PCB própria (eliminando a expansão, o ADS1115 avulso e a caixa de terceiros) e usaria um invólucro sob molde próprio — o que reduziria o custo de material de forma muito mais agressiva do que desconto de volume sobre os módulos atuais, mas exige investimento de engenharia (NRE) e um lote mínimo de produção tipicamente medido em milhares de unidades, não 100. Fechar o gap até ~R$150 é, portanto, uma decisão de investir em uma segunda geração de hardware — não algo alcançável só por comprar mais unidades dos mesmos módulos de prototipagem. O projeto da placa própria, com contorno, roteamento e Gerbers, já existe em ~/life/Trabalho/Nascer/mileora-pcb/.

8.4 Próximo passo real — RFQ

Enviar RFQ para 2–3 distribuidores nacionais (FilipeFlop, RoboCore, Eletrogate) especificando: 100 unidades de cada item da seção 8.1, prazo de entrega e condição de pagamento — e substituir as estimativas desta seção pelos valores recebidos antes de qualquer decisão de compra.

Modelo pronto para envio (e-mail ou formulário de atendimento comercial do distribuidor):

Assunto: Pedido de cotação — lote de 100 unidades (projeto de medidor de energia residencial)

Prezados,

Estou desenvolvendo um medidor de energia residencial não invasivo (projeto Mileora · Smart Meter, incubado na 1ª Jornada Incubintech de Inovação Aberta / IFSC Florianópolis) e solicito cotação formal para o lote abaixo, com desconto por volume, prazo de entrega e condições de pagamento:

Item Qtd.
Placa de desenvolvimento ESP32-S3 N16R8 (16 MB flash, 8 MB PSRAM) 100
Expansão / borne de 44 pinos para ESP32-S3 100
Fonte chaveada AC/DC 5 V, 2 A 100
Caixa plástica tipo Patola (ou equivalente) 100
Sensor de tensão ZMPT101B 100
Sensor de corrente não invasivo SCT-013-100 (100 A) 100
Conversor ADC ADS1115 (breakout I2C) 100
Kit jumper fêmea-fêmea (10 un.) 100
Módulo RTC DS3231 com bateria CR2032 100

Pedimos, se possível: (1) preço unitário por item nesta quantidade; (2) validade da cotação; (3) prazo de entrega para Florianópolis/SC; (4) faixas de desconto adicionais (250/500 un.) caso existam.

Atenciosamente, [nome] — [telefone/e-mail]

Registro das respostas (preencher ao receber):

Distribuidor Data do envio Data da resposta Total do lote (R$) Validade Prazo Observações
FilipeFlop — — — — — —
RoboCore — — — — — —
Eletrogate — — — — — —

9. Material de Referência (pasta hardware/, não versionada)

A pasta hardware/ na raiz do projeto contém o material bruto usado para compor este documento, mas não é versionada (ver .gitignore) — entre outros motivos, porque o firmware de referência ali contém credenciais em texto puro (seção 3) e a pasta inclui fotos em formato HEIC de tamanho considerável. Conteúdo local disponível:

  • Orçamento de Hardware_ Smart Meter EnergIA (1).docx — BOM original (seção 2). Atenção: esse arquivo ainda traz o BOM com a ESP32 clássica e o shield de 30 pinos. A versão vigente do orçamento é a seção 2 deste documento, revisada em 16/09/2026
  • Relatório Técnico_ Validação e Calibração do Edge Computing.docx — ensaios de calibração (seção 4).
  • Documento Final_ Especificação e Arquitetura - Smart Meter IoT (Trifásico).docx — arquitetura trifásica completa (seção 5).
  • Adenda Técnica_ Medição de Fator de Potência e Expansão Trifásica.docx — cálculo de FP e escalonamento trifásico.
  • ESP32_script.txt — firmware de referência v1 (monofásico ativo, trifásico comentado).
  • ESP32_script_v2_buffer.txt — firmware v2 com buffer local, kWh persistente e reconexão não-bloqueante (seção 7).
  • Fotos dos componentes (ESP32.png, modulo_ads1115.png, modulo_tensao.png, sensor_corrente.png, fonte_chaveada.png, caixa_patola.png, jumpers.png, modulo_expansor.png).
  • Fotos da montagem física e da instalação no quadro elétrico real (IMG_39*.HEIC).
  • Captura de tela do dashboard com telemetria real (Captura de tela 2026-06-09.png).

O firmware v3 (alvo) não fica nesta pasta: é versionado em firmware/smart_meter_v3/ na raiz do repositório, com credenciais separadas em secrets.h não versionado (seções 3 e 7).

Ver também EnergIA_vs_Desafio6_Analise.docx (raiz do projeto), seções 5.5 e 6, para o mapeamento desses itens contra os requisitos do Desafio 6 e o plano de sprints para fechar os gaps de persistência local, segurança elétrica e custo em escala (PRD.md, Sprint 21).