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 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-mqtt2. 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).
# 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=50iot 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
Continua con
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