什么是物联网
物联网(Internet of Things,IoT)是指利用各传感器、设备、物品等,通过互联网技术实现相互连接和控制的网络系统。随着基础通讯设施的不断完善,尤其是 5G 的出现,进一步降低了万物互联的门槛和成本,将会逐渐渗透到更多的领域和行业中。物联网技术的发展将引领数字化和智能化转型(智能家居、智能交通、智能健康、工业制造、智能农业、智能城市、智能物流等),提升社会生产力和生活品质。
相关技术
- 传感器技术:利用传感器来感知物品和环境的状态,例如,温度、湿度、光照等。
- 通信技术:包括无线通信技术(如蓝牙、Wi-Fi、LoRa等)和有线通信技术(如以太网、光纤等),用于数据交换和通信。
- 数据存储技术:包括数据处理、数据存储、数据分析等技术,用于处理传感器采集的数据。
- 云计算技术:通过云计算平台,将大量的物联网数据进行汇总和分析,提供更高级的服务和功能。
- 安全技术:包括数据加密、身份认证、访问控制等技术,保障物联网系统的安全性和隐私。
MQTT
MQTT(Message Queue Telemetry Transport 消息队列遥测传输)协议,是基于发布/订阅(publish/subscribe)模式的轻量级通讯协议,构建于TCP/IP协议,用极少的代码和有限的带宽,为远程设备提供实时可靠的消息服务,满足低电量消耗和低网络带宽的需求。目前基本所有开放云平台比如阿里云、腾讯云等都支持MQTT的接入。
MQTT协议特点
- 实现简单
- 提供数据传输的QoS
- 轻量、占用带宽低
- 可传输任意类型的数据
- 可保持会话
消息服务质量等级(QoS),有三种等级:
QoS 0:最多一次传输(At most once):消息可能会丢失,但不会重传,可能导致消息丢失或者重复接收。
QoS 1:至少一次传输(At least once):确保消息可以到达,如果没有收到确认,客户端会重传消息,但可能会导致消息重复接收。
QoS 2:恰好一次传输(Exactly once):确保消息只能被接收一次,会进行更复杂的消息传递和确认机制,以保证消息只被处理一次。
安装MQTT服务
安装Mosquitto为MQTT服务,Mosquitto轻量级,支持多种系统,安装和测试比较容易,以Windows为例:
从官网(https://mosquitto.org/ )下载安装包 mosquitto-2.0.18-install-windows-x64.exe,双击按提示安装,启动服务(Mosquitto Broker)。
测试——发布订阅消息
1 使用Python脚本订阅主题(pip install paho-mqtt)
import paho.mqtt.client as mqtt
# 监听连接
def on_connect(client, userdata, flags, reason_code, properties):
print(f"Connected with result code {reason_code}")
client.subscribe("/mq/pub") # 订阅主题
# 监听消息
def on_message(client, userdata, msg):
print(msg.topic+" "+str(msg.payload))
# 初始化设置
mqttc = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2)
mqttc.on_connect = on_connect
mqttc.on_message = on_message
# 连接MQTT服务
mqttc.connect("127.0.0.1", 1883, 60)
mqttc.loop_forever()
2 命令行工具发布主题消息
mosquitto_pub -h localhost -t /mq/pub -m {“data”:111}
3 python脚本收到消息如下,测试OK