Google Chat: zj734465502@gmail.com
+86-0755-88291180
sales01@spotpear.com
dragon_manager@163.com
services01@spotpear.com
manager01@spotpear.com
WhatsApp:13246739196
The SGP40 VOC Sensor is a digital VOC (Volatile Organic Compounds) sensor module that incorporates SGP40, designed for air quality monitoring. It can be used to measure fire coal, natural gas emissions, cigarette/cooking smoke, and emissions from constructing activity, decoration material, furniture, home appliances, then generate digital signals for triggering air treatment devices. The SGP40 VOC Sensor is small in size for easy integration into air treatment devices and air quality monitors, definitely an ideal choice for learning air quality monitoring.
PIN | SYMBOL | Description |
1 | VCC | 3.3V/5V Power on |
2 | GND | Ground |
3 | SDA | I2C data pin |
4 | SCL | I2C clock pin |
This product uses Sensirion's SGP40 gas sensor and is designed for easy integration into air purifiers or demand-controlled ventilation systems. Sensirion's CMOSens® technology provides a complete, easy-to-use sensor system on a single chip with a digital I2C interface and temperature-controlled micro-heating plates that provide VOC-based humidity compensated indoor air quality signals. Sensirion's powerful VOC algorithm processes the output signal directly, converting the original signal into a VOC index that can be used as a reliable measure of indoor air quality. The VOC algorithm automatically ADAPTS to the environment in which the sensor is located. Both the sensing element and the VOC algorithm are unmatched in robustness against the polluting gases present in real-world applications, resulting in unique long-term stability and low drift and device-to-device differences.
SGP40 uses I2C communication, I2C communication, one data line, one clock line. Normal I2C bus has three types of signals in the data transmission process: start signal, end signal, and response signal, as shown in the figure below:
Start signal: When SCL is high, SDA jumps from high level to low level, and data transmission begins。
End signal: When SCL is high, SDA jumps from low level to high level, and data transmission ends。
Reply signal: After receiving 8bit data, the receiving IC sends a specific low-level pulse to the sending IC to indicate that the data has been received..
As can be seen from the figure above, the data of SGP40 is sent with 16-bit addresses, and the 16-bit data sent needs a CRC-8/MAXIM verification code.
Cyclic Redundancy Check (CRC) is one of the most commonly used error Check codes in the field of data communication. Its characteristic is that the length of information fields and verification fields can be arbitrarily selected. Cyclic redundancy check (CRC) is a data transmission error detection function that performs polynomial calculations on the data and attaches the results to the back of the frame. The receiving device also performs a similar algorithm to ensure the correctness and integrity of the data transmission. SGP40 uses THE CRC-8/MAXIM check code calculation, that is, the calculation result of polynomial x^8 + x^5 + x^4 + 1
The procedure has been simplified, using the lookup table method.
Please download the IDE from the Arduino website and install it.
Download the demo codes from the Resources part and unzip it
This routine is written based on the Arduino library version, so you need to copy the program to the Arduino library directory. Copy the Waveshare_SGP40 folder in the Arduino directory from the next week's files to the Libraries folder in the Arduino installation directory(C:\Users\XXX\Documents\Arduino\libraries or C:\Program Files (x86)\Arduino\libraries)
Open the Arduino IDE: Choose file -> example -> Waveshare_SGP40 and open it.
The Development board select the appropriate model, select the appropriate COM port, compile the program, download to UNO, open the serial port monitor
It is important to note that this value uses a converted value, where VOC is 0 under normal conditions. Unless the environment is harsh, alcohol can be used instead of volatile gas, and a greater sensitive beat can be obtained.
Connection with XNUCLEO-F103RB:
AS7341 Spectral Color Sensor | XNUCLEO-F103RB |
VCC | 3.3V/5V |
GND | GND |
SDA | SDA/D14/PB9 |
SCL | SCL/D15/PB8 |
AS7341 Spectral Color Sensor | Raspberry Pi(BCM) |
VCC | 3.3V/5V |
GND | GND |
SDA | SDA(2) |
SCL | SCL(3) |
sudo raspi-config #Choose Interfacing Options -> I2C ->yes to enable the I2C interface
sudo reboot
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
sudo apt-get install wiringpi 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.com/w/upload/6/62/SGP40_Voc_Sensor_code.7z 7z x SGP40_Voc_Sensor_code.7z -r -o./SGP40_Voc_Sensor_code sudo chmod 777 -R SGP40_Voc_Sensor_code
cd cd SGP40_Voc_Sensor_code/RPI sudo python SGP40.py