Tabla de contenido:

The Mappifier - Mapping + Notification System: 9 pasos
The Mappifier - Mapping + Notification System: 9 pasos

Video: The Mappifier - Mapping + Notification System: 9 pasos

Video: The Mappifier - Mapping + Notification System: 9 pasos
Video: NotificationsBundle PART6: Complete your notifications system 2024, Noviembre
Anonim
The Mappifier - Mapping + Notification System
The Mappifier - Mapping + Notification System

Conducir de noche es muy divertido. Pero a menudo, resulta ser una pesadilla, en forma de animales que cruzan la calle (¡¡especialmente esos perros y gatos callejeros, que esperan que conduzcas cerca de ellos para que puedan cruzar !!). Así que pensé en hacer algo que te avise cuando te acerques a estos lugares vulnerables, para que puedas conducir con más cuidado.

El sistema consta de dos partes: recopilación y recuperación de datos. La primera parte toma los datos de ubicación, es decir, las ubicaciones en las que hay una mayor probabilidad de cruce de animales. Estos datos deben agregarse manualmente y se actualizan en un mapa. La última parte toma nuestra ubicación actual y luego la compara con los datos recopilados y se proporcionan las notificaciones o advertencias adecuadas.

Suministros

Hardware utilizado

Placa de desarrollo WiFi ESP8266

Módulo GPS Ublox NEO-6M

LED

Botón pulsador momentáneo

Software utilizado

IDE de Arduino

Cualquier editor de JavaScript

Firebase (para almacenamiento y recuperación de datos)

Paso 1: la unidad de hardware

Se requiere que el hardware funcione de dos maneras (modos): 1) Almacenar la ubicación en la base de datos: esta es una parte importante en el proceso de recopilación de datos; la ubicación recuperada por el módulo GPS se envía a la base de datos firebase a través de una placa de desarrollo WiFi ESP8266.

2) Proporcionar notificaciones durante la navegación: durante la navegación, se recupera la ubicación actual y se envía a la base de datos. Tras cada actualización de la ubicación, la distancia entre la ubicación actual y esas ubicaciones (que se almacenaron durante el proceso de recopilación de datos) se calcula y es recuperada por el módulo ESP8266, que luego advierte al usuario de acuerdo con qué tan cerca está el usuario de esas ubicaciones almacenadas.

Agregué tres LED para notificar el cambio en los modos, así como una actualización exitosa de la base de datos y una lámpara de advertencia para notificar la proximidad del usuario a la ubicación almacenada.

El botón pulsador se utiliza para almacenar la ubicación con un solo clic (en el modo de almacenamiento / recopilación de datos) y también para cambiar entre estos modos.

Alimentando

Inicialmente, se usó una batería Lipo de 3.7V 300mAh, pero presentó algunos problemas. El principal problema fue el reinicio del ESP8266 (podría deberse a los picos actuales). Además, la batería no duró mucho. Finalmente, un banco de energía vino a mi rescate.

Paso 2: circuito

Circuito
Circuito

Paso 3: Acerca de Firebase

Acerca de Firebase
Acerca de Firebase
Acerca de Firebase
Acerca de Firebase
Acerca de Firebase
Acerca de Firebase
Acerca de Firebase
Acerca de Firebase

Firebase es una plataforma de desarrollo de aplicaciones web y móviles propiedad de Google. Tiene muchas funciones, pero aquí estoy usando solo dos de ellas, Realtime Database y Cloud Functions.

Para comenzar con Firebase, Primero, vaya a la página web de firebase.

2. Ahora navegue hasta la consola y haga clic en crear un nuevo proyecto.

3. Debe proporcionar un nombre de proyecto junto con otros detalles para crear un proyecto.

Después de crear el proyecto, haga clic en la opción de base de datos del panel lateral para crear una nueva base de datos.

5. Haga lo mismo con las funciones.

Estos son pasos generales para crear un proyecto, firebase está bien documentado y hay muchas series de videos de YouTube para principiantes, por favor revise para comprender más.

Paso 4: base de datos en tiempo real

Base de datos en tiempo real
Base de datos en tiempo real
Base de datos en tiempo real
Base de datos en tiempo real

Después de crear la base de datos, el siguiente paso es ver cómo se almacenan los datos en la base de datos y cómo se puede acceder a ellos. Para escribir o leer a / desde la base de datos, necesita configurar las reglas de la base de datos. Para el propósito de desarrollo, podemos usar una regla abierta para que cualquier persona con la referencia de la base de datos pueda leer / escribir, pero tenga cuidado al configurar las reglas. La base de datos almacena los datos en formato JSON y se sincroniza con todos los dispositivos que están conectados a la Puede agregar nodos secundarios usando el signo '+', pero los nodos también se pueden generar mediante programación. Todos los datos que cargamos en la base de datos en el modo 'almacenar' (almacenando la ubicación recopilada) se almacenan aquí como nodos separados, mientras que los datos en el modo 'notificación' (recuperando datos durante la navegación) se actualizan cada vez (verifique la imagen).

Paso 5: configurar las funciones de Firebase

Configurar funciones de Firebase
Configurar funciones de Firebase
Configurar funciones de Firebase
Configurar funciones de Firebase
Configurar funciones de Firebase
Configurar funciones de Firebase

Necesitamos algo para calcular la cercanía de la ubicación actual a las ubicaciones almacenadas, y las funciones activadas de la base de datos de fondo harían nuestro trabajo. Las funciones están escritas en javascript y deben implementarse en la base de fuego.

Necesita tener node.js instalado en su computadora.

1) Ahora descargue la interfaz de línea de comandos de firebase usando el comando "npm install -g firebase-tools" en su símbolo del sistema

2) Ahora debe iniciar sesión en firebase usando el comando "firebase login" (debe proporcionar su contraseña de inicio de sesión de gmail si aún no ha iniciado sesión)

3) Después de esto, navegue al directorio de su proyecto e inicie la función con el comando "firebase init". Debería seleccionar la opción 'funciones' para iniciar funciones de base de fuego para su proyecto.

4) Ahora debe ir a la carpeta 'funciones' en el directorio de su proyecto y encontrar el archivo 'index.js'.

5) Edite el archivo con un editor de texto y edite el archivo / reemplace el archivo con mappifier_function.txt (esta sería efectivamente nuestra función)

6) Finalmente implemente su función usando "firebase deploy" en el símbolo del sistema.

Puede verificar si la función está implementada en el menú de funciones en su consola de base de fuego

Paso 6: Código

Código
Código
Código
Código
Código
Código

Para ESP8266:

La placa se conecta a WiFi y Firebase mediante credenciales y espera a que se presione un botón. Según la duración de la pulsación del botón, se inician diferentes modos. En el modo de recopilación de datos (llamémoslo modo "almacenar"), cada pulsación de botón llevará a que la posición actual se envíe a la base de datos, mientras que en el modo de recuperación de datos ("modo de notificación"), la ubicación actual se enviará a la base de datos y la distancia se recupera de la base de datos automáticamente. Agregué LED para advertencias (proximidad a la ubicación marcada) y notificación (como corrección de GPS, conexión WiFi, escritura exitosa de la base de datos, cambio de modo, etc.).

Para la función Firebase:

Esta función busca una escritura en el nodo 'ubicación actual' en la base de datos y calcula la distancia entre las ubicaciones en la base de datos y la ubicación actual y luego encuentra la distancia más pequeña que luego se escribe en el nodo 'distancia' en la base de datos.

Recuerde agregar sus credenciales de wifi y las de autenticación de base de fuego antes de cargar su programa (consulte las imágenes). Además, si es nuevo en ESP8266 y desea codificarlos en Arduino IDE, consulte estos.

Paso 7: Paso opcional (construcción de un recinto)

Paso opcional (construcción de un recinto)
Paso opcional (construcción de un recinto)
Paso opcional (construcción de un recinto)
Paso opcional (construcción de un recinto)
Paso opcional (construcción de un recinto)
Paso opcional (construcción de un recinto)
Paso opcional (construcción de un recinto)
Paso opcional (construcción de un recinto)

Con el fin de hacer que la pieza de hardware sea compacta para que pueda montarse, hice un pequeño recinto para encajarlos en el interior. Se hicieron un par de agujeros para montar los LED y conectar el cable USB. ¡¡Pero el cerramiento final superó mis expectativas !! Se ajustaba perfectamente a mi palma y se montaba muy fácilmente en la manija de la bicicleta y en el volante.

Paso 8: En acción…

Aquí hay un pequeño video que muestra ambos modos (almacenamiento y notificación) con LED de advertencia y notificación.

Paso 9: Avanzar más…

Avanzando más…
Avanzando más…

Este sistema se puede utilizar para varios propósitos, por ejemplo, considerando el escenario actual, si puede obtener las ubicaciones de propagación de la enfermedad y almacenarlas en una base de datos, este sistema proporcionará advertencias cuando esté más cerca de esas ubicaciones. Pero estoy pensando seriamente en obtener datos de cruces de animales de todo el mundo para hacer que los conductores sean cautelosos y salvar a muchos animales de accidentes. He creado una página web simple (pero aún no alojada) que tiene todos los datos que recopilé. Estos son los datos que recopilé durante la caminata o el ciclismo (cada vez que encuentro un gato o un perro en la carretera, ya que son más propensos a cruzarse), pero necesitamos muchos más datos para implementar esto.

Soy bastante nuevo en la creación de páginas web (principalmente javascript) y otras cosas y me encantaría tener sus sugerencias y experiencia:)