Indholdsfortegnelse:

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

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

Video: The Mappifier - Mapping + Notification System: 9 trin
Video: Top 20 Google Maps Tips & Tricks: All the best features you should know! 2024, Juni
Anonim
The Mappifier - Mapping + Notification System
The Mappifier - Mapping + Notification System

Natkørsel er ret sjovt. Men ofte viser det sig at være et mareridt i form af dyr, der krydser vejen (især de herreløse katte og hunde, der venter på, at du kører i nærheden af dem, så de kan krydse !!). Så jeg tænkte på at lave noget, der advarer dig, når du kommer i nærheden af disse sårbare steder, så du kan køre mere forsigtigt.

Systemet har to dele: Dataindsamling og datahentning. Den første del tager placeringsdata, det vil sige de steder, hvor der er større sandsynlighed for krydsning af dyr. Disse data skal tilføjes manuelt og opdateres på et kort. Sidstnævnte del tager vores nuværende placering og sammenligner dem derefter med de indsamlede data, og der gives passende meddelelser eller advarsler.

Forbrugsvarer

Hardware brugt

ESP8266 WiFi udviklingstavle

Ublox NEO-6M GPS-modul

LED'er

Kortvarig trykknap

Brugt software

Arduino IDE

Enhver JavaScript Editor

Firebase (til datalagring og hentning)

Trin 1: Hardwareenheden

Hardwaren skal fungere på to måder (tilstande): 1) Gem placeringen til databasen: Dette er en vigtig del af dataindsamlingsprocessen; placeringen hentet af GPS -modulet sendes til firebase -databasen via et ESP8266 WiFi -udviklingskort.

2) Giv meddelelser under navigation: Under navigationen hentes den aktuelle placering og sendes til databasen. Ved hver opdatering af placeringen beregnes afstanden mellem den aktuelle placering og de placeringer (som blev gemt under dataindsamlingsprocessen) og genoprettes af ESP8266 -modulet, som derefter advarer brugeren om, hvor tæt brugeren er fra de lagrede placeringer.

Jeg tilføjede tre lysdioder for at underrette ændringen i tilstande samt vellykket opdatering til databasen og en advarselslampe for at underrette brugerens nærhed til den lagrede placering.

Trykknappen bruges til at gemme placeringen med et enkelt klik (i tilstanden butik/dataindsamling) og også til at skifte mellem disse tilstande.

Powering

Oprindeligt blev der brugt et 3,7V 300mAh Lipo -batteri, men det gav nogle problemer. Det største problem var ESP8266 nulstilling (kan skyldes de aktuelle pigge). Batteriet holdt heller ikke meget. Endelig kom en powerbank mig til undsætning.

Trin 2: Kredsløb

Kredsløb
Kredsløb

Trin 3: Om Firebase

Om Firebase
Om Firebase
Om Firebase
Om Firebase
Om Firebase
Om Firebase
Om Firebase
Om Firebase

Firebase er en platform til udvikling af mobil- og webapplikationer, der ejes af Google. Det har mange funktioner, men her bruger jeg kun to af dem, Realtime Database og Cloud Functions.

For at komme i gang med Firebase, 1. Gå først til firebase -websiden.

2. Naviger nu til konsollen, og klik på Opret et nyt projekt.

3. Du skal angive et projektnavn sammen med andre detaljer for at oprette et projekt.

4. Når projektet er oprettet, skal du klikke på databasemuligheden i sidepanelet for at oprette en ny database.

5. Gør det samme for funktionerne.

Dette er generelle trin til oprettelse af et projekt, firebase er veldokumenteret, og der er mange youtube -videoserier for begyndere, venligst gå igennem for at forstå mere.

Trin 4: Database i realtid

Database i realtid
Database i realtid
Realtime Database
Realtime Database

Når du har oprettet databasen, er det næste trin at se, hvordan data i databasen gemmes og kan tilgås. For at skrive eller læse til/fra database skal du konfigurere databasereglerne. Til udviklingsformål kan vi bruge en åben regel, så alle med databasereferencen kan læse/skrive, men være forsigtige, mens de konfigurerer reglerne. Databasen gemmer dataene i JSON -formatet og synkroniseres til alle enheder, der er forbundet til Du kan tilføje underordnede noder ved hjælp af '+' - tegnet, men noder kan også genereres programmatisk. Alle de data, som vi uploader til databasen i 'butik' -tilstand (lagring af indsamlet placering) gemmes her som separate noder, mens data i' meddelelses' -tilstand (hentning af data ved navigation) opdateres hver gang (tjek billedet).

Trin 5: Opsætning af Firebase -funktioner

Opsætning af Firebase -funktioner
Opsætning af Firebase -funktioner
Opsætning af Firebase -funktioner
Opsætning af Firebase -funktioner
Opsætning af Firebase -funktioner
Opsætning af Firebase -funktioner

Vi har brug for noget til at beregne nærheden af den aktuelle placering til de lagrede placeringer, og baggrundsdatabasen udløste funktioner ville gøre vores job. Funktioner er skrevet i javascript og skal installeres på firebase.

Du skal have node.js installeret på din computer.

1) Download nu firebase -kommandolinjegrænsefladen ved hjælp af kommandoen "npm install -g firebase -tools" på din kommandoprompt

2) Nu skal du logge ind på firebase ved hjælp af kommandoen "firebase login" (Du skal angive din gmail login -adgangskode, hvis du ikke allerede er logget ind)

3) Efter dette skal du navigere til dit projektmappe og starte funktionen med kommandoen "firebase init". Du skal vælge indstillingen 'funktioner' for at starte firebase -funktioner til dit projekt.

4) Nu skal du gå til mappen 'funktioner' i projektmappen og finde filen 'index.js'.

5) Rediger filen med en tekstredigerer, og rediger filen/udskift filen med mappifier_function.txt. (Dette ville effektivt være vores funktion)

6) Endelig implementere din funktion ved hjælp af "firebase deploy" på kommandoprompten.

Du kan kontrollere, om funktionen er implementeret under funktionsmenuen på din firebase -konsol

Trin 6: Kode

Kode
Kode
Kode
Kode
Kode
Kode

Til ESP8266:

Brættet opretter forbindelse til WiFi og Firebase ved hjælp af legitimationsoplysninger og venter på et tryk på knappen. I henhold til varigheden af tastetrykket startes forskellige tilstande. I dataindsamlingstilstanden (lad os kalde denne "butik" -tilstand), vil hvert tryk på en knap føre til, at den aktuelle position sendes til databasen, mens i datahentningstilstanden ("meddelelsestilstand") sendes den aktuelle placering til databasen og afstanden hentes automatisk fra databasen. Jeg tilføjede lysdioder til advarsler (nærhed til markeret placering) og meddelelse (som GPS -fix, WiFi -forbindelse, vellykket databaseskrivning, tilstandsændring osv.).

Til Firebase -funktion:

Denne funktion søger efter en skrivning til den 'aktuelle placering' -knude på databasen og beregner afstanden mellem lokaliteterne på databasen og den aktuelle placering og finder derefter den mindste afstand, som derefter skrives til 'afstanden' -noden på databasen.

Husk at tilføje dine wifi -legitimationsoplysninger og firebase -godkendelsesoplysninger, før du uploader dit program. (Se billederne). Hvis du også er ny i ESP8266 og koder dem på Arduino IDE, skal du se disse.

Trin 7: Valgfrit trin (opbygning af et kabinet)

Valgfrit trin (opbygning af et kabinet)
Valgfrit trin (opbygning af et kabinet)
Valgfrit trin (opbygning af et kabinet)
Valgfrit trin (opbygning af et kabinet)
Valgfrit trin (opbygning af et kabinet)
Valgfrit trin (opbygning af et kabinet)
Valgfrit trin (opbygning af et kabinet)
Valgfrit trin (opbygning af et kabinet)

For at gøre hardwaredelen kompakt, så den kan monteres, lavede jeg et lille kabinet, så de kunne passe indvendigt. Der blev lavet et par huller til montering af lysdioderne og til tilslutning af USB -kablet. Men det sidste kabinet var over mine forventninger !! Det passede perfekt inde i min håndflade, og det var meget let at montere på cykelhåndtaget og på rattet.

Trin 8: I aktion…

Her er en lille video, der demonstrerer begge tilstande (butik og meddelelse) med advarsels- og meddelelses -lysdioder.

Trin 9: Gå videre…

Går videre…
Går videre…

Dette system kan bruges til forskellige formål, f.eks. I betragtning af det nuværende scenario, hvis du kan få spredt lokaliteterne for sygdom og gemme det i en database, vil der blive givet advarsler fra dette system, når du er tættere på disse steder. Men jeg overvejer seriøst at få krydset data fra hele verden for at gøre bilister forsigtige og for at redde mange dyr fra ulykker. Jeg har lavet en simpel webside (men ikke hostet endnu), som har alle de data, jeg har indsamlet. Dette er de data, jeg indsamlede under gå eller cykling (når jeg finder en kat eller hund i vejkanten, da de er mere tilbøjelige til at krydse), men vi har brug for meget flere data for at implementere dette.

Jeg er ret ny til at lave websider (hovedsageligt javascript) og andre ting og vil meget gerne have dine forslag og ekspertise:)

Anbefalede: