2017-12-11 8 views
0

(운영체제로 안드로이드 것들과 함께 사용) 나무 딸기 PI3 모듈의 I2C를 사용하는 방법 안드로이드 것들 온도가 BME280 센서에서 읽기를 표시합니다 라즈베리 파이 모듈 (3)을 사용하여 응용 프로그램 앱에서 샘플 프로젝트를 다운로드했지만 주소가있는 I2cDevice를 여는 동안 문제가 발생했습니다.내가 샘플을 개발하기 위해 노력하고

다음은 코드의 자세한 사항은 다음과 같습니다

개인 정적 최종 INT 주소 = 0x76; android.os.ServiceSpecificException :

private void printDeviceId() { 
    List<String> deviceList = managerService.getI2cBusList(); 
    if (deviceList.isEmpty()) { 
     Log.i(TAG, "No I2C bus available on this device."); 
    } else { 
     Log.i(TAG, "List of available devices: " + deviceList); 
    } 
    I2cDevice device = null; 
    try { 
     device = managerService.openI2cDevice(deviceList.get(0), ADDRESS); 
     Log.d(TAG, "Device ID byte: 0x" + Integer.toHexString(device.readRegByte(0xD0))); 
    } catch (IOException|RuntimeException e) { 
     Log.e(TAG, e.getMessage(), e); 
    } finally { 
     try { 
      device.close(); 
     } catch (Exception ex) { 
      Log.d(TAG, "Error closing device"); 
     } 
    } 
} 

사실 openI2cDevice 방법에의 충돌 deviceList이 deviceList.get (0) "I2C1"여기

은 즉, 하나의 장치 만있는 동안은 충돌 로그입니다 : I/O 오류 (코드 5) com.google.android.things.pio.PioException : android.os.ServiceSpecificException : I/O 오류 (코드 5) com.google.android.things.pio.I2cDeviceImpl에서 . readRegByte (I2cDeviceImpl.java:81) (MainActivity.java:92) com.example.pitepmerature.MainActivity.printDeviceId android.app.Activity.performCreate (Activity.java:6991 AT) ) android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1214에서 ) android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2731에서 ) android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2856) android.app.ActivityThread.-wrap11에서 에서 (알 출처 : 0)에서 android.app.Act ivityThread $ H.handleMessage (ActivityThread.java:1589) android.os.Handler.dispatchMessage (Handler.java:106) at android.os.Looper.loop (Looper.java:164) android.app에 있습니다. ActivityThread.main (ActivityThread.java:6494) at java.lang.reflect.Method.invoke (기본 메소드) at com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.java:438) at com .android.internal.os.ZygoteInit.main (ZygoteInit.java:807) 원인 : android.os.ServiceSpecificException : I/O 오류 (코드 5) android.os.Parcel.readException (Parcel.java:2018)) androi에 d.os.Parcel.readException (Parcel.java:1950) com.google.android.things.pio.IPeripheralManagerClient $ Stub $ Proxy.I2cReadRegByte (IPeripheralManagerClient.java:1301) com.google.android.things. com.example.pitepmerature.MainActivity.onCreate (MainActivity.java:34) 에서 com.example.pitepmerature.MainActivity.printDeviceId (MainActivity.java:92) 에서 pio.I2cDeviceImpl.readRegByte (I2cDeviceImpl.java:79)에서 android.app.Activity.performCreate (Activity.java:7000) android.app.Instrumentation.callActivityOnCreate에서 android.app.Activity.performCreate (Activity.java:6991) 에서 (계측.java : 1214)

주소를 0x77로 변경하려고했지만 작동하지 않았습니다. 또한 많은 블로그를 살펴 보았지만 수정 사항을 찾지 못했습니다. 내가 코드와 설정의 모든 것을 선호

블로그 링크 :

http://zenandroid.io/writing-a-driver-for-android-things-bme280-humidity-sensor/

이 도와주세요.

+0

enter image description here 따라 핀도 확인 : 여기 샘플 프로젝트 자식 링크 인 .com/things/sdk/pio/pio-cli.html # I2C) :''i2c I2C1 0x12 읽기 - reg 바이트 0x76'. 문제가 회로에있을 수 있습니다. –

+0

또한 [공식 예] (https://github.com/androidthings/weatherstation)를 살펴보십시오 –

+0

하드웨어가 올바르게 연결되었는지 확인할 수 있습니까? –

답변

0

유용한 의견을 보내 주셔서 감사합니다. 마침내 해결책을 찾았습니다. 실제로 문제는 제가 실행했던 샘플과 관련이있었습니다. 또한, 올바른 핀 구성을 알아 냈습니다.

https://github.com/androidthings/drivers-samples/tree/master/bmx280 또한

, I는 [PIO CLI 도구 (https://developer.android와 BME280 센서에 액세스하려고

관련 문제