Hallo in die Runde, ich habe heute obigen Sensor nach dem Tutorial von Adafruit angschlossen was stellenweise auch läuft....
Gibt man die Codezeilen einzeln in die Konsole ein werden die Messwerte korrekt angezeigt:
Code
pi@raspberrypi:~ $ python3
Python 3.9.2 (default, Mar 12 2021, 04:06:34)
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import board
>>> import adafruit_am2320
>>> i2c = board.I2C()
>>> sensor = adafruit_am2320.AM2320(i2c)
>>> print('Humidity: {0}%'.format(sensor.relative_humidity))
Humidity: 41.4%
>>> print('Temperature: {0}C'.format(sensor.temperature))
Temperature: 21.5C
Alles anzeigen
macht man daraus ein am2320.py mit dem Inhalt:
Code
import time
import board
import adafruit_am2320
# create the I2C shared bus
i2c = board.I2C() # uses board.SCL and board.SDA
am = adafruit_am2320.AM2320(i2c)
while True:
print("Temperature: ", am.temperature)
print("Humidity: ", am.relative_humidity)
time.sleep(2)
Alles anzeigen
wird der Sensor bockig und es erscheint die Fehlermeldung:
Code
pi@raspberrypi:~ $ python3 am2320.py
Traceback (most recent call last):
File "/home/pi/am2320.py", line 13, in <module>
print("Temperature: ", am.temperature)
File "/usr/local/lib/python3.9/dist-packages/adafruit_am2320.py", line 141, in temperature
temperature = struct.unpack(">H", self._read_register(AM2320_REG_TEMP_H, 2))[0]
File "/usr/local/lib/python3.9/dist-packages/adafruit_am2320.py", line 123, in _read_register
i2c.write(bytes(cmd))
File "/usr/local/lib/python3.9/dist-packages/adafruit_bus_device/i2c_device.py", line 99, in write
self.i2c.writeto(self.device_address, buf, start=start, end=end)
File "/home/pi/.local/lib/python3.9/site-packages/busio.py", line 165, in writeto
return self._i2c.writeto(address, memoryview(buffer)[start:end], stop=stop)
File "/home/pi/.local/lib/python3.9/site-packages/adafruit_blinka/microcontroller/generic_linux/i2c.py", line 49, in writeto
self._i2c_bus.write_bytes(address, buffer[start:end])
File "/home/pi/.local/lib/python3.9/site-packages/Adafruit_PureIO/smbus.py", line 314, in write_bytes
self._device.write(buf)
OSError: [Errno 121] Remote I/O error
Alles anzeigen
ich habe es schon ohne while True getestet - leider ohne Erfolg.
Wo kann der Fehler liegen, wie kann das geändert werden?
Danke für jeden Tip......