STM32U5物联网发现套件和AWS入门
本文演示了如何集成模块化AWS FreeRTOS™ 具有硬件强制安全性的软件,以帮助保护可更新的云连接应用程序。该项目预配置为在STM32U585物联网发现套件上运行,并连接到AWS。。。
STM32U5物联网发现套件配备了Wi-Fi和蓝牙模块、麦克风、温度和湿度传感器、磁力计、加速度计、陀螺仪、压力传感器,以及飞行时间(ToF)和手势检测传感器。
该板还配有512 Mbit八进制SPI闪存、64 Mbit八进位SPI PSRAM、256 Kbit I²C EEPROM、ARDUINO Uno V3、STMOD+和Pmod扩展连接器,以及用于相机模块的扩展连接器和STLink-V3E 嵌入式调试器。
关联的项目文件夹由非TrustZone版本(b_u585i_iot02_ntz)以及启用TF-M的版本(b_u585i_iot02a_tfm)项目的一部分。以下文章包含有关在windows环境中启动并运行该项目的非安全(b_u585i_iot02_ntz)版本的说明。要使其在Mac/Linux中运行,请参阅以下内容-https://github.com/FreeRTOS/iot-reference-stm32u5/blob/main/Getting_Started_Guide.md.
它连接到AWS Core并发布数据。它显示了将STM32U585物联网发现套件连接到物联网核心的步骤。该演示使用WiFi模块连接到AWS物联网。然后,它使用coreMQTT代理库使多个并发任务能够共享单个MQTT连接。这些任务发布传感器数据,并演示设备阴影和设备卫士AWS物联网服务的使用。
文章第2部分如何使用STM32U5和AWS进行OTA更新?
硬件说明
B-U585I-IOT02A-STM32U5系列物联网节点发现套件-意法半导体
用户提供的项目
USB micro-B电缆
克隆存储库和子模块
使用您喜欢的类unix控制台应用程序,运行以下命令来克隆和初始化git存储库及其子模块。在Microsoft Windows中,可能会应用路径长度限制,因此建议将存储库克隆到驱动器的根目录,以最大限度地缩短每个文件的路径长度。
git克隆https://github.com/FreeRTOS/iot-reference-stm32u5.git--递归子模块
设置您的开发环境。
下载并安装STM32CubeIDE 1.9.0版本。
下载并安装最新版本的Python。在Python的安装过程中,请确保勾选复选框以安装pip并将Python添加到路径中。
要使用pip安装Python库,请导航到存储库(C:\iot-reference-stm32u5\tools)并键入:pip安装-r要求.txt
上面的命令安装以下包——构建所需的boto3、requests、pyserial、cryptography和black等。
安装AWS CLI。
创建IAM用户。
类型:
aws配置
在命令提示终端上。填写AWS访问密钥ID、AWS秘密访问密钥、默认输出格式和区域,如下所示:
可选:类似Tera Term的串行终端
设置硬件
用USB电缆将STLINK USB端口(USB STLK/CN8)连接到电脑。USB STLK端口位于上图中MXCHIP模块的右侧。它用于供电、在闪存中对应用程序进行编程,以及通过虚拟串行COM端口与应用程序进行交互。
将项目导入STM32CubeIDE并构建项目
b_u585i_iot02_ntz项目不使用U5板的TrustZone®功能。在C驱动器上克隆项目后,打开STM32CubeIDE。当提示设置工作空间时,单击“浏览”并导航到C:\iot-reference-stm32u5,如下所示:
注:如果没有出现提示,请参阅本文档末尾的“疑难解答”部分。
在项目资源管理器下,单击导入项目。
在弹出选项卡中,单击 现有项目进入工作空间以下为:
打下一个.弹出如下提示:
点击浏览并导航到项目的根目录。点击完成。
导入项目的工作区如下所示:
建设b_u585i_iot02_ntz项目。
点击闪烁二进制文件跑步->跑步。确保已插入板,以便将项目闪存到板上。
注:如果使用上述步骤闪烁二进制文件时遇到错误,可以导航到C:\iot-reference-stm32u5\Projects\b_u585i_iot02a_ntz\Debug并闪烁.bin文件。
运行演示
固件闪存到板上后,打开命令提示符,导航到项目的根目录(lab-iot-reference-stm32u5)。类型:
python工具/provision.py-i-v
要了解有关上述命令的更多信息,请访问文档末尾的“疑难解答”部分。
脚本会提示您输入以下详细信息。您只需要更新wifi_sid、wifi_credential、mqtt_endpoint和事物名称。
time_hwm[]:<Click enter>wifi_credential[]:<your wifi password>mqtt_endpoint[]:<a1qwhobjt*****-ats.iot.us-east-2.amazonaws.com>wifi_sid[]:<your wifi ssid>mqtt_port[]:<Click enter>thing_name[]:<stm32u5>
该脚本自己完成所有证书和密钥的设置。它还将使用您在终端中输入的事物名称创建一个事物,查询您的aws帐户以获取正确的mqtt端点,与aws通信,下载证书和密钥,并将其保存到您的设备中。
脚本的结尾看起来有点像这样:
可选:打开一个像Tera Term这样的串行终端。连接到板上,并将波特率设置为115200。点击板上的黑色重置按钮重置板,观察Tera Term上的活动。
观察AWS上的活动
使用之前创建的IAM用户登录aws.amazon.com。在AWS管理控制台上,单击Iot Core。在下面显示的事物下,单击您在终端提示中输入的事物的名称(在本例中为STM32U5)。
在下面活动点击MQTT测试客户端。
将主题筛选器设置为#并点击订阅.重置板并观察AWS上的活动。这使得所有的主题都能通过。
以下是传感器数据的示例:
故障排除
- 打开STM32CubeIDE后,如果没有出现设置目录的提示,请单击“文件”->“切换工作区”->“其他”,然后设置工作区,如下所示:
2.对于运行文档中提到的脚本的命令:
python工具/provision.py-i–v
请注意,以下是可供参考的其他参数:
-h、 --帮助-i,--交互式-v,--详细-d设备,--设备设备--wifi ssid wifi_ssid--wifi凭据wifi_CREDENTAL--事物名称thing_name--aws配置文件aws_profile--aws区域aws_region--aws访问密钥id aws_access_key_id--aws访问密钥机密aws_access _key_secret