组网方式
概述
Node-MQ支持MQTT、WebSocket或UART作为指令传输通道,可根据不同的使用场景灵活组网。
- MQTT通道在设置页面启用并配置参数,参考 MQTT设置。
- WebSocket通道默认启用,连接地址为:
ws://<host>/ws<host>为Node-MQ设备的IP地址。 - UART通道需要由
config指令启用,参考 UART配置。
当需要从互联网访问时,可以连接MQTT Broker服务(如 EMQX)构建MQTT网络;在局域网内自建MQTT Broker(如 Eclipse Mosquitto),可以实现私有的MQTT网络;WebSocket通道适用于低延迟的局域网访问;UART通道可连接外部控制器(如 Arduino),由外部硬件发起控制。所有通道使用完全一致的指令系统。
在同一个MQTT网络中,可以接入多个Node-MQ设备或客户端。通过配置不同的订阅/发布主题,Node-MQ设备可以被分组或独立控制。
Node-MQ的指令通道支持并发执行,可以同时连接MQTT、WebSocket和UART,接收来自各通道的指令并执行。Node-MQ会根据指令的来源通道,反馈对应的执行结果。即由 A 通道接收的指令,其执行结果只会反馈至 A 通道,而不会干扰其他通道。
以下分别介绍各通道的典型连接方式。
Cloud MQTT Broker
如图,Node-MQ 通过路由器 Wi-Fi Router 接入 Internet,并连接 MQTT Broker(EMQX);本地或互联网客户端 MQTT Client 同样由 Internet 连接 MQTT Broker。该组网方式的好处是,MQTT Broker 位于互联网上,客户端不受局域网限制,无需与Node-MQ处于同一局域网内。
设置互联网 MQTT Broker 请参考 EMQX Broker设置。
Local MQTT Broker
如图,Node-MQ、MQTT Broker(Eclipse Mosquitto)与 MQTT Client 位于同一局域网内,Node-MQ 与 MQTT Client 通过 Wi-Fi Router 连接本地 MQTT Broker,在局域网内构建私有MQTT网络。
设置本地 MQTT Broker 请参考 Mosquitto Broker设置。
WebSocket
Node-MQ的WebSocket接口在STA模式或SoftAP模式下均可使用。
- 当Node-MQ以STA模式接入客户端同一局域网时,客户端通过 Wi-Fi Router 连接WebSocket接口:
ws://<host>/ws(<host>为Node-MQ设备的IP地址)。 - 当Node-MQ以SoftAP模式启动时,客户端接入SoftAP热点后,连接WebSocket接口:
ws://192.168.4.1/ws。
WebSocket连接方法请参考 指令说明 - WebSocket。
UART
ESP32-S3 模块提供3个UART控制器(UART0~UART2),均可用作指令通道,并可同时启用。UART通道需要由config指令启用,请参考 UART配置。
注意
ESP32-S3模块的引脚逻辑电平为3.3V,连接外部控制器时请注意电平匹配,必要时应通过电平转换模块连接,例如连接5V电平的Arduino UNO。