Android-Gerät mit Bewegungsmelder einschalten (externes Gerät?)

10

Problem

Ich suche nach einem Bewegungsmelder, der eingerichtet werden kann, um ein verwurzeltes Android (4.3) -Tablet zu aktivieren und den Bildschirm einzuschalten, wenn jemand in einem Radius von etwa 2-3 m daran vorbeikommt.

Ideen

Ich bin definitiv bereit, ein externes Gerät dafür zu besorgen und einen (angemessenen) Geldbetrag zu investieren. Es müsste nur eines sein, das ich irgendwie mit dem Tablet verbinden kann.

Gibt es möglicherweise Näherungsmelder aus dem Bereich der Hausautomation mit einer anständigen Erkennungsqualität (guter Winkel und konfigurierbarer Abstand), die Android-Push-Benachrichtigungen senden können? Ich kann bei Bedarf Code von Grund auf neu schreiben, bin aber im Hardwarebereich sehr ahnungslos und unerfahren, sodass ich beispielsweise nicht weiß, wie man einen Lötkolben hält. ;)

Hintergrund

Die Idee hier ist, ein altes Tablet in eine Art stationären Armaturenbrettbildschirm zu verwandeln, damit ich mir keine besonderen Sorgen über den Batterieverschleiß mache (es ist jetzt nicht mehr gültig und wird von nun an mit angeschlossenem Netzkabel verwendet, bis es funktioniert stirbt) oder intensive Nutzung (es sei denn, wir sprechen von 100% CPU 24/7, was es wahrscheinlich in ein paar Tagen töten würde).

Frühere Forschungen

Ich habe ein wenig untersucht, ob dies mit den vorhandenen Sensoren im Gerät möglich ist, und ich glaube, dass dies nicht möglich ist.

Das Problem bei der Verwendung des Näherungssensors besteht darin, dass er wirklich nur zurückgibt, ob sich etwas (vermutlich Ihr Ohr während eines Anrufs) direkt daneben befindet (einige Zentimeter entfernt). Aber ich suche etwas im 2-3m Bereich.

Die andere Idee wäre die nach vorne gerichtete Kamera, aber das Problem scheint zu sein, dass a) die Kamera in vielen Geräten automatisch ausgeschaltet wird, wenn der Bildschirm ausgeschaltet ist, und b) nur Vordergrund-Apps auf die Kamera zugreifen können, aber ich möchte, dass das Tablet dies tut Zeige eine andere App bei der Erkennung.

Ich habe kurz nach dem Aufwecken des Bildschirms als Reaktion auf Push-Benachrichtigungen gesucht, und das scheint mit der PowerManager-API nicht allzu schwierig zu sein . Ich bin mir nicht sicher, wie schnell das Gerät im Tiefschlaf auf einen Stoß reagieren würde, aber das ist ein sekundäres Problem.

hheimbuerger
quelle
Warum nicht Bluetooth oder NFC mit einem benutzerdefinierten Skript verwenden? Haben Sie einen ähnlichen Proof-of-Concept an anderer Stelle gesehen, bei dem Bluetooth auf dem PC verwendet wird und ein Bluetooth-Gerät um den Hals getragen wird, lassen Sie den PC-Schreibtisch und den PC blockiert, kommen Sie wieder in der Nähe des PCs an, der PC entsperrt sich selbst.
t0mm13b
@ t0mm13b Ich möchte eigentlich nichts tragen. Dies ist als permanente Einrichtung gedacht und ich möchte für den Rest meines Lebens kein BT-Gerät tragen. ;) NFC würde bedeuten, dass dies nicht mehr freihändig ist, was ich auch vorziehen würde. Aber lass sie kommen, das sind die kreativen Ideen, auf die ich gehofft habe. :)
Hheimbuerger
In Apps gibt es den Typ "Hausautomation" und Alarmsteuerung für Apps und Hardware. Auf diese Weise kann ein menschlicher Infrarotdetektor Informationen an das Gerät zurücksenden.
Psycogeek
@Psycogeek Ja, haben Sie einen anständigen Bewegungssensor aus dem Bereich "Hausautomation"?
Hheimbuerger
Ich kenne keinen bestimmten.
Psycogeek

Antworten:

6

Damit Sie wissen, dass ich eine einfache Lösung gefunden habe, kombiniert sie eine App aus dem App Store namens Motion Detector von jastrzab: https://play.google.com/store/apps/details?id=org.motion.detector Installieren Sie dann ein Plugin namens Turn Screen: https://play.google.com/store/apps/details?id=org.jastrzab.plugin.screen

  1. Installieren Sie beide Apps.
  2. Öffnen Sie die Motion Detector-App und aktivieren Sie "Senden" unten in den Einstellungen. Klicken Sie auf den Bewegungsmelder (oben) und scrollen Sie dann nach unten zu "Kamera" und wählen Sie "Vorderseite".
  3. Öffnen Sie die Turn Screen App. Klicken Sie auf die einzige Schaltfläche, um sie zu aktivieren.
  4. Öffnen Sie die Android-Einstellungen, schalten Sie den Sperrbildschirm aus oder wählen Sie "Keine".
  5. Ändern Sie die Schlafeinstellungen so, dass die gewünschte Zeit abgelaufen ist.
  6. Schalten Sie Daydream aus.
  7. Öffnen Sie die App (oder den Startbildschirm), die bzw. der auf dem Bildschirm angezeigt werden soll, wenn das Tablet aufwacht, und schon sind Sie fertig! Warten Sie, bis der Bildschirm eingeschlafen ist, und gehen Sie vorbei oder winken Sie Ihrer Kamera zu, um sie aufzuwecken.

Funktioniert tagsüber oder bei eingeschaltetem Licht. Ich arbeite derzeit an einem externen PIR-Bewegungssensor, mit dem das Tablet in der Dunkelheit aufwachen kann. Das bisher einfache Design verwendet nur einen billigen PIR-Sensor und ein kleines LED-Licht, das unter der Kamera angebracht ist. Wenn ich am PIR vorbeigehe, wird das LED-Licht ausgelöst, sodass die Kamera sehen kann, was eine Bewegung auslöst. In der Hoffnung herauszufinden, wie Sie die LED entfernen und den PIR über die Kopfhörerbuchse oder USB am Tablet direkt in das Tablet einführen können. Vorschläge sind willkommen.

Dallas Partin
quelle
Vergessen Sie nicht, den Bewegungsmelder einzuschalten, indem Sie auf den blauen Kreis oben auf der Hauptseite der App klicken (neben "Bewegungsmelder"). Genießen Sie
Dallas Partin
Das hat super für mich funktioniert, danke! Mit Android 4.4 Kitkat
Rusty Divine
Der Link, den Sie zu Google Drive bereitgestellt haben, ist fehlerhaft. :(
Whit
5

Wie von Dallas Partin hier erwähnt , gibt es eine kostenlose App namens Motion Detector . Ich benutze es schon eine Weile und kann Ihnen sagen, dass es mit anderen Apps im Vordergrund und bei gesperrtem Bildschirm funktioniert. Dadurch wird die Bewegung mit der eingebauten Kamera erkannt, sodass sie kostenlos ist. Außerdem müssen Sie Ihr Gerät dafür nicht rooten.

Sie sagten, Sie wüssten nicht, wie man lötet, aber es gibt eine sehr einfache Möglichkeit, Ihren eigenen externen Sensor dafür herzustellen. Von zwei mir bekannten Methoden habe ich unten eine erwähnt:

Methode 1. Mit eingebauter Kamera

  1. Laden Sie Motion Detector herunter .

  2. Laden Sie Tasker herunter .

  3. Laden Sie AutoStart herunter

  4. Starten Sie die Tasker- App und tippen Sie auf die drei Punkte in der oberen rechten Ecke.

  5. Tippen Sie EinstellungenUI (am oberen Rand), deaktivieren Sie Anfänger - Modus .

  6. Beenden Sie das und tippen Sie oben auf die Registerkarte Vars .

  7. Tippen Sie auf +und nennen Sie es % DISPLAYSTATE .

  8. Gehen Sie zur Registerkarte Profile und tippen Sie auf +EreignisAnzeigeAnzeige ein .

  9. Tippen Sie auf die BackTaste. Tippen Sie auf Neue Aufgabe und benennen Sie sie Display On.

  10. Tippen Sie auf +VariablenVariablensatz . Tippen Sie auf das Stiftsymbol neben Name .

  11. Tap % display und sagt , wo es zu , es machen 1.

  12. Wiederholen „Schritt 11“ , außer dass alles ändern zu Off anzeigen und ändern , wo wir setzen 1auf 0.

  13. Gehen Sie oben zur Registerkarte Szenen .

  14. Tippen Sie auf +und nennen Sie es etwas.

  15. Halten Sie die gestrichelte Linie gedrückt und ziehen Sie sie an die Größe Ihres Bildschirms an.

  16. Tippen Sie auf das Zahnradsymbol in der oberen linken Ecke, um zurückzukehren.

  17. Tippen Sie auf Profile und erstellen Sie mit der +Schaltfläche ein neues .

  18. Tippen Sie auf EreignisSystemEmpfangene Absicht .

  19. Sie können alles ignorieren, außer wo Aktion steht . Hier müssen Sie eingeben org.jastrzab.move.ACTION_GLOBAL_BROADCAST(Großbuchstaben sind wichtig). Wenn dies bei Ihnen nicht funktioniert, versuchen Sie stattdessen Folgendes org.motion.detector.ACTION_GLOBAL_BROADCAST.

  20. Tippen Sie auf das Zahnradsymbol (hinten) in der oberen linken Ecke. Es erscheint ein Menü.

  21. Tippen Sie auf Neue Aufgabe und benennen Sie sie.

  22. Tippen Sie innerhalb dieser Aufgabe +erneut auf und klicken Sie auf SzeneSzene anzeigen .

  23. Wenn dort Name steht , tippen Sie auf das Lupensymbol (nicht auf den Stift) und dann auf den Namen Ihrer Szene .

  24. Jetzt steht dort Anzeige als "Aktivität, Vollanzeige, kein Balken".

  25. Scrollen Sie nach unten und es wird angezeigt, ob . Tippen Sie auf das Stiftsymbol und wählen Sie % DISPLAYSTATE .

  26. Tippen Sie auf die Schaltfläche in der Mitte und ändern Sie sie in Gleich. Geben Sie im rechten Feld Folgendes ein 0.

  27. Tippen Sie auf +und führen Sie AufgabeWarten aus .

  28. Ändern Sie die MS auf 25 bis 100.

  29. Tippen +Szenezerstört Szene und schlug auf das Lupensymbol auf Namen . Wählen Sie Ihre Szene aus.

  30. Kehren Sie nun zum Hauptbildschirm der Tasker- App zurück.

  31. Rufen Sie die Motion Detector- App auf und stellen Sie sicher, dass sie deaktiviert ist. Wenn nicht, tippen Sie auf den blauen Kreis.

  32. Zum Ende und sagt , wo es sendet , stellen Sie sicher , dass es auf .

  33. Gehen Sie zurück nach oben und tippen Sie erneut auf den blauen Kreis, um ihn einzuschalten.

  34. Öffnen Sie den automatischen Start und stellen Sie sicher, dass Ein angezeigt wird .

  35. Tippen Sie auf HinzufügenAlle Anwendungen anzeigenBewegungsmelder .

  36. Aktivieren Sie "Nach dem automatischen Start zum Startbildschirm wechseln" und ändern Sie "Startverzögerung" in 5.

Das hat bei mir einwandfrei funktioniert!

Auch dies zur Kenntnis , dass in Bewegungsmelder gibt es Einstellungen , die Sie ändern können , wenn Bewegungsmelder ist ausgeschaltet . Eine der wichtigsten ist die Kamera. Wenn Sie Probleme haben, stellen Sie bitte sicher, dass die Kamera auf Front eingestellt ist .

Sie sagten, Sie wollten einen externen Sensor, der Entfernungen innerhalb von 2-3 cm erfassen kann, aber wenn Sie sich für eine weitergehende Erfassungslösung entscheiden, ist dies sehr zuverlässig und relativ einfach einzurichten! Aber wenn Sie immer noch Ihr Herz auf einen externen Sensor eingestellt haben, würde ich Ihnen auch gerne einige Anweisungen dazu geben!

Viel Glück und ich hoffe das hilft dir!

Daniel Ford
quelle
Vielen Dank für Ihre Antwort, ich werde es irgendwann versuchen! (Aber momentan habe ich leider keine Zeit für dieses Projekt.) Ich glaube, ich habe gelesen, dass es gerätespezifisch ist, ob die Kamera im Hintergrund funktioniert, aber ich werde sehen, ob mein Gerät dies kann.
Hheimbuerger
Beachten Sie, dass ich nicht gesagt habe, dass ich einen Sensor haben möchte, der Bewegungen innerhalb von "2-3 cm" erfasst, sondern "2-3 m", dh wenn eine Person durch den Raum geht, in dem sich das Gerät befindet.
hheimbuerger
Beachten Sie, dass ich nicht gesagt habe, dass ich einen Sensor haben möchte, der Bewegungen innerhalb von "2-3 cm" erfasst, sondern "2-3 m". Ok, ich dachte, das scheint ein wenig nahe zu sein :) Ich habe gelesen, dass die meisten Geräte dies tun werden arbeite mit der Kamera im Hintergrund, aber ja, das bedeutet, dass nicht alle werden. Wenn es auf Ihrem Gerät nicht funktioniert und Sie dennoch eine Lösung suchen, ist die Herstellung eines externen Sensors für weniger als 10 US-Dollar nicht so schwierig. Diese Methode ist jedoch viel einfacher und konfigurierbarer. Viel Glück damit, wann immer Sie Zeit haben, daran zu arbeiten!
Daniel Ford
UPDATE: Das Intent-Paket wurde in umbenannt org.motion.detector.ACTION_GLOBAL_BROADCAST. Siehe Dokumentation hier: programy.jastrzab.com/… und Diskussion hier: reddit.com/r/tasker/comments/27bvf8/help_motion_detector_app/… Das oben genannte funktioniert immer noch; Vertauschen Sie einfach den Paketnamen durch den neuen in diesem Kommentar.
André Christoffer Andersen
@ AndréChristofferAndersen Gut zu wissen! Vielen Dank, dass Sie darauf hingewiesen haben. Ich werde es der Antwort hinzufügen, um Verwirrung zu vermeiden.
Daniel Ford
1

Ich weiß nicht, ob das zu Ihnen passt, aber was ist mit einem Netzstecker mit Bewegungssensor? Wenn eine Bewegung erkannt wird, wird das Tablet mit Strom versorgt und der Bildschirm wird eingeschaltet. Außerdem können Sie mit Tasker viel mehr Dinge konfigurieren, die zu tun sind, wenn Bewegungen erkannt werden.

Jorge
quelle
1

Ich hasse es, es zu sagen, aber alles, was ich getan habe, war, meinen Feed von meinem PIR in der Decke (der bereits LEDs in der Dusche steuert) an meinen Android anzuhängen. Wenn jemand hereinkommt, schaltet sich das Telefon ein und Bob ist dein Onkel.

James Norman
quelle
Verwenden des Bildschirms des Geräts beim Ein- und Ausschalten. Nett.
CD
1

Ich habe nach einer Möglichkeit gesucht, den Tablet-Bildschirm einzuschalten, wenn ich mich dem Tablet nähere, das an der Wand montiert ist, um mein Zuhause zu überwachen. Genau wie der Nest-Thermostat. Ich habe kürzlich die Konnected-Alarmsystemplatine und das WLAN-Modul von Nate Clark gekauft. Er schlug mir vor, www.ozerov.de/fully-kiosk-browser/ zu verwenden . Es gibt eine geringe Lizenzgebühr. Es funktioniert gut für den beabsichtigten Zweck. Ich verwende Actiontiles, die in meine Smartthings integriert sind. Mein Tablet ist an der Wand mit kontinuierlicher Stromversorgung montiert.

           Nate Clark <[email protected]>
Atilyg
quelle
0

Vielleicht möchten Sie sich Wimoto ansehen . Es handelt sich um kleine und billige Bluetooth-Sensoren, die in verschiedenen Varianten erhältlich sind (Temperatur, Bewegungserkennung, Flüssigkeitserkennung usw.). Sie sagen, dass eine Android-App eingeht und dass in naher Zukunft ein SDK dafür veröffentlicht wird.

Wenn Sie jedoch etwas Einfacheres möchten (und Ihr Tablet über eine nach vorne gerichtete Kamera verfügt), können Sie einfach eine App verwenden. Zum Beispiel (kurz nach einer Schnellsuche, also nicht verwendet) Kamera-Trigger .

Hoffe das hilft.

Hrafn
quelle
Wimoto klingt wie die Art von Geräten, an die ich gedacht habe, aber ich konnte keinen Bewegungssensor finden. Haben sie einen?
Hheimbuerger
Der Kamera-Trigger hat die gleichen Probleme wie oben erwähnt. Er funktioniert nicht bei ausgeschaltetem Bildschirm oder wenn eine andere App im Vordergrund steht.
Hheimbuerger
Ja, sie nennen es den Wimoto-Wachposten. Ich bin auch auf Twine gestoßen, das auch ein Mikrosensor mit einigen Funktionen ist
Hrafn
Du hast recht. Ich war verwirrt, weil es bei Amazon (fälschlicherweise, denke ich) als "Bluetooth Smart Water Sensor" aufgeführt ist. Sieht gut aus, aber anscheinend wird es noch ein paar Monate dauern, bis wir einen bekommen.
Hheimbuerger
0

Der einzige erschwingliche und einigermaßen zugängliche Bewegungssensor, den ich finden konnte, ist der Belkin WeMo Motion .

Ian McCracken erstellte ein inoffizielles SDK für das WeMo namens Ouimeaux ( docs , PyPi ).

Mein aktueller Plan ist es, eine winzige Anwendung zu schreiben, die auf einem Raspberry Pi ausgeführt wird und Ouimeaux verwendet, um auf ein Signal von WeMo Motion zu reagieren und eine Push-Benachrichtigung an das Android-Gerät zu senden. Und dann eine noch einfachere Android-App, die auf die Push-Benachrichtigung reagiert, das Gerät aufweckt und den Bildschirm einschaltet. (Letzteres kann stattdessen auch mit Tasker durchgeführt werden.)

In einem zweiten Schritt könnten die relevanten Teile von Ouimeaux in Java umgeschrieben werden, und dann wäre es möglich, eine direkte Verbindung von der App zum WeMo herzustellen, wodurch der Raspberry Pi überflüssig wird.

Verbesserungsvorschläge sind natürlich willkommen. Insbesondere, wenn Sie wissen, wie Sie einen Android-Bildschirm über ein Python- / Shell-Skript aktivieren oder auf andere Weise eine Push-Benachrichtigung auslösen können. Das klingt zu trivial, um eine neue App schreiben zu müssen.

hheimbuerger
quelle
Wenn Sie die Gerätesperre deaktivieren, können Sie eine kleine Anwendung erstellen, die Eingaben zum Handeln übernimmt und mit einem Java ProcessBuilder einen Shell-Befehl für ein Schlüsselereignis ausführt, z in der theoretischen Arbeit. Ich führe derzeit einen Shell-Befehl nach einem Tastendruck aus, um die neue Funktion "Bildschirmaufzeichnung" in Android KitKat im Hintergrund für eine von mir erstellte App auszuführen, damit ich überprüfen kann, ob das Ausführen von Shell-Befehlen auf diese Weise funktioniert.
Hrafn
@Hrafn Ich habe nicht ganz verstanden: Was ist die Absicht dahinter?
Hheimbuerger
Sie haben nach möglichen Möglichkeiten gefragt, den Bildschirm aufzuwecken. Wenn Sie eine Eingabe erhalten können, können Sie einen Java-Prozess erstellen (als Teil eines Android-Programms, das im Hintergrund ausgeführt wird) und einen Ein- / Ausschalter ausführen, indem Sie in die Shell des Geräts klicken. Wenn das Gerät so konfiguriert ist, dass es nicht sperrt, sollte der Bildschirm aktiviert werden.
Hrafn
@Hrafn Ich verstehe, aber dann können Sie einfach die PowerManager-API verwenden, auf die ich in der Frage bereits verlinkt habe. Es sind nur etwa vier Codezeilen erforderlich. Obwohl eine Möglichkeit wäre, das Gerät mit einem Kabel verbunden zu halten und das Aufwachen einfach adbmit etwas wie Wakey Droid auszulösen .
Hheimbuerger
Sicher. Aber um die PowerManager-API zu verwenden, müssen Sie den Weckstatus selbst verwalten (glaube ich). Wenn Sie also ein Wakelock erwerben, möchten Sie nach einer bestimmten Zeit ein Abschaltsignal senden. Mit dem Aufruf von keyevent über eine Shell müssen Sie das nicht verwalten und können das System einfach alles erledigen lassen.
Hrafn