完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
您好,
我目前正在做一个项目,试图确定 CO2 和 VOC。但是我总是收到这个错误: 18:36:18.319 -> setup: CCS811 begin FAILED 18:36:18.319 -> setup: hardware version: FFFFFFFF 18:36:18.319 -> setup: bootloader version: FFFFFFFF 18:36:18.319 -> setup: application version: FFFFFFFF 18:36:18.319 -> setup: CCS811 start FAILED 18:36:18.319 -> CCS811: I2C error 我将 3V3 连接到 VCC,GND 连接到 GND,D1 连接到 SCL,D2 连接到 SDA 和 D3和 WAKE 这是我使用的代码。它与来自 github CCS811 库的 Maarten Pennings 代码相同: 代码:全选#include // I2C library #include "ccs811.h" // CCS811 library // Wiring for ESP8266 NodeMCU boards: VDD to 3V3, GND to GND, SDA to D2, SCL to D1, nWAKE to D3 (or GND) CCS811 ccs811(D3); // nWAKE on D3 void setup() { // Enable serial Serial.begin(115200); Serial.println(""); Serial.println("setup: Starting CCS811 basic demo"); Serial.print("setup: ccs811 lib version: "); Serial.println(CCS811_VERSION); // Enable I2C Wire.begin(); // Enable CCS811 ccs811.set_i2cdelay(50); // Needed for ESP8266 because it doesn't handle I2C clock stretch correctly bool ok= ccs811.begin(); if( !ok ) Serial.println("setup: CCS811 begin FAILED"); // Print CCS811 versions Serial.print("setup: hardware version: "); Serial.println(ccs811.hardware_version(),HEX); Serial.print("setup: bootloader version: "); Serial.println(ccs811.bootloader_version(),HEX); Serial.print("setup: application version: "); Serial.println(ccs811.application_version(),HEX); // Start measuring ok= ccs811.start(CCS811_MODE_1SEC); if( !ok ) Serial.println("setup: CCS811 start FAILED"); } void loop() { // Read uint16_t eco2, etvoc, errstat, raw; ccs811.read(&eco2,&etvoc,&errstat,&raw); // Print measurement results based on status if( errstat==CCS811_ERRSTAT_OK ) { Serial.print("CCS811: "); Serial.print("eco2="); Serial.print(eco2); Serial.print(" ppm "); Serial.print("etvoc="); Serial.print(etvoc); Serial.print(" ppb "); Serial.println(); } else if( errstat==CCS811_ERRSTAT_OK_NODATA ) { Serial.println("CCS811: waiting for (new) data"); } else if( errstat & CCS811_ERRSTAT_I2CFAIL ) { Serial.println("CCS811: I2C error"); } else { Serial.print("CCS811: errstat="); Serial.print(errstat,HEX); Serial.print("="); Serial.println( ccs811.errstat_str(errstat) ); } // Wait delay(1000); } 我还尝试切换 D3 和 GND,因此编辑了这一行:CCS811 ccs811(D3); 到 CCS811 ccs811(-1); 它也不起作用。 |
|
相关推荐
1个回答
|
|
用的代码:
``` #include "Wire.h" #include "Adafruit_CCS811.h" #define CCS811_ADDR 0x5A //CCS811 device I2C address Adafruit_CCS811 mySensor(CCS811_ADDR); void setup() { Serial.begin(115200); // Wait for serial monitor to open while(!Serial); Serial.println("CCS811 VOC Sensor Test"); Wire.begin(D2, D1); //SDA , SCL Wire.setClock(100000); if(mySensor.begin() == false){ Serial.println("CCS811 begin FAILED"); while(1); } mySensor.setDriveMode(CCS811_DRIVE_MODE_1SEC); } void loop() { if(mySensor.available()){ if(!mySensor.readData()){ Serial.print("CO2[ppm]: "); Serial.print(mySensor.geteCO2()); Serial.print(", tVOC[ppb]: "); Serial.println(mySensor.getTVOC()); } else{ Serial.println("CCS811 readData FAILED"); } } delay(1000); } ``` 这个错误可能是由于以下原因之一导致的: 1. CCS811供电不足或未连接。确保你的CCS811连接正确,并使用一个足够的电源将其供电。 2. I2C线路连接错误。检查你的I2C线路,确保SDA和SCL正确连接到ESP8266上。如果你有其他I2C设备,尝试使用它们来测试I2C线路是否正常工作。 3. CCS811设备有问题。有时CCS811设备可能存在问题,可以尝试更换另一个设备进行测试。 希望这些可以帮助您解决问题! |
|
|
|
只有小组成员才能发言,加入小组>>
545浏览 6评论
457浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
437浏览 5评论
441浏览 4评论
411浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 07:52 , Processed in 0.749064 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号