代码拉取完成,页面将自动刷新
Waffle Micro 作为一个单片机,其网络环境可能是不可靠的, 如果我们采用原始的 socket 通信,并不能保障信息可以到达接收方,数据的可靠性包括实时性都会有一定的影响, 所以这个时候就需要一种 网络通信协议Protocal 来保障信息的传递, 保障 服务质量(Qos: Quality of Service)。
互联网的基础网络协议是 TCP/IP。MQTT(消息队列遥测传输) 是基于 TCP/IP 协议栈 而构建的,已成为 IoT 通信的标准 。
MQTT 是一种 轻量级 的, 灵活 的网络协议,致力于为 IoT 开发人员实现适当的平衡:
- 这个轻量级协议可在严重受限的设备硬件和高延迟/带宽有限的网络上实现。
- 它的灵活性使得为 IoT 设备和服务的多样化应用场景提供支持成为可能。
总结下来MQTT有如下特性/优势:
首先,我们需要在 Waffle Micro 上面安装 mqtt 的库。(MQTT 客户端在 Waffle Micro 上面的实现)
首先确认 Waffle Micro 已经连接上了热点!!!
引入 upip
包管理器
# 上面省略连接热点的代码
import upip
upip.install('micropython-umqtt.simple')
网络连上后就可以使用 upip.install
的方式将 umqtt.simple
这个包就安装好
from umqtt.simple import MQTTClient
import time
SERVER = '' # 输入mqtt服务器的地址
CLIENT_ID = 'waffle' # 连入mqtt的设备名称
TOPIC = b'pyespcar_basic_control' # waffle订阅的mqtt主题
def mqtt_callback(topic, msg):
print('topic: {}'.format(topic))
print('msg: {}'.format(msg))
client = MQTTClient(CLIENT_ID, SERVER)
client.set_callback(mqtt_callback)
client.connect()
client.subscribe(TOPIC)
while True:
# 查看是否有数据传入
# 有的话就执行 mqtt_callback
client.check_msg()
time.sleep(1)
from umqtt.simple import MQTTClient
import time
SERVER = '' # 输入mqtt服务器的地址
CLIENT_ID = 'waffle' # 连入mqtt的设备名称
TOPIC = b'pyespcar_basic_control' # waffle订阅的mqtt主题
client = MQTTClient(CLIENT_ID, SERVER)
client.connect()
while True:
client.publish(TOPIC, 'helloworld')
time.sleep(1)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。