Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Google Developer Days Poland - Android Things - The IoT Platform for everyone

Rebecca Franks
September 06, 2017

Google Developer Days Poland - Android Things - The IoT Platform for everyone

Rebecca Franks

September 06, 2017
Tweet

More Decks by Rebecca Franks

Other Decks in Technology

Transcript

  1. View Slide

  2. View Slide

  3. extension
    IoT embedded

    View Slide

  4. powerful intelligent
    secure

    View Slide

  5. Android SDK Play Services Firebase
    Android Studio Cloud Platform

    View Slide

  6. No Play Store Deploy OTAs
    Subset of
    APIs
    Custom
    Hardware
    Single Purpose
    Device

    View Slide

  7. View Slide

  8. View Slide

  9. View Slide

  10. SoM
    Architecture
    Google
    Managed BSP

    View Slide

  11. Android Framework
    Hardware Libraries
    Linux Kernel
    Apps
    User Drivers

    View Slide





  12. View Slide

  13. View Slide

  14. View Slide

  15. View Slide

  16. View Slide

  17. View Slide

  18. Button GPS
    PWM Servo
    RGB LED Strip
    Temperature
    Sensor
    Capacitive
    Touch Buttons
    GPIO PWM
    I2C SPI
    UART I2S

    View Slide

  19. View Slide

  20. View Slide

  21. View Slide

  22. View Slide

  23. View Slide

  24. //Automatically added in app level build.gradle
    compileOnly 'com.google.android.things:androidthings:...'

    View Slide

  25. //Automatically added in AndroidManifest.xml






    android:name="android.intent.category.IOT_LAUNCHER"/>




    View Slide

  26. //Automatically added in AndroidManifest.xml






    android:name="android.intent.category.IOT_LAUNCHER"/>




    View Slide

  27. //Import required dependencies, buttons etc
    implementation 'com.google.android.things.contrib:driver-button:0.3'

    View Slide

  28. button = new Button("BCM6", Button.LogicState.PRESSED_WHEN_LOW);
    button.setOnButtonEventListener(new Button.OnButtonEventListener() {
    @Override
    public void onButtonEvent(final Button button, final boolean pressed) {
    ledGpio.setValue(pressed);
    }
    });
    // in onDestroy()
    button.close();

    View Slide

  29. button = new Button("BCM6", Button.LogicState.PRESSED_WHEN_LOW);
    button.setOnButtonEventListener(new Button.OnButtonEventListener() {
    @Override
    public void onButtonEvent(final Button button, final boolean pressed) {
    ledGpio.setValue(pressed);
    }
    });
    // in onDestroy()
    button.close();

    View Slide

  30. button = new Button("BCM6", Button.LogicState.PRESSED_WHEN_LOW);
    button.setOnButtonEventListener(new Button.OnButtonEventListener() {
    @Override
    public void onButtonEvent(final Button button, final boolean pressed) {
    ledGpio.setValue(pressed);
    }
    });
    // in onDestroy()
    button.close();

    View Slide

  31. //Get access to the pin
    PeripheralManagerService service = new PeripheralManagerService();
    ledGpio = service.openGpio("BCM21");
    ledGpio.setDirection(Gpio.DIRECTION_OUT_INITIALLY_LOW);
    ledGpio.setValue(true);
    //Close in onDestroy()
    ledGpio.close();

    View Slide

  32. //Get access to the pin
    PeripheralManagerService service = new PeripheralManagerService();
    ledGpio = service.openGpio("BCM21");
    ledGpio.setDirection(Gpio.DIRECTION_OUT_INITIALLY_LOW);
    ledGpio.setValue(true);
    //Close in onDestroy()
    ledGpio.close();

    View Slide

  33. //Get access to the pin
    PeripheralManagerService service = new PeripheralManagerService();
    ledGpio = service.openGpio("BCM21");
    ledGpio.setDirection(Gpio.DIRECTION_OUT_INITIALLY_LOW);
    ledGpio.setValue(true);
    //Close in onDestroy()
    ledGpio.close();

    View Slide

  34. View Slide

  35. View Slide

  36. @devunwired

    View Slide

  37. @blundell_apps @ataulm

    View Slide

  38. View Slide

  39. DatabaseReference onlineRef = firebaseDatabase.child(".info/connected");
    DatabaseReference isPowerOnRef = firebaseDatabase.child("/online");
    onlineRef.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(final DataSnapshot dataSnapshot) {
    if (dataSnapshot.getValue(Boolean.class)) {
    isPowerOnRef.setValue(true);
    isPowerOnRef.onDisconnect().setValue(false);
    }
    }
    });

    View Slide

  40. DatabaseReference onlineRef = firebaseDatabase.child(".info/connected");
    DatabaseReference isPowerOnRef = firebaseDatabase.child("/online");
    onlineRef.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(final DataSnapshot dataSnapshot) {
    if (dataSnapshot.getValue(Boolean.class)) {
    isPowerOnRef.setValue(true);
    isPowerOnRef.onDisconnect().setValue(false);
    }
    }
    });

    View Slide

  41. @alvaroviebrantz

    View Slide

  42. View Slide

  43. View Slide

  44. Hands-on with Android Things and
    Creating Your Own IoT Devices
    Renato Mangini, Jonathan Koren

    View Slide

  45. View Slide

  46. goo.gl/1gQ9Uo
    Give Feedback
    On This Session

    View Slide