在本篇文章中,將主要介紹如何使用零知開發板和CCS811空氣質量傳感器進行CO2和VOC的測量。此外,您將學習如何將CSS811與零知開發板進行連接。
1、說明
MCU:零知開發板-標準板
模塊:CCS811空氣質量傳感器模塊
CCS811空氣質量傳感器是一款超低功耗數字氣體傳感器,集成了MOX(金屬氧化物)氣體傳感器,可通過集成的MCU(微控制器單元)檢測各種VOC(揮發性有機化合物),用于室內空氣質量監測。 我們使用該傳感器來感測環境中VOC和CO2的含量。
開發工具:零知開源開發工具
2、操作步驟
(1)連接
通過查看模塊的數據手冊,可以發現以下表格:
一般需要用到的引腳有:SDA、SCL、ADD、INT、WAK、VCC、GND。這里需要說明一下,SDA和SCL大家比較熟悉,但是INT和WAK就比較少見,在這款模塊中,INT相當于復位引腳,CCS811芯片內部集成的單片機程序跑飛之后可以將該引腳接地復位,同時需要WAK為低電平的時候SDA、SCL才能正常通信。
所以硬件連接需要把WAK引腳接低電平,如下所示:
(2)上傳程序
硬件連接好后就可以打開我們的零知開源開發工具,找到以下示例:
選擇正確串口,編譯上傳程序,打開調試窗口即可看到室內CO2和VOC的含量了。
3、測量結果
4、核心代碼
- #include "SparkFunCCS811.h"
- //#define CCS811_ADDR 0x5B //Default I2C Address
- #define CCS811_ADDR 0x5A //Alternate I2C Address
- CCS811 mySensor(CCS811_ADDR);
- void setup()
- {
- Serial.begin(9600);
- Serial.println("CCS811 Basic Example");
- //It is recommended to check return status on .begin(), but it is not
- //required.
- CCS811Core::status returnCode = mySensor.begin();
- if (returnCode != CCS811Core::SENSOR_SUCCESS)
- {
- Serial.println(".begin() returned with an error.");
- while (1) //Hang if there was a problem.
- {
- Serial.println("sensor begin error");
- delay(200);
- }
- }
- }
- void loop()
- {
- //Check to see if data is ready with .dataAvailable()
- if (mySensor.dataAvailable())
- {
- //If so, have the sensor read and calculate the results.
- //Get them later
- mySensor.readAlgorithmResults();
- Serial.print("CO2[");
- //Returns calculated CO2 reading
- Serial.print(mySensor.getCO2());
- Serial.print("] tVOC[");
- //Returns calculated TVOC reading
- Serial.print(mySensor.getTVOC());
- Serial.print("] millis[");
- //Simply the time since program start
- Serial.print(millis());
- Serial.print("]");
- Serial.println();
- }
- delay(10); //Don't spam the I2C bus
- }
復制代碼 完整工程可到零知實驗室免費獲取。
|