Seit gestern zickt meine selbstgebaute Wetterstation rum, die besteht aus einem Raspberry Pi mit paar Adafruit Sensoren.
Die lief jetzt seit einigen Monaten fast fehlerfrei, aber seit gestern schlägt der Verbindungsaufbau zu den Sensoren fehl.
Das bei meinem Code, aber auch wenn ich den Sample Code starte, mich irritiert aber auch dass verhalten vom I2C.
Erst einmal meine Fehlermeldung
pi3g_read register: Remote I/O error
pi3g_read data: Remote I/O error
initialize BME68X: Remote I/O error
Traceback (most recent call last):
File "/home/pi/weather-station-iot/weather-station-python/weatherstation.py", line 8, in <module>
values = sensors.readValues()
File "/home/pi/weather-station-iot/weather-station-python/sensors.py", line 21 , in readValues
bme68x = BME68X(i2c, handleValueCallback)
File "/home/pi/weather-station-iot/weather-station-python/sensors_bme68x.py", line 22, in __init__
self.sensor = bme68x.BME68X(0x77, 0)
SystemError: <class 'bme68x.BME68X'> returned NULL without setting an error
starte ich es direkt noch ein mal wechselt der Fehler auch mal zu
Traceback (most recent call last):
File "/home/pi/weather-station-iot/weather-station-python/weatherstation.py", line 8, in <module>
values = sensors.readValues()
File "/home/pi/weather-station-iot/weather-station-python/sensors.py", line 19, in readValues
bme280 = BME280(i2c, handleValueCallback)
File "/home/pi/weather-station-iot/weather-station-python/sensors_bme280.py", line 12, in __init__
self.bme280 = adafruit_bme280.Adafruit_BME280_I2C(self.i2c, 0x76)
File "/usr/local/lib/python3.9/dist-packages/adafruit_bme280/basic.py", line 371, in __init__
super().__init__()
File "/usr/local/lib/python3.9/dist-packages/adafruit_bme280/basic.py", line 102, in __init__
self._read_coefficients()
File "/usr/local/lib/python3.9/dist-packages/adafruit_bme280/basic.py", line 283, in _read_coefficients
coeff = self._read_register(0x88, 24) # BME280_REGISTER_DIG_T1
File "/usr/local/lib/python3.9/dist-packages/adafruit_bme280/basic.py", line 375, in _read_register
i2c.write(bytes([register & 0xFF]))
File "/usr/local/lib/python3.9/dist-packages/adafruit_bus_device/i2c_device.py", line 84, in write
self.i2c.writeto(self.device_address, buf, start=start, end=end)
File "/usr/local/lib/python3.9/dist-packages/busio.py", line 165, in writeto
return self._i2c.writeto(address, memoryview(buffer)[start:end], stop=stop)
File "/usr/local/lib/python3.9/dist-packages/adafruit_blinka/microcontroller/generic_linux/i2c.py", line 49, in writeto
self._i2c_bus.write_bytes(address, buffer[start:end])
File "/usr/local/lib/python3.9/dist-packages/Adafruit_PureIO/smbus.py", line 314, in write_bytes
self._device.write(buf)
OSError: [Errno 121] Remote I/O error
Und hier ist das komische Verhalten, initial findet er auf einmal nichts und direkt danach ausgeführt findet er auf einmal die Sensoren
pi@raspberrypi:~/weather-station-iot/weather-station-python $ i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
pi@raspberrypi:~/weather-station-iot/weather-station-python $ i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- 29 -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 77