TVOC Sensor

来自Waveshare Wiki
跳转至: 导航搜索
TVOC-Sensor
{{{name2}}}
{{{name3}}}
功能简介
特性 TVOC传感器
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
接口 UART

说明

产品简介

TVOC气体传感器模组专门设计用于精确测量环境中的TVOC(总挥发性有机化合物)气体浓度,为空气质量的评估提供了一种高效工具。其核心优势在于其卓越的适应性和可扩展性,能够根据用户的特定需求进行定制。 这款传感器模组以其卓越的性能特点而著称,包括:高灵敏度、稳定性、小型化设计、简易的测量电路、长寿命。

应用场景

  • 智能家居
  • 环境空气质量监测
  • 车载空气净化器
  • 手持空气质量检测仪
  • 工厂车间新风系统

工作原理

基于气体分子与半导体材料表面的化学吸附反应,当挥发性有机物(VOC)接触加热的敏感材料时,气体分子与表面氧离子发生反应会改变材料的电阻值;通过测量电阻变化量即可间接推算周围TVOC的浓度。 气体传感器中气敏材料的电阻随着环境中气体浓度的变化而变化,TVOC 气体的浓度越大,传感器电阻就越小。其测量采用与参考电阻串联分压的电路,如图 1-2 所示的参考电路图。传感器响应大小 S 的计算公式跟参考电路如下:

TVOC Sensor 04.png

产品参数

TVOC Sensor
供电电压 5V 逻辑电压 3.3V
通信接口 UART (TTL 信号线电平 3.3V) 通信波特率 115200
响应时间 <20S 启动时间 <120S
检测浓度范围 0.1~100 ppm 刷新率 1Hz
产品尺寸 27×20×4.3mm 固定孔径 2.0mm
工作电流 ≤60mA 工作温度 -20℃~50℃
工作湿度 ≤96%RH 使用寿命 5年

  • 传感器的IO电平为3.3V,如果使用5V的IO电平,需要经过电平转换,否则传感器会损坏

引脚说明

引脚号 标识 管脚描述
1 VCC 5V 电源正
2 GND 电源地
3 TXD UART 输出
4 RXD UART 输入
5 RST 复位引脚,低电平有效
6 ALM 报警引脚,TVOC超过2ppm,引脚自动拉低

协议解析

UART 通信流程

  • 串口默认配置为:数据位 8bit,停止位 1bit,无奇偶校验,无流控制,默认波特率 115200。
  • 协议由 Frame Header(帧头)、Data(数据)、Sum Check(校验和)和 Frame Footer(帧尾)组成。
    • 其中 Frame Header、Frame Footer 为固定不变的数值,具体可以查阅以下表格;

说明:协议包遵循小端模式原则,即低字节在前,高字节在后。

主动模式

  • 模块默认为主动模式
  • 原始数据
帧头 空气等级 保留 CO2浓度高位 CO2浓度低位 CH2O浓度高位 CH2O浓度低位 TVOC浓度高位 TVOC浓度低位 校验值 帧尾
Byte0 Byte1 Byte2 Byte3 Byte4 Byte5 Byte6 Byte7 Byte8 Byte9 Byte10
FE 02 00 02 32 00 04 01 96 CF 16
  • 数据解码
    • 空气等级分为优良中差,分别对于1-4等级(0x1-0x4),比如上面数据中可以得出空气等级为“良”
    • CO2浓度值 = (气体浓度高位*256+气体浓度低位) ppm
    • CH2O浓度值 = (气体浓度高位*256+气体浓度低位) ppb
    • TVOC浓度值 = ((气体浓度高位*256+气体浓度低位)/1000) ppm
  • 解析表
Data Type Length (Bytes) Hex Result
帧头 uint8 1 FE 0xFE
空气等级 uint8 1 02 0x02
保留 uint8 1 00 *
CO2浓度 uint16 2 02 32 562 ppm
CH2O浓度 uint16 2 00 04 4 ppb
TVOC浓度 uint16 2 01 96 0.406 ppm
校验值 uint8 1 CF 0xCF
帧尾 uint8 1 16 0x16


  • 恢复主动模式
    • 需要切换到主动模式时,向模组发送如下命令:
帧头 保留 切换模式命令 主动上传模式 保留 保留 保留 保留 校验值
Byte0 Byte1 Byte2 Byte3 Byte4 Byte5 Byte6 Byte7 Byte8
FE 00 78 40 00 00 00 00 B8

查询模式

  • 切换到查询模式
    • 需要切换到查询模式时,首先应该发送停止主动上传模式命令,命令格式如下:
帧头 保留 切换模式命令 主动上传模式 保留 保留 保留 保留 校验值
Byte0 Byte1 Byte2 Byte3 Byte4 Byte5 Byte6 Byte7 Byte8
FE 00 78 41 00 00 00 00 B9
  • 查询当前浓度
    • 查询模式下,读取当前浓度命令格式如下:
帧头 保留 问答模式命令 保留 保留 保留 保留 保留 校验值
Byte0 Byte1 Byte2 Byte3 Byte4 Byte5 Byte6 Byte7 Byte8
FE 00 86 00 00 00 00 00 86
  • 查询数据解码
    • 当发送查询当前浓度的命令后,模组会返回如下数据:
帧头 帧头 帧头 保留 保留 TVOC浓度高位 TVOC浓度低位 ADC值高位 ADC值低位 校验值 帧尾
Byte0 Byte1 Byte2 Byte3 Byte4 Byte5 Byte6 Byte7 Byte8 Byte9 Byte10
FE FE 68 01 01 18 09 09 40 6C 16
  • 数据解码
    • TVOC气体浓度值 = (气体浓度高位*256+气体浓度低位)/1000
    • ADC值 = (ADC值高位*256 + ADC值低位)
  • 解析表
Data Type Length (Bytes) Hex Result
帧头 uint24 3 FE FE 68 0xFE 0xFE 0x68
保留 uint16 2 00 00 xx
TVOC浓度 uint16 2 18 09 6.153 ppm
ADC值 uint16 2 09 40 2368
校验值 uint8 1 6C 0x6C
帧尾 uint8 1 16 0x16
  • ADC:单片机通过 ADC 采样来采集 VS 的电压值,实现输出 12 位 ADC 值,电路在工作原理处。

快速测试

  • 测试软件 WS-TVOC 是 TVOC Sensor 配套的调试软件,主要作用为:快速测试
  • 测试准备
    • windows电脑
    • USB TO TTL 1PCS
    • TVOC Sensor 1PCS
    • 配套线材
  • 硬件连接
TVOC Sensor 05.png
  • 开始测试
    • 把串口连接电脑 USB 口
    • 等待 2 分钟,传感器预热完成
    • 主动模式:
      • 方式一:使用串口调试助手(SSCOM),选择好对应的端口号,波特率选115200,打开串口,则每秒上传一次数据。
        TVOC Sensor 06.png
      • 方式二:打开配套的上位机软件
        ①选择对应串口号
        ②点击 save
        ③点击 get directory
        ④点击 Start 则可直观查看实时数据和曲线。
        如果想要查看所有历史数据,⑤点击 save,则可在 DataFile中看到源文件。
        TVOC Sensor 07.png
    • 查询模式:
      • 使用串口调试助手(SSCOM),选择好对应的端口号,波特率选115200,打开串口
      • 以十六进制发送停止主动上传模式命令:FE 00 78 41 00 00 00 00 B9
      • 以十六进制发送读取数据命令:FE 00 86 00 00 00 00 00 86,则可读取数据:
        ①发送切换成查询模式的命令
        ②发送查询命令,获取数据
        TVOC Sensor 08.png

产品尺寸

  • TVOC-Sensor-size.jpg

树莓派使用

  • 关于树莓派系统安装与使用可以参考这个链接
  • 成功开机后,进行树莓派环境配置

下载程序

sudo apt install gpiod libgpiod-dev
wget https://www.waveshare.net/w/upload/c/c6/TVOC_Sensor_Demo.zip
unzip TVOC_Sensor_Demo.zip
cd TVOC_Sensor_Demo/

UART示例使用

开启树莓派 UART

  • 在树莓派终端输入命令:sudo raspi-config nonint do_serial 2
  • 再弹出的窗口中第一个选择NO,第二个选择YES,最后选择OK.

硬件连接

  • 参考下图进行连接:

TVOC-Sensor-details-5.jpg

运行C程序

cd ~/TVOC_Sensor_Demo/Raspberrypi/c/
make
./main

运行Python程序

cd ~/TOF_Laser_Range_Sensor_demo/Raspberrypi/python/example
python main.py

ESP32S3使用

  • 关于ESP32S3的环境搭建跟基本使用,请参考这个链接
  • 环境搭建完成后,即可连接传感器,下载示例

硬件连接

  • 参考下图进行连接:

TVOC Sensor 09.png

Arduino esp32示例使用

  • 进入到TVOC_Sensor_Demo\ESP32S3\Arduino\TVOC_UART_Demo,双击TVOC_UART_Demo.ino文件
  • 选择开发板:

TOF Laser Range Sensor C 19.png

  • 选择ESP32S3的端口,然后进行编译上传
  • 上传完成后,打开串口监测器,就会输出相关的信息。

Micropython示例使用

  • 进入到TVOC_Sensor_Demo\ESP32S3\Micropython,双击TVOC_UART_Demo.py文件
  • 选择开发板:

TOF Laser Range Sensor C 26.png

  • 选择ESP32S3的端口,然后运行程序
  • Shell就会输出相关的信息。

Raspberrypi Pico使用

硬件连接

  • 参考下图进行连接:

TVOC Sensor 15.png

C 示例使用

  • 进入到TVOC_Sensor_Demo\Raspberrypi pico\C,通过VS Code打开工程
  • 等待自动导入跟加载编译工具,然后进行编译上传
  • 上传完成后,打开串口监测器,就会输出相关的信息。

Micropython示例使用

  • 先给Raspberrypi Pico刷入micropython固件
  • 进入到TVOC_Sensor_Demo\Raspberrypi pico\Micropython,双击TVOC_UART_Demo.py文件
  • 选择开发板:

TVOC Sensor 16.png

  • 选择Raspberrypi pico的端口,然后运行程序
  • Shell就会输出相关的信息。

Arduino使用

  • Arduino开发板的IO电平必须为3.3V,如果使用5V的IO电平,需要经过电平转换,否则传感器会损坏
  • 使用waveshare R3/R4需要将以下的跳线帽设置成3.3V,才能使用
  • 关于Arduino的环境搭建跟基本使用,请参考这个R4链接、R3是默认安装。
  • 环境搭建完成后,即可连接传感器,下载示例

Arduino示例使用

硬件连接

  • 参考下图进行连接:

运行程序

  • 进入到TVOC_Sensor_Demo\Arduino\TVOC_UART_Demo,双击TVOC_UART_Demo.ino文件
  • 选择开发板:
  • 选择开发板的端口,然后进行编译上传
  • 上传完成后,打开串口监测器,就会输出相关的信息。

STM32使用

硬件连接

  • 参考下图进行连接:

TVOC Sensor 17.png

STM32示例使用

  • 进入到TVOC_Sensor_Demo\STM32,双击打开.project文件
  • 等待自动导入跟加载,然后进行编译烧录
  • 上传完成后,连接单片机的PA2 PA3就可以输出相关信息

API简介

  • tvoc_init() TVOC初始化
  • tvoc_set_device_active_mode() 将传感器设置成主动模式
  • tvoc_set_device_query_mode() 将传感器设置成查询模式
  • tvoc_get_active_device_data() 获取主动模式的数据,并进行解码
  • tvoc_get_query_device_data() 获取查询模式数据,并进行解码
  • CRC_Check(uint8_t *Data, uint32_t Size) 计算校验和,模块输出的数据只需要校验Byte 3+Byte4+……+Byte8的值,主机发送给模块的数据校验为Byte 1+Byte2+……+Byte 7

效果展示

主动模式

  • 主动模式下,可以输出空气等级、CO2、CH2O和TVOC的值

TVOC Sensor 01.png

查询模式

  • 查询模式下,可以输出TVOC的值和原始ADC的值

TVOC Sensor 02.png

ALM报警

  • ALM报警,可以通过IO读取实现,具体表现如下

TVOC Sensor 03.png

资料

数据手册

程序

软件

FAQ

Q1. 上位机不更新数据,怎么回事?

  如果出现数据不更新,请重启一下上位机,按照步骤进行操作即可重新获取

Q2. 波特率是固定115200吗?

是的,目前默认是115200波特率。

技术支持


联系人:黄工
QQ:2850151199
EMAIL:2850151199@qq.com
电话:0755-83040712
微信:扫下方二维码添加
Service20-Weichat.png

说明:进行售后服务前,请准备好客户信息(定货单位、定货人等),以供验证