盛思锐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

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

相关推荐
嵌入式ZYXC16 分钟前
第3篇:《面试题:I2C为什么要加上拉电阻?阻值怎么选?》
stm32·单片机·嵌入式硬件·面试·职场和发展
网络研究院36 分钟前
AgentGG:开源的代理式 SAST 扫描器
开源·github·工具·网络研究观·agentgg
sbjdhjd44 分钟前
面试(5)| 3.5 小时面试复盘第五弹:加班出差 + 客户响应 + 压力面全拆解
经验分享·程序人生·面试·职场和发展·开源·跳槽·求职招聘
你疯了抱抱我1 小时前
【STM32】使用 STM32CubeMX 生成项目,LED测试;上位机:STM32F411CEU6
stm32·单片机·嵌入式硬件
梦梦代码精1 小时前
为什么这个开源的AI平台会火?有点东西。。。
人工智能·算法·机器学习·docker·开源
今天的你比昨天进步了?3 小时前
单片机程序,keil可以正常编译,VScode编译报错处理
vscode·单片机·嵌入式硬件
linbaiwan6664 小时前
42V/50V/60V高耐压OVP保护芯片的应用——PW1600实测70V耐压
嵌入式硬件
嵌入式小站4 小时前
STM32 零基础可移植教程 24:SPI Flash 读数据,先从指定地址读几个字节
chrome·stm32·嵌入式硬件
sbjdhjd5 小时前
04(上)| k8s中的微服务
微服务·云原生·kubernetes·开源·云计算·excel·kubelet