littlebot
Published on 2025-04-03 / 1 Visits
0

【源码】基于Arm架构的物联网关键字检测与OTA更新解决方案

项目简介

本项目是基于Arm架构的物联网解决方案,提供关键字检测与OTA固件更新功能。利用AWS FreeRTOS运行DS - CNN模型进行关键字检测,通过Arm Virtual Hardware模拟硬件环境,支持与AWS IoT云连接,实现关键字识别信息的发布和OTA固件更新。同时包含Blinky应用演示,软件支持多种配置,满足不同需求。

项目的主要特性和功能

  1. 关键字检测功能:在AWS FreeRTOS上运行DS - CNN模型检测关键字并通知用户,音频数据通过Arm Virtual Hardware音频驱动注入,可连接AWS IoT云发布识别的关键字。
  2. OTA固件更新:支持通过AWS IoT云进行OTA固件更新,使用Trusted Firmware - M安全应用更新。
  3. Blinky应用演示:通过Arm Virtual Hardware演示LED闪烁,已包含AWS FreeRTOS和FreeRTOS,便于新开发。
  4. 多配置支持:软件支持Arm Corstone™ - 300子系统的多种配置,适应不同需求。

安装使用步骤

1. 启动Arm Virtual Hardware实例

使用AWS网络控制台启动

  • 若无AWS账户,需先创建。
  • 在AWS网络控制台的EC2中选择“Launch Instances”,按向导操作:选择Amazon Machine Image (AMI)时搜索 Arm Virtual Hardware 并选择Arm提供的该项;选择实例类型,推荐 c5.large
  • 启动实例后,选择实例ID管理实例,点击“Connect”,确保用户名设置为 ubuntu 后再次点击“Connect”打开SSH终端会话。

使用本地终端启动

  • 安装AWS CLI 2并配置访问密钥、密钥和区域。
  • 创建新密钥对:aws ec2 create - key - pair --key - name MyKeyPair,保存密钥材料到 .pem 文件并设置权限为 400chmod 400 MyKeyPair.pem
  • 启动新实例:./scripts/vht_cli.py -k MyKeyPair start
  • 获取实例IP:./scripts/vht_cli.py -k MyKeyPair status,使用SSH和私钥连接实例:ssh -i "MyKeyPair.pem" ubuntu@<instance ip address>

2. 构建并执行应用程序

  • 连接到AVH AMI实例:ssh ubuntu@<your - ec2 - instance>
  • 同步git子模块,设置ML并应用所需补丁:./ats.sh bootstrap
  • 安装运行测试和签名二进制文件所需的额外Python依赖项:pip3 install click imgtool pytest
  • 构建关键字检测应用程序:./ats.sh build kws,运行:./ats.sh run kws,启动集成测试:pytest -s kws/tests
  • 若要构建、运行和测试Blinky应用程序,将 kws 替换为 blinky
  • 也可使用Keil MDK构建项目,blinky.uvmpwkws.uvmpw 分别包含 blinkykws 项目。

3. 更新音频数据

将根目录下的 test.wav 文件替换为符合以下配置的音频文件:格式为PCM,音频通道为单声道,采样率为16位、16kHz。

4. 持续集成设置

启动Arm Virtual Hardware实例:./scripts/vht_cli.py -k <key pair> start

5. 设置AWS连接

  • AWS账户IoT设置:创建IoT事物并创建策略附加到事物。
  • 配置应用程序连接到AWS账户:编辑 bsp/aws_configs/aws_clientcredential.hbsp/aws_configs/aws_clientcredential_keys.h 文件,设置相关值和密钥。
  • 观察MQTT连接:登录AWS IoT控制台,查看应用程序连接和消息发送情况。

6. OTA固件更新

  • 创建更新固件:构建过程中会创建更新的固件,更新二进制文件位于 build/kws/tfm_ns_signed_update.bin
  • 创建AWS IoT固件更新作业:创建Amazon S3存储桶、OTA更新服务角色、OTA用户策略,在AWS IoT界面创建作业并配置相关参数。

7. 结束时终止AMI实例

  • 使用AWS网络控制台:在EC2中选择实例,点击“Instance state”并选择“Stop Instance”。
  • 使用本地终端:./scripts/vht_cli.py -k MyKeyPair stop

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】