Guida MikroTik
Utenti, RADIUS, IoT e containerIntermedio

IoT su RouterOS: MQTT e GPIO per automazione e telemetria

Usa il pacchetto IoT di RouterOS v7 per pubblicare telemetria via MQTT e controllare pin GPIO. Integra RouterOS con piattaforme IoT come ThingsBoard o HomeAssistant.

Il pacchetto IoT di RouterOS v7 (disponibile da v6.48.3) aggiunge supporto per MQTT, GPIO, Bluetooth e LoRa. Con questi strumenti un router MikroTik diventa un gateway IoT, capace di leggere sensori, controllare relè e inviare telemetria a piattaforme cloud.

1. Configurare un broker MQTT e pubblicare dati

MQTT (Message Queuing Telemetry Transport) è il protocollo standard per IoT: leggero, pub/sub, ideale su connessioni instabili. RouterOS agisce da client MQTT.

Aggiungere broker e pubblicare statistiche del router
# Aggiungere il broker MQTT (es. Mosquitto locale o HiveMQ cloud)
/iot/mqtt/brokers/add \
  name=broker-principale \
  address=10.0.0.20 \
  port=1883 \
  client-id=router-wisp-01 \
  username=wisp \
  password=MqttP4ss \
  auto-connect=yes \
  keep-alive=60

# Connettersi al broker
/iot/mqtt/connect broker=broker-principale

# Pubblicare un messaggio di test
/iot/mqtt/publish \
  broker=broker-principale \
  topic=wisp/test \
  message="hello from RouterOS" \
  qos=1

# Script per pubblicare CPU, RAM e uptime in JSON (da schedulare)
# (salvare come script "telemetria-mqtt" in /system/scripts)
:local broker "broker-principale"
:local topic "wisp/router01/stats"
:local cpu [/system/resource/get cpu-load]
:local mem [/system/resource/get free-memory]
:local uptime [/system/resource/get uptime]
:local msg "{"cpu":$cpu,"free_mem":$mem,"uptime":"$uptime"}"
/iot/mqtt/publish broker=$broker topic=$topic message=$msg qos=0

# Schedulare ogni minuto
/system/scheduler/add \
  name=pubblica-telemetria \
  interval=1m \
  on-event=telemetria-mqtt

2. Configurare GPIO (hardware KNOT/RBM33G)

I pin GPIO sono disponibili sui modelli KNOT, KNOT Embedded LTE4 e RBM33G. Esistono pin analogici (misurano tensione) e digitali (0/1, input/output).

Lettura input digitale e controllo relè via GPIO
# Configurare pin4 come output (es. relè)
/iot/gpio/digital/set pin4 direction=output output=0

# Attivare il relè (output=1)
/iot/gpio/digital/set pin4 output=1

# Configurare pin5 come input (es. sensore porta)
/iot/gpio/digital/set pin5 direction=input

# Script che pubblica lo stato del pin5 su MQTT a ogni cambio
# (assegnare come script trigger al pin)
:local broker "broker-principale"
:local topic "wisp/gpio/pin5"
:local stato [/iot/gpio/digital/get pin5 input]
:local msg "{"pin5":$stato}"
/iot/mqtt/publish broker=$broker topic=$topic message=$msg qos=1

# Assegnare lo script al pin (eseguito a ogni cambio di stato)
/iot/gpio/digital/set pin5 script=script-gpio-pin5

# Lettura pin analogico (tensione in mV)
/iot/gpio/analog/print
# Applicare offset di calibrazione (mV)
/iot/gpio/analog/set pin2 offset=50
Il package iot deve essere installato prima di usare questi comandi: scaricarlo da https://mikrotik.com/download (Extra packages) e installarlo con /system/package/install. Dopo l'installazione è richiesto un riavvio.
  • Hardware supportato per GPIO: KNOT (gateways), KNOT Embedded LTE4, RBM33G
  • Pin analogici: misurano tensione con formula valore = adc_input + offset
  • Pin digitali: input (legge sensori) o output (controlla relè, LED, allarmi)
  • Script GPIO: eseguiti automaticamente a ogni cambio di stato del pin
  • Integrazione nativa con MQTT per telemetria verso ThingsBoard, HomeAssistant, AWS IoT
MQTTGPIOIoTiot packageKNOTThingsBoardtelemetriaautomazionesensorirelèbroker MQTT

Configura senza fatica con l'AI

In WispOS l'agente AI genera la configurazione RouterOS dalle tue parole e un tutor ti guida passo passo.

Prova WispOS