Skip to Content
Desenvolvimento de Apps IoTEscrevendo Código de Borda

Escrevendo Código de Borda

O código de borda é o componente do app que roda em dispositivos IoT. Ele se conecta ao broker WAMP local para publicar dados de sensores e receber comandos do dashboard.

IronFlock Cloud IDE

O Ambiente de Borda

Cada dispositivo roda um agente IronFlock que fornece:

  • WAMP broker — Bus de mensagens local para comunicação app-para-agente
  • Armazenamento persistente — Diretório montado para dados locais (ex.: configurações de parâmetros)
  • Runtime de container — Docker para executar seu código de borda

Sua código de borda se conecta ao broker WAMP local (normalmente em ws://localhost:8080 ou via socket Unix) usando qualquer biblioteca cliente WAMP.

Estrutura Básica

Python (exemplo com autobahn)

import asyncio from autobahn.asyncio.wamp import ApplicationSession, ApplicationRunner class EdgeAgent(ApplicationSession): async def onJoin(self, details): # Publicar dados de sensores while True: value = read_sensor() self.publish("com.myapp.sensor.temperature", value) await asyncio.sleep(5) async def on_command(self, setpoint): # Receber comandos do dashboard apply_setting(setpoint) if __name__ == "__main__": runner = ApplicationRunner("ws://localhost:8080/ws", "realm1") runner.run(EdgeAgent)

Publicando Dados

Use os tópicos WAMP definidos no seu data backend para publicar dados de sensores:

# Dados de série temporal self.publish("com.myapp.data.temperature", { "value": 23.5, "unit": "celsius" })

Inscrevendo-se em Comandos

Os dashboards enviam comandos via procedimentos WAMP:

# Registrar handler de comando await self.register(self.set_target_temp, "com.myapp.control.set_temperature") async def set_target_temp(self, target): self.current_target = target update_hardware(target)

Arquivos de Parâmetros

O agente escreve parâmetros configurados por usuário em arquivos JSON que o código de borda lê na inicialização:

import json with open("/app/params/config.json") as f: params = json.load(f) interval = params.get("sampling_interval", 5)

Qualquer Linguagem, Qualquer Framework

Como o código de borda roda em containers Docker, você pode escrever em qualquer linguagem:

  • Python, Node.js, Go, Rust, C++, Java
  • Qualquer framework de protocolo industrial (OPC UA, Modbus, MQTT)
  • Binários de sistema legados empacotados como containers
Last updated on