Android-Smartphone als IoT-Gerät nutzen, Teil 1 Termux samt API-Zugriff einrichten
Ein Android-Smartphone ist weit mehr als ein kluges Telefon, es ist ein tragbarer Computer. Android-Geräte lassen sich wunderbar als IoT-Geräte verwenden. Und das beste Werkzeug für eigene, kleinere Projekte? Natürlich der gute alte Linux-Terminal, den es auch unter Android gibt, sogar ohne Root.
Anbieter zum Thema

Android-Geräte lassen sich meist nicht so nutzen, wie man es vielleicht gerne würde – schlicht, weil der Root-Zugriff fehlt. Zwar lassen sich Geräte mehr oder minder einfach rooten, aber der Aufwand ist unangenehm hoch und will man das nachträglich machen, gehen auch noch alle Daten flöten. Es gibt aber eine andere Option, Android-Geräte deutlich freier zu nutzen – Linux.
Zum einen gibt es Apps, die ohne Root-Zugriff komplette Linux-Systeme wie Debian samt LXDE-Desktop auf App-Level zur Verfügung stellen. Auf einem extrem leistungsfähigen Gerät ließe sich solch ein System auf einem Monitor ausgeben und schon hätte man einen ultraportablen Mini-PC.
In der Regel ist das aber zu viel des Guten und da kommt die Open-Source-App Termux ins Spiel. Termux ist Terminal-Emulator und Linux-Umgebung zugleich, verfügt über die üblichen Linux-Standard-Werkzeuge und natürlich auch über ein Paketmanagement. Über das Repository können Sie derzeit auf über 1.000 Pakete zugreifen, die sich wie unter Linux üblich installieren lassen.
So weit, so gut – damit ließe sich im Termux-Terminal in etwa anstellen, was auch in jedem anderen Terminal möglich wäre, etwa auf einem Raspberry Pi. Dem Raspi müssten aber zunächst Ein- und Ausgabegeräte, sprich Maus, Tastatur und Bildschirm spendiert werden. Entsprechende Ein- und Ausgabeschnittstellen hat das Android-Gerät bereits.
Sofern der Raspi als IoT-Gerät, etwa für Home-Automation-Projekte, eingesetzt werden sollte, dürften Sie als nächstes noch ein paar Sensoren kaufen, sei es ein Thermometer für die eigene Wetterstation oder eine Webcam für ein Überwachungssystem – und ja, auch Sensoren sind bei Android-Geräten bereits reichlich vorhanden.
Nun bietet die zum Termux-Projekt gehörende App Termux:API erfreulicherweise auch direkten Zugriff auf die (Hardware-)Schnittstellen. Darunter auf Sensoren, Kamera, Telefon, SMS-Protokoll, Kontaktliste, Hintergrundbild und vieles mehr. Mit den beiden Apps und ein wenig Shell-Scripting können Sie so aus alten Smartphones oder Tablets funktionierende Mitglieder der IoT-Gemeinde machen
Letztlich ist der Ressourcenverbrauch jedoch gering genug, um auch das „Haupt-Smartphone“ mit nützlichen Funktionen zu erweitern. Einsatzmöglichkeiten gibt es viele, vom FTP-Server in der Hosentasche, über eine Wild-Kamera, bis hin zum ultimativen Wardriving-Hacker-Spielzeug.
Im zweiten Teil dieses kleinen Artikel-Duos finden Sie ein paar konkrete Projekte als Anregungen. Doch zunächst zeigen wir Ihnen, was Termux vermag und wie Sie Termux samt API-Zugriff einrichten und nutzen.
Termux einrichten
Die Einrichtung ist dankbar simpel, schließlich handelt es sich lediglich um eine normale App. Sie finden Termux bei Google Play, aber auch der alternative Open-Source-App-Store F-Droid listet Termux. F-Droid ist dabei vor allem praktisch, weil Sie keinerlei Google-Konto auf dem Gerät benötigen, um Apps zu installieren.
Soll das Gerät dauerhaft und hauptsächlich „zweckentfremdet“ werden, sollten Sie auf Google-Konten und sonstigen Ballast verzichten. Zum einen aus Sicherheits- und Datenschutzgründen, zum anderen um Ressourcen zu sparen. Die Einrichtung der F-Droid-App wäre also ein guter erster Schritt. Nicht vergessen: Bevor Sie aus anderen Quellen als Google Play installieren dürfen, müssen Sie die entsprechenden Rechte vergeben. Entweder das Gerät fragt Sie direkt oder Sie müssen dies noch die Option „Installieren unbekannter Apps“ freischalten.
Suchen Sie anschließend nach Termux, finden Sie sieben Termux-Apps: Sie benötigen Termux und Termux:API. Empfehlenswert ist zudem Termux:Boot, um Programme/Skripte automatisch nach dem Boot-Vorgang zu starten. Mit Termux:Widget können Sie Shortcuts für Skripte auf dem Startbildschirm ablegen, mit Termux:Styling das Erscheinungsbild anpassen und Termux:Float zeigt den Terminal als „fliegendes“, frei platzierbares Fenster über sonstigen laufenden Apps.
Das ist etwa praktisch, um Termux-Ausgabe im Blick zu behalten oder die Auswirkungen von Terminal-Befehlen auf zum Beispiel eine Website im Hintergrund zu beobachten. Nutzer von Tasker oder kompatiblen Schedulern sollten zudem Termux:Task installieren, um Termux-Skripte in die Automation einbauen zu können – was Termux definitiv nochmal einen Boost verschafft.
Termux einrichten
Bevor Sie mit dem Skripten loslegen, müssen Sie noch ein paar Kleinigkeiten erledigen. Rufen Sie also Termux auf und aktualisieren Sie zunächst mit den üblichen Befehlen:
apt update
apt upgrade
Anschließend sollten Sie im Termux-Terminal den Befehl …
termux-setup-storage
… ausführen, um einfacher auf im Terminal erstellte Dateien zugreifen zu können.
Nachdem Sie die dann angeforderten Rechte gewährt haben, finden Sie im Android-Dateimanager in der Hauptnavigation einen eigenen Eintrag „Termux“, der zum Inhalt von „/data/data/com.termux/files/home“ führt, dem Standardverzeichnis im Termux-Terminal. Zum Einrichten von Termux:API müssen Sie noch das passende Tool via …
apt install termux-api
… nachinstallieren (nicht zu verwechseln mit der bereits installierten App Termux:API).
Zu guter Letzt bietet es sich an, noch einen Texteditor zu installieren – vi ist als Standard bereits vorhanden. Etwas einfacher wird es mit Nano, den Sie per …
pkg install nano
… bekommen. Auch eine Überlegung wert: Das Hacker's Keyboard erleichtert mit einem vollwertigen Tastaturlayout den Zugriff auf diverse im Terminal häufig genutzte Sonderzeichen wie das Pipe-Symbol.
Termux und API verwenden
Termux bietet neben Linux-Standards auch allerhand eigene Tools, die Sie sich per Autovervollständigung einfach mit „termux+TAB“ anzeigen lassen können. Darunter finden Sie auch den Befehl „termux-sensor“, der über ...
termux-sensor -l
... alle verfügbaren Sensoren des Geräts auflistet. Die komplette API-Referenz finden Sie im Termux:API-Wiki.
Zum Testen könnten Sie es mit folgenden zwei Beispielen probieren – zunächst mal ein Test für die Audio-Schnittstelle:
echo Hello World | termux-tts-speak
… sollte die Text-to-Speech-Engine (TTS) dazu veranlassen „Hello World“ vorzulesen. Zum Testen der Kameras nehmen Sie einfach mal ein Foto über die Hauptkamera auf:
termux-camera-photo -c 1 meinfoto.jpg
… schießt ein Foto über die Kamera mit der ID 1 (-c 1), in der Regel die rückwärtige Kamera – für Selfies wäre es entsprechend die ID 0. Um sicher zu gehen hilft ein einfaches …
termux-camera-info
..., etwas übersichtlicher wird es mittels:
termux-camera-info | grep id
Die dann mit aufgeführten Auflösungen stellen schnell klar, welche Kamera zu welcher ID gehört. Die wichtigste Erkenntnis sollte sein: Im Grunde geht es hier genauso zu wie in jedem Linux-Terminal, nur dass Termux:API eben noch supereinfachen Zugriff auf die Hardware spendiert – tendenziell deutlich einfacher als dies beispielsweise bei einem regulären Linux-Desktop mit Webcam der Fall wäre.
Ein Tipp noch zum Testen: Termux funktioniert wunderbar in den virtuellen Android-Geräten von Android Studio – und bei der vielen Tipperei ist das eine deutliche Erleichterung. Zudem liefern die virtuellen Geräte auch Dummy-Daten von den Hardware-Schnittstellen, also zum Beispiel gefakte Ergebnisse eines WiFi-Scans mittels …
termux-wifi-scaninfo
… oder vorgefertigte Bilder über den Befehl:
termux-camera-photo
(ID:46264018)