微信公众号

物联网——专用消息队列MQTT

什么是物联网

物联网(Internet of Things,IoT)是指利用各传感器、设备、物品等,通过互联网技术实现相互连接和控制的网络系统。随着基础通讯设施的不断完善,尤其是 5G 的出现,进一步降低了万物互联的门槛和成本,将会逐渐渗透到更多的领域和行业中。物联网技术的发展将引领数字化和智能化转型(智能家居、智能交通、智能健康、工业制造、智能农业、智能城市、智能物流等),提升社会生产力和生活品质。

相关技术

  • 传感器技术:利用传感器来感知物品和环境的状态,例如,温度、湿度、光照等。
  • 通信技术:包括无线通信技术(如蓝牙、Wi-Fi、LoRa等)和有线通信技术(如以太网、光纤等),用于数据交换和通信。
  • 数据存储技术:包括数据处理、数据存储、数据分析等技术,用于处理传感器采集的数据。
  • 云计算技术:通过云计算平台,将大量的物联网数据进行汇总和分析,提供更高级的服务和功能。
  • 安全技术:包括数据加密、身份认证、访问控制等技术,保障物联网系统的安全性和隐私。

MQTT

MQTT(Message Queue Telemetry Transport 消息队列遥测传输)协议,是基于发布/订阅(publish/subscribe)模式的轻量级通讯协议,构建于TCP/IP协议,用极少的代码和有限的带宽,为远程设备提供实时可靠的消息服务,满足低电量消耗和低网络带宽的需求。目前基本所有开放云平台比如阿里云、腾讯云等都支持MQTT的接入。

MQTT协议特点

  1. 实现简单
  2. 提供数据传输的QoS
  3. 轻量、占用带宽低
  4. 可传输任意类型的数据
  5. 可保持会话

消息服务质量等级(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

使用Docker搭建云手机及远程控制 URL短链接有什么用
微信公众号