Android Things: Entwickle IoT-Anwendungen mit User Drivern
Inhaltsverzeichnis
- Einführung in Android Things
- Unterschiede zu Android
- Unterstützte Boards
- Die Things Support Library
- Peripherie-IO-APIs
- Treiber-APIs
- Vorteile von User Drivern
- Beispiele für User Driver
- Upm und Raw Bibliotheken
- Integration von Upm in Android Things
- Ressourcen und Links
👉 Unterstützte Boards
Android Things ist eine Entwicklungsplattform für das Internet der Dinge (IoT). Es unterstützt verschiedene Starterboards, darunter Intel Edison, Raspberry Pi 3 und NXP i.MX6. Jedes Board hat seine eigenen einzigartigen Funktionen und Spezifikationen.
1. Intel Edison
Das Intel Edison Board ist in drei verschiedenen Versionen erhältlich: Arduino, Block und Mini Breakout. Es bietet eine gute Leistung und ist für eine Vielzahl von Anwendungen geeignet.
2. Raspberry Pi 3
Der Raspberry Pi 3 ist ein beliebtes Entwicklungsboard mit einem Broadcom-BCM2837-Chip und einem 1,2 GHz Quad-Core ARM Cortex-A53-Prozessor. Es verfügt über integriertes WLAN und Bluetooth, was es ideal für drahtlose IoT-Anwendungen macht.
3. NXP i.MX6
Das NXP i.MX6 Board, auch als Sabre-SD bekannt, zeichnet sich durch seine hohe Leistung und Verarbeitungsfähigkeit aus. Es ist für Anwendungen mit Edge Processing und autonome Roboter geeignet.
Jedes Board bietet eine einzigartige Entwicklungsumgebung und eine Vielzahl von Anschlüssen für die Verbindung von Sensoren und Aktuatoren.
👉 Die Things Support Library
Die Things Support Library ist ein wichtiger Bestandteil von Android Things. Sie erweitert das Framework, um die Kommunikation und Integration mit externen Geräten zu ermöglichen. Die Bibliothek besteht aus zwei Teilen: den Peripherie-IO-APIs und den Treiber-APIs.
1. Peripherie-IO-APIs
Die Peripherie-IO-APIs ermöglichen die Kommunikation mit externen Geräten über standardisierte Protokolle wie GPIO, I2C und SPI. Mit diesen APIs können Entwickler Sensoren und Aktuatoren an das System anschließen und steuern.
2. Treiber-APIs
Die Treiber-APIs erweitern das Framework und ermöglichen es Anwendungen, hardwarenahe Ereignisse zu injizieren. Dies bedeutet, dass andere Anwendungen auf diese Ereignisse reagieren und darauf zugreifen können. Zum Beispiel kann eine GPS-Modul-Anwendung für die Positionsbestimmung Ereignisse injizieren, auf die andere Anwendungen zugreifen können.
Die Verwendung der Peripherie-IO-APIs und Treiber-APIs bietet mehrere Vorteile, darunter eine einfache Integration, Wiederverwendbarkeit von User Drivern und Portierbarkeit zwischen verschiedenen Boards.
👉 Vorteile von User Drivern
User Drivern bieten mehrere Vorteile für Entwickler:
-
Einfache Integration: User Drivern sind Teil des Frameworks und bieten klare APIs, auf die Anwendungen zugreifen können. Dadurch wird die Integration und Verwendung von Geräten vereinfacht.
-
Wiederverwendbarkeit: User Drivern können von Entwicklern wiederverwendet werden, was Zeit und Aufwand spart. Hersteller können beispielsweise User Driver für ihre Sensoren bereitstellen, die von anderen Entwicklern genutzt werden können.
-
Portierbarkeit: User Drivern ermöglichen die Portierung von Anwendungen zwischen verschiedenen Boards, ohne Codeänderungen vornehmen zu müssen. Dies erleichtert die Entwicklung für verschiedene Hardwareplattformen.
User Drivern sind ein wichtiges Konzept in Android Things und bieten Entwicklern die Möglichkeit, Hardwarekomponenten nahtlos in ihre Anwendungen zu integrieren und von den Vorteilen der Framework-APIs zu profitieren.
👉 Beispiele für User Driver
Ein Beispiel für die Verwendung von User Drivern ist die Ansteuerung einer LED über GPIO. Wenn eine Anwendung eine LED blinken lassen möchte, kann sie den GPIO per User Driver steuern.
PeripheralManagerService manager = new PeripheralManagerService();
Gpio ledGpio = manager.openGpio("BCM13");
ledGpio.setDirection(Gpio.DIRECTION_OUT_INITIALLY_LOW);
ledGpio.setValue(true);
In diesem Beispiel wird der GPIO "BCM13" geöffnet und als Ausgang konfiguriert. Dann wird der Wert auf "true" gesetzt, um die LED einzuschalten.
Ein weiteres Beispiel ist die Verwendung eines Drucksensors über I2C. Hier ist ein Beispielcode, der den Sensor liest und den Druckwert ausgibt:
PeripheralManagerService manager = new PeripheralManagerService();
I2cDevice pressureSensor = manager.openI2cDevice("I2C1", 0x28);
byte[] buffer = new byte[2];
pressureSensor.read(buffer, buffer.length);
int pressure = ((buffer[0] & 0xFF) << 8) | (buffer[1] & 0xFF);
float pressureInPa = pressure * 10;
System.out.println("Pressure: " + pressureInPa + " Pa");
Diese Beispiele zeigen, wie User Drivern verwendet werden können, um Hardwarekomponenten in Android Things zu integrieren und zu steuern.
👉 Upm und Raw Bibliotheken
Upm (Useful Packages & Modules) und Raw (Realtime Arduino Wrapper) sind Open-Source-Bibliotheken, die eine Sammlung von Sensoren und Aktuatoren für IoT-Anwendungen bieten. Diese Bibliotheken bieten eine einfache und konsistente API für die Integration von Sensoren und Aktuatoren in Ihre Anwendungen.
Upm und Raw unterstützen eine Vielzahl von Protokollen und Sensoren von verschiedenen Herstellern. Sie erleichtern die Entwicklung von IoT-Anwendungen, indem sie eine robuste und erprobte Codebasis sowie umfangreiche Dokumentation und Beispiele bereitstellen.
Diese Bibliotheken sind Teil des Intel IoT Dev Kits und werden derzeit in Android Things integriert, um Entwicklern eine breite Palette von Sensoren und Aktuatoren zur Verfügung zu stellen.
👉 Integration von Upm in Android Things
Die Integration von Upm in Android Things ermöglicht es Entwicklern, Sensoren und Aktuatoren einfach zu verwenden und von den Funktionen der Upm-Bibliothek zu profitieren. Hier sind die Schritte zur Integration von Upm in Ihre Android Things-Projekte:
-
Fügen Sie das Upm-Repository zu Ihren Projektbuild-Dateien hinzu.
-
Importieren Sie die Upm-Bibliothek in Ihre Android Studio-Projekte.
-
Verwenden Sie die Upm-APIs, um auf Sensoren und Aktuatoren zuzugreifen und diese zu steuern.
Die Integration von Upm bietet eine Reihe von Vorteilen, darunter eine große Auswahl an unterstützten Sensoren und Aktuatoren, eine einfache und konsistente API und eine umfangreiche Dokumentation und Beispiele.
👉 Ressourcen und Links
Hier sind einige nützliche Ressourcen und Links zu Android Things:
-
Offizielle Android Things-Website: https://developer.android.com/things
-
Dokumentation zu Android Things: https://developer.android.com/things/documentation
-
Boards und SDKs für Android Things: https://developer.android.com/things/hardware/index.html
-
User Drivern für Android Things: https://github.com/androidthings/contrib-drivers
-
Upm-Bibliothek: https://iotdk.intel.com/docs/master/upm/index.html
-
Raw-Bibliothek: https://iotdk.intel.com/docs/master/mraa/index.html
Diese Ressourcen bieten detaillierte Informationen und Anleitungen zur Entwicklung mit Android Things und zur Integration von Sensoren und Aktuatoren.
Pros
- Einfache Integration von externen Geräten
- Wiederverwendbare User Driver für verschiedene Sensoren
- Portierbarkeit zwischen verschiedenen Boards
- Upm und Raw Bibliotheken bieten umfangreiche Unterstützung für Sensoren und Aktuatoren
Cons
- Nicht alle Funktionen von Android sind verfügbar
- Keine Unterstützung für System-Apps und Content-Provider
- Begrenzte Unterstützung für Benutzereingaben und Authentifizierung
Highlights
- Android Things ist eine Entwicklungsplattform für das Internet der Dinge (IoT).
- Es unterstützt verschiedene Starterboards wie Intel Edison, Raspberry Pi 3 und NXP i.MX6.
- Die Things Support Library erweitert das Framework für die Kommunikation und Integration mit externen Geräten.
- User Drivern bieten Vorteile wie einfache Integration, Wiederverwendbarkeit und Portierbarkeit.
- Die Upm und Raw Bibliotheken bieten eine Vielzahl von Sensoren und Aktuatoren für IoT-Anwendungen.
FAQ
Frage: Welche Boards werden von Android Things unterstützt?
Antwort: Android Things unterstützt Intel Edison, Raspberry Pi 3 und NXP i.MX6 Boards.
Frage: Was sind User Drivern und wofür werden sie verwendet?
Antwort: User Drivern sind Treiber, die von Anwendungen verwendet werden, um mit externen Geräten zu kommunizieren. Sie ermöglichen eine einfache Integration und Wiederverwendbarkeit von Hardwarekomponenten.
Frage: Welche Vorteile bietet die Integration von Upm in Android Things?
Antwort: Die Integration von Upm ermöglicht die Verwendung einer breiten Palette von Sensoren und Aktuatoren in Android Things. Es bietet eine einfache API und umfangreiche Dokumentation und Beispiele.
Frage: Kann ich auch C++-Anwendungen mit Android Things entwickeln?
Antwort: Ja, Android Things unterstützt die Entwicklung von C++-Anwendungen mit Unterstützung für das NDK.
Frage: Wo finde ich weitere Informationen zu Android Things?
Antwort: Weitere Informationen zu Android Things finden Sie auf der offiziellen Website und in der Dokumentation von Android Things.