4 Star 0 Fork 0

黑胡桃实验室 BlackWalnut Labs. / Waffle MicroV1 Python API Doc

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
Mqtt.md 2.79 KB
一键复制 编辑 原始数据 按行查看 历史
小潘 提交于 2021-11-23 09:45 . feat:首次添加

Mqtt

MQTT协议简介

  Waffle Micro 作为一个单片机,其网络环境可能是不可靠的, 如果我们采用原始的 socket 通信,并不能保障信息可以到达接收方,数据的可靠性包括实时性都会有一定的影响, 所以这个时候就需要一种 网络通信协议Protocal 来保障信息的传递, 保障 服务质量(Qos: Quality of Service)。

  互联网的基础网络协议是 TCP/IP。MQTT(消息队列遥测传输) 是基于 TCP/IP 协议栈 而构建的,已成为 IoT 通信的标准

MQTT 是一种 轻量级 的, 灵活 的网络协议,致力于为 IoT 开发人员实现适当的平衡:

  • 这个轻量级协议可在严重受限的设备硬件和高延迟/带宽有限的网络上实现。
  • 它的灵活性使得为 IoT 设备和服务的多样化应用场景提供支持成为可能。

  总结下来MQTT有如下特性/优势:

  • 异步消息协议
  • 面向长连接
  • 双向数据传输
  • 协议轻量级
  • 被动数据获取

MQTT在Waffle上的使用

在Waffle上安装MQTT库

  首先,我们需要在 Waffle Micro 上面安装 mqtt 的库。(MQTT 客户端在 Waffle Micro 上面的实现)

  首先确认 Waffle Micro 已经连接上了热点!!!

  引入 upip 包管理器

# 上面省略连接热点的代码

import upip
upip.install('micropython-umqtt.simple')

  网络连上后就可以使用 upip.install 的方式将 umqtt.simple 这个包就安装好

使用umqtt实现发送者

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)

使用umqtt实现发送者

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)
Python
1
https://gitee.com/blackwalnutlabs/waffle-micro-v1-python-api-doc.git
git@gitee.com:blackwalnutlabs/waffle-micro-v1-python-api-doc.git
blackwalnutlabs
waffle-micro-v1-python-api-doc
Waffle MicroV1 Python API Doc
master

搜索帮助