跳转至

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.filterset_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 为基准,看相对变化

  1. 记录基线 R0:在干净空气(室外或通风良好处)下等待预热完成,取稳定后的电阻值作为 R0
  2. 实时对比:运行时读取实时电阻 R,空气变差(VOC 升高)时电阻会下降,下降越多空气越差
  3. 量化指标
  4. 电阻比值 ratio = R / R0(越接近 1 越干净)
  5. 污染度 pollution = (1 - R / R0) × 100%
  6. 经验等级(阈值需结合场景标定,以下为通用参考):
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

  1. 更新时间:2026-08-20

  2. 更新内容:

    • 补充 MOX 气体传感器预热说明(首次上电需 20~30 分钟电阻才稳定,详见 1.5.1)

    • 补充空气质量判断方法(基线 R0 + 污染度,详见 1.5.2)

    • 补充空气质量检测示例(2.2.3)

版本号:202608080000

  1. 更新时间:2026-08-08

  2. 更新内容:

    • 支持软件 I2C 和硬件 I2C 两种模式

    • 支持温度、气压、湿度、气体电阻四合一测量

    • 支持 T/P/H 三路过采样率独立设置(0~16X)

    • 支持 IIR 滤波器(系数 0~7,最高 128 次平均)

    • 支持气体加热器温度和时间配置(200~400°C / 1~4032ms)

    • 支持海拔高度计算(国际气压公式)

    • 内置 I2C 总线卡死自动检测与恢复


六、产品支持说明

所有支持 luatos 二次开发的模块,具体可以查看选型手册

搜索