2017-10-29 260 views
0

我正在使用CCS811气体传感器与Pi 3模型b。我按照https://learn.adafruit.com/adafruit-ccs811-air-quality-sensor/raspberry-pi-wiring-and-test这个页面上的步骤操作,并且在刻录期间运行没有问题。现在我得到下面的错误。Raspberry Pi停止与i2c传感器通信

我知道传感器的工作原理,因为我使用Arduino Uno进行了测试,我可以获得读数。在我的Pi上,它显示了当我运行sudo i2cdetect -y 1时传感器的正确地址。

我已经擦掉了SD卡3次,然后在干净的平板上重新开始,每次都会出现此错误。任何帮助将不胜感激!

这里是我使用从传感器读取数据的代码:

ccs = Adafruit_CCS811() 

while not ccs.available(): 
    pass 
temp = ccs.calculateTemperature() 
ccs.tempOffset = temp - 25.0 

while(1): 
    if ccs.available(): 
     temp = ccs.calculateTemperature() 
     if not ccs.readData(): 
      print "CO2: ", ccs.geteCO2(), "ppm, TVOC: ", ccs.getTVOC(), "temp: ", temp 
else: 
    print "ERROR!" 
    while(1): 
    pass 
sleep(2) 

这里是我得到

[email protected]:~/Adafruit_CCS811_python/examples$ sudo python CCS811_example.py 
Traceback (most recent call last): 
File "CCS811_example.py", line 6, in <module> 
ccs = Adafruit_CCS811() 
File "/usr/local/lib/python2.7/dist-packages/Adafruit_CCS811/Adafruit_CCS811.py", line 84, in __init__ 
raise Exception("Device ID returned is not correct! Please check your wiring.") 
Exception: Device ID returned is not correct! Please check your wiring. 

image of wiring and error

回答

0

错误该传感器不在树莓派上得到很好的支持。这是因为它使用了I2C时钟扩展,Pi不能在不显着降低I2C速度的情况下进行扩展。支持CircuitPython和Arduino。

引用自:

https://learn.adafruit.com/adafruit-ccs811-air-quality-sensor/overview

AMS建议运行该传感器48小时时,首先接收到“在它烧”,然后在所希望的模式,每次20分钟传感器正在使用中。这是因为传感器的灵敏度在早期使用时会发生变化。

引用自:

https://learn.adafruit.com/adafruit-ccs811-air-quality-sensor/overview

+0

感谢您的帮助!看起来我会在我的arduino上做这个项目! – Mike

+0

ARDUINO FTW !!!! –

+0

PS - Orange Pi电路板(AllWinner SoC)也可以在没有I2C错误的情况下正常读取该传感器。你也可以试试我的C代码 - https://github.com/bitbank2/CCS811 – BitBank