Android Things

Android Things, l'aposta de Google en IoT

Article

Comprovem el potencial d'Android Things amb Raspberry Pi i Thingtia

Introducció

Android Things és una plataforma de SO incrustat basada en Android per Google. Està dirigit a ser utilitzat amb dispositius d'Internet of Things (IOT) de baixa potència i amb memòria limitada. Android Things ofereix algunes de les capacitats mòbils d'Android, incloent el desenvolupament de les aplicacions Android. Els desenvolupadors poden utilitzar SDKs, APIs i serveis habituals d'Android, inclosa la plataforma Google Cloud.

Android Things
Abast

Hem implementat una aplicació que comptarà el nombre de cares i el reportarà a Thingtia. Aquesta aplicació ha estat distribuïda en un model B de Raspberry Pi 3 amb mòdul de càmera i Android Things OS. L'aplicació s'ha implementat amb 2 mòduls dins de la mateixa aplicació. Un mòdul integrarà el mòdul de càmera i detectarà el nombre cares a la foto. El segon mòdul utilitza l'API REST per enviar les dades del sensor a Thingtia. Amb aquesta PoC podrem provar les principals capacitats d'Android Things com:

- Instal·lació d'Android Things OS en Raspberry Pi.

- La consola Android Things ens permet crear productes a través dels quals podem gestionar la versió de l'aplicació, la distribució, el OS i les actualitzacions de l'aplicació.

- Firebase gestionarà la missatgeria push i la gestió de l'estat dels dispositius.

- Personalització completa de l'OS incloent el logotip d'arranc i la interfície d'usuari.

- Desenvolupament d'entorns amb configuracions i limitacions.

- Integració amb API de tercers com Thingtia Cloud.

- Integració amb dispositius externs de Raspberry Pi com el Mòdul de Càmera.

Android Things
Descripció general tècnica i configuració de l'entorn

Google proporciona una plataforma de confiança per desenvolupar actualitzacions i correccions estàndard de Google i simplificar la integració de maquinari:

- Les Soms integren el SoC (System-on-chip), RAM, emmagatzematge flash, WiFi, Bluetooth i altres components en una sola placa i compten amb totes les certificacions FCC necessàries.

- El Board Support Package (BSP) és administrat per Google, el que significa que no hem de fer kernel o desenvolupament de firmware.

Android Things
Prova de concepte

Hem integrat un mòdul de càmera amb el qual prendrem fotos i detectarem el nombre de cares. El OS Android Things no ve amb l'aplicació de càmera. Així  doncs, per mostrar la vista prèvia o capturar la imatge necessitem implementar la nostra pròpia versió de la càmera.

Hem utilitzat FCM per enviar dades a l'aplicació. Una vegada que la app obté el push enviarà un broadcast i capturarà la imatge amb la càmera.

Hem integrat Thingtia amb la nostra aplicació. De moment fem servir la càmera com a sensor que detecta nombre de persones i actualitza a Thingtia. Des de la càmera prendrem la foto i detectarem el nombre de cares.

L'aplicació desenvolupada pot actualitzar el nombre de cares detectades al sensor de Thingtia. Es fa mitjançant una simple crida de l'API REST a Thingtia. Un cop fet això podem veure el resultat (el nombre de cares) a la  web de Thingtia.

Android Things
Conclusions

Aquesta és la primera versió estable publicada d'Android Things. Hem detectat que l'arquitectura d'Android Things és similar a l'aplicació mòbil Android. La principal diferència en l'arquitectura del OS és que només tenim un subconjunt d'API de Java. Però tenim coses addicionals: biblioteca de suport i servei de Google per Android Things. Podem utilitzar la mateixa arquitectura i els mateixos patrons de disseny i proporciona moltes capacitats interessants relacionades amb MDM i desenvolupament d'aplicacions.

Observem certes limitacions en la versió actual. En aquest moment Android Things OS suporta només uns pocs dispositius Iot. Aquestes plaques utilitzen una barreja de CPU basades en Intel i ARM, i suporten tant 32 bits com 64 bits. La RAM mínima és de 512MB.

La instal·lació en un Raspberry Pi 3 Model B és molt simple. Amb pocs passos tenim la nostra Raspberry Pi llesta per treballar amb internet Wi-Fi. A més, l'arquitectura Android Things SOM ens permet integrar fàcilment mòduls estàndard com càmeres i altres sensors. No hi ha necessitat d'escriure controladors de hardware. Android Things proporciona l'ús de l'API de Java que és útil per implementar la nostra lògica de negoci.

El desenvolupament amb Android Things és similar al desenvolupament natiu d'Android per a mòbils: desenvolupament d'aplicacions per a dispositius amb les eines de desenvolupament d'Android, les API i els recursos existents juntament amb les noves API que proporcionen I / O de baix nivell i biblioteques per components comuns. Google proporciona la imatge del sistema, actualitzacions i correccions perquè puguem centrar-nos en la creació de productes de valor afegit. Podem usar push system updates i les nostres pròpies actualitzacions de l'aplicació a dispositius utilitzant diversos canals. Aquests canals ens ajuden a gestionar fàcilment el nostre procés de prova de l'aplicació.