Problema
Estoy buscando un detector de movimiento que se pueda configurar para activar una tableta Android rooteada (4.3) y encender la pantalla cuando alguien pase por ella en un radio de unos 2-3 m.
Ideas
Definitivamente estoy dispuesto a obtener un dispositivo externo para esto e invertir una cantidad (razonable) de dinero, solo tendría que ser uno que de alguna manera pueda conectar a la tableta.
¿Hay quizás detectores de proximidad del campo de la automatización del hogar con una calidad de detección decente (buen ángulo y distancia configurable) que puedan enviar notificaciones push de Android? Si es necesario, puedo escribir algo de código desde cero, pero no tengo ni idea ni experiencia en el campo del hardware, por lo que no sabría cómo sostener un soldador, por ejemplo. ;)
Antecedentes
La idea aquí es transformar una tableta vieja en algún tipo de pantalla de tablero estacionaria, por lo que no estoy particularmente preocupado por el desgaste de la batería (es el final de su vida útil y de ahora en adelante se usará con el cable de alimentación enchufado hasta que se muere) o uso intenso (a menos que estemos hablando de 100% de CPU 24/7, lo que probablemente lo mataría en unos días).
Investigación previa
Investigué un poco si esto podría hacerse con los sensores existentes en el dispositivo y creo que eso no es posible.
El problema con el uso del sensor de proximidad es que realmente solo devuelve si algo (se supone que es su oído durante una llamada) está justo al lado (a unos pocos centímetros de distancia). Pero estoy buscando algo en el área de 2-3m.
La otra idea sería la cámara frontal, pero el problema parece ser que a) la cámara en muchos dispositivos se apaga automáticamente cuando la pantalla está apagada yb) solo las aplicaciones en primer plano pueden acceder a la cámara, pero quiero que la tableta muestra otra aplicación en detección.
Eché un vistazo rápido al despertar la pantalla en respuesta a las notificaciones automáticas y eso no parece demasiado difícil con la API de PowerManager . No estoy seguro de qué tan rápido respondería el dispositivo a un impulso cuando duerme profundamente, pero ese es un problema secundario.
Respuestas:
Solo para hacerle saber que tengo algo con una solución simple, combina una aplicación de la tienda de aplicaciones llamada Detector de movimiento de jastrzab: https://play.google.com/store/apps/details?id=org.motion.detector Luego instale un complemento llamado Turn Screen: https://play.google.com/store/apps/details?id=org.jastrzab.plugin.screen
Funciona muy bien durante el día o con las luces encendidas. Actualmente estoy trabajando en un sensor de movimiento PIR externo que permitirá que la tableta se despierte en la oscuridad. El diseño simple hasta ahora solo utiliza un sensor PIR barato y una pequeña luz led montada debajo de la cámara. Cuando camino por el PIR activa la luz LED que permite que la cámara vea, lo que activa el movimiento. Con la esperanza de descubrir cómo eliminar el LED y simplemente ejecutar el PIR directamente en la tableta usando el conector para auriculares o USB en la tableta. Sugerencias bienvenidas.
fuente
Como mencionó Dallas Partin aquí , hay una aplicación gratuita llamada Detector de movimiento . Lo he estado usando durante un tiempo y puedo decirle que funcionará con otras aplicaciones en primer plano y con la pantalla bloqueada. Esto detectará movimiento usando la cámara incorporada, por lo que es gratis. Además, no tiene que rootear su dispositivo para esto.
Dijiste que no sabías cómo soldar, pero hay una manera muy simple de hacer tu propio sensor externo para esto. De los dos métodos que conozco, he mencionado uno a continuación:
Método 1. Usando la cámara incorporada
Descargar Motion Detector .
Descargar Tasker .
Descargar AutoStart
Inicie la aplicación Tasker y toque los tres puntos en la esquina superior derecha.
Toque Preferencias → IU (en la parte superior), desmarque Modo principiante .
Salga de eso y toque la pestaña Vars en la parte superior.
Toque
+
y asígnele el nombre % DISPLAYSTATE .Vaya a la pestaña Perfiles y toque
+
→ seleccione Evento → Pantalla → Pantalla activada .Toque la Backtecla / botón. Toque Nueva tarea , asígnele un nombre
Display On
.Toque
+
→ Variables → Conjunto de variables . Toca el ícono de lápiz junto a Nombre .Toque % DISPLAYSTATE y donde dice A , hágalo
1
.Repetir "paso 11", excepto que el cambio todo para Display Off y el cambio donde ponemos
1
a0
.Vaya a la pestaña Escenas en la parte superior.
Toque
+
y asígnele un nombre.Mantenga presionada y arrastre la línea punteada para que sea del tamaño de su pantalla.
Toca el ícono de ajustes en la esquina superior izquierda para regresar.
Toque Perfiles y cree uno nuevo utilizando el
+
botón.Toque Evento → Sistema → Intención recibida .
Puedes ignorar todo excepto donde dice Acción . Aquí debe ingresar
org.jastrzab.move.ACTION_GLOBAL_BROADCAST
(las mayúsculas son importantes). Si esto no funciona, intente lo siguienteorg.motion.detector.ACTION_GLOBAL_BROADCAST
.Toca el ícono de ajustes (atrás) en la esquina superior izquierda. Aparecerá con un menú.
Toque Nueva tarea y asígnele un nombre.
Dentro de esa tarea, toque
+
nuevamente y presione Escena → Mostrar escena .Donde dice Nombre , toca el ícono de la lupa (no el lápiz) y toca el nombre de tu escena .
Ahora donde dice Mostrar como , "Actividad, Pantalla completa, Sin barra".
Desplácese hasta la parte inferior y dirá si . Toque el ícono de lápiz y seleccione % DISPLAYSTATE .
Toque el botón en el medio y cámbielo a Igual. En el cuadro de la derecha, escriba
0
.Toque
+
y haga Tarea → Esperar .Cambie MS a algún lugar entre 25 y 100.
Toque
+
→ Escena → Destruir escena y presione el icono de la lupa en Nombre . Selecciona tu escena.Ahora regrese a la pantalla principal de la aplicación Tasker .
Vaya a la aplicación Detector de movimiento y asegúrese de que esté apagada. Si no, toca el círculo azul.
Vaya al final y donde dice Enviar , asegúrese de que esté Encendido .
Vuelve a la parte superior y toca el círculo azul nuevamente para que se encienda.
Abra Auto Start y asegúrese de que dice On .
Toque Agregar → Mostrar todas las aplicaciones → Detector de movimiento .
Marque "ir a la pantalla de inicio después del inicio automático" y cambie "retraso de inicio" a
5
.¡Esto ha funcionado perfectamente para mí!
Además, tenga en cuenta que en el Detector de movimiento hay configuraciones que puede cambiar cuando el Detector de movimiento está apagado . Uno de los más importantes es la cámara. Si tiene problemas, asegúrese de que la Cámara esté configurada en Frente .
Dijiste que querías un sensor externo que pudiera detectar la distancia dentro de los 2-3 cm, pero si te conformas con una solución de detección más lejana, ¡es muy confiable y relativamente fácil de configurar! Pero si todavía tienes tu corazón puesto en un sensor externo, ¡me encantaría darte algunas instrucciones para eso también!
¡Buena suerte y espero que esto te ayude!
fuente
org.motion.detector.ACTION_GLOBAL_BROADCAST
. Ver documentación aquí: programy.jastrzab.com/… y discusión aquí: reddit.com/r/tasker/comments/27bvf8/help_motion_detector_app/… Lo anterior aún funciona; simplemente cambie el nombre del paquete con el nuevo en este comentario.No sé si esto le conviene, pero ¿qué pasa con un enchufe con un sensor de movimiento? Cuando detecta movimiento, la tableta se conectará y la pantalla se encenderá. Además, con Tasker puedes configurar muchas más cosas para hacer cuando detecta movimiento.
fuente
Odio decirlo, chicos, pero todo lo que hice fue conectar mi alimentación desde mi PIR en el techo (que ya controla los leds en la ducha) a mi Android. Cuando alguien entra, el teléfono se enciende y Bob es tu tío.
fuente
He estado buscando una manera de tener la pantalla de la tableta encendida cuando me acerco a la tableta que está montada en la pared para monitorear mi hogar. Al igual que el termostato Nest. Recientemente compré la placa del sistema de alarma Konnected y el módulo wifi de Nate Clark. Me sugirió que usara www.ozerov.de/fully-kiosk-browser/ Hay una pequeña tarifa de licencia. Funciona bien para el propósito previsto. Estoy usando Actiontiles integrados con mis Smartthings. Mi tableta está montada en la pared con fuente de alimentación continua.
fuente
Es posible que desee ver Wimoto . Son sensores bluetooth pequeños y baratos que vienen en algunos sabores (temperatura, detección de movimiento, detección de líquidos, etc.). Dicen que hay una aplicación de Android entrante, y que habrá un SDK lanzado en un futuro cercano para ello.
Por otra parte, si desea algo más simple (y su tableta tiene una cámara frontal), simplemente puede usar una aplicación. Por ejemplo (justo después de una búsqueda rápida, así que no lo he usado) Camera Trigger .
Espero que esto ayude.
fuente
El único sensor de movimiento asequible y razonablemente accesible que pude encontrar es el Belkin WeMo Motion .
Ian McCracken creó un SDK no oficial para WeMo llamado Ouimeaux ( docs , PyPi ).
Mi plan actual es escribir una pequeña aplicación que se ejecute en una Raspberry Pi que use Ouimeaux para responder a una señal de WeMo Motion y enviar una notificación push al dispositivo Android. Y luego una aplicación de Android aún más simple que responde a la notificación de inserción y activa el dispositivo y enciende la pantalla. (Este último también podría ser factible con Tasker).
Como segundo paso, las partes relevantes de Ouimeaux podrían reescribirse en Java y luego sería posible conectarse directamente desde la aplicación al WeMo, haciendo que la Raspberry Pi sea superflua.
Sugerencias de mejora bienvenidas, por supuesto. En particular, si conoce una forma existente de reactivar una pantalla de Android desde un script Python / shell / de lo contrario desencadenar una notificación push. Eso suena demasiado trivial para requerir escribir una nueva aplicación.
fuente
adb
con algo como Wakey Droid .