viernes, 30 de octubre de 2020

SensaMe: Esta aplicación puede salvarte la vida


QUÉ ES SENSAME

SensaMe es una aplicación gratuita que 'siente' los movimientos de tu teléfono.

La mayoría de smartphones incorporan sensores que permiten medir entre otras cosas la posición, rotación, ángulo de giro y aceleración del dispositivo, y se utilizan en aplicaciones como realidad aumentada o juegos. SensaMe utiliza esta información para determinar si tu dispositivo ha recibido un fuerte impacto y en caso de que así sea, envía por SMS un mensaje con tú ubicación a las personas que hubieras indicado.


DESCARGA DE LA APLICACIÓN

Puedes descargarte la aplicación desde Play Store siguiendo el siguiente enlace: https://play.google.com/store/apps/details?id=com.imahgin.sensame

REQUISITOS

Estos son los requisitos mínimos que tiene la aplicación:
  • Sistema operativo Android con versión 4.0 -Icecream- o superior.
  • Conectividad GSM para envío-recepción de SMS.
  • Sensor aceleración: La mayoría de dispositivos incorporan este sensor.

LIMITACIONES

Debido a las limitaciones y características propias de los sensores de los dispositivos, no se puede garantizar el 100% de efectividad en la detección de un posible impacto. También pueden producirse falsas alarmas, aunque la aplicación dispone de filtros y opciones de configuración que ayuda a evitarlas.
Podemos modificar diferentes opciones para adecuarlas a nuestro gusto en función de nuestras necesidades, de las características de nuestra actividad o de las de nuestro propio dispositivo.

El sensor de aceleración de la mayoría de dispositivos está pensado para trabajar con movimientos 'normales' y el rango de dicho sensor no es muy amplio. Esto significa que la magnitud máxima que es capaz de medir suele estar por debajo de 4 g lo que condicionará el valor máximo que podremos configurar para la detección de un impacto.

Los sensores del teléfono consumen energía y es por este motivo que, siempre que no sea necesario, estos se desconectan. SensaMe necesita leer continuamente esta información lo que obliga a mantener despierto al dispositivo mientras nos movemos.
Aunque se utilizan diferentes mecanismos que permiten ahorrar batería -ver más abajo-, la duración será menor cuando SensaMe esté funcionando.

SensaMe envía un SMS en caso de impacto informando de nuestra última posición, por tanto, es necesario que tengamos cobertura con nuestra operadora. 

FUNCIONES

Detección de impacto

SensaMe basa su funcionamiento en la lectura en tiempo real de los valores del sensor de movimiento de tu dispositivo. En caso de detectar un impacto, automáticamente se activa una alarma sonora y luminosa y el usuario tiene un tiempo -configurable- para cancelar el aviso.
Si se supera este tiempo y no se ha podido detener la alarma, la aplicación envía un SMS al número o números que tuviéramos configurados, informando del impacto junto con nuestra última posición conocida y la precisión.

Detección de inactividad

De la misma forma que SensaMe utiliza los sensores de movimiento para detectar un impacto, es capaz de detectar inactividad. Así, podemos configurar el tiempo máximo que el dispositivo puede permanecer inmóvil. Si se supera, se activará una alerta y en caso de no cancelarla, se enviará un SMS con nuestra última posición conocida.
Esta función puede resultar útil, por ejemplo, si tenemos un familiar con edad avanzada y queremos controlar que no se supera un tiempo sin que se produzca movimiento.

Detección de ubicación

Si se habilita esta opción, otras personas podrán conocer la posición de nuestro teléfono a través de una solicitud por  SMS. Es posible habilitarlo para cualquier persona que conozca nuestro número o restringirlo a una lista.

La persona que lo solicita no necesita tener la aplicación instalada. Simplemente deberá enviar un SMS con la palabra sensame a nuestro móvil y este contestará automáticamente con otro SMS indicando nuestra última posición conocida.

Nota: es posible que la operadora aplique cargos ya que se envía un SMS ordinario.

Otros usos

  • Encuentra tu teléfono: ¿Has perdido o te han robado el teléfono? Si sigue encendido y con cobertura y no han desinstalado la aplicación, podrás conocer la posición de tu móvil enviando un mensaje SMS a tu número con la palabra sensame. Esto solo funcionará si tenías habilitada la función Permitir recepción SMS para solicitar posición -consulta el apartado de Configuración > Información de contacto-
  • Alarma por movimiento o vibración: Si configuras el sensor de aceleración con un umbral de impacto muy bajo -por ejemplo 1.1-, cualquier pequeño movimiento o vibración disparará la alarma de impacto. Si dejas tu móvil reposando en una superficie con este valor bajo, un intento de coger el móvil hará saltar la alarma. Podrías detectar temblores provocados por un terremoto.

PERMISOS

Para que la aplicación funcione correctamente necesita tener los siguientes permisos:
  • Ubicación: Tanto aproximada -antenas de telefonía- como por GPS -si lo tenemos habilitado-
  • SMS: Envío y recepción de mensajes de texto.
  • Estado del teléfono: Para monitorizar la señal GSM -cobertura-
  • Almacenamiento: Para guardar logs con las incidencias en la memoria interna.
  • Cámara: Para tener acceso al flash.
En dispositivos con sistema operativo anterior a Marshmallow, se conceden automáticamente al descargarla e instalarla. En dispositivos con Marshmallow o posteriores, se solicitarán de forma individual al iniciar la aplicación.

CARACTERÍSTICAS

Estas son las opciones y características de la aplicación las cuales pueden ser configuradas desde el menú de opciones.
  • Auto-arranque con el inicio del sistema: Cada vez que enciendas tu dispositivo, SensaMe se ejecutará automáticamente.
  • Detección de impacto por sensor aceleración: Monitorización en tiempo real de los datos del sensor de aceleración en los tres ejes.
  • Alarma sonora tras detectar impacto: Se escuchará una alarma sonora incluso cuando el teléfono esté silenciado. También podemos configurarlo para que suene al máximo volumen independientemente del volumen que tuviéramos configurado en el dispositivo.
  • Envío de SMS después de impacto: Tras detectar un impacto, el usuario tiene un tiempo -configurable- para detener la alarma. Transcurrido este, se enviará un SMS al número o números configurados, indicando nuestra última posición conocida.
  • Triple sistema de detección de movimiento: Velocidad -medido por GPS-, diferencia de lectura de un eje del sensor y por umbral de aceleración.
  • Filtrado de señales para descartar errores: Evita falsos positivos descartando lecturas erróneas o fuera de tolerancia.
  • Registro de valores del sensor de aceleración actuales, máximos y mínimos.
  • Geo-localización usando triangulación por red de telefonía y/o GPS.
  • Registro y visualización de eventos -log- con guardado en memoria interna.
  • Notificaciones: La detección de movimiento se muestra en pantalla, a través de LED de notificaciones y en reloj Android Wear compatible.
  • Calibración del sensor de aceleración.
  • Test para probar notificación y envío de SMS.
  • Reset de valores mínimo y máximos memorizados.
  • Función de auto-despertar solo cuando está enlazado por Bluetooth -manos libres, por ejemplo-
  • Detección de zonas sin cobertura de red de telefonía -requiere tener la pantalla encendida-

RESPONSABILIDADES

Esta aplicación es gratuita y está disponible para uso personal, no permitiéndose su uso comercial.
Se entrega tal cuál sin garantía de ningún tipo, expresa o implícita.
Es posible que el Proveedor de Servicios Móviles -operador de telefonía- efectúe cargos por los servicios de envío de SMS. El usuario acepta la responsabilidad de los cargos que pudieran surgir, que en ningún caso revierten en beneficio del creador de la aplicación por tratarse de SMS estándar.

DONACIONES

La mejor forma de ayudarme en este proyecto es compartir y difundir la aplicación.
No obstante, si quieres colaborar económicamente, pudes hacerlo a través de PayPal



ENLACES

RECOMENDACIONES DE USO

Cada teléfono es diferente tanto por el hardware -sensores, procesador, etc.- como por el software instalado o la versión del sistema operativo.
A esto le tenemos que añadir los gustos y necesidades personales por lo que no hay una configuración recomendada.
No obstante, se sugiere entrar en la configuración y seguir los siguientes consejos antes de iniciar el servicio por primera vez:
  • Calibración del sensor: Permite fijar el valor de reposo del sensor de aceleración. Sitúa el dispositivo en una superficie plana y pulsa el botón de Calibración situado en el panel lateral de configuración.
  • Determinación del máximo valor medible por el sensor: En algunos casos, el rango máximo informado por el sensor no es correcto por lo que primero habría que verificar realmente cuál es. Para ello, con el servicio activado, despliega el menú de configuración -lateral- y pulsa la opción Reset max-min. A continuación sujeta firmemente el teléfono para que no se caiga y agítalo violentamente. Anota el valor que aparece en Max-Min. Repítelo un  par de veces para verificar cuál es el valor máximo que es capaz de dar el sensor.
  • Realiza una prueba: Para verificar que la configuración es correcta y los ajustes están a tu gusto, puedes pulsar la opción de Test en el panel lateral para simular un impacto.
  • Mostrar movimiento con LED de notificaciones: La detección del movimiento es clave para el funcionamiento de la aplicación. Si deseas verificar que la aplicación está detectando el movimiento de nuestro dispositivo, activa la notificación LED dentro de Configuración > Notificaciones.
IMPORTANTE: No actives el envío de alerta por SMS -en Configuración > Notificaciones- hasta que no hayas probado la aplicación durante unos días. Esto te permitirá ver si la aplicación funciona correctamente en tu dispositivo y qué valores son los idóneos para tus necesidades.
Una vez veas que todo está bien, configura el número de teléfono -o números- a los que enviar la alerta en caso de impacto y avisa a esas personas explicándoles que podrían recibir un mensaje si se detectara un impacto en tu teléfono.

Notas: 
  • El envío de SMS puede ocasionar un cargo dependiendo del contrato que tengas con tu operadora. Estos SMS son normales y no generan un coste añadido que revierta en beneficios para mí.
  • No pongas como teléfono de aviso el número de emergencia 112 o cualquier otro teléfono de emergencias como la policía o bomberos.

CÓMO AHORRAR BATERÍA

En el momento en que la pantalla de nuestro dispositivo se apaga, Android intenta consumir lo menos posible entrando en lo que se denomina sueño profundo o deep sleep. Esto incluye la desactivación de sensores como el de aceleración.
SensaMe necesita leer los datos de este sensor incluso cuando nuestro dispositivo está en este modo. Esto obliga a la aplicación a despertar periódicamente al teléfono con el fin de garantizar que estos datos están disponibles, pero esto también significa que el consumo será mayor cuando la aplicación está activa.

SensaMe es inteligente, despertando al dispositivo lo menos posible evitando así un uso innecesario de la batería. Aún así, es posible prolongar la duración de la batería teniendo en cuenta estos parámetros ajustables en el apartado de configuración:
  • Aumentar el tiempo configurado para despertar el dispositivo: Podemos aumentar el tiempo que tiene la aplicación para despertar periódicamente el dispositivo. Cuanto mayor sea este tiempo, menos veces lo despertaremos pero la efectividad a la hora de detectar el movimiento se reducirá. 
  • Permitir despertar automáticamente: En cualquier caso, una vez detectado movimiento, SensaMe mantendrá despierto el teléfono hasta que detecte que no hay movimiento. Si queremos el máximo ahorro de batería, podemos desactivar este comportamiento y la aplicación solo podrá leer los valores del sensor cuando el teléfono esté despierto. Esto, no obstante, reducirá las posibilidades de detectar un impacto ya que si sucede mientras el teléfono está en deep sleep, la aplicación no podrá leer el valor del sensor de aceleración.
  • Deshabilitar log: Únicamente activarlo si se observa un comportamiento extraño de la aplicación y es necesario reportarlo al desarrollador.
  • No activar localización por GPS: La localización por GPS es la más precisa pero consume más energía. SensaMe obtiene la localización por triangulación si el GPS no está disponible. Si nos movemos por zonas con buena cobertura, la precisión obtenida así es más que suficiente. Si nos vamos a desplazar por zonas con poca cobertura, es recomendable el uso de la señal GPS.
  • Servicio despierto solo cuando estamos enlazados por Bluetooth: Permite configurar a la aplicación para que despierte periódicamente al teléfono pero solo si estamos enlazados por Bluetooth con algún dispositivo. Esto es útil si utilizamos el manos libres del vehículo y queremos que SensaMe se ponga en marcha cuando estemos en nuestro vehículo.

OPCIONES Y CONFIGURACIÓN

Para acceder al menú de opciones y configuración debemos desplegar el panel lateral izquierdo, bien deslizando el dedo desde el borde izquierdo hacia la derecha o bien pulsando el icono superior izquierdo de la pantalla.

Opciones

  • Borrar Log: Borra el archivo de log generado.
  • Ver Log: Muestra el archivo log almacenado.
  • Calibrar: Permite calibrar el sensor de aceleración. Para ello, situar el teléfono en una superficie plana antes de pulsar esta opción.
  • Test: Simula un impacto permitiendo así ver si las opciones de notificación que tengamos configuradas son correctas.
  • Reset max-min: Restablece el valor máximo y mínimo detectado por la aplicación desde que se activó el servicio.

Configuración

General

  • Inicio de aplicación al encender dispositivo: La aplicación se ejecuta automáticamente al encender o reiniciar el dispositivo.
  • Habilitar log: Permite guardar en memoria la actividad detectada por la aplicación. Es útil en caso de fallo de la aplicación para determinar el origen del problema.
  • Log detallado: Permite guardar información más detallada de la actividad.
  • Saltar el patrón de desbloqueo: Si tenemos un patrón de bloqueo, en caso de detectar impacto/inactividad, se mostrará la alerta directamente sin necesidad de desbloquear el teléfono.
  • Wakelock: Mantiene el teléfono despierto siempre aunque esté la pantalla apagada. Asegura la detección instantánea de movimiento pero reduce la duración de la batería.
  • Permitir despertar automáticamente: Esta opción debe estar marcada si queremos asegurarnos que la aplicación detecta el movimiento del dispositivo aún cuando este se encuentre en deep sleep.
  • Tiempo para despertar: Si tenemos la opción anterior activada, aquí podremos fijar el intervalo de tiempo en que se despertará el dispositivo para verificar el movimiento. Cuanto menor sea, mejor se garantizará la detección pero aumentará el consumo de batería. Valor recomendado: 8-15 segundos.
  • Servicio despierto solo con Bluetooth enlazado: Permite ahorrar batería ya que la aplicación solo despierta al dispositivo en caso de estar enlazado por Bluetooth. Útil cuando nos desplazamos en vehículo y tenemos activado el manos libre ya que la aplicación se activará cuando detecte que estemos enlazados.
  • Localización por GPS: Obtiene la ubicación de la información del GPS. Requiere que lo tengamos activado en nuestro dispositivo. Si no está activada esta opción, la ubicación se calcula por triangulación de las antenas de telefonía.
  • Refresco de tiempo entre actualización de localización: Tiempo transcurrido entre muestras para actualizar nuestra ubicación.
  • Tiempo para enviar SMS después de impacto/inactividad: Tiempo que transcurrirá desde que se activa la alarma por detección de impacto/inactividad y el envío del SMS. Durante este tiempo, el usuario puede detener la alarma evitando así el envío del mensaje.

Notificaciones

  • Notificaciones LED durante movimiento: Activa el LED de notificaciones al detectar movimiento. También muestra una notificación en la parte superior de la pantalla, en la barra de estado.
  • Mostrar valores del acelerómetro en notificación: Permite ver los valores del sensor -eje x,y,z y magnitud- en la barra de notificaciones (también se muestra en Android Wear)
  • Vibración en notificaciones: Cada notificación mostrada por detección de movimiento generará una pequeña vibración en el dispositivo.
  • Flash cuando detecta impacto: Al detectar un impacto/inactividad, enciende el flash de nuestro dispositivo para ayudarnos a encontrarlo en condiciones de baja luminosidad.
  • Flash dependiente de luz ambiental: El flash solo se enciende si la luz ambiental es baja.
  • Flash dependiente de sensor proximidad: El flash solo se enciende si el sensor de proximidad no está activo.
  • Vibrar cuando se detecta impacto: Además de la alerta sonora, también podemos hacer que el dispositivo vibre.
  • Sonido cuando se detecta impacto: Emite un sonido de alarma al detectar impacto/inactividad.
  • Volumen al máximo: Fija el volumen del altavoz al máximo mientras suena la alarma independientemente del volumen que tuviéramos configurado o de si estuviera silenciado el teléfono.
  • Señal GSM perdida: Emite un sonido de alerta si la señal GSM  está por debajo de un umbral detectando así que nos quedamos sin cobertura. Por limitaciones del sistema operativo, para esta función se necesita mantener la pantalla encendida, lo cual reduce enormemente la duración de la batería.
  • Opción para mantener pantalla encendida siempre. Útil si tenemos la opción anterior activada.
  • Umbral de señal GSM: Permite fijar el valor de señal mínimo para ser notificados.

Información de contacto

  • Enviar SMS cuando se detecte impacto/inactividad: Permite enviar un mensaje de texto con información de nuestra última posición conocida.
  • Números de teléfono a los que enviar SMS: Lista de teléfonos separados por coma a los que se enviará el aviso.
  • Recepción de SMS solicitando posición: Permite que desde otro teléfono se pueda conocer la ubicación de nuestro dispositivo mediante el envío de un SMS con la palabra sensame.
  • Números permitidos para solicitar la posición: Lista de teléfonos que pueden solicitar nuestra posición. Si lo dejamos en blanco y la opción anterior está activa, cualquiera que conozca nuestro número podrá solicitar nuestra posición.

Configuración acelerómetros

  • Tiempo máximo entre muestras para generar evento: Tiempo en milisegundos a partir del cual se genera una lectura forzada ya que el acelerómetro no ha dado señales. En condiciones normales, el sensor de aceleración envía múltiples actualizaciones por segundo por lo que no debería superarse ese tiempo.
  • Umbral para impacto: Valor en g a partir del cual se genera un evento de impacto. Valor recomendable superior a 3.
  • Umbral de movimiento: Permite fijar la sensibilidad con la que la aplicación detecta el movimiento -en m/s2-
  • Tiempo para reposo: Tiempo para detectar que ya no nos estamos moviendo.
  • Frecuencia de lectura del sensor de aceleración. Ajusta la velocidad de refresco del sensor de aceleración. Cuanto mayor sea mayor consumo de batería. El valor mínimo suele ser efectivo en la mayoría de dispositivos.
  • Filtrar valores repetidos: Ignora aquellos valores que se repiten ahorrando tiempo de proceso.
  • Esperar inactividad después de impacto: Permite evitar falsas alarmas. Si estamos realizando una actividad física como correr o saltar, es posible que el sensor de aceleración de un valor que supere el umbral de aviso, haciendo que SensaMe lo detecte como un impacto. Es posible evitar esta situación activando esta opción y fijando un tiempo de espera para reposo. Así, aunque se detecte un valor que haría disparar la alarma, solo sonará si después de ese evento, se produce un reposo antes del tiempo indicado. Normalmente, si tenemos un accidente o sufrimos una caída, habrá un valor alto de deceleración seguido un reposo.
  • Tiempo de espera para reposo después de impacto: Permite configurar el tiempo que esperará la aplicación después de detectar un impacto para que quede en reposo. Se muestra cuenta atrás en la barra de notificaciones.

Configuración inactividad

  • Monitorización de inactividad: Habilita la comprobación de inactividad. Si se supera el tiempo indicado, se activará una alarma. Si no se cancela, se enviará un SMS con nuestra posición.
  • Tiempo de inactividad: Tiempo de inactividad permitido. Si se supera, se genera una alarma.

PANTALLAS

Estas son algunas de las pantallas de la aplicación:

Pantalla principal

Contiene información del modelo de dispositivo, rango máximo informado por el sensor que es capaz de dar, valor actual del sensor en las diferentes coordenadas, última posición detectada y estado de conexión Bluetooth.


En esta pantalla tenemos un botón que pemite iniciar o detener el servicio de detección de movimiento.

Panel lateral de opciones

Permite acceder a las opciones de la aplicación y al menú de configuración. Desliza desde el margen izquierdo de la pantalla hacia la derecha o pulsa el icono ubicado en la parte superior izquierda de la pantalla principal para desplegarlo.


Menú de configuración

Las diferentes opciones están agrupadas en diferentes submenús. Accede a estos para ver o editar todas las opciones disponibles:







Pantalla de aviso

Cuando se produzca el evento de impacto o de detección de inactividad, saltará una alarma y se mostrará una pantalla como la siguiente:



El usuario tiene un tiempo -configurable- para cancelar la alarma, el cual se muestra como cuenta atrás en pantalla, y si se supera este, se envía un SMS con nuestra posición a los teléfonos que hubiéramos indicado.













Comentarios
2 comentarios
Para Comentar Elige el Sistema de Comentario de tu Agrado:
Comentarios Comentarios Comentarios