Forum: Mikrocontroller und Digitale Elektronik IOs mit Android


von Philipp C. (philippc)


Lesenswert?

Hallo zusammen,

ich würde gerne die Standheizung unseres Autos besser fernbedienbar 
machen. Die Standheizung hat eine Fernbedienung, die ich dazu einfach 
ins Auto legen würde und die Taster entsprechend schalten.

Meine Frage ist nun, wie dies am einfachsten umzusetzen wäre.
Ich stelle mir dabei ein altes Android Handy vor, welches im Auto bleibt 
und über die 12V Steckdose im Kofferraum bei der Fahrt geladen wird.

Das Handy sollte dann permanent per WireGuard (VPN) mit Zuhause 
verbunden sein und idealerweise über MQTT mit dem Rest der Welt reden 
(Infrastruktur für WireGuard, MQTT usw vorhanden)

Wie bindet man am besten die Schnittstelle zur Hardware an?
Ich habe schon mal einen Arduino Nano clone am USB-C meines Handys 
betrieben (nur Terminal Software).
Ist das ein sinnvoller Weg? Oder doch lieber etwas Arduinomäßiges mit 
Bluetooth?

USB hätte den Charme gleich vom Handyakku versorgt zu werden.

Mit welcher Software geht man da ran? Steigt man da in Android 
Programmierung ein oder gibt es einen direkteren Pfad?

In kurz: Ich will einen Mikrocontroller an ein Android Handy anklemmen 
um diesen per MQTT zu steuern.

Vielen Dank für Vorschläge
Philipp

PS: Einfach ein ESP32 per WLAN und Tethering wird wohl zum einen viel 
Strom brauchen und zum anderen gibt das Android Handy den VPN Tunnel 
beim Tethern nicht durch.

von STK500-Besitzer (Gast)


Lesenswert?

Philipp C. schrieb:
> Steigt man da in Android
> Programmierung ein oder gibt es einen direkteren Pfad?

ersteres.
Oder du findest eine passende Software - die Suchmaschine deiner Wahl 
ist dein Freund.

von Sebastian (Gast)


Lesenswert?

Philipp C. schrieb:
> Mit welcher Software geht man da ran? Steigt man da in Android
> Programmierung ein oder gibt es einen direkteren Pfad?
> In kurz: Ich will einen Mikrocontroller an ein Android Handy anklemmen
> um diesen per MQTT zu steuern.

Eventuell ist Python auf termux eine Möglichkeit.

LG, Sebastian

von Roland P. (pram)


Lesenswert?

Sowas habe ich vor 20 Jahren mit einem alten Nokia gemacht: Die 
Standheizung wurde aktiviert, wenn man das Handy angerufen hat. Ein 
simpler Transistor + RC Glied hing am Audio-Out des Headset-Anschluß und 
triggerte die Heizung.

Nur bei meiner Handynummer war ein Klingelton hinterlegt, das war 
(damals) als Security für mich ausreichend.

Vielleicht kannst du die Idee aufgreifen. Kopfhöreranschluß oder auch 
Vibrationsmotor sind die am einfachsten (und Wahrscheinlich einzigsten) 
anzapfbaren (GP)IOs und möglicherweise für deine Zwecke ausreichend.

Ansonsten musst du wohl wirklich mit einem Mikrocontroller an die 
USB/Bluetooth/WLAN Schnittstelle ran und viel programmieren.

Android unterstützt auch HID Controller. z. B. USB Tastatur, bei der du 
die Num-Lock LED verwendest

Gruß Roland

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Roland P. schrieb:
> Android unterstützt auch HID Controller. z. B. USB Tastatur, bei der du
> die Num-Lock LED verwendest

Ist gar nicht nötig. Man kann sein Gerät mit eigenem "nativem" 
USB-Protokoll umsetzen und dann mit dem UsbManager aus der App drauf 
zugreifen:

https://developer.android.com/reference/android/hardware/usb/UsbManager

Braucht nur eine (einmalige) Bestätigung des Users für die Permission. 
Spart die Fummelei mit Serial Port o.ä. Über Control Transfers könnte 
man dann sehr einfach IOs ansteuern. Braucht natürlich ein USB-Host/OTG 
fähiges Android-Gerät.

Als Mikrocontroller dann einen mit USB-Peripherie nehmen wie z.B. 
STM32F103 oder ESP32S3. Wenn man die dazugehörige USB-Library nimmt muss 
man auch nicht allzu viel programmieren, insbesondere wenn man nur den 
Control Transfer braucht.

: Bearbeitet durch User
von Thomas (Gast)


Lesenswert?

Raspberry Pi mit GSM Modul ist einfacher. Da ist alles offen und es gibt 
Demos zu hauf.

von STK500-Besitzer (Gast)


Lesenswert?

Thomas schrieb:
> Raspberry Pi mit GSM Modul ist einfacher. Da ist alles offen und es gibt
> Demos zu hauf.

... und die Autobatterie nach 2 Tagen komplett leer.

von Stefan F. (Gast)


Lesenswert?

Das Problem bei Android ist, dass die Energiesparmaßnahmen der Geräte 
immer restriktiver werden. Bei meinem ersten Smartphone hatte ich das 
als App Entwickler noch voll unter keiner Kontrolle. Seit dem ist es 
schrittweise immer schwieriger geworden, App im Hintergrund oder ständig 
im Vordergrund laufen zu lassen.

Mein hält Apps mit Hintergrund Aktivität immer nach 3 Wochen ab - selbst 
wenn ich eingestellt habe, dass es sie in Ruhe lassen soll. Eine 
permanente Internet Verbindung geht auch nicht. Jede App, die auf einen 
Socket lauscht, schläft irgendwann ein. Jede App die regelmäßig Daten 
überträgt, tut es auch.

Ich habe nur eine einige App, die nie ausfällt: Die von unserer 
Müllabfuhr. Sie informiert mich zuverlässig, wann ich die Mülltonnen 
raus stellen muss. Vielleicht weil sie auf einem Timer basiert.

Auf jeden Fall ist das ein Knackpunkt, mit dem du dich auseinander 
setzen musst.

Lokale Kommunikation mit Elektronik funktioniert bei mir via WLAN am 
zuverlässigsten. So kam ich auf dieses Projekt: 
http://stefanfrings.de/wlan_io/index.html . Da ist der externe 
Mikrocontroller der Server (Listener) und das Smartphone verbindet sich 
bei Bedarf. Heute würde ich mal einen Rasberry Pi Pico W versuchen.

Unterschätze nicht die Stromaufnahme. Geräte die ständig Empfangsbereit 
sind, nehmen auch ständig Strom auf. Bei WLAN besonders viel. Eventuell 
ist es besser, einen Cloud Service oder Webhoster in Anspruch zu nehmen, 
so der Mikrocontroller bzw das Smartphone in regelmäßigen Intervallen 
Kommandos abholt. Dann muss es nicht ständig online sein.

Oder du machst es per SMS. Es ist relativ leicht, eine App so zu 
programmieren, dass sie auf den Empfang von SMS reagiert und deren 
Textinhalt auswertet. Nur kosten SMS leider in den meisten Verträgen 
etwa 10 Cent.

Ich hatte vor langer Zeit mal ein Projekt gesehen, wo jemand die 
Klinkenbuchse verwendet hat, um mit externer Elektronik zu 
kommunizieren. Sogar bidirektional. Leider entfällt auch diese 
Schnittstelle zunehmend.

von Thomas (Gast)


Lesenswert?

An SMS hätte ich auch gedacht. Bei entsprechender Programmierung sollte 
das doch an einer Powerbank ein paar Tage durchhalten, oder? Hat da 
jemand Erfahrung? Die Powerbank lädt dann am Zigarettenanzünder wenn die 
Karre läuft. Autobatterie geht also nie leer. Wenn der Wagen länger als 
x Tage steht ist halt nur die Heizung nicht mehr erreichbar.
SMS / Telefon Flat kostet mich bei Congstar 12€ inkl. 3GB Daten.
Problem wird eher die SIM für das GSM Modul sein. Gibt es das überhaupt 
noch kostenlos für reine Verfügbarkeit?

von Philipp C. (philippc)


Lesenswert?

Vielen Dank für die Infos hier!

Ich bin nun dabei mir anzusehen, wie es mit Kivy funktionieren könnte. 
Speziell über lange Zeit mal per MQTT zu kommunizieren werde ich mir mal 
ansehen. Wenn das regelmäßig abgeschossen wird, dann wäre es natürlich 
sehr unschön.

von Rainer Z. (netzbeschmutzer)


Lesenswert?

Thomas schrieb:
> SMS / Telefon Flat kostet mich bei Congstar 12€ inkl. 3GB Daten.

Gibt's seit vielen Jahren bei Penny/Ja! und NORMA für 8 Euro im 
Telekom-Netz. Selbstverständlich mit LTE und auch WLAN-Telefonieren 
geht.

von Stefan F. (Gast)


Lesenswert?

Thomas schrieb:
> Bei entsprechender Programmierung sollte
> das doch an einer Powerbank ein paar Tage durchhalten, oder? Hat da
> jemand Erfahrung? Die Powerbank lädt dann am Zigarettenanzünder wenn die
> Karre läuft.

Die meisten Powerbanken können nur durch Umstecken des Kabel abwechselnd 
laden und entladen. Als USV mit automatischer Umschaltung taugen nur 
wenige.

Thomas schrieb:
> Problem wird eher die SIM für das GSM Modul sein. Gibt es das überhaupt
> noch kostenlos für reine Verfügbarkeit?

Nein

von Philipp C. (philippc)


Lesenswert?

Ein kurzer Test mit einem ganz simplen Tool, welches einfach auf einem 
MQTT Topic lauscht und den Payload dann zurücksendet zeigt leider, dass 
bereits einige Minuten nach Abschalten des Displays Ruhe ist.

Probiert habe ich es mit einem Android 10 Handy.

Morgen mal schauen ob man mit einem Service weiterkommt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.