Taula de continguts:

El mapificador - Sistema de mapatge + notificació: 9 passos
El mapificador - Sistema de mapatge + notificació: 9 passos

Vídeo: El mapificador - Sistema de mapatge + notificació: 9 passos

Vídeo: El mapificador - Sistema de mapatge + notificació: 9 passos
Vídeo: Charla técnica de Java: integración de Spring Boot y GraphQl. ¿Cómo hacerlo simple? 2024, Desembre
Anonim
The Mappifier - Mapping + Notification System
The Mappifier - Mapping + Notification System

Conduir de nit és molt divertit. Però sovint resulta ser un malson, en forma d’animals que creuen la carretera (sobretot aquells gats i gossos de carrer que esperen que conduïu a prop d’ells perquè puguin creuar-se !!). Per tant, vaig pensar en fer alguna cosa que us avisés quan us acosteu a aquestes ubicacions vulnerables, de manera que pugueu conduir amb més cura.

El sistema té dues parts: recopilació de dades i recuperació de dades. La primera part pren les dades de localització, és a dir, les ubicacions en què hi ha més probabilitats de creuar animals. Aquestes dades s’han d’afegir manualment i s’actualitzen en un mapa. Aquesta última part pren la nostra ubicació actual i, a continuació, la compara amb les dades recopilades i es proporcionen les notificacions o avisos adequats.

Subministraments

Maquinari utilitzat

ESP8266 Tauler de desenvolupament WiFi

Mòdul GPS Ublox NEO-6M

LEDs

Polsador momentani

Programari utilitzat

IDE Arduino

Qualsevol editor de JavaScript

Firebase (per a l'emmagatzematge i recuperació de dades)

Pas 1: la unitat de maquinari

Cal que el maquinari funcioni de dues maneres (modes): 1) Emmagatzemeu la ubicació a la base de dades: és una part important del procés de recopilació de dades; la ubicació recuperada pel mòdul GPS s’envia a la base de dades de firebase mitjançant una placa de desenvolupament WiFi ESP8266.

2) Proporcioneu notificacions durant la navegació: durant la navegació, es recupera la ubicació actual i s’envia a la base de dades. En cada actualització de la ubicació, es calcula la distància entre la ubicació actual i aquelles ubicacions (que es van emmagatzemar durant el procés de recopilació de dades) i es recupera mitjançant el mòdul ESP8266 que avisa l’usuari d’acord amb la proximitat de l’usuari d’aquestes ubicacions emmagatzemades.

He afegit tres LED per notificar el canvi de modes, així com una actualització correcta a la base de dades i un llum d'advertència per notificar la proximitat de l'usuari a la ubicació emmagatzemada.

El polsador s’utilitza per emmagatzemar la ubicació amb només un clic (en el mode de botiga / recollida de dades) i també per canviar entre aquests modes.

Alimentació

Inicialment, s’utilitzava una bateria Lipo de 3,7 V 300 mAh, però plantejava alguns problemes. El problema principal va ser el restabliment de l’ESP8266 (pot ser degut a les pujades actuals). A més, la bateria no va durar gaire. Finalment, un powerbank va venir al meu rescat.

Pas 2: Circuit

Circuit
Circuit

Pas 3: Quant a Firebase

Quant a Firebase
Quant a Firebase
Quant a Firebase
Quant a Firebase
Quant a Firebase
Quant a Firebase
Quant a Firebase
Quant a Firebase

Firebase és una plataforma de desenvolupament d'aplicacions web i mòbils, propietat de Google. Té moltes funcions, però aquí només en faig servir dues, base de dades en temps real i funcions al núvol.

Per començar a Firebase, 1. Primer aneu a la pàgina web de Firebase.

2. Ara aneu a la consola i feu clic a Crea un projecte nou.

3. Cal crear un nom de projecte juntament amb altres detalls per crear un projecte.

4. Després de crear el projecte, feu clic a l’opció de base de dades del tauler lateral per crear una nova base de dades.

5. Feu el mateix amb les funcions.

Aquests són els passos generals per crear un projecte, Firebase està ben documentat i hi ha moltes sèries de vídeos de youtube per a principiants.

Pas 4: base de dades en temps real

Base de dades en temps real
Base de dades en temps real
Base de dades en temps real
Base de dades en temps real

Després de crear la base de dades, el següent pas és veure com s’emmagatzemen les dades de la base de dades i s’hi pot accedir. Per escriure o llegir des de / a una base de dades, heu de configurar les regles de la base de dades. Per al propòsit del desenvolupament, podem utilitzar una regla oberta perquè qualsevol persona amb la referència de la base de dades pugui llegir / escriure, però tingueu cura en configurar les regles. La base de dades emmagatzema les dades en format JSON i se sincronitza amb tots els dispositius connectats a la Podeu afegir nodes fills mitjançant el signe '+', però també es poden generar nodes per programació. Totes les dades que carreguem a la base de dades en mode "botiga" (emmagatzematge de la ubicació recollida) s'emmagatzemen aquí com a nodes separats mentre que les dades en mode "notificació" (recuperació de dades en navegar) s'actualitzen cada vegada (comproveu la imatge).

Pas 5: Configuració de les funcions de Firebase

Configuració de les funcions de Firebase
Configuració de les funcions de Firebase
Configuració de les funcions de Firebase
Configuració de les funcions de Firebase
Configuració de les funcions de Firebase
Configuració de les funcions de Firebase

Necessitem alguna cosa per calcular la proximitat de la ubicació actual a les ubicacions emmagatzemades i les funcions activades de la base de dades de fons faran la nostra feina. Les funcions s’escriuen en javascript i s’han de desplegar a la base de foc.

Cal que tingueu node.js instal·lat a l’ordinador.

1) Ara baixeu la interfície de línia d'ordres de firebase mitjançant l'ordre "npm install -g firebase-tools" al vostre símbol del sistema

2) Ara heu d'iniciar sessió a firebase mitjançant l'ordre "firebase login" (heu de donar la contrasenya d'inici de sessió de Gmail si encara no heu iniciat la sessió)

3) Després d'això, aneu al directori del projecte i inicieu la funció amb l'ordre "firebase init". Haureu de seleccionar l'opció "funcions" per iniciar funcions de firebase per al vostre projecte.

4) Ara heu d'anar a la carpeta "funcions" del directori del projecte i trobar el fitxer "index.js".

5) Editeu el fitxer amb un editor de text i editeu-lo / substituïu-lo per mappifier_function.txt (aquesta seria efectivament la nostra funció)

6) Finalment, desplegueu la vostra funció mitjançant "firebase deploy" a l'indicador d'ordres.

Podeu comprovar si la funció es desplega al menú de funcions de la consola de firebase

Pas 6: Codi

Codi
Codi
Codi
Codi
Codi
Codi

Per a ESP8266:

La placa es connecta al WiFi i al Firebase mitjançant credencials i espera que es premi un botó. Segons la durada del botó, s'inicien diferents modes. En el mode de recopilació de dades (anomenem aquest mode "emmagatzematge"), amb cada botó que premeu s'enviarà la posició actual a la base de dades mentre que en el mode de recuperació de dades ("mode de notificació"), la ubicació actual s'enviarà a la base de dades i la distància es recupera automàticament de la base de dades. He afegit LEDs per a avisos (proximitat a la ubicació marcada) i notificacions (com ara correcció GPS, connexió WiFi, escriptura de base de dades correcta, canvi de mode, etc.).

Per a la funció Firebase:

Aquesta funció comprova si hi ha una escriptura al node "ubicació actual" de la base de dades i calcula la distància entre les ubicacions de la base de dades i la ubicació actual i, a continuació, troba la distància més petita que s'escriu al node "distància" de la base de dades.

Recordeu afegir les vostres credencials de wifi i credencials d’autenticació de firebase abans de penjar el programa (vegeu les imatges). A més, si no sou nou a ESP8266 i els codifiqueu a Arduino IDE, consulteu-los.

Pas 7: Pas opcional (construcció d'un recinte)

Pas opcional (construcció d'un recinte)
Pas opcional (construcció d'un recinte)
Pas opcional (construcció d'un recinte)
Pas opcional (construcció d'un recinte)
Pas opcional (construcció d'un recinte)
Pas opcional (construcció d'un recinte)
Pas opcional (construcció d'un recinte)
Pas opcional (construcció d'un recinte)

Per tal de fer la peça de maquinari compacta de manera que es pugui muntar, vaig fer un petit tancament per adaptar-les a l’interior. Es van fer un parell de forats per muntar els LED i connectar el cable USB. Però el recinte final va superar les meves expectatives !! Va quedar perfectament dins del meu palmell i es podia muntar molt fàcilment al mànec del cicle i al volant.

Pas 8: en acció …

Aquí teniu un petit vídeo que mostra els dos modes (emmagatzematge i notificació) amb LED d’avís i notificació.

Pas 9: avançar més …

Avançar més …
Avançar més …

Aquest sistema es pot utilitzar per a diversos propòsits, per exemple, tenint en compte l'escenari actual, si podeu obtenir la localització de la malaltia i emmagatzemar-la en una base de dades, aquest sistema us proporcionarà advertències quan estigueu més a prop d'aquests llocs. Però estic pensant seriosament a aconseguir dades de creuament d’animals de tot el món per fer que els conductors siguin prudents i salvin molts animals d’accidents. He creat una pàgina web senzilla (però encara no allotjada) que conté totes les dades que he recopilat. Aquestes són les dades que vaig recopilar durant la caminada o la bicicleta (sempre que trobo un gat o un gos a la carretera ja que són més propensos a creuar-se), però necessitem moltes més dades per implementar-ho.

Sóc bastant nou en la creació de pàgines web (principalment javascript) i altres coses i m'agradaria tenir els vostres suggeriments i coneixements:)

Recomanat: