exs_bme680 扩展库
作者:江访 | 最后修改:2026-08-20
一、概述
exs_bme680 是 Bosch Sensortec BME680 四合一环境传感器的 LuatOS 扩展库。 BME680 在 BME280 基础上额外集成了 MOX(金属氧化物)气体传感器,可同时测量温度、大气压、湿度和气体电阻(VOC/IAQ), 广泛应用于室内空气质量监测、天气预报、海拔测量、智能家居、便携式健康设备等领域。
1.1 主要特性
-
压力范围 300~1100hPa(对应海拔 +9000m ~ -500m)
-
温度测量精度 ±0.5°C(典型值)
-
气压测量精度 ±0.12hPa(典型值,高精度模式)
-
湿度测量范围 0~100%RH,精度 ±3%RH
-
气体电阻测量范围 125Ω~4GΩ,用于 VOC/IAQ 空气质量检测
-
内置 MOX 气体传感器,加热器温度 200~400°C 可调
-
I2C 接口通信,7 位地址可选 0x76(SDO=GND)或 0x77(SDO=VCC)
-
内置 E2PROM 存储 41 字节校准参数,每颗芯片独立校准
-
支持 IIR 滤波器(系数 0~7),最高 128 次平均
-
支持 T/P/H 三路过采样率独立设置(0~16X)
-
20 位 ADC 分辨率
-
工作电压 1.71~3.6V
-
待机电流 0.15μA(典型值)
-
支持软件 I2C 和硬件 I2C 两种模式
-
内置 I2C 总线卡死自动检测与恢复
1.2 注意事项
-
推荐使用软件 I2C 模式:在异常 I2C 通信后可能锁死 SDA 总线,软件 I2C 模式可以通过 GPIO 直接脉冲 SCL 恢复总线。
-
初始化总线恢复:每次调用
setup()时,如果传入了scl/sda引脚号,驱动会先进行总线恢复。 -
运行时自动恢复:当
i2c.send()或i2c.recv()返回失败时,驱动自动执行总线恢复并重试。 -
I2C 模式下 SCL 和 SDA 需外接 4.7kΩ~10kΩ 上拉电阻到 VCC
-
BME680 的 I2C 地址:SDO=GND 时 0x76,SDO=VCC 时 0x77
-
CHIP_ID 为 0x61,可用于验证芯片是否正常通信
-
气体传感器需要加热器稳定后才返回有效值,新板首次上电需预热 20~30 分钟电阻才稳定(详见 1.5.1)
-
气体电阻值受环境温度、湿度和 VOC 浓度共同影响,不同场景下基准值不同
1.3 过采样率说明
BME680 支持温度、气压、湿度三路独立设置过采样率,通过 setup() 的 config 或单独的 set_xxx_oversampling() 设置:
| os 值 | 过采样倍数 | 精度 | 转换时间增量 |
|---|---|---|---|
| 0 | 关闭 | - | 0ms |
| 1 | 1X | 基础 | 最短 |
| 2 | 2X | 较高 | 2倍 |
| 3 | 4X | 高 | 4倍 |
| 4 | 8X | 很高 | 8倍 |
| 5 | 16X | 最高 | 16倍 |
默认值:温度 8X,气压 4X,湿度 2X。
1.4 IIR 滤波器说明
BME680 内置 IIR(无限脉冲响应)低通滤波器,通过 setup() 的 config.filter 或 set_filter() 配置:
| filter 值 | 采样平均次数 | 适用场景 |
|---|---|---|
| 0 | 关闭 | 快速响应,适合变化频繁的环境 |
| 1 | 2 次 | 轻度滤波 |
| 2 | 4 次 | 中等滤波 |
| 3 | 8 次 | 较强滤波(默认) |
| 4 | 16 次 | 强滤波 |
| 5 | 32 次 | 很强滤波 |
| 6 | 64 次 | 极强滤波 |
| 7 | 128 次 | 最强滤波,适合静态精密测量 |
1.5 气体传感器说明
BME680 的 MOX 气体传感器通过加热金属氧化物层来检测 VOC(挥发性有机化合物)等气体。加热器参数直接影响气体检测的灵敏度和选择性:
- 加热器温度(200~400°C):不同温度下对不同气体敏感度不同
- 200~250°C:适合检测乙醇、甲醛等
- 300~350°C:适合通用 VOC 检测(默认 320°C)
-
350~400°C:适合检测 CO 等
-
加热器持续时间(1~4032ms):加热时间越长,传感器越稳定,但功耗越高(默认 150ms)
-
气体电阻值越低,表示 VOC 浓度越高(空气质量越差)
1.5.1 预热时长说明
MOX 气体传感器属于加热型元件,上电后加热器升温、金属氧化物表面发生化学平衡调整,气体电阻会从低值缓慢爬升,最终稳定在某个基线值。这一过程称为预热(Warm-up)/烧机(Burn-in):
- 新板首次上电:建议预热 20~30 分钟,电阻才趋于稳定;若环境潮湿、低温或传感器长期未上电,所需时间可能更长
- 短时间断电后再次上电:通常 5~10 分钟即可恢复稳定
- 预热期间的表现:电阻从低值(如几 kΩ)持续爬升至几十 kΩ,这是正常现象,期间读出的气体电阻没有参考意义,
get_data()返回的gas_resistance可能为 0(加热器未就绪) - 稳定判据:间隔 30 秒连续读取 5~10 次,电阻变化小于 10% 即认为已稳定,此时可记录基线 R0
1.5.2 空气质量判断方法
不能直接看气体电阻的绝对值判断空气好坏——不同芯片、不同温湿度环境下基线差异很大。正确做法是以稳定基线 R0 为基准,看相对变化:
- 记录基线 R0:在干净空气(室外或通风良好处)下等待预热完成,取稳定后的电阻值作为 R0
- 实时对比:运行时读取实时电阻 R,空气变差(VOC 升高)时电阻会下降,下降越多空气越差
- 量化指标:
- 电阻比值
ratio = R / R0(越接近 1 越干净) - 污染度
pollution = (1 - R / R0) × 100% - 经验等级(阈值需结合场景标定,以下为通用参考):
| ratio | 污染度 | 等级 | 说明 |
|---|---|---|---|
| ≥ 0.9 | ≤ 10% | 优 | 空气洁净 |
| 0.7 ~ 0.9 | 10% ~ 30% | 良 | 轻微 VOC |
| 0.4 ~ 0.7 | 30% ~ 60% | 中 | 明显污染(烹饪、新家具等) |
| < 0.4 | > 60% | 差 | 重度污染(烟雾、酒精、泄漏等) |
示例代码:
-- 判断空气质量等级,R 为实时气体电阻,R0 为干净空气稳定基线
local function judge_air(R, R0)
if R0 <= 0 or R <= 0 then return "未就绪" end
local pollution = (1 - R / R0) * 100
if pollution <= 10 then return "优" end
if pollution <= 30 then return "良" end
if pollution <= 60 then return "中" end
return "差"
end
local data = exs_bme680.get_data()
if data then
local R0 = 16000 -- 示例值,实际以预热稳定后的读数为准
local level = judge_air(data.gas_resistance, R0)
log.info("exs_bme680", string.format("空气等级=%s 气体=%dΩ",
level, data.gas_resistance))
end
说明:上述等级阈值为经验参考值,实际应用建议在目标环境中采集多组数据后重新标定。
1.6 海拔计算说明
计算公式:altitude = 44330 * (1 - (p/p0)^(1/5.255))
其中 p 为当前气压,p0 为海平面标准气压,通过 set_sea_level_pressure() 设置。
get_altitude() 传入当前气压 p 即可自动使用已设置的 p0 计算海拔。
-
内置初始海平面标准气压 1013.25 hPa,可通过
set_sea_level_pressure()设置校正值 -
不同天气条件下海平面气压会变化,建议通过联网或本地气象站获取实时海平面气压校正
1.7 硬件连接
BME680 通过 I2C 接口与主控连接,SCL/SDA 需外接 4.7kΩ~10kΩ 上拉电阻。
┌──────────────┐ ┌──────────────────┐
│ 主控 │ │ BME680 │
│ (AirXXX) │ │ 四合一环境传感器 │
│ │ │ │
│ GPIO_SCL ────┼────────────────────┼──→ SCL │
│ │ │ │
│ GPIO_SDA ←───┼────────────────────┼──→ SDA │
│ │ │ (需外接上拉电阻)│
│ │ │ │
│ VCC 3.3V ────┼────────────────────┼──→ VCC │
│ │ │ │
│ GND ────┼────────────────────┼──→ GND │
└──────────────┘ └──────────────────┘
各平台示例接线(以软件 I2C 模式为例):
- Air780EPM:SCL=GPIO31, SDA=GPIO30
- Air780EHM:SCL=GPIO31, SDA=GPIO30
- Air8000:SCL=GPIO1, SDA=GPIO2
- Air8101:SCL=GPIO4, SDA=GPIO5

1.8 加载方式
-- 扩展库需要 require 加载后才能调用
local exs_bme680 = require "exs_bme680"
二、核心示例
2.1 按使用接口划分
2.1.1 软件 I2C 模式(推荐)
主动轮询读取:
local exs_bme680 = require "exs_bme680"
local result = exs_bme680.setup({scl = 27, sda = 26})
if not result then return end
while true do
local data = exs_bme680.get_data()
if data then
log.info("exs_bme680", string.format("温度=%.2f°C 气压=%.2fhPa 湿度=%.1f%%RH 气体=%dΩ",
data.temperature, data.pressure, data.humidity, data.gas_resistance))
end
sys.wait(5000) -- 等待 5 秒后再次读取
end
2.1.2 硬件 I2C 模式
local exs_bme680 = require "exs_bme680"
local result = exs_bme680.setup({i2c_id = 0, scl = 27, sda = 26})
if not result then return end
while true do
local data = exs_bme680.get_data()
if data then
log.info("exs_bme680", string.format("温度=%.2f°C 气压=%.2fhPa 湿度=%.1f%%RH 气体=%dΩ",
data.temperature, data.pressure, data.humidity, data.gas_resistance))
end
sys.wait(5000) -- 等待 5 秒后再次读取
end
2.2 按使用场景划分
2.2.1 环境数据轮询读取(省电)
local result = exs_bme680.setup({
scl = 4, sda = 5,
})
if not result then return end
local data = exs_bme680.get_data()
if data then
log.info("exs_bme680", string.format("温度=%.2f°C 气压=%.1fhPa 湿度=%.1f%%RH 气体=%dΩ",
data.temperature, data.pressure, data.humidity, data.gas_resistance))
end
2.2.2 高精度环境测量(开启 IIR 滤波)
local result = exs_bme680.setup({
scl = 4, sda = 5,
filter = 7, -- 128 次采样平均,噪声最低
})
if not result then return end
while true do
local data = exs_bme680.get_data()
if data then
log.info("exs_bme680", string.format("温度=%.2f°C 气压=%.2fhPa 湿度=%.1f%%RH 气体=%dΩ",
data.temperature, data.pressure, data.humidity, data.gas_resistance))
end
sys.wait(10000) -- 等待 10 秒后再次读取
end
2.2.3 空气质量检测(自定义加热器参数)
使用前请在干净空气中预热 20~30 分钟,待气体电阻稳定后记录基线 R0,再依据 R/R0 相对变化判断空气质量(详见 1.5.2)。
-- 在干净空气中预热 20~30 分钟后,记录稳定基线 R0
local R0 = 16000 -- 示例值,实际以稳定后的读数为准
-- 污染度 = (1 - R/R0) * 100%,越大空气越差
local function judge_air(R)
if R0 <= 0 or R <= 0 then return "未就绪" end
local pollution = (1 - R / R0) * 100
if pollution <= 10 then return "优" end
if pollution <= 30 then return "良" end
if pollution <= 60 then return "中" end
return "差"
end
local result = exs_bme680.setup({
scl = 4, sda = 5,
heater_temp = 300, -- 300°C 加热温度
heater_time = 100, -- 100ms 加热时间
})
if not result then return end
while true do
local data = exs_bme680.get_data()
if data then
local gas_kohm = data.gas_resistance / 1000
local level = judge_air(data.gas_resistance)
log.info("exs_bme680", string.format("温度=%.2f°C 湿度=%.1f%%RH 气体=%.1fkΩ 空气=%s",
data.temperature, data.humidity, gas_kohm, level))
end
sys.wait(3000) -- 等待 3 秒后再次读取
end
2.2.4 海拔高度测量
local result = exs_bme680.setup({scl = 4, sda = 5})
if not result then return end
local data = exs_bme680.get_data()
if data then
local alt = exs_bme680.get_altitude(data.pressure)
log.info("exs_bme680", string.format("温度=%.2f°C 气压=%.1fhPa 海拔=%.1f米", data.temperature, data.pressure, alt))
end
2.2.5 过采样率动态切换
-- 低功耗采集
exs_bme680.set_temp_oversampling(1) -- 温度 1X
exs_bme680.set_press_oversampling(1) -- 气压 1X
exs_bme680.set_hum_oversampling(1) -- 湿度 1X
-- 高精度采集
exs_bme680.set_temp_oversampling(5) -- 温度 16X
exs_bme680.set_press_oversampling(5) -- 气压 16X
exs_bme680.set_hum_oversampling(5) -- 湿度 16X
2.2.6 IIR 滤波切换示例
-- 关闭滤波(快速响应)
exs_bme680.set_filter(0)
-- 最强滤波(最平滑)
exs_bme680.set_filter(7)
三、常量解释
扩展库常量,顾名思义是由合宙 LuatOS 扩展库中定义的、不可重新赋值或修改的固定值,在脚本代码中不需要声明,可直接调用,本扩展库没有常量。
四、函数详解
4.1 初始化
4.1.1 exs_bme680.setup(config)
功能
初始化 BME680 四合一环境传感器,配置通信接口、采样参数和气体加热器参数。 读取芯片 E2PROM 校准数据(41 字节),自动进行软复位和 CHIP_ID 验证。
参数
config
参数含义:初始化配置表
数据类型:table
取值范围:包含以下子参数:
{
参数含义:SCL 时钟引脚 GPIO 编号
数据类型:number
取值范围:有效的 GPIO 编号
是否必选:与 sda 一起可选
注意事项:与 sda 一起传入时无 i2c_id 则创建软件 I2C(推荐),有 i2c_id 则走硬件 I2C 并附带总线恢复
参数示例:27
config.scl ,
参数含义:SDA 数据引脚 GPIO 编号
数据类型:number
取值范围:有效的 GPIO 编号
是否必选:与 scl 一起可选
注意事项:该引脚需外接 4.7kΩ~10kΩ 上拉电阻到 VCC
参数示例:26
config.sda ,
参数含义:硬件 I2C 总线 ID
数据类型:number
取值范围:有效的 I2C 总线编号
是否必选:可选
注意事项:默认 0。与 scl/sda 一起传时使用硬件 I2C 通信 + 引脚恢复总线
参数示例:1
config.i2c_id ,
参数含义:温度过采样率
数据类型:number
取值范围:0~5(默认 4=8X)
是否必选:否
注意事项:0=关闭,1=1X,2=2X,3=4X,4=8X,5=16X
参数示例:4
config.os_temp ,
参数含义:气压过采样率
数据类型:number
取值范围:0~5(默认 3=4X)
是否必选:否
参数示例:3
config.os_pres ,
参数含义:湿度过采样率
数据类型:number
取值范围:0~5(默认 2=2X)
是否必选:否
参数示例:2
config.os_hum ,
参数含义:IIR 滤波器系数
数据类型:number
取值范围:0~7(默认 3=8 次平均)
是否必选:否
注意事项:滤波系数越大数据越平滑,但对变化响应越慢
参数示例:3
config.filter ,
参数含义:气体加热器温度
数据类型:number
取值范围:200~400(单位 °C,默认 320)
是否必选:否
注意事项:不同温度对不同气体敏感度不同
参数示例:300
config.heater_temp ,
参数含义:气体加热器持续时间
数据类型:number
取值范围:1~4032(单位 ms,默认 150)
是否必选:否
注意事项:加热时间越长传感器越稳定,但功耗越高
参数示例:100
config.heater_time ,
}
是否必选:否,可不传任何参数使用默认值
参数示例:
-- 方式一:软件 I2C 模式(默认配置)
exs_bme680.setup({scl = 30, sda = 29})
-- 方式二:硬件 I2C + 总线恢复
exs_bme680.setup({i2c_id = 1, scl = 18, sda = 19})
-- 方式三:自定义气体加热器参数
exs_bme680.setup({scl = 30, sda = 29, heater_temp = 300, heater_time = 100})
-- 方式四:全部自定义
exs_bme680.setup({scl = 30, sda = 29, filter = 7, heater_temp = 350, heater_time = 200})
返回值
local ok = exs_bme680.setup(config)
ok
含义说明:初始化是否成功
数据类型:boolean
取值范围:true(成功),false(失败)
注意事项:失败时请检查接线、供电和 I2C 地址
返回示例:true
示例
-- 软件 I2C 模式
local result = exs_bme680.setup({scl = 30, sda = 29})
if not result then return end
4.2 数据读取
4.2.1 exs_bme680.get_data()
功能
读取 BME680 温度、气压、湿度和气体电阻数据,自动进行校准补偿。 使用强制模式(Forced Mode),每次调用触发一次测量,完成后自动返回睡眠模式。
数据寄存器共 15 字节,包含温度 ADC(20 位)、气压 ADC(20 位)、湿度 ADC(16 位)和气体电阻 ADC(10 位)。
气体传感器需要加热器稳定后才返回有效值,否则 gas_resistance 为 0(首次上电需预热 20~30 分钟,详见 1.5.1)。
注意事项:本函数内部使用 sys.wait() 阻塞等待测量完成,必须在 sys.taskInit() 创建的协程中调用,在 task 外调用会报错。
参数
无
返回值
local data = exs_bme680.get_data()
data
含义说明:环境数据表
数据类型:table 或 nil
取值范围:
data.temperature - 温度,单位 °C,精确到 0.01°C,如 25.12
data.pressure - 气压,取值范围 300.00~1100.00(单位 hPa),如 1013.25
data.humidity - 相对湿度,取值范围 0.00~100.00(单位 %RH),如 46.33
data.gas_resistance - 气体电阻,取值范围 0~4000000000(单位 Ω),如 150000
加热器未稳定时返回 0,正常值范围通常在几千到几百万 Ω
注意事项:失败返回 nil;气体电阻为 0 表示加热器未稳定,新板首次上电需预热 20~30 分钟;稳定后以干净空气基线 R0 为基准判断空气好坏,电阻下降越多空气越差(详见 1.5.2)
返回示例:{temperature = 25.12, pressure = 1013.25, humidity = 46.33, gas_resistance = 150000}
示例
local data = exs_bme680.get_data()
if data then
log.info("exs_bme680", string.format("温度=%.2f°C 气压=%.2fhPa 湿度=%.1f%%RH 气体=%dΩ",
data.temperature, data.pressure, data.humidity, data.gas_resistance))
else
log.error("exs_bme680", "读取数据失败")
end
4.3 过采样率设置
4.3.1 exs_bme680.set_temp_oversampling(os)
功能
设置温度过采样率。过采样率越高,精度越高但转换时间越长。设置为 0 则关闭温度测量。
参数
os
参数含义:温度过采样率
数据类型:number
取值范围:0~5
是否必选:是
注意事项:0=关闭,1=1X,2=2X,3=4X,4=8X,5=16X。仅在 setup() 之后调用有效
参数示例:5
返回值
无
示例
-- 设置为最高精度
exs_bme680.set_temp_oversampling(5)
4.3.2 exs_bme680.set_press_oversampling(os)
功能
设置气压过采样率。过采样率越高,精度越高但转换时间越长。设置为 0 则关闭气压测量。
参数
os
参数含义:气压过采样率
数据类型:number
取值范围:0~5
是否必选:是
注意事项:0=关闭,1=1X,2=2X,3=4X,4=8X,5=16X。仅在 setup() 之后调用有效
参数示例:5
返回值
无
示例
-- 设置为最高精度
exs_bme680.set_press_oversampling(5)
4.3.3 exs_bme680.set_hum_oversampling(os)
功能
设置湿度过采样率。过采样率越高,精度越高但转换时间越长。设置为 0 则关闭湿度测量。
参数
os
参数含义:湿度过采样率
数据类型:number
取值范围:0~5
是否必选:是
注意事项:0=关闭,1=1X,2=2X,3=4X,4=8X,5=16X。仅在 setup() 之后调用有效
参数示例:5
返回值
无
示例
-- 设置为最高精度
exs_bme680.set_hum_oversampling(5)
4.4 IIR 滤波器
4.4.1 exs_bme680.set_filter(coeff)
功能
设置 IIR 滤波器系数。系数越大,数据越平滑,但对环境变化的响应越慢。
参数
coeff
参数含义:滤波器系数
数据类型:number
取值范围:0~7
是否必选:是
注意事项:仅在 setup() 之后调用有效。IIR 滤波器系数选择参考:
- 0=关闭,适合快速响应场景
- 1=2 次平均,轻度滤波
- 2=4 次平均,中等滤波
- 3=8 次平均,较强滤波(默认)
- 4=16 次平均,强滤波
- 5=32 次平均,很强滤波
- 6=64 次平均,极强滤波
- 7=128 次平均,最强滤波,适合静态精密测量
参数示例:7
返回值
无
示例
-- 设置为最强滤波
exs_bme680.set_filter(7)
-- 关闭滤波
exs_bme680.set_filter(0)
4.5 气体加热器配置
4.5.1 exs_bme680.set_gas_heater(heater_temp, heater_time)
功能
设置气体传感器(MOX)加热器参数。不同温度和时间组合适合不同的 VOC 检测场景。
参数
heater_temp
参数含义:加热器目标温度
数据类型:number
取值范围:200~400(单位 °C,默认 320)
是否必选:是(与 heater_time 一起至少传一个)
注意事项:不同温度对不同气体敏感度不同。200~250°C 适合乙醇/甲醛,300~350°C 适合通用 VOC,350~400°C 适合 CO
参数示例:300
heater_time
参数含义:加热器持续时间
数据类型:number
取值范围:1~4032(单位 ms,默认 150)
是否必选:是(与 heater_temp 一起至少传一个)
注意事项:加热时间越长传感器越稳定,但测量周期越长
参数示例:100
返回值
无
示例
-- 设置为 300°C,持续 100ms
exs_bme680.set_gas_heater(300, 100)
-- 只修改温度,持续时间保持默认
exs_bme680.set_gas_heater(350)
-- 只修改持续时间
exs_bme680.set_gas_heater(nil, 200)
4.6 海拔计算
4.6.1 exs_bme680.set_sea_level_pressure(pressure)
功能
设置海平面标准气压,用于校准海拔计算精度。不同天气条件下海平面气压会变化,可通过本地气象站数据或联网获取校正值。
参数
pressure
参数含义:海平面标准气压
数据类型:number
取值范围:950.00~1050.00(单位 hPa,精度小数点后2位)
是否必选:是
注意事项:内置初始值 1013.25。可通过联网查询本地气象站数据获取更精确的值
参数示例:1018.00
返回值
无
示例
exs_bme680.set_sea_level_pressure(1018.00)
4.6.2 exs_bme680.get_altitude(pressure)
功能
通过当前气压值计算海拔高度,使用国际气压公式。
海平面标准气压通过 set_sea_level_pressure() 设置。
参数
pressure
参数含义:当前气压值
数据类型:number
取值范围:300.00~1100.00(单位 hPa,精度小数点后2位)
是否必选:是
注意事项:传入 get_data() 返回的 data.pressure
参数示例:1013.25
返回值
local altitude = exs_bme680.get_altitude(pressure)
altitude
含义说明:海拔高度
数据类型:number(浮点数,小数点后一位)
取值范围:-500.0~9000.0(单位米)
返回示例:50.0
示例
local data = exs_bme680.get_data()
if data then
local alt = exs_bme680.get_altitude(data.pressure)
log.info("exs_bme680", string.format("海拔=%.1f 米", alt))
end
4.7 传感器控制
4.7.1 exs_bme680.close()
功能
关闭 BME680 传感器,将传感器切换到睡眠模式,重置内部状态。 close 后需要重新调用 setup() 才能再次使用。 close 后调用 get_data() 会返回 nil 并提示"请先 setup()"。
参数
无
返回值
无
示例
exs_bme680.close()
4.8 版本信息
4.8.1 exs_bme680.version()
功能
获取 exs_bme680 库的版本号。
参数
无
返回值
local ver = exs_bme680.version()
ver
含义说明:版本号字符串
数据类型:string
取值范围:格式 "yyyymmddhhmm",表示 yyyy年mm月dd日hh时mm分发布的版本
注意事项:无
返回示例:"202608200000"
示例
local ver = exs_bme680.version()
log.info("exs_bme680", "版本号:", ver)
五、版本更新说明
版本号:202608200000
-
更新时间:2026-08-20
-
更新内容:
-
补充 MOX 气体传感器预热说明(首次上电需 20~30 分钟电阻才稳定,详见 1.5.1)
-
补充空气质量判断方法(基线 R0 + 污染度,详见 1.5.2)
-
补充空气质量检测示例(2.2.3)
-
版本号:202608080000
-
更新时间:2026-08-08
-
更新内容:
-
支持软件 I2C 和硬件 I2C 两种模式
-
支持温度、气压、湿度、气体电阻四合一测量
-
支持 T/P/H 三路过采样率独立设置(0~16X)
-
支持 IIR 滤波器(系数 0~7,最高 128 次平均)
-
支持气体加热器温度和时间配置(200~400°C / 1~4032ms)
-
支持海拔高度计算(国际气压公式)
-
内置 I2C 总线卡死自动检测与恢复
-
六、产品支持说明
所有支持 luatos 二次开发的模块,具体可以查看选型手册。