盛思锐SEN66 - ArtPi2+RTOS 数据记录/开源

下午,周例会, 我提出,考虑把空气质量相关传感器,纳入车载产品规划,大家还蛮有兴趣的; 估计年后会有一些动作. 一个是进一步的小型化,再有一个是商务上的可行性.

传感器套件的稳定性如何呢?正好用手头的 ArtPi2测试一下, 默认使用RT-Thread.

1/ 项目背景 -

  • 已确定开发板 A - art-pi-2(stm32h7r7)

  • 已确定模组 B - Sen66(i2c)

  • I2C interface -

I2C地址:0x6B

VDD range: 3.15 to 3.45 V

Peak current @ 3.3 V: 350 mA

  • 使用 RPI_I2C接口 (PB8 (SCL)、PB9 (SDA))

SDK配置:BSP_I2C1_SCL_PIN=24, BSP_I2C1_SDA_PIN=25

GPIO配置:GPIO_InitStruct.Pull = GPIO_NOPULL

硬件上拉:底板有4.7kΩ上拉电阻

2/ 项目需求 -

  • 项目模板/开发根目录 ./art_pi2_sen66_i2c/ ;

  • 使用rt-thread系统,相关调试信息console输出;

  • 采集传感器发来的i2c数据(目前的设置是1hz, 也就是每秒采集一次数据),存储到SD-Card的.csv文件上(yyyy-mm-dd-hh-mm.csv 作为文件名);

  • 每分钟的数据单独一个文件(如果时间不到1分钟就停止传输则单列一个);

3/ 修改配置,编译,下载 -

复制代码
# scons --target=mdk5 -j8
scons: Reading SConscript files ...
Keil5 project is generating...
Keil Version: 0.0
Keil-MDK project has generated successfully!

linking...
Program Size: Code=115148 RO-data=12720 RW-data=1004 ZI-data=23244  
After Build - User command #1: fromelf --bin .\build\rt-thread.axf --output rtthread.bin
".\build\rt-thread.axf" - 0 Error(s), 0 Warning(s).
Build Time Elapsed:  00:00:09
Load "D:\\ST\\workspace\\sdk-bsp-stm32h7r-realthread-artpi2\\projects\\art_pi2_sen66_i2c\\build\\rt-thread.axf" 
Erase Done.
Programming Done.
Verify OK.
Application running ...
Flash Load finished at 19:32:57

有图有真相 -

因为没有接屏幕,所以从串口打印看运行状况 -

复制代码
System Clock information
SYSCLK_Frequency = 600000000
HCLK_Frequency   = 300000000
PCLK1_Frequency  = 150000000
PCLK2_Frequency  = 150000000
PLL2S_XSPI1_2_Frequency  = 200000000
PLL2T_Frequency  = 133333333

   ___  ______  _____         ______  _   ______  _____  _____  _____
  / _ \ | ___ \|_   _|        | ___ \(_)  | ___ \/  _  \/  _  \|_   _|
 / /_\ \| |_/ /  | |   ______ | |_/ / _   | |_/ /| | | || | | |  | |
 |  _  ||    /   | |  |______||  __/ | |  | ___ \| | | || | | |  | |
 | | | || |\ \   | |          | |    | |  | |_/ /\ \_/ /\ \_/ /  | |
 \_| |_/\_| \_|  \_/          \_|    |_|  \____/  \___/  \___/   \_/

 Powered by RT-Thread.

[I/XSPI] Read Flash ID success:0xef 0x5b 0x1a
msh >[I/XSPI] Recondiv Flash clock

[I/XSPI] Flash Re-Enter Octal DTR and Read ID success:ef 1a 00
[I/XSPI] PSRAM MR0: 0x08, MR1: 0x8d
[I/XSPI] PSRAM MR0 SET
[I/XSPI] PSRAM MR4 SET
[I/XSPI] PSRAM MR8 SET
[I/XSPI] Flash XIP success
[I/XSPI] PSRAM XIP Success


Jump to APP...
[I/I2C] I2C bus [i2c1] registered

 \ | /
- RT -     Thread Operating System
 / | \     5.1.0 build Jan 26 2026 19:32:42
 2006 - 2024 Copyright by RT-Thread team

========================================
 SEN66 Air Quality Data Logger
 Hardware: ART-Pi-2
 Sensor: SEN66 (I2C)
 Storage: SD Card (CSV format)
========================================

[I/logger] Data logger initialized
[I/logger] Time set to: 1769439600 (from tick=24)
[I/main] Default time set: 2026-01-26 20:00:00
[I/main] Use 'set_time <timestamp>' to update

msh />[I/SDIO] SD card capacity 31166976 KB.
found part[0], begin: 4194304, size: 29.736GB
[I/app.filesystem] sd card mount to '/sdcard'
[I/logger] Logger thread created
[I/logger] Logger thread started
I2C HAL initialized on i2c1
[I/logger] Product: SEN66
[I/logger] Serial: 20054780F3BE84C8
[I/logger] Measurement started
[W/time] Cannot find a RTC device!
[I/logger] File: /sdcard/20260126_1500.csv
[I/logger] PM2.5=42.7 T=24.9 H=56.6 [10]
[I/logger] PM2.5=40.7 T=24.9 H=56.6 [20]
msh />ls /sdcard
Directory /sdcard:
System Volume Inform<DIR>
20260126_1500.csv   0
... ...
msh />cat /sdcard/20260210_1500.csv
Second,PM1.0,PM2.5,PM4.0,PM10,Humidity,Temperature,VOC,NOx,CO2
0,6553.5,6553.5,6553.5,6553.5,53.50,26.38,0.0,3276.7,65535
1,23.8,27.3,29.4,30.4,53.50,26.38,0.0,3276.7,65535
2,23.5,26.9,29.0,30.0,53.50,26.38,0.0,3276.7,65535
3,6.8,14.5,20.6,23.6,53.50,26.38,0.0,3276.7,65535
4,8.9,16.5,22.5,25.4,53.50,26.38,0.0,3276.7,642
5,10.8,18.0,23.7,26.4,53.50,26.38,0.0,3276.7,642
6,10.9,18.2,23.8,26.5,53.50,26.38,0.0,0.0,642
7,12.5,19.5,24.8,27.4,53.50,26.38,0.0,0.0,642
8,11.1,18.5,24.3,27.0,53.50,26.38,0.0,0.0,637
9,11.5,19.1,25.0,27.8,53.50,26.38,0.0,0.0,632
10,9.8,17.9,24.4,27.5,53.50,26.38,0.0,0.0,627
11,9.9,18.1,24.7,27.8,53.50,26.38,0.0,0.0,622
12,10.0,18.2,24.8,28.0,53.50,26.37,0.0,0.0,617
13,10.4,18.9,25.6,28.8,53.50,26.37,0.0,0.0,619
14,10.5,19.1,25.8,29.1,53.50,26.37,0.0,0.0,622
15,10.6,19.3,26.1,29.4,53.50,26.36,0.0,0.0,625
16,10.8,19.5,26.4,29.7,53.50,26.36,0.0,0.0,628
17,10.8,19.6,26.5,29.9,53.50,26.35,0.0,0.0,631
18,10.9,19.8,26.8,30.2,53.50,26.34,0.0,0.0,629
19,11.0,19.9,26.9,30.3,53.50,26.33,0.0,0.0,628
20,11.0,20.0,27.1,30.5,53.50,26.32,0.0,0.0,626
21,11.1,20.1,27.2,30.6,53.50,26.31,0.0,0.0,625
22,11.1,20.2,27.3,30.8,53.50,26.29,0.0,0.0,624
23,11.1,20.1,27.3,30.8,53.51,26.27,0.0,0.0,622
24,11.1,20.2,27.4,31.0,53.51,26.25,0.0,0.0,621
25,11.1,20.3,27.6,31.1,53.51,26.22,0.0,0.0,620
26,11.1,20.3,27.6,31.1,53.51,26.18,0.0,0.0,619
27,11.1,20.3,27.5,31.1,53.51,26.13,0.0,0.0,619
28,11.1,20.3,27.5,31.1,53.52,26.08,0.0,0.0,619
29,11.2,20.4,27.7,31.2,53.52,26.01,0.0,0.0,619
30,11.1,20.4,27.7,31.2,53.53,25.94,0.0,0.0,619
31,11.3,20.8,28.2,31.8,53.54,25.85,0.0,0.0,620
32,11.4,20.9,28.3,32.0,53.56,25.75,0.0,0.0,621
33,11.5,21.0,28.6,32.3,53.58,25.64,0.0,0.0,622
34,11.5,21.1,28.7,32.4,53.62,25.53,0.0,0.0,623
35,11.6,21.3,29.0,32.7,53.68,25.41,0.0,0.0,624
36,11.7,21.4,29.2,32.9,53.79,25.28,0.0,0.0,626
37,11.7,21.5,29.3,33.0,53.98,25.16,0.0,0.0,626
38,11.7,21.6,29.4,33.2,54.26,25.03,0.0,0.0,626
39,11.8,21.7,29.5,33.4,54.61,24.91,0.0,0.0,626
40,11.8,21.8,29.7,33.5,54.98,24.80,0.0,0.0,626
41,11.8,21.9,29.8,33.6,55.34,24.69,0.0,0.0,627
42,11.9,21.9,29.9,33.8,55.70,24.58,0.0,0.0,627
43,11.9,21.9,29.9,33.8,56.06,24.48,0.0,0.0,628
44,11.8,21.9,29.9,33.8,56.42,24.39,1.0,0.0,628
45,11.8,21.9,29.9,33.7,57.12,24.22,1.0,0.0,630
47,11.8,21.9,29.9,33.7,57.46,24.15,3.0,0.0,630
48,11.8,21.9,29.9,33.7,57.79,24.08,5.0,0.0,630
49,11.7,21.9,29.9,33.7,58.12,24.01,8.0,0.0,630
50,11.7,21.7,29.7,33.6,58.43,23.95,11.0,0.0,630
51,11.7,21.8,29.9,33.7,58.73,23.90,14.0,0.0,631
52,11.8,21.9,30.0,33.9,59.02,23.84,17.0,1.0,630
53,11.8,21.9,30.0,33.9,59.30,23.79,20.0,1.0,630
54,11.7,21.9,30.0,33.9,59.57,23.74,23.0,1.0,630
55,11.7,21.9,30.0,33.9,59.83,23.69,26.0,1.0,630
56,11.7,21.9,30.0,33.9,60.08,23.65,28.0,1.0,630
57,11.7,21.9,30.0,33.9,60.32,23.61,31.0,1.0,630
58,11.7,21.9,30.0,33.9,60.55,23.57,33.0,1.0,630
59,11.7,21.9,30.0,33.9,60.77,23.54,35.0,1.0,630
msh>

开源地址 - https://gitee.com/jomoly/art_pi2_sen66_i2c

看都看到这里了,小伙伴给三连一下呗!

相关推荐
Truffle7电子4 小时前
STM32理论 —— FreeRTOS:中断管理、列表
stm32·单片机·嵌入式硬件·rtos
❀͜͡傀儡师5 小时前
docker部署WhoDB开源轻量级数据库管理工具
数据库·docker·开源
LXY_BUAA6 小时前
《嵌入式操作系统》_GPIOLIB前置知识_20260328
驱动开发·嵌入式硬件
IvorySQL6 小时前
直播回顾| PostgreSQL 18.3 x IvorySQL 5.3:开启 AI 数据库新纪元
数据库·postgresql·开源
17(无规则自律)6 小时前
深度剖析Linux Input子系统(2):驱动开发流程与现代 Multi-touch 协议
linux·驱动开发·嵌入式硬件
AI成长日志6 小时前
【GitHub开源项目专栏】强化学习开源框架解析——Ray RLlib vs Stable Baselines3设计哲学对比
开源·github
IvorySQL6 小时前
PostgreSQL 技术日报 (3月27日)|当 AI 开始自动创建数据库
数据库·postgresql·开源
BackCatK Chen7 小时前
STM32保姆级入门教程|第5章:GPIO内部结构 + 8种模式 + 功能详解
stm32·嵌入式硬件·gpio·推挽输出·开漏输出·gpio内部结构·上拉输入
Heartache boy8 小时前
野火STM32_HAL库版课程笔记-TIM触发ADC采集
笔记·stm32·单片机·嵌入式硬件
你疯了抱抱我8 小时前
【Altium Designer】网络线(颜色、旋转、粗细);网络标签 && 端口的差别(重点!)
嵌入式硬件·嵌入式·pcb·电路