Raspberry Pi Pico: Data Logging com MicroPython (Aquisição, Persistência e Análise de Dados)

Após dominar leitura de sensores, controle de hardware e lógica embarcada, o próximo passo natural em qualquer sistema real é a persistência de dados.

Data logging não é opcional em engenharia — é o que permite validação, rastreabilidade e tomada de decisão baseada em histórico.


O que é Data Logging

Data logging é o processo estruturado de:

  • Coletar dados de sensores
  • Armazenar em formato persistente
  • Permitir análise posterior

Aplicações práticas

  • Monitoramento térmico contínuo
  • Agricultura de precisão
  • Automação industrial
  • Diagnóstico de equipamentos

Sistema de Arquivos no Pico

O Raspberry Pi Pico permite manipulação direta de arquivos no armazenamento interno.

Escrita básica

file = open("data.txt", "w")
file.write("Hello\n")
file.close()

Leitura básica

file = open("data.txt", "r")
print(file.read())
file.close()

Regra crítica

  • Sempre fechar o arquivo (close)
  • Sem isso, os dados podem não ser gravados fisicamente

Projeto 1: Data Logger de Temperatura

Sistema completo: aquisição + formatação + persistência.

from machine import ADC
import utime

adc = ADC(0)
conv = 3300 / 65535

file = open("Temp.txt", "w")
file.write("Ambient Temperature\n")

for secs in range(30):
    value = adc.read_u16()
    mV = value * conv
    temp = (mV - 500.0) / 10.0

    line = str(secs+1) + "     " + str(temp)[:5] + "\n"
    file.write(line)

    utime.sleep(1)

file.close()
print("Data has been written to file...")

Análise do Comportamento

Estrutura do log

Ambient Temperature
1     25.18
2     25.20
3     25.22

Componentes do sistema

  • Entrada: ADC (sensor)
  • Processamento: conversão mV → °C
  • Saída: arquivo .txt

Ponto Técnico Crítico

Escrita estruturada

line = str(secs+1) + "     " + str(temp)[:5] + "\n"
  • Define padrão de armazenamento
  • Permite leitura humana e parsing futuro

Projeto 2: Leitura dos Dados

Leitura completa

file = open("Temp.txt", "r")

data = file.read()
print(data)

file.close()

Leitura incremental

file = open("Temp.txt", "r")

for i in range(3):
    print(file.readline())

file.close()

Diferença Operacional

MétodoUso recomendado
read()Arquivos pequenos
readline()Streams ou arquivos grandes

Boas Práticas

Controle de integridade

file.close()

Sem isso, o sistema não é confiável.


Padronização de formato

Preferir formatos consistentes:

f"{tempo} {valor}"

Controle de crescimento

  • Evitar loops infinitos de escrita
  • Monitorar espaço disponível
  • Rotacionar arquivos se necessário

Evolução Natural do Sistema

Versão intermediária (CSV)

file.write(f"{secs},{temp}\n")

Permite:

  • Importação em Excel
  • Processamento em scripts externos
  • Integração com pipelines de dados

Versão avançada

  • Timestamp real (RTC ou NTP via módulo externo)
  • Armazenamento em cartão SD
  • Envio para servidor (HTTP/MQTT)
  • Integração com dashboards

Arquitetura de Sistema Real

Um sistema embarcado completo segue este fluxo:

Entrada

  • Sensores analógicos/digitais

Processamento

  • Conversão física
  • Lógica de decisão

Saída

  • Atuadores
  • Indicadores

Persistência

  • Logs estruturados
  • Histórico de operação

Direcionamento Técnico

Para uso profissional:

  • Validar medições com instrumento externo
  • Garantir consistência do formato de dados
  • Tratar falhas de escrita
  • Evitar corrupção de arquivo (writes controlados)

Encerramento

Data logging transforma um projeto simples em um sistema analisável, auditável e evolutivo.

Sem histórico, não há engenharia — apenas comportamento momentâneo.

Com armazenamento estruturado, o sistema passa a gerar valor contínuo.