利用Otii和Raspberry Pi实现自动化功耗测量

利用Raspberry Pi实现嵌入式设备功能测试中的功耗测量

Otii 软件支持结合Raspberry Pi实现自动化功能测试,从而简化开发流程中的全面测试工作。

无论是智能家居还是工业系统,可靠的测试对于确保嵌入式设备按预期运行都至关重要。基于产品开发需要不断重复进行功能测试,因此实现自动化大有裨益。Raspberry Pi 为实验室和现场的功能测试自动化提供了一种低成本、便携且灵活的解决方案。凭借其 GPIO 接口、广泛的软件支持以及活跃的社区,它可以成为高效、可重复的嵌入式和物联网设备验证的理想工具。

Otii 软件为Raspberry Pi 的自动化功能测试提供了支持,使您能够更轻松地将全面测试整合到开发工作流中。请注意,Raspberry Pi 版的 Otii 仅包含 Otii TCP 服务器,不包含 Otii 桌面应用程序。

使用Otii自动化工具箱和Rasperry Pi 进行自动化低功耗测量

所需产品

开始操作

将Raspberry Pi 4 或 5 设置为测试机,用于运行 Otii 产品套件的自动化基准测试:

  1. 配置Raspberry Pi 。
  2. 连接整个系统,包括待测设备 (DUT)。
  3. 在Raspberry Pi 上下载并安装 Otii 服务器
  4. 运行脚本并开始自动化录制。
Otii服务器在低于8GB RAM的Raspberry Pi 4/5平台上运行,但并不推荐。

安装指南

更多详细信息请参照 产品文档页面.

在SSD硬盘上安装Raspberry Pi 操作系统

要在Raspberry Pi上使用SSD硬盘,就要首先通过USB把SSD硬盘连接到计算机。下载,安装,并运行Raspberry Pi Imager。在Imager中,选择你的“设备”为Raspberry Pi 4或5,“操作系统”选择Raspberry Pi OS(64位),分配储存到SSD硬盘上。完成选择后,选择“下一步”,在新的窗口里,点击 “使用操作系统定制 ”下的 “编辑设置”。

常规(General) 选项卡下,配置主机名、用户名、密码、SSID、网络密码、无线局域网国家、时区,以及键盘布局。在服务(Service) 选项卡下,启用SSH并选择”使用密码验证(Use password authentication.)“。保存更改,出现提示时单击”Yes“以应用以上自定义设置。

如果想继续操作,会有提示出现,因为该操作会覆盖硬盘上的现有数据。确认点击”Yes“,然后输入计算机密码。系统会下载该操作系统,然后写入SSD硬盘中,整个过程仅需几分钟时间。一旦完成,你会看到一条可以移除固态硬盘的提示消息。

最后,连接固态硬盘到Raspberry Pi,启动,等待几秒钟,然后通过SSH访问硬盘。

连接

要连接整个系统,请确保你已经拥有全部所需硬件元器件。首先连接固态硬盘到Raspberry Pi底部的USB 3端口,但不启动电源。接着,使用Otii硬件包装提供的USB线,将USB输出端连接到Otii硬件上,将连接USB的Type A输出到Raspberry Pi的顶部USB3接口。

通过外部直流电源给Otii仪器供电,确保符合所需规格。供电后,Otii仪器正面的LED灯会亮起。下一步通过USB-C电源端口为Raspberry Pi 供电,确保电源参数最佳:5V 和至少 3A(Raspberry Pi 5 为 5A)。

连接完成后,如图所示:

Setup with Otii and Raspberry Pi - wiring up

最后,将被测设备(DUT)连接到系统,配置其以 UART 模式工作,以便调试传入的信息,并根据这些信息实现流程自动化。

使用SSH访问Raspberry Pi

要在开机后通过 SSH 访问 Raspberry Pi,首先要确保已安装 SSH 客户端,例如Putty或者 Termius。如果没有,下载、安装 并打开你喜欢的SSH客户端。在连接配置中,将主机名设为Raspberry Pi Imager 里分配的主机名(如raspberry.local),或者使用Raspberry Pi的IP地址。要查找IP地址,可以使用像Fing的网络扫描工具。将端口设为22,连接类型设为SSH。

配置这些设置后,按照 SSH 客户端的具体步骤建立连接。连接成功后,输入先前分配的用户名和密码(如 pi.qoitech)。现在就可以直接与 Raspberry Pi 进行交互了。

Accessing Raspberry Pi using SSH

安装Otii服务器

为使用Otii解决方案进行自动化测试,首先启用Otii服务器,它支持使用像Python和Java这样很流行的脚本语言。第一步访问Qoitech官方用户管理中心并登录。如果没有账号,请点击”注册“来注册一个账户,然后通过相关邮箱验证账户。

一旦登录用户管理中心,然后来到下载页面。选择接受最终用户许可协议,然后选择Otii服务器的Raspberry Pi版本并下载。

下一步,传输下载文件”.deb“到你的Raspberry Pi计算机上。有两种方式:

  1. 直接下载:如果有权限使用Raspberry Pi界面,使用Raspberry Pi上的浏览器浏览用户管理中心并直接下载文件。
  2. 使用SCP:使用SCP指令从你的电脑上复制文件到Raspberry Pi上。在xxx终端上运行以下指令,用以下细节替换占位符:
scp <Path to File> <username>@<IP Address of Raspberry Pi>:<Destination Path>

例如

scp Downloads/otii_server_3.4.3_arm64.deb pi.qoitech@192.168.1.64:/home/pi.qoitech/Downloads

一旦传输了文件,通过SSH远程获取Raspberry Pi权限,导航到”.deb “包复制或者下载的目录:

cd Downloads

然后,使用以下指令安装Otii服务器:

sudo dpkg -i otii_server_3.x.x_arm64.deb

安装完毕,现在可以使用Otii解决方案为你的物联网和嵌入式系统启动可扩展的低功耗功能测试了!

运行Otii服务器

要使用 SSH 设置 Otii 服务器并与之交互,需要建立两个 SSH 连接。一个连接用于运行 Otii 服务器,另一个连接用于用户管理和脚本。请注意,如果需要,Otii 服务器也可以直接从脚本激活。

  1. 第一个 SSH 连接: 输入以下命令运行 Otii 服务器。保持该连接在后台运行:
otii_server
  1. 第二个 SSH连接:安装 Python 版的 Otii TCP 客户端.
python3 -m pip install otii_tcp_client

一旦设置完成,用户可以使用Python或者其他脚本语言管理Otii服务器并编写脚本。更多详细步骤,请查看Qoitech官网的Otii自动化工具箱文档。

运行Python脚本

在Raspberry Pi上运行Python示例,演示如何使用Otii TCP客户端登录、找到许可证、预定及归还许可证,最后退出登录。请遵循以下步骤:

  1. 创建一个Python文件: 在Raspberry Pi上,使用nano命令来创建一个新的Python文件,命名为 ”test_management.py“
nano test_raspberrypi.py
  1. 粘贴Python代码:复制粘贴以下Python代码到 test_management.py 文件中。该脚本会连接到Otii服务器上,登录、找到可使用的许可证、预定许可证,执行任务,并在退出登录之前归还许可证。
#!/usr/bin/env python3
import time
from otii_tcp_client import otii_client

RECORDING_DURATION = 20

def test(otii):
    devices = otii.get_devices()
    if len(devices) == 0:
        raise Exception('No device connected!')

    device = devices[0]
    device.set_main_voltage(4.2)
    device.set_max_current(0.8)
    device.enable_channel("mc", True)

    project = otii.get_active_project()

    project.start_recording()
    otii.set_all_main(True)
    time.sleep(RECORDING_DURATION)
    otii.set_all_main(False)
    project.stop_recording()

    recording = project.get_last_recording()
    assert recording is not None

    info = recording.get_channel_info(device.id, "mc")
    print(f'From:        {info["from"]} s')
    print(f'To:          {info["to"]} s')
    print(f'Offset:      {info["offset"]} s')
    print(f'Sample rate: {info["sample_rate"]}')

    statistics = recording.get_channel_statistics(device.id, "mc", info['from'], info['to'])
    print(f'Min:         {statistics["min"]:.5} A')
    print(f'Max:         {statistics["max"]:.5} A')
    print(f'Average:     {statistics["average"]:.5} A')
    print(f'Energy:      {statistics["energy"]:.5} Wh')

def main():
    client = otii_client.OtiiClient()
    with client.connect() as otii:
        test(otii)

if __name__ == '__main__':
    main()
  1. 创建凭证文件:在与脚本相同的目录下,创建一个名为 credentials.json 的 JSON 文件。该文件应包含 Qoitech 用户管理帐户的用户名、密码和 Automation Toolbox 许可证 ID。文件内容应如下所示:
{
    "username": "YOUR USERNAME",
    "password": "YOUR PASSWORD",
}

用真实凭证文件和许可证ID替换掉代码里的”YOUR USERNAME(你的用户名)“,和 ”YOUR PASSWORD (你的密码)“

  1. 运行Python脚本:通过在终端上运行以下命令,从而执行user_management.py脚本
python3 test_raspberrypi.py
  1. 检查输出:一旦开始运行脚本,系统会关于可以使用的许可证展示日志信息,以及许可证是否已经被预定和成功归还。
From:        0 s
To:          20.019 s
Offset:      0 s
Sample rate: 50000
Min:         -0.0058117 A
Max:         0.52232 A
Average:     0.0037786 A
Energy:      0.31778 Wh
  1. 进一步探索: 完成本示例后,用户可以通过创建自定义 Python 脚本来探索Otii TCP 客户端的更多功能,以便在硬件开发周期中自动进行测试。有关使用PythonJavaTCP 客户端的即用示例和更多详情,请参阅Qoitech 的 GitHub

结论

功能测试在硬件开发中至关重要,因为它能确保产品达到预期性能,符合所有设计和法规要求,满足用户需求,同时降低生产后出现问题的高成本风险。因此,测试是支持硬件产品整体质量、可靠性和成功的基本流程。

欢迎关注官方微信公众号和视频号"Qoitech"获取更多信息,或联系小编(微信qoitech_cn)索要Otii付费许可证的试用哦!