MQTT 使用 Micropython 将 W5100S-EVB-Pico 连接到 Azure IoT Hub 并发送和接收消息的过程。
我为 IoT Hub 使用了 SAS 令牌身份验证方法。
硬件
W5100S-EVB-Pico
微型 5pin USB 数据线
网线
软件/软件
RP2040 Micropython 开发环境
检查设备信息
遥测监控
C2D传输
创建 Azure IoT 中心
创建 Azure IoT Hub 的方式有很多种,比如 Azure 门户、Azure CLI、REST API 等,一开始我们主要使用通过 Azure 门户创建的方法。
说明可以在下面的链接中找到。
建造
构建操作使用 WSL2 (Ubuntu 20.04.4 LTS) 环境。
rena@Rena-PC:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.4 LTS
Release: 20.04
Codename: focal
搭建构建环境的信息,如安装工具,可以参考Micropython的官方文档。
Micropython 存储库中的自述文件中引用了构建过程。
https://github.com/micropython/micropython/tree/master/ports/rp2
存储库克隆
克隆包含子模块的存储库并检索子模块。
git clone https://github.com/micropython/micropython.git
cd micropython
git submodule update --init
构建子模块
make -C ports/rp2 submodules
mpy-cross build(MicroPython 交叉编译器)
在构建设备固件之前,必须先进行 mpy-cross 构建。
make -C mpy-cross
构建 W5100S-EVB-Pico 设备固件
W5100S_EVB_PICO 使用任何支持的设备构建固件。
可以在Micropython 中找到支持列表:ports/rp2/boards。
cd ports/rp2
make BOARD=W5100S_EVB_PICO submodules
make BOARD=W5100S_EVB_PICO
这是最终的构建过程。至少需要几分钟。
将固件上传到设备。
进入引导模式
H/W v1.0和v1.1的形状略有不同,但是我的板子是v1.0,所以在按下板子的BOOTSEL按钮的同时提供电源(USB线),它进入了Boot模式。
在v1.1的情况下,如果在按住BOOTSEL键的同时按下RUN键,则进入开机模式,无需重新上电。
固件上传
内置固件位于以下路径。
micropython/ports/rp2/build-W5100S_EVB_PICO
上传文件firmware.uf2
。
现在固件的工作已经完成。
接下来,安装 umqtt 库,使用 Thonny 编写一些代码,向 IoT Hub 发送/接收数据,并使用 Azure IoT Explorer 监控数据。
Azure-Samples 中的 IoTMQTTSample 代码中引用了示例代码。
您需要获取信息以连接到 Azure IoT 中心并将其写入您的代码中。
请参阅Azure IoT 中心指南:使用 MQTT 协议与 IoT 中心通信,了解与 MQTT 通信时每个字段的要求
在示例代码的情况下,应该获得以下数据。
如果您查看代码,它的实现是解析连接字符串以获取主机名、设备 ID 和共享访问密钥值。
获取信息的方法有多种,其中我使用了 IoT Explorer。
首先,需要授予访问权限,以便 IoT Explorer 可以访问 IoT Hub。
在默认权限中,iothubowner
包括所有权限的权限都将授予 IoT Explorer。
单击iothubonwer
,单击主连接字符串右侧的按钮,复制该值,然后将其粘贴到在 IoT Explorer 中单击添加连接时出现的窗口并保存。
如果一开始只设置一次此设置,则可以在工具中执行 IoT 中心和设备的大部分任务。
创建设备后,获取如图所示的信息值。
设备创建
复制连接字符串
SAS 令牌创建和复制
我将设备代码上传到下面的链接。
原示例代码中新增和修改了以下内容。
如果不更改为 JSON,很难在 IoT Explorer 中识别数据。
在 Thonny 环境中安装库。
从顶部菜单中选择工具 - 管理包后,输入umqtt
并搜索。
在找到的包中,依次安装 umqtt.simple 和 umqtt.robust。
如果安装成功,点击左侧列表中的umqtt,安装的包显示如下。
connecting
Publishing
Sending message 0
Sending message 1
Sending message 2
Sending message 3
Sending message 4
Sending message 5
Sending message 6
Sending message 7
Sending message 8
Sending message 9
Sending message 10
waiting for message
Received message
b'message from IoT Hub'
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !