构建一个基于RP2350的紧凑型蓝牙低能耗空气质量网关
本项目采用了一种独特的软件设计方法:并非将HibouAir扫描仪作为固件的一部分直接运行,而是让Fruit Jam运行一个名为myRTOS的定制实时操作系统。
myRTOS中的一个C语言应用程序模块hibouair.c,通过USB与BleuIO适配器进行通信,扫描附近的HibouAir空气质量传感器,解码其蓝牙低能耗广播,并在终端窗口中实时显示最新的测量数据。
最终成果是一个基于RP2350运行的紧凑型嵌入式BLE空气质量网关。
要求
本项目使用以下设备:
•Adafruit Fruit Jam 配合 RP2350B
•BleuIO SSD025 蓝牙低能耗 USB 路由器
•一个或多个 HibouAir SSD002 空气质量传感器
•myRTOS
•USB数据线
•带有串行终端(如PuTTY)的计算机
•Fruit Jam特别适合本项目,因为它内置了USB集线器,并配有两个裸露的USB主机端口。
这个项目能做什么?
1. HibouAir 发布传感器数据
2. BleuIO 接收 BLE 广告
3. Fruit Jam 通过 USB 接收数据
4. myRTOS 解码并显示测量数据。
HibouAir 传感器通过 BLE 广播数据包定期发送其测量信息。SSD025 接收这些数据包,并将信息通过 USB 传输给 RP2350。
myRTOS 应用程序随后扫描 HibouAir 设备,解析接收到的信息,并实时维护已检测到的传感器列表。
终端可方便地查看空气质量信息的实时变化。
硬件
该项目围绕三个主要硬件组件构建。
Adafruit Fruit Jam,将 BleuIO SSD025 直接连接到 USB Type-A 主机端口。
Adafruit Fruit Jam
Fruit Jam 是一款基于 RP2350B 微控制器的紧凑型计算机。Adafruit 通过内置的 USB 路由器提供了两个 USB Type-A 主机接口,使用户能够直接连接 USB 外设。
该板提供的功能远超本简易网关所需的功能。除了 RP2350B 外,它还配备了闪存存储、PSRAM、USB 主机能力、microSD 卡、DVI 输出、音频硬件以及一个 ESP32-C6 用于无线连接。
然而,在本项目中,关键特性是其 USB 主机接口。
BleuIO SSD025
BleuIO SSD025 用作蓝牙低功耗(BLE)接口。
这意味着 RP2350 应用程序无需自行实现蓝牙低功耗协议栈。
该适配器支持蓝牙 5.2 和 USB 全速传输,可作为蓝牙中心或外设工作,并通过其 USB 接口进行控制。
因此,应用程序可通过 BleuIO 的 USB 接口访问 BLE 功能,而蓝牙通信则交由适配器处理。
HibouAir SSD002
HibouAir SSD002 是一款无线空气质量传感器。
根据 HibouAir 的文档,SSD002/2B 是一种采用非分散红外(NDIR)CO₂传感器、具备无线蓝牙连接功能的 CO₂ 空气质量监测仪。该传感器系列可根据不同型号提供包括 CO₂、温度、湿度、颗粒物以及挥发性有机化合物(VOC)相关的环境参数测量。
为何使用 BleuIO?
BleuIO 作为 Fruit Jam 实现的 USB 主机与周围环境中的低功耗蓝牙设备之间的桥梁。
应用处理器可专注于以下任务:
- USB 通信
- 实时操作系统(RTOS)调度
- 数据解析
- 终端输出
而 BleuIO 则负责处理蓝牙部分。
类似地,BleuIO 自有的 HibouAir 门控示例也通过 USB 向 RP2040/RP2350 开发板提供 BLE 通信。
软件架构
本项目所使用的软件基于 myRTOS,这是一个运行在 Fruit Jam 上的小型实时操作系统环境。
HibouAir 应用程序从 RTOS 命令界面启动:
一旦启动,应用程序进入扫描模式:
扫描;按 Ctrl+C 停止
应用程序随后会持续处理接收到的BLE数据。
从概念上看,软件流程如下:
HibouAir → BLE广告 → BleuIO SSD025 → USB → Fruit Jam / myRTOS → HibouAir数据包解码 → 终端显示
关键点在于,这不仅仅是一个简单的BLE数据包监控器。
该应用程序将无线数据转换为人类可读的传感器表格。
如何运行项目
•连接电路板:使用USB-C线将Adafruit Fruit Jam连接到电脑,并打开电源开关。
•按住按钮#1(位于GPIO0上的UF2 BOOT按钮),在继续按住按钮#1的同时按下复位按钮,直到引导程序驱动出现后才松开按钮#1。
•将项目中的.uf2文件拖拽至电路板的引导程序驱动器中。该镜像包含myRTOS和hibouair.c应用程序模块。
•按下复位按钮以重启电路板。
•连接BleuIO SSD025:将BleuIO SSD025插入Fruit Jam的一个USB Type-A主机端口。
•启动HibouAir传感器:确保一个或多个HibouAir传感器已开启,并处于BleuIO设备的蓝牙范围内。
•Adafruit Fruit Jam上按钮的位置
要进入UF2引导加载程序模式,本项目使用Fruit Jam上的两个按钮:
•按钮 #1(UF2 BOOT)——位于板子右下角的GPIO0位置。
•复位按钮——位于板子左侧边缘。
下图显示了这两个按钮的位置。
重启后,打开终端窗口并连接到板子。
Windows
重启后,打开设备管理器,找到分配给Fruit Jam的COM端口。然后使用PuTTY等串行终端连接到该端口。
macOS
要找到Fruit Jam的串行端口,请打开终端并运行以下命令:
该命令应返回类似以下内容的设备信息:
使用以下方式连接:
实时HibouAir扫描
连接到Fruit Jam后,从myRTOS命令界面启动HibouAir应用程序:
程序随后会打印出包含检测到的HibouAir设备的表格。
这使用户能够立即查看当前接收到的所有HibouAir传感器。
预期输出
例如,下图所示为扫描过程中检测到的多个HibouAir设备。表格中显示了每个检测到设备的板卡标识符、蓝牙地址、传感器类型以及最新的环境测量数据。
下一步可能的应用方向?
当前应用程序专注于核心任务:接收HibouAir广告,并实时展示解码后的测量数据。
将数据记录到Fruit Jam的microSD卡上,还能实现长期空气质量数据集的积累,而无需永久连接计算机。
Fruit Jam具备USB主机功能、microSD存储和RP2350B处理器,使得此类扩展成为可能。
结论
本项目展示了如何将Adafruit Fruit Jam、BleuIO SSD025和HibouAir SSD002组合起来,构建一个基于RP2350的紧凑型蓝牙低能耗空气质量网关。
HibouAir传感器通过BLE广播其环境测量数据。BleuIO接收这些广播信息,并通过USB将数据传输至Fruit Jam,myRTOS平台上的hibouair应用程序解码传感器数据,并实时显示最新的测量结果。
该项目演示了如何在基于RP2350的嵌入式系统中集成BLE通信功能,同时保持蓝牙接口与主应用分离。
本文编译自hackster.io





