littlebot
Published on 2025-04-18 / 0 Visits
0

【源码】基于C++编程语言的智能PPE设备固件系统

项目简介

本项目是基于C++编程语言构建的智能PPE(个人防护设备)设备固件系统。该系统利用嵌入式技术,借助各类传感器,可实现对呼吸率、心率、温度等健康数据的监测与记录,为个人防护和健康管理提供有力支持。

项目的主要特性和功能

  1. 硬件接口管理:运用SPI和I2C接口与多种传感器(如Si7051、LPS22HB)进行通信,保障数据采集的稳定。
  2. 传感器数据处理:采用滤波器(如巴特沃斯滤波器)对传感器数据进行处理,去除噪音干扰,提取有效信号。
  3. 健康数据监测:通过分析传感器采集的气压、温度等数据,实现对呼吸率和心率的精准监测。
  4. 日志记录功能:配备日志系统,可记录设备运行状态和传感器数据,支持SWO和UART两种日志输出方式。
  5. 蓝牙通信支持:支持蓝牙通信,方便与智能设备进行数据同步。
  6. 电源管理优化:借助BusControl类对FRAM、磁力计、气压计、IMU等外围设备的电源进行管理,实现节能降耗。

安装使用步骤

环境准备

  1. 确保计算机已安装Git,可参考Git - Installing Git进行安装。
  2. 安装VS Code(也可使用其他偏好的IDE),下载地址为Visual Studio Code - Code Editing. Redefined
  3. 安装Mbed CLI及其依赖,参考Overview - Build tools | Mbed OS 6 Documentation
  4. 安装GNU Arm Embedded Toolchain,下载地址为GNU Toolchain | GNU Arm Embedded Toolchain Downloads - Arm Developer,并将其路径配置好。
  5. 下载JLink Software and Documentation Pack,记录安装路径。
  6. 准备所需硬件,包括Smart PPE板、JLINK调试器(如J-Link EDU Mini)、Micro USB线、7.9mm (W) x 5.4mm (H) 氧化银电池或专用电源。

项目搭建

  1. 将项目仓库复制到本地文件夹: bash git clone https://gitlab.com/ka-moamoa/smart-ppe/embedded-firmware.git
  2. 切换到embedded-firmware目录: bash cd embedded-firmware/
  3. 初始化mbed仓库: bash mbed deploy
  4. 若为首次设置,可能需进入mbed-os目录并运行pip install -r requirements.txt --user(Mac用户建议添加--user标志),完成后返回项目根目录。
  5. 复制bluetooth features snippets page的内容,覆盖embedded-firmware/mbed-os/connectivity/FEATURE_BLE/mbed_lib.json文件。
  6. 编译代码: bash mbed compile -t GCC_ARM -m SMARTPPE

VS Code配置

  1. 在VS Code中打开embedded firmware文件夹。
  2. 按下F1,输入configure default build task并选择,然后选择other,将以下内容粘贴到弹出的tasks.json文件中: json { "version": "2.0.0", "tasks": [ { "label": "build-debug", "type": "shell", "command": "mbed compile -t GCC_ARM -m SMARTPPE --profile debug", "problemMatcher": "$gcc", "group": { "kind": "build", "isDefault": true } }, { "label": "build-develop", "type": "shell", "command": "mbed compile -t GCC_ARM -m SMARTPPE --profile develop", "problemMatcher": "$gcc", "group": "build" } ] }
  3. 可通过按下F1选择Tasks: Run Build Task或使用快捷键(Mac默认cmd-shift-B,Windows默认ctrl-shift-B)进行代码构建。

调试配置

VSCode调试

  1. 点击侧边栏的“Run”按钮,选择“create a launch.json file”,选择任意选项后删除默认配置,将以下内容复制到launch.json文件中: json { "version": "0.2.0", "configurations": [ { "name": "debug", "type": "cortex-debug", "request": "launch", "servertype": "jlink", "serverpath": "/Applications/SEGGER/JLink_V692/JLinkGDBServerCLExe", "interface": "swd", "cwd": "${workspaceRoot}", "runToMain": true, "executable": "${workspaceRoot}/BUILD/SMARTPPE/GCC_ARM-DEBUG/${workspaceRootFolderName}.elf", "device": "nrf52", "svdFile": "${workspaceRoot}/nrf52.svd", "armToolchainPath": "/Applications/ARM/bin/", "swoConfig": { "enabled": true, "cpuFrequency": 64000000, "swoFrequency": 40000000, "source": "probe", "decoders": [ { "type": "console", "label": "SMART-PPE", "port": 0 } ] } }, { "name": "debug-develop", "type": "cortex-debug", "request": "launch", "servertype": "jlink", "serverpath": "/Applications/SEGGER/JLink_V692/JLinkGDBServerCLExe", "interface": "swd", "cwd": "${workspaceRoot}", "runToMain": true, "executable": "${workspaceRoot}/BUILD/SMARTPPE/GCC_ARM-DEVELOP/${workspaceRootFolderName}.elf", "device": "nrf52", "svdFile": "${workspaceRoot}/nrf52.svd", "armToolchainPath": "/Applications/ARM/bin/", "swoConfig": { "enabled": true, "cpuFrequency": 64000000, "swoFrequency": 40000000, "source": "probe", "decoders": [ { "type": "console", "label": "SMART-PPE", "port": 0 } ] } } ] } 注意调整serverpathexecutablearmToolchainPath等文件路径。
  2. 保存后,点击“run”按钮,再点击面板顶部的绿色箭头即可开始调试。若要获取SWO输出,在VSCode下载代码到板卡并等待“start”时,在底部面板的Output中,将Tasks切换为SWO: SMART-PPE

Ozone调试

  1. 通过USB将J-Link(或开发套件)连接到计算机,用 ribbon 电缆将其连接到Smart PPE板的调试头,确保红色线在J-Link标记为(1)的一侧。
  2. 下载Ozone
  3. 打开Ozone,选择Create New Project
  4. 设置目标设备:
    • Device: nRF52832_xxAA
    • Register Set: Cortex-M4 (with FPU)
    • Peripherals: 输入系统中nrf52.svd文件的路径。
  5. 点击下一步,设置连接参数:
    • Target Interface: SWD
    • Target Interface Speed: 8 MHz
    • Host Interface: USB
    • Serial No: 保持自动填充的连接设备序列号。
  6. 点击下一步,输入.elf文件的系统路径,从项目根目录起路径为embedded-firmware/BUILD/SMARTPPE/GCC_ARM-DEBUG/embedded-firmware.elf(需先在VSCode中成功构建软件)。
  7. 点击完成,应能看到main.cpp文件。
  8. 点击屏幕左上角的绿色电源按钮,若Smart PPE板已供电,Ozone将连接并下载程序。
  9. 在菜单栏中选择Tools->Trace Settings,在Trace Source下选择SWO,点击Save to Project以启用SWO printf,SWO消息将显示在“Terminal”窗口中。
  10. 点击File->Save Project As将调试配置保存到项目文件夹。
  11. 后续可正常进行调试,当代码重新构建后,Ozone会自动检测.elf文件的变化并询问是否重新加载。

测试

在硬件上测试设备的运行情况,确保所有功能正常。

下载地址

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