在 W5100S-EVB-Pico 上使用 Micropython 连接到 Azure IoT 中心

本文详细介绍了如何使用Micropython通过MQTT协议将W5100S-EVB-Pico开发板连接到AzureIoTHub,包括固件构建、设备认证、发送和接收消息的步骤。过程中提到了使用SAS令牌进行身份验证,以及依赖Thonny和AzureIoTExplorer工具进行开发和监控。
摘要由CSDN通过智能技术生成

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

转发: https://maker.wiznet.io/rena/projects/connect-to-azure-iot-hub-using-micropython-on-w5100s-evb-pico/

项目介绍

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

我对 IoT 中心使用了 SAS 令牌身份验证方法。

组件

硬件

  • W5100S-EVB-Pico
  • Micro 5pin USB cable
  • LAN cable

软件

  • Thonny

RP2040 Micropython开发环境

检查设备信息

遥测监控

C2D传输

准备 Azure 资源

创建 Azure IoT 中心

创建Azure IoT Hub的方式有多种,例如Azure门户、Azure CLI、REST API等。一开始我们主要采用通过Azure门户创建的方法。

可以在下面的链接中找到说明。

Micropython 固件

建造

构建操作使用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的官方文档来了解构建环境的信息,例如安装工具。 official documentation of Micropython 

Micropython 存储库内的自述文件引用了构建过程。

micropython/ports/rp2 at master · micropython/micropython · GitHub

存储库克隆

克隆包含子模块的存储库并检索子模块。

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按钮,则进入启动模式,无需重新上电。
H/W v1.0 Hé v1.1 De xíngzhuàng lüè yǒu b

固件上传

构建的固件位于以下路径中。

  • micropython/ports/rp2/build-W5100S_EVB_PICO

上传文件: firmware.uf2.

现在固件工作已经完成。

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

编写设备代码

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

[2022.10.14] 随着 master 分支的更新,Micropython 目录被删除。 使用提交分支地址进行编辑

从 IoT Explorer 获取设备信息

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

请参阅 Azure IoT 中心指南:使用 MQTT 协议与 IoT 中心通信,了解与 MQTT 通信时每个字段所需的内容 Azure IoT Hub Guide: Communicate with your IoT hub using the MQTT protocol 

对于示例代码,应获得以下数据。

  • 设备连接字符串
  • 设备 SAS 令牌

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

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

设置 IoT Explorer IoT 中心连接

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

默认权限中,iothubowner 权限(包括所有权限)将授予 IoT Explorer。

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

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

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

设备创建

复制连接字符串

SAS 令牌创建和复制

设备源代码

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

新增、修改了以下内容:  original example code.

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

如果不更改为 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'

C2D消息

参考

文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值