MQTT 是物联网产品中广泛应用的通讯协议,适合于在低功耗的设备上运行。在很多编程语言中都有实现库,使用起来非常方便。本文演示如何在 Python 中使用。
搭建 MQTT Broker
在 MQTT 的架构中,消息是通过 MQTT Broker 进行传输的。消息的生产者和消费者都连接到 MQTT Broker。
在本例中,为了简化 MQTT Broker 的安装和配置,我们直接使用 Eclipse Mosquitto 官方提供的 Docker 镜像来运行。
执行以下命令启动 MQTT Broker:
1 | docker run -d -p 1883:1883 -p 9001:9001 --name mqtt-server eclipse-mosquitto |
如果你还不熟悉 Docker 的基本操作,可以参考 Docker课堂实验手册(一) 系列文章。
建立实验项目
本实验简单的模拟物联网中的两个设备: 灯和控制器,灯接收由控制器发出的开、关命令。
首先,安装 paho-mqtt 客户的库
1 | pip install paho-mqtt |
然后在建立模拟灯的程序,新建名为: light.py 的文件,加入以下代码:
1 | import paho.mqtt.client as mqtt |
最后,新建名为: control.py 的控制器程序文件,并加入如下代码:
1 | import paho.mqtt.client as paho |
运行程序
先运行设备程序,打开一个命令行窗口,运行:
1 | python light.py |
再打开另外一个命令行窗口,运行:
1 | python control.py |
然后就可以看到控制器随机的产生开(1),关(2)的命令发送给设备。