“SGP40 VOC Sensor”的版本间的差异
(Created page with "<div class="wiki-pages blue-color"> <div class="tabber"> {{外围模块|colorscheme=blue |name = AS7341 Spectral Color Sensor |img=File:360px-AS7341 Spectral Color Sensor-1....") |
|||
第4行: | 第4行: | ||
|name = AS7341 Spectral Color Sensor | |name = AS7341 Spectral Color Sensor | ||
|img=[[File:360px-AS7341 Spectral Color Sensor-1.jpeg|360px |alt=Light-Sensor|link= | Light Sensor]] | |img=[[File:360px-AS7341 Spectral Color Sensor-1.jpeg|360px |alt=Light-Sensor|link= | Light Sensor]] | ||
− | |category1= | + | |category1=环境传感器 |
|category2=传感器 | |category2=传感器 | ||
|brand=Waveshare | |brand=Waveshare | ||
− | |feature = | + | |feature = 环境传感器 |
| interface1 =I2C | | interface1 =I2C | ||
}} | }} | ||
第13行: | 第13行: | ||
==产品概述== | ==产品概述== | ||
− | + | SGP40 VOC Sensor 是一款搭载 SGP40 的数字 VOC (挥发性有机化合物)气体传感器扩展板,可用于空气质量检测,如,检测空气中的燃煤、天然气排放物;吸烟和烹调等烟雾;建筑活动,装饰材料、家具和家用电器等的排放物,并生成数字信号触发空气处理设备。SGP40 VOC Sensor 体积小巧,可轻松集成到空气处理设备或空气质量监测器当中,是学习空气质量检测功能的理想选择。 | |
==产品特性== | ==产品特性== | ||
− | * | + | *采用 SGP40,可测量环境 0 ~ 1000 ppm 乙醇当量 |
− | * | + | *具有湿度补偿和低热量散发功能,在各种环境下均具有优异的性能 |
− | * | + | *数字 I2C 接口输出,不易受到干扰 |
− | * | + | *板载电平转换电路,可兼容 3.3V/5V 的工作电平 |
− | + | *提供完善的配套资料手册 (Raspberry/Arduino/STM32 示例程序和用户手册等) | |
− | |||
− | |||
− | *提供完善的配套资料手册(Raspberry/Arduino/ | ||
==产品参数== | ==产品参数== | ||
*工作电压: 3.3V/5V | *工作电压: 3.3V/5V | ||
− | * | + | *有效量程: 0~1000 ppm 乙醇当量 |
− | *传感器: | + | *传感器: SGP40 |
− | * | + | *启动时间: 3.3V/5V |
− | *通信接口: I2C | + | *响应时间 : < 10s (tau 63 %) |
− | *产品尺寸: | + | *通信接口: I2C (固定地址:0x59) |
+ | *产品尺寸: 27 × 20mm | ||
*固定孔径: 2.0mm | *固定孔径: 2.0mm | ||
第48行: | 第46行: | ||
|-align="center" | |-align="center" | ||
|4||SCL||I2C时钟线 | |4||SCL||I2C时钟线 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
|}<br /> | |}<br /> | ||
第85行: | 第78行: | ||
==硬件连接== | ==硬件连接== | ||
− | [[File: | + | [[File:SGP40_VOC_Sensor_wiki_arduino1.png|700px]] |
==安装编译软件(windows教程)== | ==安装编译软件(windows教程)== | ||
第101行: | 第94行: | ||
[[File:AS7341_Arduino_com.png|800px]]<br/> | [[File:AS7341_Arduino_com.png|800px]]<br/> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
第190行: | 第143行: | ||
|}<br /> | |}<br /> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</div> | </div> |
2021年7月11日 (日) 11:49的版本
| ||||||||||||||||||||
| ||||||||||||||||||||
产品概述
SGP40 VOC Sensor 是一款搭载 SGP40 的数字 VOC (挥发性有机化合物)气体传感器扩展板,可用于空气质量检测,如,检测空气中的燃煤、天然气排放物;吸烟和烹调等烟雾;建筑活动,装饰材料、家具和家用电器等的排放物,并生成数字信号触发空气处理设备。SGP40 VOC Sensor 体积小巧,可轻松集成到空气处理设备或空气质量监测器当中,是学习空气质量检测功能的理想选择。
产品特性
- 采用 SGP40,可测量环境 0 ~ 1000 ppm 乙醇当量
- 具有湿度补偿和低热量散发功能,在各种环境下均具有优异的性能
- 数字 I2C 接口输出,不易受到干扰
- 板载电平转换电路,可兼容 3.3V/5V 的工作电平
- 提供完善的配套资料手册 (Raspberry/Arduino/STM32 示例程序和用户手册等)
产品参数
- 工作电压: 3.3V/5V
- 有效量程: 0~1000 ppm 乙醇当量
- 传感器: SGP40
- 启动时间: 3.3V/5V
- 响应时间 : < 10s (tau 63 %)
- 通信接口: I2C (固定地址:0x59)
- 产品尺寸: 27 × 20mm
- 固定孔径: 2.0mm
接口说明
- 引脚功能
引脚号 | 标识 | 管脚描述 |
1 | VCC | 3.3V/5V电源正 |
2 | GND | 电源地 |
3 | SDA | I2C数据线 |
4 | SCL | I2C时钟线 |
硬件说明
芯片
本产品采用AS7341-DLGM为核心,是一个用于光谱识别和颜色匹配应用的11通道IC。光谱响应定义在波长约350nm到1000nm,6个通道可以由独立的adc并行处理,而其他通道都是 可通过多路复用器访问。AS7341通过纳米光学沉积干涉滤波器将滤波器集成到标准CMOS硅中,该技术及其封装提供了一个内置的光圈来控制进入传感器阵列的光线。控制和光谱数据访问通过串行I²C接口实现。
通信协议
从上面功能引脚表得知使用的是I2C通信,I2C 通信,一条数据线,一条时钟线。 I2C 总线在传送数据过程中共有三种类型信号:开始信号、结束信号和应答信号。
开始信号:SCL 为高电平时, SDA 由高电平向低电平跳变,开始传送数据。
结束信号:SCL 为高电平时, SDA 由低电平向高电平跳变,结束传送数据。
应答信号:接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出特定的低电平脉冲,表示已收到数据。
- I2C写数据时序
首先主机(即树莓派,后面统称为主机)会发送一个开始信号,然后将其 I2C 的 7 位地址与写操作位组合成 8 位的数据发送给从机(即 TSL2581 传感器模块,后面统称为从机),从机接收到后会响应一个应答信号,主机此时将命令寄存器地址发送给从机,从机接收到发送响应信号,此时主机发送命令寄存的值,从机回应一个响应信号,直到主机发送一个停止信号,此次 I2C 写数据操作结束
- I2C读数据时序
首先主机会发送一个开始信号,然后将其 I2C 的 7 位地址与写操作位组合成 8 位的数据发送给从机,从机接收到后会响应一个应答信号,主机此时将命令寄存器地址发送给从机,从机接收到发送响应信号,此时主机重新发送一个开始信号,并且将其 7 位地址和读操作位组合成 8 位的数据发送给从机,从机接收到信号后发送响应信号,再将其寄存器中的值发送给主机,主机端给予响应信号,直到主机端发送停止信号,此次通信结束。
- I2C地址
Arduino
本例程在Arduino UNO上测试,如使用了其他型号的Arduino,请注意相关引脚连接是否正确
硬件连接
安装编译软件(windows教程)
验证程序
在产品百科界面下载程序,然后解压。Arduino程序位于 ~/Arduino/… 把Arduino目录下的文件夹Waveshare_AS7341复制到Arduino安装目录的libraries下,一般是
C:\Users\XXX\Documents\Arduino\libraries 或者 C:\Program Files (x86)\Arduino\libraries
打开Arduino IDE: 点击 文件(flie)->示例(example) 加载库,查看是否有Waveshare_AS7341选项,若有说明库导入成功,打开example中的ino工程文件,如图所示:
开发板选择相应的型号,选择相应的COM口,编译程序,下载到UNO上,打开串口监视器
实验现象:
STM32
本例程在NUCLEO-F103RB(芯片型号STM32RBT6)及 OpenH743I-C(芯片型号STM32H743IIT6)上验证通过,如需移植,请注意相关配置及连接方式
硬件连接
AS7341 Spectral Color Sensor | XNUCLEO-F103RB |
VCC | 3.3V/5V |
GND | GND |
SDA | SDA/D14/PB9 |
SCL | SCL/D15/PB8 |
INT | D8/PA9 |
GPIO | - |
与OpenH743I-C 的连接:
AS7341 Spectral Color Sensor | OpenH743I-C |
VCC | 3.3V/5V |
GND | GND |
SDA | PD13(I2C4 SDA) |
SCL | PD12(I2C4 SCL) |
INT | PD11 |
GPIO | - |
Raspberry Pi
本例程使用的是Raspberry Pi 3 Model B,提供BCM2835、WiringPi、文件IO、RPI(Python)库例程
硬件连接
AS7341 Spectral Color Sensorr | 树莓派(BCM) |
VCC | 3.3V/5V |
GND | GND |
SDA | SDA(2) |
SCL | SCL(3) |
INT | 4 |
GPIO | - |
树莓派使用
开启I2C接口
- 在终端执行:
sudo raspi-config #选择 Interfacing Options -> I2C ->yes 启动 i2C 内核驱动
- 然后重启树莓派
sudo reboot
安装库
- 安装BCM2835,打开树莓派终端,并运行下指令
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.60.tar.gz tar zxvf bcm2835-1.60.tar.gz cd bcm2835-1.60/ sudo ./configure sudo make sudo make check sudo make install
- 安装wiringpi
sudo apt-get install wiringpi #对于树莓派4B可能需要进行升级: cd /tmp wget https://project-downloads.drogon.net/wiringpi-latest.deb sudo dpkg -i wiringpi-latest.deb gpio -v
下载并运行测试例程
sudo apt-get install p7zip-full wget https://www.waveshare.net/w/upload/b/b3/AS7341_Spectral_Color_Sensor_code.7z 7z x AS7341_Spectral_Color_Sensor_code.7z -r -o./AS7341_Spectral_Color_Sensor_code sudo chmod 777 -R AS7341_Spectral_Color_Sensor_code
C程序
cd AS7341_Spectral_Color_Sensor_code/AS7341_Spectral_Color_Sensor_code/RaspberryPi/c make clean make
执行
sudo ./main data
来验证测试程序
- 注意:这里的data可换为flicker、syns、int、pinint、clear以验证不同的测试程序,其含义在代码中均有解释
python程序
cd cd AS7341_Spectral_Color_Sensor_code/AS7341_Spectral_Color_Sensor_code/RaspberryPi/python/examples
执行
sudo python data.py
来验证测试程序
- 注意:这里的data可换为flicker、syns、int、pinint、clear以验证不同的测试程序,其含义在代码中均有解释
程序说明
所有测试程序的功能及需要注意的地方已在Arduino教程中介绍过,同样的,当执行sudo ./main syns 或 python syns.py时,需要给GPIO口上拉再下拉产生一个下降沿信号,可将GPIO脚接到短暂的接触高电平引脚再放开以此来产生一个下降沿信号
请检查硬件连接是否OK,尤其是SDA和SCL的线序不要搞反,并将传感器断电后重新接上并重新运行程序