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

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

相关推荐
玩转单片机与嵌入式6 小时前
一个成熟的嵌入式AI系统,是长什么样子的?
人工智能·单片机·嵌入式硬件·嵌入式ai
玩转单片机与嵌入式10 小时前
不会 Python、不会深度学习,也能在STM32上跑AI模型吗?
人工智能·单片机·嵌入式硬件·嵌入式ai
jghhh0111 小时前
基于STM32的桌面Mini时钟设计
stm32·单片机·嵌入式硬件
电化学仪器白超12 小时前
小乌龟Git全程图形化操作指南:嵌入式本地版本管理与Gitee私有云备份实战
git·python·单片机·嵌入式硬件·物联网·gitee·自动化
AI自动化工坊12 小时前
SemaClaw开源框架实践指南:从提示工程到安全工程的AI代理基础设施变革
人工智能·开源·ai agent·semaclaw
yong999013 小时前
基于STM32 Nucleo板的彩色LED照明灯设计(纯CubeMX开发)
stm32·单片机·嵌入式硬件
独小乐13 小时前
019.ADC转换和子中断|千篇笔记实现嵌入式全栈/裸机篇
linux·c语言·驱动开发·笔记·嵌入式硬件·mcu·arm
lingzhilab14 小时前
零知派——STM32驱动INA219电流功率监测计实现高精度电源管理
stm32·单片机·嵌入式硬件
起个名字总是说已存在14 小时前
github开源AI技能:Awesome DESIGN.md让页面设计无限可能
人工智能·开源·github