jueves, 22 de marzo de 2018

STOLEN BIKE

Naiara, Javi y Ander, estudiantes de segundo año de mantenimiento electrónico de La Salle Berrozpe, hemos creado un prototipo de un proyecto para intentar solventar un problema actual que cada vez se da más, la sustracción de todo tipo de bicis en núcleos urbanos y no urbanos. Hemos denominado a nuestro proyecto STOLEN BIKE.


Hemos hecho un vídeo explicativo del proyecto:





Básicamente, nuestro proyecto nos envía un SMS avisándonos del robo de la bici en caso de que:

  • La bici recibe una sacudida mientras está candada.
  • La ubicación de la bici ha cambiado mientras estaba candada. 



En caso de querer conocer la ubicación de nuestra bici en cualquier momento, basta con llamar al número de la SIM que tenemos introducida en el dispositivo, y nos devolverá un SMS con el enlace para abrirlo directamente con un click en la aplicación de Google Maps.


Para realizar nuestro dispositivo, hemos necesitado los siguientes módulos, además de la electrónica necesaria para ponerlo todo en marcha:

HC-06

El módulo bluetooth HC-06 es el módulo que se encarga de la comunicación bluetooth entre un dispositivo móvil con la app que hemos programado, y nuestro proyecto. Esta comunicación permitirá activar el bloqueo, desactivar el bloqueo y reiniciar el sistema de seguridad en caso de que salte la alarma. 
No es un módulo para nada complicado de utilizar. Funciona con comandos AT, aunque en realidad estos comandos sólo se utilizan para configurar diferentes opciones del módulo, tales como el nombre que muestra el dispositivo, la velocidad a la que funcionará (por defecto 9600 baudios), su pin… pero a la hora de programar el programa en Arduino, no se usan comandos AT y hay una extensa documentación en internet tanto en castellano como en inglés con instrucciones de programación, por ejemplo en prometec. 



MPU6050

El módulo MPU6050 es una unidad de medición inercial (IMU por sus siglas en inglés) que nos sirve para determinar la posición relativa que tiene, como las diferentes fuerzas que recibe. Combina un acelerómetro y un giroscopio, y el principal problema que tiene es que es muy preciso y que la lectura de datos en bruto es algo compleja. 
La comunicación es mediante I2C, lo cual nos ha venido muy bien puesto que utilizamos comunicación serie en tres módulos diferentes (HC06, SIM900 y GPS Adafruit), pero hay que tener en cuenta todas las librerías que hay que incluir en el programa y consultar información acerca de este tipo de comunicación. 
Hay mucha información acerca de este módulo, pero la documentación más clara es, a mi parecer, la de la página de Luis Llamas. 


SIM900


El módulo SIM900 es el encargado de la comunicación mediante llamadas y SMS entre el dispositivo y el número que queramos. Este módulo se encarga de mandarnos un SMS en caso de: 
  1. La bici está candada y recibe una fuerte sacudida durante un breve periodo de tiempo. 
  2. La bici está candada y el GPS detecta que su ubicación ha cambiado.
  3. En cuanto llamemos al número de teléfono de la SIM introducida desde el número que hemos predefinido en el código.
Este módulo es algo peculiar a la hora de programarlo, puesto que funciona únicamente mediante comandos AT, y para la programación hay que crear una función que se encargue de enviar estos comandos a la SIM900 mediante comunicación serie. En nuestro caso, los parámetros de entrada de la función son por un lado el comando AT que le queremos enviar, por otro lado la respuesta que esperamos del módulo cuando reciba ese comando, y por último el tiempo máximo de espera (también denominado timeout) que tendrá esa espera de respuesta por parte del módulo. De esta manera, la función nos devolverá un true o false dependiendo de si la respuesta ha sido la esperada o no, y sabremos por ejemplo si un SMS se ha enviado de manera correcta, si el módulo se ha conectado correctamente a la red, si el PIN introducido es correcto o no… 
Hay mucha documentación en internet, pero la más extensa (que incluye la lista entera de comandos AT que tiene el módulo) está en prometec. 







GPS ADAFRUIT


La programación de este módulo GPS sí que es algo compleja, y no hay mucha documentación disponible en internet, aunque la información oficial ofrecida por la empresa Adafruit es muy completa. Hay que emplear diferentes funciones para hacer funcionar este módulo: por un lado debemos obtener la sentencia completa de las coordenadas que nos envía el módulo (también denominado sentencia NMEA). Esta sentencia tiene que ser correcta, así que hay que realizar unas cuantas mediciones para intentar depurar posibles fallos lo máximo posible. Tras recibir una sentencia completa que sea correcta, debemos depurar esta sentencia eliminando caracteres innecesarios y quedándonos con dos float: latitud, y longitud. 
La documentación oficial está en la siguiente página y es de gran utilidad.


La aplicación para el móvil la hemos creado utilizando la plataforma appinventor, y tiene la siguiente estética:


Su manejo es muy sencillo:

BOTÓN
DESCRIPCIÓN
CANDAR BICI:


Pulsar el botón para candar la bici. La bici queda bloqueada para que cuando detecte algún movimiento brusco nos mande un aviso al movil. Para poder candar la bici hay que estar vinculado al dispositivo (Conectar Bluetooth).
DESCANDAR BICI:


Pulsar el botón para desbloquear la bici. La APP seguirá conectada con la bici pero si nota movimientos bruscos no nos avisará.
BUSCAR BICI:


Pulsar el botón para buscar la ubicación de la bicicleta. Nos lleva a la página Web de Google Maps donde tenemos que poner las coordenadas que nos manda la bici por SMS y podremos encontrar la bici.
RESETEAR BICI:


Pulsar el botón para resetear la bici. Al resetear la bici, se reinician todos los módulos.
CONECTAR BLUETOOTH:


Pulsar el botón para conectarse con el dispositivo. Nos muestra una lista con los Bluetooth disponibles, seleccionamos el del dispositivo y se conectará automáticamente.
DESCONECTAR BLUETOOTH:


Pulsar el botón para desconectar el Bluetooth y desvincularse del dispositivo.



Para el que quiera entender más a fondo el programa, añadimos también los diagramas de flujo que 

ayudan a comprender el programa al detalle. 



PROGRAMA GENERAL 


Dejamos a disposición de todo el mundo tanto el código de Arduino como el de la aplicación:
ARDUINO CODE:  Stolen Bike Arduino Code

APP CODE:  AppInventor Code

Esperamos que os sirva de ayuda. Un Saludo.
Ander Chaparro
Naiara Valverde
Javi Godoy

No hay comentarios:

Publicar un comentario