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

♫ These are a few of my favourite (Android) Things ♫

♫ These are a few of my favourite (Android) Things ♫

Android Things lets you build professional, mass-market products on a trusted platform without previous knowledge of embedded systems. It is estimated that by 2020 there will be 50 billion connected things.

But what does it take to get started with Android Things and be able to say you’re truly working with the Internet of Things? How can you learn this platform and get ahead of the IoT revolution using your existing Android skills?

In this session, we will explore what Android Things is and how you can get started building IoT applications with your existing Android knowledge.

We will then build a real-life Android Things application using a Raspberry Pi 3 and Android Studio, the IDE you already use and love.

755c8de62a6b84adb347797f374670c9?s=128

Marcos Placona

January 17, 2018
Tweet

Transcript

  1. None
  2. Marcos Placona marcos_placona mplacona androidthings.rocks

  3. @marcos_placona

  4. Cameras Gateways Smart Meters Point of Sale Inventory Control Interactive

    Ads Vending Machines HVAC Control Security Systems Smart Doorbells Routers Energy monitors Asset Tracking Fleet Management Driver Assist Predictive Service Ideal for powerful, intelligent devices on the edge that need to be secure.
  5. How is Android Things different? @marcos_placona

  6. Where does it run?

  7. Where does it run now? • NXP i.MX6Ultralite • 500MHz

    ARM Cortex A7 • 512MB RAM • ~ £65 PICO-PI-IMX6UL • Broadcom BCM2837 • 1.2GHz quad-core ARM Cortex A53 • 1GB RAM • ~ £35 Raspberry Pi 3 • NXP i.MX6Ultralite • 500MHz ARM Cortex A7 • 512MB RAM • ~ £35 NXP Pico i.MX6UL • NXP I.MX7 • 1 Ghz ARM Cortex A7 • 512MB RAM • ~ £55 NXP PICO-IMX7D
  8. Raspberry Pi 3 - Community @marcos_placona

  9. Raspberry Pi 3 - Cost @marcos_placona

  10. Raspberry Pi 3 - In your drawer @marcos_placona

  11. How to get started?

  12. How to get started? + @marcos_placona

  13. How to get started? http://bit.ly/android-things-today @marcos_placona

  14. How to get started? http://bit.ly/android-things-today @marcos_placona

  15. How to get started? http://bit.ly/android-things-today @marcos_placona

  16. How to get started? http://bit.ly/android-things-today @marcos_placona

  17. Installing… @marcos_placona

  18. Done!

  19. DEMO

  20. Backup

  21. Hardware free since… @marcos_placona

  22. Hardware 101

  23. Peripherals @marcos_placona

  24. Components Construction base for prototyping. Easy to fix mistakes Breadboard

    Used to connect our Raspberry Pi to our components on the breadboard Jumper Wires Help us with reducing the flow of current through our circuits Resistors Make things bright and shiny when current passes through it. LEDs
  25. Fritzing @marcos_placona

  26. DEMO

  27. Backup

  28. Code package rocks.androidthings.iotdroidcon import android.app.* import android.os.* import android.util.* import

    com.google.android.things.pio.* import com.google.android.things.contrib.driver.button.* class MainActivity : Activity(), AutoCloseable { private val TAG = "MainActivity" lateinit var button: Button override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val service = PeripheralManagerService() button = Button("BCM6", Button.LogicState.PRESSED_WHEN_LOW) button.setOnButtonEventListener { _, _ -> Log.d(TAG, "GPIO:${service.gpioList}") } } override fun close() { button.close() } } @marcos_placona
  29. Code package rocks.androidthings.iotdroidcon import android.app.* import android.os.* import android.util.* import

    com.google.android.things.pio.* import com.google.android.things.contrib.driver.button.* class MainActivity : Activity(), AutoCloseable { private val TAG = "MainActivity" lateinit var button: Button override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val service = PeripheralManagerService() button = Button("BCM6", Button.LogicState.PRESSED_WHEN_LOW) button.setOnButtonEventListener { _, _ -> Log.d(TAG, "GPIO:${service.gpioList}") } } override fun close() { button.close() } } @marcos_placona
  30. Your Slide Title User Drivers @marcos_placona

  31. User Drivers @marcos_placona

  32. Binary Clock

  33. Binary Clock

  34. User Drivers @marcos_placona

  35. Managed by Google

  36. Managed by Google

  37. Displays are Optional

  38. No screens… No problem!

  39. Vysor https://www.vysor.io/ @marcos_placona

  40. Another demo?

  41. Smart Doorbell

  42. Honourable mentions

  43. Honourable mentions

  44. Android Things @marcos_placona

  45. Marcos Placona marcos_placona mplacona androidthings.rocks Thanks