Accensione del dispositivo Android con rilevatore di movimento (dispositivo esterno?)


10

Problema

Sto cercando un rilevatore di movimento che può essere configurato per riattivare un tablet Android (4.3) con root e accendere lo schermo quando qualcuno lo attraversa in un raggio di forse 2-3m.

idee

Sono decisamente disposto a ottenere un dispositivo esterno per questo e ad investire una quantità (ragionevole) di denaro, dovrebbe essere solo uno che posso in qualche modo connettermi al tablet.

Esistono forse rilevatori di prossimità nel campo dell'automazione domestica con una discreta qualità di rilevamento (buon angolo e distanza configurabile) in grado di inviare notifiche push Android? Sono in grado di scrivere del codice da zero, se necessario, ma sono molto all'oscuro e inesperto nel campo dell'hardware, quindi non saprei come tenere un saldatore, per esempio. ;)

sfondo

L'idea qui è quella di trasformare un vecchio tablet in una sorta di schermo del cruscotto fisso, quindi non sono particolarmente preoccupato per l'usura della batteria (è ormai fuori uso e da ora in poi verrà utilizzato con il cavo di alimentazione collegato fino a quando non è collegato muore) o uso intenso (a meno che non stiamo parlando del 100% di CPU 24/7, che probabilmente lo ucciderebbe in pochi giorni).

Ricerca precedente

Ho studiato un po 'se ciò potesse essere fatto con i sensori esistenti nel dispositivo e credo che ciò non sia possibile.

Il problema con l'uso del sensore di prossimità è che in realtà restituisce solo se qualcosa (supposto di essere l'orecchio durante una chiamata) è proprio accanto ad esso (a pochi centimetri di distanza). Ma sto cercando qualcosa nell'area di 2-3m.

L'altra idea sarebbe la fotocamera frontale, ma il problema sembra essere che a) la fotocamera in molti dispositivi si spenga automaticamente quando lo schermo è spento eb) solo le app in primo piano possono accedere alla fotocamera, ma voglio che il tablet mostra un'altra app al rilevamento.

Ho dato una rapida occhiata al risveglio dello schermo in risposta alle notifiche push e questo non sembra troppo difficile usando l' API di PowerManager . Non sono sicuro della velocità con cui il dispositivo risponderà a una spinta durante il sonno profondo, ma questo è un problema secondario.


Perché non utilizzare Bluetooth o NFC utilizzando uno script personalizzato? Ho visto un simile concetto di prova altrove, usando il bluetooth su PC e un dispositivo bluetooth portato al collo, lascia la scrivania del PC e il PC si blocca, arriva di nuovo in prossimità del PC, il PC si sblocca da solo.
t0mm13b,

@ t0mm13b Non voglio davvero indossare nulla. Questo è inteso come una configurazione permanente e non voglio indossare un dispositivo BT per il resto della mia vita. ;) NFC significherebbe che questo non è più a mani libere, cosa che preferirei anche che fosse. Ma continua a venire, è il tipo di idee creative che speravo. :)
hheimbuerger,

Nelle app è presente il tipo di "automazione domestica" e di controllo degli allarmi di app e hardware. Potrebbe essere un modo per ottenere un rivelatore umano a infrarossi che invia informazioni al dispositivo.
Psycogeek

@Psycogeek Sì, sei un sensore di movimento decente nel campo della "domotica"?
hheimbuerger

Non ne conosco uno specifico.
Psycogeek

Risposte:


6

Solo per farti sapere che ne ho un po 'con una semplice soluzione che combina un'app dell'app store chiamata Motion Detector di jastrzab: https://play.google.com/store/apps/details?id=org.motion.detector Quindi installa un plug-in chiamato Turn Screen: https://play.google.com/store/apps/details?id=org.jastrzab.plugin.screen

  1. Installa entrambe le app.
  2. Apri l'app Motion Detector e attiva "Invia" nella parte inferiore delle impostazioni. Fai clic su Rilevatore di movimento (in alto), quindi scorri verso il basso fino a "videocamera" e seleziona "anteriore".
  3. Apri l'app Turn Screen. fai clic sull'unico pulsante per renderlo attivo.
  4. Apri le impostazioni di Android, disattiva la schermata di blocco o seleziona "nessuna".
  5. Modificare le impostazioni di sospensione in timeout nel tempo desiderato.
  6. Disattiva Daydream.
  7. Apri l'app (o la schermata iniziale) che desideri visualizzare sullo schermo quando il tablet si sveglia e sei pronto! Attendi che lo schermo vada a dormire e passi vicino o saluti la fotocamera e si sveglierà.

Funziona alla grande durante il giorno o con le luci accese. Attualmente sto lavorando a un sensore di movimento PIR esterno che consentirà al tablet di svegliarsi al buio. Il design semplice finora utilizza solo un sensore PIR economico e una piccola luce a led montata sotto la fotocamera. Quando cammino vicino al PIR, si accende la luce a LED che consente alla telecamera di vedere, che attiva il movimento. Spero di capire come eliminare il LED ed eseguire il PIR direttamente nel tablet usando il jack per cuffie o USB sul tablet. Suggerimenti accolti.


Oh, e non dimenticare di accendere il rilevatore di movimento facendo clic sul cerchio blu nella parte superiore della pagina principale dell'app (accanto a "Rilevatore di movimento"). Divertiti
Dallas Partin,

Per me ha funzionato alla grande, grazie! Usando Android 4.4 kitkat
Rusty Divine,

Il link che hai fornito a Google Drive è interrotto. :(
Whit

5

Come menzionato da Dallas Partin qui , c'è un'app gratuita chiamata Motion Detector . Lo sto usando da un po 'e posso dirti che funzionerà con altre app in primo piano e con lo schermo bloccato. Questo rileverà il movimento utilizzando la fotocamera integrata, quindi è gratuito. Inoltre, non è necessario eseguire il root del dispositivo per questo.

Hai detto che non sapevi come saldare, ma esiste un modo molto semplice per creare il tuo sensore esterno per questo. Di due metodi di cui sono a conoscenza, ne ho citato uno di seguito:

Metodo n. 1. Utilizzando la fotocamera integrata

  1. Scarica Motion Detector .

  2. Scarica Tasker .

  3. Scarica AutoStart

  4. Avvia l' app Tasker e tocca i tre punti nell'angolo in alto a destra.

  5. Tocca PreferenzeUI (in alto), deseleziona Modalità Principiante .

  6. Esci da quello e tocca la scheda Vars in alto.

  7. Tocca +e denominalo % DISPLAYSTATE .

  8. Vai alla scheda Profili e tocca +→ seleziona EventoVisualizzaVisualizza attivo .

  9. Toccare il Backtasto / pulsante. Tocca Nuova attività , chiamala Display On.

  10. Toccare +VariabiliSet di variabili . Tocca l'icona della matita accanto a Nome .

  11. Tocca % DISPLAYSTATE e dove dice A , fallo 1.

  12. Ripetere il "punto 11" salvo che il cambiamento di tutto per Display Off e il cambiamento in cui abbiamo messo 1a 0.

  13. Vai alla scheda Scene in alto.

  14. Tocca +e dai un nome a qualcosa.

  15. Tenere premuto e trascinare sulla linea tratteggiata e renderlo delle dimensioni dello schermo.

  16. Tocca l'icona a forma di ingranaggio nell'angolo in alto a sinistra per tornare indietro.

  17. Tocca su Profili e creane uno nuovo usando il +pulsante.

  18. Toccare EventoSistemaIntento ricevuto .

  19. Puoi ignorare tutto tranne dove dice Azione . Qui devi inserire org.jastrzab.move.ACTION_GLOBAL_BROADCAST(i tappi sono importanti). Se questo non funziona per te, prova invece quanto segue org.motion.detector.ACTION_GLOBAL_BROADCAST.

  20. Tocca l'icona a forma di ingranaggio (indietro) nell'angolo in alto a sinistra. Apparirà con un menu.

  21. Tocca Nuova attività e assegnale un nome.

  22. All'interno di quell'attività, tocca di +nuovo e premi ScenaMostra scena .

  23. Dove dice Nome , tocca l'icona della lente di ingrandimento (non la matita) e tocca il nome della tua scena .

  24. Ora dove dice Display As , "Activity, Full Display, No Bar".

  25. Scorri verso il basso e dirà se . Tocca l'icona della matita e seleziona % DISPLAYSTATE .

  26. Tocca il pulsante nel mezzo e modificalo in Uguali. Nella casella a destra, digitare 0.

  27. Tocca +e fai AttivitàAttendi .

  28. Cambia MS in un posto tra 25 e 100.

  29. Toccare +ScenaDistruggi scena e premere l'icona della lente di ingrandimento su Nome . Seleziona la tua scena.

  30. Ora torna alla schermata principale dell'app Tasker .

  31. Accedi all'app Motion Detector e assicurati che sia disattivata. In caso contrario, tocca il cerchio blu.

  32. Vai in fondo e dove dice Invia , assicurati che sia attivo .

  33. Torna all'inizio e tocca di nuovo il cerchio blu per attivarlo.

  34. Apri Avvio automatico e assicurati che sia acceso .

  35. Tocca AggiungiMostra tutte le applicazioniRilevatore di movimento .

  36. Seleziona "vai alla schermata principale dopo l'avvio automatico" e cambia "Ritardo avvio" in 5.

Questo ha funzionato perfettamente per me!

Inoltre, tieni presente che in Motion Detector ci sono impostazioni che puoi modificare quando Motion Detector è disattivato . Uno dei più importanti è la fotocamera. In caso di problemi, assicurarsi che la fotocamera sia impostata su Front .

Hai detto che volevi un sensore esterno in grado di rilevare la distanza entro 2-3 cm, ma se ti accontenti di una soluzione di rilevamento più lontana, è molto affidabile e relativamente facile da installare! Ma se hai ancora il cuore impostato su un sensore esterno, sarei più che felice di darti anche alcune istruzioni!

Buona fortuna e spero che questo ti aiuti!


Grazie per la tua risposta, alla fine ci proverò! (Ma al momento non ho tempo per questo progetto, sfortunatamente.) Credo di aver letto che il funzionamento della fotocamera in background è specifico del dispositivo, ma vedrò se il mio dispositivo è in grado di farlo.
hheimbuerger,

Nota che non ho detto che volevo un sensore che rileva il movimento entro "2-3 cm", ma piuttosto ho detto "2-3 m", cioè quando una persona passa attraverso la stanza in cui si trova il dispositivo.
hheimbuerger

nota che non ho detto che volevo un sensore che rilevi il movimento entro "2-3 cm", ma piuttosto ho detto "2-3 m" Ok, stavo pensando che sembrava un po 'vicino :) Ho letto che la maggior parte dei dispositivi lavorare con la fotocamera in background, ma sì, ciò significa che non tutto lo farà. Se non funziona sul tuo dispositivo specifico e desideri comunque una soluzione, creare un sensore esterno non è così difficile da fare per meno di $ 10. Tuttavia, questo metodo è molto più semplice e configurabile. Buona fortuna con questo ogni volta che hai tempo di lavorarci!
Daniel Ford,

AGGIORNAMENTO: il pacchetto intent è stato rinominato in org.motion.detector.ACTION_GLOBAL_BROADCAST. Vedi la documentazione qui: programy.jastrzab.com/… e la discussione qui: reddit.com/r/tasker/comments/27bvf8/help_motion_detector_app/… Quanto sopra funziona ancora; basta cambiare il nome del pacchetto con quello nuovo in questo commento.
André Christoffer Andersen,

@ AndréChristofferAndersen Buono a sapersi! Grazie per averlo sottolineato; Lo aggiungerò alla risposta per evitare confusione.
Daniel Ford,

1

Non so se ti va bene, ma che dire di una spina di alimentazione con un sensore di movimento? Quando rileva il movimento, il tablet riceverà l'alimentazione e lo schermo si accenderà. Inoltre con Tasker puoi configurare molte più cose da fare quando rileva un movimento.


1

Odio dirlo ragazzi, ma tutto ciò che ho fatto è stato collegare il mio feed dal mio PIR nel soffitto (che già controlla i led sotto la doccia) al mio androide. Quando qualcuno entra negli interruttori di alimentazione del telefono e Bob è tuo zio.


Utilizzo dello schermo del dispositivo acceso quando la funzione di accensione / spegnimento. Bello.
cde

1

Ho cercato un modo per avere lo schermo del tablet quando mi avvicinavo al tablet che è montato sul muro per monitorare la mia casa. Proprio come il termostato Nest. Di recente ho acquistato la scheda di sistema di allarme Konnected e il modulo wifi da Nate Clark. Mi ha suggerito di utilizzare www.ozerov.de/fully-kiosk-browser/ C'è una piccola tassa di licenza. Funziona bene per lo scopo previsto. Sto usando Actiontiles integrato con i miei Smartthings. Il mio tablet è montato a parete con alimentatore continuo.

           Nate Clark <nate@konnected.io>

0

Potresti voler dare un'occhiata a Wimoto . Sono sensori bluetooth piccoli ed economici, disponibili in diversi gusti (temperatura, rilevamento del movimento, rilevamento di liquidi, ecc.). Dicono che è in arrivo un'app per Android e che nel prossimo futuro verrà rilasciato un SDK.

Inoltre, se vuoi qualcosa di più semplice (e il tuo tablet ha una fotocamera frontale) potresti semplicemente usare un'app. Ad esempio (subito dopo una rapida ricerca, quindi non l'ho usato) Camera Trigger .

Spero che sia di aiuto.


Wimoto sembra il tipo di dispositivi a cui stavo pensando, ma non sono riuscito a trovare un sensore di movimento. Ne hanno uno?
hheimbuerger

Camera Trigger presenta gli stessi problemi sopra menzionati, non funziona con lo schermo spento o con un'altra app in primo piano.
hheimbuerger

Sì, lo chiamano Sentinella Wimoto. Ho anche incontrato Twine che è anche un micro sensore con un paio di funzioni
Hrafn

Hai ragione. Mi sono confuso perché su Amazon è (erroneamente, suppongo) elencato come "Bluetooth Smart Water Sensor". Sembra buono, ma a quanto pare ci vorranno ancora alcuni mesi prima di poterne ottenere uno.
hheimbuerger

0

L'unico sensore di movimento accessibile e ragionevolmente accessibile che ho trovato è Belkin WeMo Motion .

Ian McCracken ha creato un SDK non ufficiale per il WeMo chiamato Ouimeaux ( docs , PyPi ).

Il mio piano attuale è quello di scrivere una piccola applicazione in esecuzione su un Raspberry Pi che utilizza Ouimeaux per rispondere a un segnale di WeMo Motion e inviare una notifica push al dispositivo Android. E poi un'app Android ancora più semplice che risponde alla notifica push, sveglia il dispositivo e accende lo schermo. (Quest'ultimo potrebbe anche essere fattibile con Tasker invece.)

Come secondo passo, le parti rilevanti di Ouimeaux potrebbero essere riscritte in Java e quindi sarebbe possibile connettersi direttamente dall'app a WeMo, rendendo superfluo il Raspberry Pi.

Suggerimenti di miglioramento benvenuti, ovviamente. In particolare se si conosce un modo esistente per riattivare uno schermo Android da uno script Python / shell / altrimenti attivare la notifica push. Sembra troppo banale per richiedere di scrivere una nuova app.


Se si disabilita il blocco del dispositivo, è possibile creare una piccola applicazione che accetta l'input per l'azione e utilizza Java ProcessBuilder per eseguire un comando shell per un evento chiave, ad esempio 'shell input keyevent 26' (pulsante di accensione premuto), che dovrebbe in teoria lavoro. Attualmente sto eseguendo un comando shell dopo aver premuto un pulsante, per eseguire la nuova funzionalità 'screenrecord' in Android KitKat, in background per un'app che sto creando in modo da poter verificare che l'esecuzione dei comandi shell in questo modo funzioni.
Hrafn

@Hrafn Non ho capito bene: qual è l'intenzione dietro a farlo?
hheimbuerger

Stavi chiedendo possibili modi per svegliare lo schermo. Se riesci a ottenere un qualche tipo di input, puoi creare un processo Java (come parte di un programma Android in esecuzione in background) e fare in modo che un pulsante di accensione faccia clic sulla shell del dispositivo. Ciò dovrebbe, se il dispositivo è configurato per non bloccarsi, riattivare lo schermo.
Hrafn

@Hrafn Capisco, ma poi puoi semplicemente usare l'API di PowerManager a cui ho già collegato la domanda. Richiede solo circa quattro righe di codice. Anche se una possibilità sarebbe quella di mantenere il dispositivo collegato con un cavo e innescare il risveglio tramite adbqualcosa come Wakey Droid .
hheimbuerger

Sicuro. Ma per usare l'API di PowerManager devi gestire tu stesso lo stato di veglia (credo). Quindi se acquisisci un wakelock vorresti inviare un segnale di spegnimento dopo un certo tempo. Con la chiamata keyevent tramite una shell, non è necessario gestirla e si può semplicemente lasciare che il sistema gestisca tutto.
Hrafn,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.