Sommario:

The Mappifier - Mappatura + Sistema di notifica: 9 passaggi
The Mappifier - Mappatura + Sistema di notifica: 9 passaggi

Video: The Mappifier - Mappatura + Sistema di notifica: 9 passaggi

Video: The Mappifier - Mappatura + Sistema di notifica: 9 passaggi
Video: Apparato cardiocircolatorio 04: Sistema di conduzione del cuore 2024, Dicembre
Anonim
The Mappifier - Mappatura + Sistema di notifica
The Mappifier - Mappatura + Sistema di notifica

La guida notturna è molto divertente. Ma spesso si rivela un incubo, sotto forma di animali che attraversano la strada (soprattutto quei cani e gatti randagi, che aspettano che tu guidi vicino a loro in modo che possano attraversare!!). Quindi ho pensato di creare qualcosa che ti avvisi quando ti avvicini a questi punti vulnerabili, in modo che tu possa guidare con più prudenza.

Il sistema ha due parti: raccolta dati e recupero dati. La prima parte prende i dati sulla posizione, cioè i luoghi in cui c'è una maggiore probabilità di attraversamento di animali. Questi dati devono essere aggiunti manualmente e vengono aggiornati su una mappa. Quest'ultima parte prende la nostra posizione attuale e quindi la confronta con i dati raccolti e vengono fornite notifiche o avvisi appropriati.

Forniture

Hardware utilizzato

Scheda di sviluppo WiFi ESP8266

Modulo GPS Ublox NEO-6M

LED

Pulsante momentaneo

Software utilizzato

Arduino IDE

Qualsiasi editor JavaScript

Firebase (per l'archiviazione e il recupero dei dati)

Passaggio 1: l'unità hardware

L'hardware deve funzionare in due modi (modalità): 1) Memorizzare la posizione nel database: questa è una parte importante nel processo di raccolta dei dati; la posizione recuperata dal modulo GPS viene inviata al database firebase tramite una scheda di sviluppo WiFi ESP8266.

2) Fornire notifiche durante la navigazione: durante la navigazione, la posizione corrente viene recuperata e inviata al database. Ad ogni aggiornamento della posizione, viene calcolata la distanza tra la posizione corrente e quelle posizioni (che sono state memorizzate durante il processo di raccolta dei dati) e viene recuperata dal modulo ESP8266 che quindi avvisa l'utente in base a quanto l'utente è vicino a quelle posizioni memorizzate.

Ho aggiunto tre led per segnalare il cambio di modalità, oltre all'avvenuto aggiornamento del database e una spia di avviso per segnalare la vicinanza dell'utente alla posizione memorizzata.

Il pulsante viene utilizzato per memorizzare la posizione con un solo clic (nella modalità di memorizzazione/raccolta dati) e anche per passare da una modalità all'altra.

alimentazione

Inizialmente, è stata utilizzata una batteria Lipo da 3,7 V 300 mAh, ma ha posto alcuni problemi. Il problema principale è stato il ripristino di ESP8266 (potrebbe essere dovuto ai picchi di corrente). Inoltre la batteria non è durata molto. Finalmente un powerbank è venuto in mio soccorso.

Passaggio 2: circuito

Circuito
Circuito

Passaggio 3: informazioni su Firebase

Informazioni su Firebase
Informazioni su Firebase
Informazioni su Firebase
Informazioni su Firebase
Informazioni su Firebase
Informazioni su Firebase
Informazioni su Firebase
Informazioni su Firebase

Firebase è una piattaforma di sviluppo di applicazioni web e mobili, di proprietà di Google. Ha molte funzionalità, ma qui ne sto usando solo due, Realtime Database e Cloud Functions.

Per iniziare su Firebase, 1. Per prima cosa vai alla pagina web di Firebase.

2. Ora vai alla console e fai clic su crea un nuovo progetto.

3. È necessario fornire un nome di progetto insieme ad altri dettagli per creare un progetto.

4. Dopo aver creato il progetto, fare clic sull'opzione del database dal riquadro laterale per creare un nuovo database.

5. Fai lo stesso per le funzioni.

Questi sono passaggi generali per la creazione di un progetto, Firebase è ben documentato e ci sono molte serie di video di YouTube per principianti, gentilmente segui per capirne di più.

Passaggio 4: database in tempo reale

Database in tempo reale
Database in tempo reale
Database in tempo reale
Database in tempo reale

Dopo aver creato il database, il passaggio successivo consiste nel vedere come vengono archiviati i dati nel database e come è possibile accedervi. Per scrivere o leggere nel/dal database, è necessario configurare le regole del database. Ai fini dello sviluppo, possiamo utilizzare una regola aperta in modo che chiunque abbia il riferimento al database possa leggere/scrivere ma fare attenzione durante la configurazione delle regole. Il database memorizza i dati in formato JSON ed è sincronizzato su tutti i dispositivi collegati al database. È possibile aggiungere nodi figlio utilizzando il segno '+' ma i nodi possono anche essere generati a livello di codice. Tutti i dati che carichiamo nel database in modalità 'store' (memorizzazione posizione raccolta) vengono archiviati qui come nodi separati mentre i dati in modalità 'notifica' (recupero dati durante la navigazione) vengono aggiornati ogni volta (controlla l'immagine).

Passaggio 5: impostazione delle funzioni Firebase

Configurazione delle funzioni Firebase
Configurazione delle funzioni Firebase
Configurazione delle funzioni Firebase
Configurazione delle funzioni Firebase
Configurazione delle funzioni Firebase
Configurazione delle funzioni Firebase

Abbiamo bisogno di qualcosa per calcolare la vicinanza della posizione corrente alle posizioni memorizzate e le funzioni attivate dal database in background farebbero il nostro lavoro. Le funzioni sono scritte in javascript e devono essere distribuite su Firebase.

Devi avere node.js installato sul tuo computer.

1) Ora scarica l'interfaccia della riga di comando di firebase utilizzando il comando "npm install -g firebase-tools" sul prompt dei comandi

2) Ora è necessario accedere a Firebase utilizzando il comando "firebase login" (è necessario fornire la password di accesso a Gmail se non si è già effettuato l'accesso)

3) Dopodiché, vai alla directory del tuo progetto e avvia la funzione con il comando "firebase init". Dovresti selezionare l'opzione "funzioni" per avviare le funzioni firebase per il tuo progetto.

4) Ora devi andare nella cartella "funzioni" nella directory del tuo progetto e trovare il file "index.js".

5) Modifica il file con un editor di testo e modifica il file/sostituisci il file con mappifier_function.txt. (Questa sarebbe effettivamente la nostra funzione)

6) Infine distribuisci la tua funzione usando "firebase deploy" sul prompt dei comandi.

Puoi controllare se la funzione è implementata nel menu delle funzioni sulla tua console Firebase

Passaggio 6: codice

Codice
Codice
Codice
Codice
Codice
Codice

Per ESP8266:

La scheda si connette al WiFi e Firebase utilizzando le credenziali e attende la pressione di un pulsante. A seconda della durata della pressione del pulsante, vengono avviate diverse modalità. Nella modalità di raccolta dati (chiamiamola modalità "memorizza"), ogni pressione del pulsante porterà alla posizione corrente inviata al database mentre nella modalità di recupero dati ("modalità di notifica"), la posizione corrente viene inviata al database e la distanza viene recuperata automaticamente dal database. Ho aggiunto i LED per gli avvisi (vicinanza alla posizione contrassegnata) e le notifiche (come GPS fix, connessione WiFi, scrittura database riuscita, cambio modalità, ecc.).

Per la funzione Firebase:

Questa funzione verifica la scrittura sul nodo "posizione corrente" sul database e calcola la distanza tra le posizioni sul database e la posizione corrente, quindi trova la distanza più piccola che viene quindi scritta sul nodo "distanza" sul database.

Ricordati di aggiungere le tue credenziali Wi-Fi e le credenziali di autenticazione Firebase prima di caricare il tuo programma. (Vedi le immagini). Inoltre, se sei nuovo su ESP8266 e per codificarli su Arduino IDE, fai riferimento a questi.

Passaggio 7: passaggio facoltativo (costruzione di un recinto)

Passaggio facoltativo (costruire un recinto)
Passaggio facoltativo (costruire un recinto)
Passaggio facoltativo (costruire un recinto)
Passaggio facoltativo (costruire un recinto)
Passaggio facoltativo (costruire un recinto)
Passaggio facoltativo (costruire un recinto)
Passaggio facoltativo (costruire un recinto)
Passaggio facoltativo (costruire un recinto)

Per rendere compatta la parte hardware in modo che possa essere montata, ho realizzato un piccolo involucro per inserirli all'interno. Sono stati realizzati un paio di fori per montare i LED e per collegare il cavo USB. Ma il recinto finale è andato oltre le mie aspettative!! Si adattava perfettamente al mio palmo ed era molto facilmente montabile sull'impugnatura della bicicletta e sul volante.

Passaggio 8: in azione…

Ecco un piccolo video che mostra entrambe le modalità (memorizzazione e notifica) con LED di avviso e notifica.

Passaggio 9: andare oltre…

Andando oltre…
Andando oltre…

Questo sistema può essere utilizzato per vari scopi, ad esempio, considerando lo scenario attuale, se è possibile ottenere le posizioni della diffusione della malattia e memorizzarle in un database, questo sistema fornirà avvisi quando si è più vicini a tali posizioni. Ma sto seriamente pensando di ottenere dati sull'attraversamento di animali da tutto il mondo per rendere cauti i conducenti e salvare molti animali dagli incidenti. Ho creato una semplice pagina web (ma non ancora ospitata) che contiene tutti i dati che ho raccolto. Questi sono i dati che ho raccolto durante le passeggiate o in bicicletta (ogni volta che trovo un gatto o un cane sul ciglio della strada perché sono più inclini ad attraversare) ma abbiamo bisogno di molti più dati per implementare questo.

Sono abbastanza nuovo nel creare pagine web (principalmente javascript) e altri materiali e mi piacerebbe avere i tuoi suggerimenti e le tue competenze:)

Consigliato: