В настоящее время я тестирую платформу Android Things с Raspberry Pie 3b и датчиком BME280 Соединение BME с Raspberry Pie
Простой код, который использует драйвер Bmx280 и должен возвращать значение температуры:
class DataReader: Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
try {
Log.d("Sensor", "All ok")
val sensor = Bmx280("I2C1", 0x77)
sensor.temperatureOversampling = Bmx280.OVERSAMPLING_1X
val temperature_value = sensor.readTemperature()
Log.d("S*ensor", "Current temperature: " + temperature_value)
sensor.pressureOversampling = Bmx280.OVERSAMPLING_1X
val pressure_value = sensor.readPressure()
Log.d("Sensor", "Current temperature: " + pressure_value)
} catch (error: Exception) {
Log.d("Sensor", "Error: " + error)
}
}
Вот сообщение об ошибке, которое я получаю все время:
Error: com.google.android.things.pio.PioException: android.os.ServiceSpecificException: I/O error (code 5)
Пробовал много разных способов (с BME280, подключенным к 3,3 В и 5 В), проверял мою схему подключения много раз.
Также пытались использовать разные адреса, такие как:
val sensor = Bmx280("I2C1", 0x77)
val sensor = Bmx280("I2C1", 0x76)
Вот выходные данные инструмента PIO CLI при попытке прочитать данные:
rpi3:/ $ pio list i2c
I2C1
rpi3:/ $ pio i2c I2C1 0x12 read-reg-byte 0x24
[WARNING:client_errors.cc(35)] error 5: I/O error
5|rpi3:/ $ pio i2c I2C1 0x12 read-raw size
[ERROR:cli_command.cc(74)] Invalid size.
Решено: Проблема былав соединении между проводами и штекерами на датчике.После пайки все вместе датчик работает как положено