作者:Sandeep Mistry 2022年12月8日
Matter于11月推出了190种认证产品。这是物联网的一个主要转折点,因为标准为现在可以无缝控制任何制造商的任何设备的服务打开了大门。在本系列的第一篇博客中,我们介绍了Arm虚拟硬件(AVH),并演示了如何使用AVH开始Matter堆栈的开发。在第二篇博客中,我们演示了Python在AVH上运行,以使用Matter协议控制灯光。在本博客中,我们将更接近Matter产品的实际场景,即通过蓝牙进行调试,然后通过WiFi进行控制。在这篇博客之后,我们将介绍一款虚拟手机,通过BLE进行调试,然后通过WiFi将控制权移交给Matter hub。一步一个脚印…
准备
1.在Linux计算机(或虚拟机)上按照“为AVH打包Ubuntu服务器固件”指南创建AVH Ubuntu 22.04 OS映像。(https://intercom.help/arm-avh/en/articles/6561138-package-ubuntu-server-firmware-for-avh)
Lighting应用程序设备
1.假设您已经注册,请在此处登录(https://app.avh.arm.com/login)。如果没有,请在此处注册(https://www.arm.com/resources/contact-us/virtual-hardware-boards),注册完成后返回此步骤。
2.在“设备”选项卡中,单击“创建设备”按钮。
3.单击树莓派 4板。
4.单击“下一步”按钮继续。
5.单击右侧的“浏览”链接,选择前面的Ubuntu Server 22.04映像。
6.上传后,单击下一步。
7.输入设备名称,然后单击“创建设备”按钮。任何名字都可以。我们使用了ubuntu-lighting
8.等待虚拟设备创建并启动。要与虚拟板交互,请单击Console选项卡。
9.使用用户名ubuntu和密码ubuntu登录控制台并更改密码。
10.根据《Building Matter-在树莓派4上安装先决条件》一节的步骤1(https://github.com/project-chip/connectedhomeip/blob/master/docs/guides/BUILDING.md#installing-prerequisites-on-raspberry-pi-4),使用sudo和您选择的文本编辑器编辑/etc/systemd/system/dbus-fi.w1.wpa_supplicant1.service。将ExecStart行更改为
ExecStart=/sbin/wpa_supplicant -u -s -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
11.使用sudo和您选择的文本编辑器创建/etc/wpa_supplicant/wpa_supplicant.conf文件。添加以下内容:
ctrl_interface=DIR=/run/wpa_supplicant
update_config=1
12.重新启动wpa_supplicant:
sudo systemctl restart wpa_supplicant.service
sudo systemctl daemon-reload
13.安装依赖项
sudo apt-get update
sudo apt-get -y install git gcc g++ python3 pkg-config libssl-dev libdbus-1-dev libglib2.0-dev libavahi-client-dev ninja-build python3-venv python3-dev python3-pip unzip libgirepository1.0-dev libcairo2-dev libreadline-dev
14.出现以下提示时,按tab键选择“Ok”,然后按enter键。
15.克隆repo 和设置子模块
git clone https://github.com/project-chip/connectedhomeip.git
cd connectedhomeip
./scripts/checkout_submodules.py --shallow --platform linux
16.设置开发环境(需要5-10分钟)。
./scripts/build/gn_bootstrap.sh
source scripts/activate.sh
17.构建lighting-app 示例。
cd examples/lighting-app/linux
gn gen out/debug
ninja -C out/debug
18.禁用以太网接口。
sudo ip link set dev eth0 down
19.运行lighting-app示例。
./out/debug/chip-lighting-app --wifi
Chip-tool 设备
1.打开新的浏览器窗口:https://app.avh.arm.com
2.从上面重复步骤2-9和13-16,将设备名称更改为不同的名称,如步骤6中的ubuntu-chip-tool。
3.构建chip-tool示例。
cd examples/chip-tool
gn gen out/debug
ninja -C out/debug
4.安装网络管理器。
sudo apt -y install network-manager
5.启用Wi-Fi并设置Wi-Fi SSID凭据(SSID:Arm,密码:password)–(基于
https://ubuntu.com/core/docs/networkmanager/configure-wifi-connections
).
sudo nmcli r wifi on
sudo nmcli d wifi connect Arm password password
6.禁用以太网接口。
sudo ip link set dev eth0 down
使用Chip-tool
1.使用以下方法将照明设备调试到AVH虚拟Wi-Fi网络:
./out/debug/chip-tool pairing ble-wifi 42 Arm password 20202021 3840
42-节点id芯片工具将分配设备
Arm–是Wi-Fi SSID
密码–是Wi-Fi网络密码
20202021–是设置引脚代码
3840–是鉴别器
选择的“ble wifi”选项向chip-tool 应用程序指定所请求的序列是通过ble进行调试,然后通过wifi进行控制。应用程序将设置BLE以发现其他AVH RPi上的照明设备。默认情况下,BLE在Ubuntu服务器映像中处于活动状态。
2.开灯
./out/debug/chip-tool onoff on 42 1
3.关灯
./out/debug/chip-tool onoff off 42 1
如果需要,可以使用以下命令清除设备配置:
rm -rf /tmp/chip_*
下一步
我们的目标是让所有开发人员能够以最小的阻碍尽快开始探索Matter SDK,我希望这个例子能有所帮助。
创建AVH是为了使用脚本从命令行界面运行,因为最终目标是自动化。AVH还被设计为与现代CI/CD工具(如GitHub Actions)集成。基于web的用户界面将帮助开发人员尝试这一突破性技术。您可以访问API并与CI/CD工具集成,以在网络规模执行自主测试。
为了使物联网在Arm上运行,我们有责任通过不断提高整个价值链的性能、简化开发和软件重用标准,为创新和规模创造更大的机会。因此,我们引入了Arm虚拟硬件,这是一种变革性产品,旨在实现云虚拟硬件上的软件开发。这使得Arm生态系统可以轻松采用复杂的现代基于云的开发和CI/CD技术,而无需大型定制硬件。
资源:
.探索入门示例、高级功能、常见问题解答等。(https://intercom.help/arm-avh/en/)
.探索可用于使用脚本访问AVH功能的API(https://app.avh.arm.com/api/docs#overview)
.通过注册Arm虚拟硬件私人测试版开始使用此示例:https://avh.arm.com/