×

在W5100S EVB Pico上使用Micropython连接到Azure IoTHub

消耗积分:0 | 格式:zip | 大小:0.00 MB | 2022-10-18

刘杰

分享资料个

描述

MQTT 使用 Micropython 将 W5100S-EVB-Pico 连接到 Azure IoT Hub 并发送和接收消息的过程。

我为 IoT Hub 使用了 SAS 令牌身份验证方法。

成分

硬件

W5100S-EVB-Pico

微型 5pin USB 数据线

网线

软件/软件

  • 托尼

RP2040 Micropython 开发环境

检查设备信息

遥测监控

C2D传输

准备 Azure 资源

创建 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
pico-micropython-azure-01.png?auto=compress%2Cformat&w=740&h=555&fit=max
 

构建 W5100S-EVB-Pico 设备固件

W5100S_EVB_PICO 使用任何支持的设备构建固件。

可以在Micropython 中找到支持列表:ports/rp2/boards。
cd ports/rp2
make BOARD=W5100S_EVB_PICO submodules
make BOARD=W5100S_EVB_PICO

这是最终的构建过程。至少需要几分钟。

pico-micropython-azure-02.png?auto=compress%2Cformat&w=740&h=555&fit=max
 

固件上传

将固件上传到设备。

进入引导模式

H/W v1.0和v1.1的形状略有不同,但是我的板子是v1.0,所以在按下板子的BOOTSEL按钮的同时提供电源(USB线),它进入了Boot模式。

在v1.1的情况下,如果在按住BOOTSEL键的同时按下RUN键,则进入开机模式,无需重新上电。

固件上传

内置固件位于以下路径。

  • micropython/ports/rp2/build-W5100S_EVB_PICO
pico-micropython-azure-03.png?auto=compress%2Cformat&w=740&h=555&fit=max
 

上传文件firmware.uf2

现在固件的工作已经完成。

接下来,安装 umqtt 库,使用 Thonny 编写一些代码,向 IoT Hub 发送/接收数据,并使用 Azure IoT Explorer 监控数据。

编写设备代码

Azure-Samples 中的 IoTMQTTSample 代码中引用了示例代码。

从 IoT Explorer 获取设备信息

您需要获取信息以连接到 Azure IoT 中心并将其写入您的代码中。

请参阅Azure IoT 中心指南:使用 MQTT 协议与 IoT 中心通信,了解与 MQTT 通信时每个字段的要求

在示例代码的情况下,应该获得以下数据。

  • 设备连接字符串
  • 设备 SAS 令牌
如果您查看代码,它的实现是解析连接字符串以获取主机名、设备 ID 和共享访问密钥值。

获取信息的方法有多种,其中我使用了 IoT Explorer。

设置 IoT Explorer IoT Hub 连接

首先,需要授予访问权限,以便 IoT Explorer 可以访问 IoT Hub。

在默认权限中,iothubowner包括所有权限的权限都将授予 IoT Explorer。

单击iothubonwer,单击主连接字符串右侧的按钮,复制该值,然后将其粘贴到在 IoT Explorer 中单击添加连接时出现的窗口并保存。

pico-micropython-azure-04_0.png?auto=compress%2Cformat&w=740&h=555&fit=max
 

如果一开始只设置一次此设置,则可以在工具中执行 IoT 中心和设备的大部分任务。

创建设备后,获取如图所示的信息值。

设备创建

pico-micropython-azure-04.png?auto=compress%2Cformat&w=740&h=555&fit=max
 

复制连接字符串

pico-micropython-azure-05.png?auto=compress%2Cformat&w=740&h=555&fit=max
 

SAS 令牌创建和复制

pico-micropython-azure-06.png?auto=compress%2Cformat&w=740&h=555&fit=max
 

设备源代码

我将设备代码上传到下面的链接。

原示例代码中新增和修改了以下内容。

  • W5100S 网络连接设置
  • 遥测消息传输修改:String -> JSON string

如果不更改为 JSON,很难在 IoT Explorer 中识别数据。

安装库

在 Thonny 环境中安装库。

从顶部菜单中选择工具 - 管理包后,输入umqtt并搜索。

pico-micropython-azure-07.png?auto=compress%2Cformat&w=740&h=555&fit=max
 

在找到的包中,依次安装 umqtt.simple 和 umqtt.robust。

pico-micropython-azure-08.png?auto=compress%2Cformat&w=740&h=555&fit=max
 
pico-micropython-azure-09.png?auto=compress%2Cformat&w=740&h=555&fit=max
 

如果安装成功,点击左侧列表中的umqtt,安装的包显示如下。

pico-micropython-azure-10.png?auto=compress%2Cformat&w=740&h=555&fit=max
 

执行和监控

遥测

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'
pico-micropython-azure-11.png?auto=compress%2Cformat&w=740&h=555&fit=max
 
pico-micropython-azure-12.png?auto=compress%2Cformat&w=740&h=555&fit=max
 

C2D 消息

pico-micropython-azure-13.png?auto=compress%2Cformat&w=740&h=555&fit=max
 
pico-micropython-azure-14.png?auto=compress%2Cformat&w=740&h=555&fit=max
 

 

过程视频

 

参考


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !