Java BMP280 ServiceSpecificException:I/O错误(代码5)
我试着用树莓皮3和BMP280来测量温度 我之所以选择3,3V是因为: 要给电路板供电,请给它与微控制器的逻辑电平相同的功率 然后我想初始化传感器Java BMP280 ServiceSpecificException:I/O错误(代码5),java,android,android-sensors,android-things,Java,Android,Android Sensors,Android Things,我试着用树莓皮3和BMP280来测量温度 我之所以选择3,3V是因为: 要给电路板供电,请给它与微控制器的逻辑电平相同的功率 然后我想初始化传感器 mTemperatureSensorDriver = new Bmx280SensorDriver("I2C1"); 通过执行,我得到以下豁免 Error configuring sensor com.google.android.things.pio.PioException: android.os.ServiceSpecificExc
mTemperatureSensorDriver = new Bmx280SensorDriver("I2C1");
通过执行,我得到以下豁免
Error configuring sensor
com.google.android.things.pio.PioException: android.os.ServiceSpecificException: I/O error (code 5)
at com.google.android.things.pio.I2cDeviceImpl.readRegByte(I2cDeviceImpl.java:81)
at com.google.android.things.contrib.driver.bmx280.Bmx280.connect(Bmx280.java:215)
at com.google.android.things.contrib.driver.bmx280.Bmx280.<init>(Bmx280.java:193)
at com.google.android.things.contrib.driver.bmx280.Bmx280.<init>(Bmx280.java:180)
at com.google.android.things.contrib.driver.bmx280.Bmx280SensorDriver.<init>(Bmx280SensorDriver.java:55)
配置传感器时出错
com.google.android.things.pio.PioException:android.os.ServiceSpecificException:I/O错误(代码5)
在com.google.android.things.pio.I2cDeviceImpl.readRegByte(I2cDeviceImpl.java:81)上
位于com.google.android.things.contrib.driver.bmx280.bmx280.connect(bmx280.java:215)
位于com.google.android.things.contrib.driver.bmx280.bmx280.(bmx280.java:193)
位于com.google.android.things.contrib.driver.bmx280.bmx280.(bmx280.java:180)
位于com.google.android.things.contrib.driver.bmx280.Bmx280SensorDriver.(Bmx280SensorDriver.java:55)
同样通过5V电源,我也收到同样的异常
我找到了。但我不知道如何检查,如果BMP280是真的连接到亚洲开发银行覆盆子
通过连接,我通过device.readRegByte(0xD0)
接收相同的验证
这是否意味着BMP280未正确连接?
如果是,如何正确连接BMP280和覆盆子
连接需要一些电阻器吗
更新
通过将BMP280与收割台条焊接解决
使用传感器还需要权限,该权限只能在命令行中授予
adb shell pm grant app.package.com.google.android.things.permission.MANAGE_SENSOR_DRIVERS
查看您的fritzing图表您是否已将SDO连接到BCM3
从数据表中,SDO引脚决定传感器的地址
将SDO连接到GND将导致从
地址1110110(0x76);将其连接到VDDIO会导致从机地址1110111(0x77)
最重要的是:
SDO引脚不能保持浮动状态;如果保持浮动,则
I²C地址将是未定义的
com.google.android.things.pio.PioException:android.os.ServiceSpecificException:I/O错误(代码5)
因此,您的问题可能是未定义的i2c地址
查看您用于Bmx280SensorDriver的代码,它使用地址0x77
因此,您应该确保SDO线路连接到raspberry pi上的5V。这将确保您的传感器具有正确的地址
或者,将SDO连接至接地,并使用此构造函数:
mTemperatureSensorDriver=新的BMX280传感器驱动器(“I2C1”,0x76)代码>
如果您想了解传感器驱动程序“在引擎盖下”在做什么,有一篇很棒的博客文章和repo可以看到:
;-) 感谢您提供的信息和正确的连接
bmx280=新的bmx280(“I2C1”,0x76)代码>和SDO接地
但是读取值很奇怪
myweatherstation D/站:温度:186.83298压力:-296.47287
传感器是否可能损坏
TNX
Cris要从物联网设备读取数据,触点应固定,无任何松动连接
这只能通过将BMP280与收割台条焊接来实现
只有这样才能重新建立连接尝试使用以下命令访问BMP280传感器:pio i2c I2C1 0x12 read reg byte 0x76
-或类似命令,以查找问题。另外,看一下答案。它给出了[警告:client_errors.cc(35)]错误5:I/O错误
。通过调用pio list i2c
i receiveI2C1
BMP280的图标太大。连接:VIN、GND、SCK和SDI将其连接到地上会给出一个地址0x76
您需要将其连接到5v或使用另一个构造器(写在我的答案中),答案是3,3V正确。另一个问题:BMP280是否可以在没有焊接的情况下工作?可能吗?:)如果SDO接地,则需要使用此构造函数:new Bmx280SensorDriver(“I2C1”,0x76)代码>如果您有新问题,请单击按钮提问。如果此问题有助于提供上下文,请包含指向此问题的链接。-是的,这是我的第一篇文章。TNX咨询