Innehållsförteckning:

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

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

Video: The Mappifier - Mapping + Notification System: 9 steg
Video: 5 AWFUL PRIMERS ... NOPE! 2024, Juni
Anonim
The Mappifier - Mapping + Notification System
The Mappifier - Mapping + Notification System

Nattkörning är ganska roligt. Men ofta visar det sig vara en mardröm, i form av djur som korsar vägen (särskilt de lösa katter och hundar, som väntar på att du ska köra nära dem så att de kan korsa !!). Så jag tänkte göra något som varnar dig när du kommer nära dessa sårbara platser, så att du kan köra mer försiktigt.

Systemet har två delar: Datainsamling och datahämtning. Den första delen tar platsdata, det vill säga de platser där det finns en större sannolikhet för djurpassage. Dessa data måste läggas till manuellt och uppdateras på en karta. Den senare delen tar vår nuvarande plats och jämför den sedan med den insamlade informationen och lämpliga meddelanden eller varningar tillhandahålls.

Tillbehör

Hårdvara som används

ESP8266 WiFi -utvecklingskort

Ublox NEO-6M GPS-modul

Lysdioder

Kortvarig tryckknapp

Programvara som används

Arduino IDE

Alla JavaScript Editor

Firebase (för datalagring och hämtning)

Steg 1: Hårdvaruenheten

Hårdvaran krävs för att fungera på två sätt (lägen): 1) Lagra platsen till databasen: Detta är en viktig del i datainsamlingsprocessen; platsen som hämtas av GPS -modulen skickas till eldatabasen via en ESP8266 WiFi -utvecklingskort.

2) Ge meddelanden under navigering: Under navigering hämtas den aktuella platsen och skickas till databasen. Vid varje uppdatering av platsen beräknas avståndet mellan nuvarande plats och de platser (som lagrades under datainsamlingsprocessen) och återställs av ESP8266 -modulen som sedan varnar användaren efter hur nära användaren är från de lagrade platserna.

Jag lade till tre lysdioder för att meddela ändringen av lägen, samt framgångsrik uppdatering till databasen och en varningslampa för att meddela användarens närhet till den lagrade platsen.

Tryckknappen används för att lagra platsen med bara ett klick (i butik/datainsamlingsläge) och även för att växla mellan dessa lägen.

Drivning

Ursprungligen användes ett 3,7V 300mAh Lipo -batteri, men det gav vissa problem. Det största problemet var ESP8266 -återställning (kan bero på de nuvarande topparna). Dessutom varade inte batteriet mycket. Till slut kom en powerbank till min räddning.

Steg 2: Krets

Krets
Krets

Steg 3: Om Firebase

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

Firebase är en plattform för mobil- och webbapplikationsutveckling som ägs av Google. Den har många funktioner, men här använder jag bara två av dem, realtidsdatabas och molnfunktioner.

För att komma igång med Firebase, 1. Gå först till brandbasens webbsida.

2. Gå nu till konsolen och klicka på skapa ett nytt projekt.

3. Du måste ange ett projektnamn tillsammans med andra detaljer för att skapa ett projekt.

4. Efter att projektet har skapats klickar du på databasalternativet från sidorutan för att skapa en ny databas.

5. Gör samma sak för funktionerna.

Detta är allmänna steg för att skapa ett projekt, firebase är väl dokumenterat och det finns många youtube -videoserier för nybörjare, vänligen gå igenom för att förstå mer.

Steg 4: Databas i realtid

Realtidsdatabas
Realtidsdatabas
Realtidsdatabas
Realtidsdatabas

När du har skapat databasen är nästa steg att se hur data i databasen lagras och kan nås. För att skriva eller läsa till/från databasen måste du konfigurera databasreglerna. För utvecklingsändamålet kan vi använda en öppen regel så att alla med databasreferensen kan läsa/skriva men vara försiktiga när de konfigurerar reglerna. Databasen lagrar data i JSON -formatet och synkroniseras till alla enheter som är anslutna till Du kan lägga till underordnade noder med "+" - tecknet, men noder kan också genereras programmatiskt. All data som vi laddar upp till databasen i "butik" -läge (lagring av samlad plats) lagras här som separata noder medan data i "meddelande" -läge (hämtar data vid navigering) uppdateras varje gång (kontrollera bilden).

Steg 5: Konfigurera Firebase -funktioner

Konfigurera Firebase -funktioner
Konfigurera Firebase -funktioner
Konfigurera Firebase -funktioner
Konfigurera Firebase -funktioner
Konfigurera Firebase -funktioner
Konfigurera Firebase -funktioner

Vi behöver något för att beräkna närheten av den aktuella platsen till de lagrade platserna, och bakgrundsdatabasens utlösta funktioner skulle göra vårt jobb. Funktioner är skrivna i javascript och måste distribueras till eldstaden.

Du måste ha node.js installerat på din dator.

1) Ladda ner nu kommandoradsgränssnittet för firebase med kommandot "npm install -g firebase -tools" på kommandotolken

2) Nu måste du logga in på firebase med kommandot "firebase login" (Du måste ange ditt gmail -inloggningslösenord om du inte redan är inloggad)

3) Efter detta navigerar du till din projektkatalog och initierar funktionen med kommandot "firebase init". Du skulle behöva välja alternativet "funktioner" för att starta brandbasfunktioner för ditt projekt.

4) Nu måste du gå till mappen "funktioner" i projektkatalogen och hitta filen "index.js".

5) Redigera filen med en textredigerare och redigera filen/ersätt filen med mappifier_function.txt. (Detta skulle faktiskt vara vår funktion)

6) Slutligen distribuera din funktion med "firebase deploy" på kommandotolken.

Du kan kontrollera om funktionen är distribuerad under funktionsmenyn på din firebase -konsol

Steg 6: Kod

Koda
Koda
Koda
Koda
Koda
Koda

För ESP8266:

Kortet ansluter till WiFi och Firebase med hjälp av referenser och väntar på ett tryck på knappen. Beroende på knapptryckningens varaktighet startas olika lägen. I datainsamlingsläget (låt oss kalla detta "lagra" -läge) kommer varje knapptryckning att leda till att den aktuella positionen skickas till databasen medan i datahämtningsläget ("aviseringsläge") skickas den aktuella platsen till databasen och avståndet hämtas automatiskt från databasen. Jag lade till lysdioder för varningar (närhet till markerad plats) och avisering (som GPS -fix, WiFi -anslutning, lyckad databasskrivning, lägesändring, etc.).

För Firebase -funktion:

Denna funktion söker efter en skrivning till "aktuell plats" -noden i databasen och beräknar avståndet mellan platserna på databasen och den aktuella platsen och hittar sedan det minsta avståndet som sedan skrivs till "avstånd" -noden på databasen.

Kom ihåg att lägga till dina wifi -uppgifter och firebase -autentiseringsuppgifter innan du laddar upp ditt program. (Se bilderna). Om du också är ny på ESP8266 och kodar dem på Arduino IDE, hänvisa till dessa.

Steg 7: Valfritt steg (bygga ett hölje)

Valfritt steg (bygga ett hölje)
Valfritt steg (bygga ett hölje)
Valfritt steg (bygga ett hölje)
Valfritt steg (bygga ett hölje)
Valfritt steg (bygga ett hölje)
Valfritt steg (bygga ett hölje)
Valfritt steg (bygga ett hölje)
Valfritt steg (bygga ett hölje)

För att göra hårdvarudelen kompakt så att den kan monteras gjorde jag ett litet hölje för att passa dem inuti. Ett par hål gjordes för att montera lysdioderna och för att ansluta USB -kabeln. Men det slutliga höljet var över mina förväntningar !! Det passade perfekt in i min handflata, och det var mycket enkelt att montera på cykelhandtaget och på ratten.

Steg 8: I aktion…

Här är en liten video som visar båda lägena (lagring och avisering) med varnings- och meddelande -lysdioder.

Steg 9: Gå vidare…

Går vidare…
Går vidare…

Detta system kan användas för olika ändamål, till exempel med tanke på det aktuella scenariot. Om du kan sprida platserna för sjukdomar och lagra den i en databas, kommer varningar att tillhandahållas av detta system när du är närmare dessa platser. Men jag funderar allvarligt på att få djuröverföringsdata från hela världen för att göra förarna försiktiga och för att rädda många djur från olyckor. Jag har gjort en enkel webbsida (men inte värd ännu) som innehåller all data som jag samlat in. Det här är de data som jag samlade in under promenader eller cykling (när jag hittar en katt eller hund i vägkanten eftersom de är mer benägna att korsa) men vi behöver mycket mer data för att genomföra detta.

Jag är ganska ny på att göra webbsidor (främst javascript) och andra saker och skulle gärna vilja ha dina förslag och expertis:)

Rekommenderad: