SEN55

SEN5x 是一款独特的传感器模块系列,可在单一封装中结合测量关键空气质量参数——颗粒物、VOC、NOx、湿度和温度。

主机对 SEN55 的具体支持如下:

控制器

SEN55

AirQ

MicroPython 应用示例:

 1# SPDX-FileCopyrightText: 2024 M5Stack Technology CO LTD
 2#
 3# SPDX-License-Identifier: MIT
 4
 5import os, sys, io
 6import M5
 7from M5 import *
 8from hardware import *
 9import time
10
11
12sen55 = None
13
14
15def setup():
16    global sen55
17
18    M5.begin()
19    Widgets.fillScreen(0xFFFFFF)
20
21    sen55 = SEN55()
22    sen55.set_power_state(True)
23    sen55.set_work_mode(1)
24    time.sleep(1)
25
26
27def loop():
28    global sen55
29    M5.update()
30    if sen55.get_data_ready_flag():
31        print(sen55.get_pm1_0())
32        print(sen55.get_pm2_5())
33        print(sen55.get_pm4_0())
34        print(sen55.get_pm10_0())
35        print(sen55.get_humidity())
36        print(sen55.get_temperature())
37        print(sen55.get_voc())
38        print(sen55.get_nox())
39    time.sleep_ms(100)
40
41
42if __name__ == "__main__":
43    try:
44        setup()
45        while True:
46            loop()
47    except (Exception, KeyboardInterrupt) as e:
48        try:
49            from utility import print_error_msg
50
51            print_error_msg(e)
52        except ImportError:
53            print("please update to latest firmware")

UiFlow2 应用示例:

example.png

airq_sen55_example.m5f2

class SEN55

构造函数

class SEN55

使用 I2C 通信初始化 SEN55 传感器,设置电源控制并确保传感器已连接。

UiFlow2:

init.png

Methods

SEN55.set_power_state(state)

设置 SEN55 传感器的电源状态。

参数:

state (bool) – 所需的电源状态,True 表示开机,False 表示关机。

UiFlow2:

set_power_state.png

SEN55.get_power_state()

获取 SEN55 传感器的当前电源状态。

UiFlow2:

get_power_state.png

SEN55.available()

检查 SEN55 传感器是否通过 I2C 连接。

SEN55.set_work_mode(mode)

设置 SEN55 传感器的测量模式。

参数:

mode (int) – 1 开始测量,0 停止测量。

UiFlow2:

set_work_mode.png

SEN55.get_sensor_data()

获取传感器数据,包括 PM1.0、PM2.5、PM4.0、PM10.0、CO2、温度、湿度、VOC 和 NOx。

SEN55.get_data_ready_flag()

检查传感器数据是否已准备好读取。

UiFlow2:

get_data_ready_flag.png

SEN55.set_temp_cmp_params(temp_offset, temp_offset_slope, time_constant)

设置传感器的温度补偿参数。

参数:
  • temp_offset (int) – 传感器补偿算法中的温度偏移量。

  • temp_offset_slope (int) – 传感器补偿算法中的温度偏移斜率。

  • time_constant (int) – 温度补偿的时间常数。

SEN55.get_temp_cmp_params()

获取当前温度补偿参数。

SEN55.set_warm_start_param(mode)

设置传感器的 warm start 参数。

参数:

mode (bool) – True 表示启用热启动,False 表示禁用。

SEN55.get_warm_start_param()

获取当前暖启动参数。

SEN55.set_voc_algo_tuning_params(voc_index_offset, voc_offset_hours, voc_gain_houes, gate_max_duration_min, std_initial, gain_factor)

设置 VOC 算法调优参数,包括索引偏移、时间偏移和增益因子。

参数:
  • voc_index_offset (int) – VOC 指数偏移量,默认值为 100。

  • voc_offset_hours (int) – VOC 偏移量(单位:小时),默认值为 12 小时。

  • voc_gain_houes (int) – VOC 增益的时间(单位:小时),默认值为 12 小时。

  • gate_max_duration_min (int) – 最大门持续时间(单位:分钟),默认为 180 分钟。

  • std_initial (int) – 初始标准差,默认值为 50。

  • gain_factor (int) – VOC 的增益系数,默认值为 230。

SEN55.get_voc_algo_tuning_params()

获取当前 VOC 算法调优参数。

返回:

VOC 微调参数的元组:索引偏移量、偏移小时数、增益小时数、最大门控持续时间、初始标准差和增益因子。

SEN55.set_nox_algo_tuning_params(nox_index_offset, nox_offset_hours, nox_gain_houes, gate_max_duration_min, gain_factor)

设置 NOx 算法调参参数,包括索引偏移量、时间偏移量和增益系数。NOx 的标准差估计值固定为 50。

参数:
  • nox_index_offset (int) – NOx 指数的偏移值。

  • nox_offset_hours (int) – NOx 算法的时间偏移量(单位:小时)。

  • nox_gain_houes (int) – NOx 算法的小时增益因子。

  • gate_max_duration_min (int) – 最大门持续时间(单位:分钟)。

  • gain_factor (int) – NOx 算法的增益因子。

SEN55.get_nox_algo_tuning_params()

获取当前 NOx 算法调优参数。

返回:

一组 NOx 调谐参数的元组:索引偏移量、偏移小时数、增益小时数、最大门控持续时间和增益因子。

SEN55.set_rht_acceleration_mode(mode)

设置 RHT 加速度模式,该模式会影响设备在测量过程中加速的速度。

参数:

mode (int) – 要设置的加速度模式:0 为低,1 为高,或 2 为中。

SEN55.get_rht_acceleration_mode()

获取当前 RHT 加速模式。该参数可在设备的任意状态下更改,但仅在下一次开始测量时才会生效。需要在启动新的测量之前设置该参数。

返回:

当前加速度模式:0 表示低,1 表示高,或 2 表示中。

SEN55.get_voc_algo_state() bytes

获取当前 VOC 算法状态。

返回:

VOC 算法状态(单位:字节)。

SEN55.set_voc_algo_state(state)

设置 VOC 算法状态。

参数:

state (bytes) – 要设置的 VOC 算法状态,以字节表示。

SEN55.set_start_fan_cleaning()

启动风扇清洁过程,以清除传感器中的污染物。

SEN55.get_auto_cleaning_interval() tuple

获取当前自动清洁间隔。

返回:

清理间隔参数的元组。

SEN55.set_auto_cleaning_interval(interval)

设置自动清洁间隔。

参数:

interval (tuple) – 一个表示新的自动清洁间隔的元组。

SEN55.get_device_status() bytes

获取当前设备状态。

返回:

设备状态(以字节表示)。

SEN55.clear_device_status()

清除设备状态,重置任何错误标志或状态。

SEN55.get_serial_number() str

获取传感器的唯一序列号。

返回:

传感器的序列号,类型为字符串。

SEN55.get_product_name() str

获取传感器的产品名称。

返回:

传感器的产品名称字符串。

SEN55.send_cmd(cmd, value, is_bytes)

向传感器发送命令。

参数:
  • cmd (int) – 要发送的命令,以 2 字节值表示。

  • value – 可选的值,用于随命令一同包含。

  • is_bytes (bool) – 用于指示该值是否为 bytes 格式的标志。

SEN55.read_response(nbytes) bytes

从传感器读取响应。

返回:

响应数据(以字节形式)。

参数:

nbytes (int) – 从传感器读取的字节数。

SEN55.get_pm1_0() float

获取以微克每立方米(µg/m³)为单位的 PM1.0 浓度值。

返回:

PM1.0 浓度,单位为 µg/m³。

UiFlow2:

get_pm1_0.png

SEN55.get_pm2_5() float

获取 PM2.5 浓度值,单位为微克每立方米(µg/m³)。

返回:

PM2.5 浓度,单位为 µg/m³。

UiFlow2:

get_pm2_5.png

SEN55.get_pm4_0() float

获取 PM4.0 浓度值,单位为微克每立方米(µg/m³)。

返回:

PM4.0 浓度,单位为 µg/m³。

UiFlow2:

get_pm4_0.png

SEN55.get_pm10_0() float

获取 PM10.0 的浓度值,单位为微克每立方米(µg/m³)。

返回:

PM10.0 浓度(单位:µg/m³)。

UiFlow2:

get_pm10_0.png

SEN55.get_humidity() float

获取以百分比(%)表示的湿度值。

返回:

百分比形式的湿度。

UiFlow2:

get_humidity.png

SEN55.get_temperature() float

获取以摄氏度(°C)为单位的温度值。

返回:

温度单位为 °C。

UiFlow2:

get_temperature.png

SEN55.get_voc() float

获取以十亿分之一(ppb)为单位的挥发性有机化合物(VOC)浓度值。

返回:

VOC 浓度(ppb)。

UiFlow2:

get_voc.png

SEN55.get_nox() float

获取以十亿分之一(ppb)为单位的氮氧化物(NOx)浓度值。

返回:

NOx 浓度,单位为 ppb。

UiFlow2:

get_nox.png