Pular para o conteúdo

IoT e Arduino

A linguagem falando com placa de verdade: Firmata para prototipar, sketch em C++ para o que precisa de tempo, MQTT para o resto do mundo.

Arcane.IoT liga a linguagem a uma placa física. São três caminhos, e a escolha entre eles é a primeira decisão de qualquer projeto: Firmata (o computador manda, a placa obedece), sketch (o programa roda na placa, e a linguagem só o escreve e grava) e MQTT (a placa e o painel conversam por uma rede).

CaminhoOnde o programa rodaServe paraO preço
Firmatano computadorprototipar, sensor de mesa, painelcada ordem atravessa o cabo — milissegundos
Sketchna placatempo real, autonomia, bateriacompilar e gravar a cada mudança
MQTTos dois, ligados por redevários sensores, telemetria, automaçãodepende de um broker de pé

O menor programa que fala com hardware#

Com a placa ligada e o StandardFirmata gravado nela, isto acende o LED da placa:

precisa de placa
adopt Arcane.IoT as IoT

placa := IoT.conectar()          // acha a porta sozinha, se houver uma só
placa.modo(13, "saida")
placa.escrever(13, yes)
sleep(500)
placa.escrever(13, no)
placa.fechar()
dataforge
adopt Arcane.IoT as IoT

placa := IoT.conectar_simulada("uno")
placa.modo(13, "saida")
placa.escrever(13, yes)
assert placa.simulador.pino(13) is 1     // o simulador deixa PERGUNTAR
placa.fechar()
out "o LED acendeu — num Arduino de mentira"

O que existe#

  • Porta serial escrita aqui — termios no macOS e no Linux, ctypes sobre a API do Windows. Sem pyserial, e sem dependência nenhuma.
  • Firmata 2.x completo: modos, digital, analógico, PWM, servo, I²C, sendString, amostragem, reset.
  • Um simulador com o mapa de seis placas (UNO, Nano, Mega, Leonardo, UNO R4, ESP32).
  • Seis sketches gerados em C++, prontos para o arduino-cli compilar e gravar.
  • MQTT 3.1.1 falado à mão sobre TCP, com QoS 0 e 1, curingas e testamento.
  • `dataforge iot` no terminal: portas, doctor, monitorar, sketch, carregar, piscar.

O que não existe — e não vale fingir#

Não háPorque
compilador de C++ próprioo arduino-cli faz isso, e bem; reimplementá-lo seria refazer o GCC e o avrdude
gravador de bootloader próprioidem — IoT.carregar chama o arduino-cli
TLS no MQTTo ssl da biblioteca padrão resolveria; a decisão espera um teste com certificado de verdade
QoS 2exige guardar o estado de quatro mensagens por publicação, e quase nenhum projeto de sensor usa
tempo real por Firmatacada ordem atravessa o cabo. O que precisa de microssegundos é sketch — ver Quando usar cada um

Por onde começar#