Inhoudsopgave:

The Mappifier - Mapping + meldingssysteem - Ajarnpa
The Mappifier - Mapping + meldingssysteem - Ajarnpa

Video: The Mappifier - Mapping + meldingssysteem - Ajarnpa

Video: The Mappifier - Mapping + meldingssysteem - Ajarnpa
Video: Neel 51 Trimaran Atlantic Crossing, ARC Regatta - Ep.2/5 2024, November
Anonim
De Mappifier - Mapping + meldingssysteem
De Mappifier - Mapping + meldingssysteem

Nachtelijk rijden is best leuk. Maar vaak blijkt het een nachtmerrie te zijn, in de vorm van dieren die de weg oversteken (vooral die zwerfkatten en honden, die wachten tot je in hun buurt komt rijden zodat ze kunnen oversteken!!). Dus ik dacht eraan iets te maken dat je waarschuwt als je in de buurt van deze kwetsbare plekken komt, zodat je voorzichtiger kunt rijden.

Het systeem bestaat uit twee delen: Data Collection & Data Retrieval. Het eerste deel omvat de locatiegegevens, dat zijn de locaties waar de kans op oversteken van dieren groter is. Deze gegevens moeten handmatig worden toegevoegd en worden bijgewerkt op een kaart. Het laatste deel neemt onze huidige locatie en vergelijkt deze met de verzamelde gegevens en er worden passende meldingen of waarschuwingen gegeven.

Benodigdheden

Gebruikte hardware

ESP8266 WiFi-ontwikkelbord

Ublox NEO-6M GPS-module

LED's

Tijdelijke drukknop

Gebruikte software

Arduino IDE

Elke JavaScript-editor

Firebase (voor het opslaan en ophalen van gegevens)

Stap 1: De hardware-eenheid

De hardware moet op twee manieren (modi) werken: 1) Sla de locatie op in de database: dit is een belangrijk onderdeel van het gegevensverzamelingsproces; de door de GPS-module opgehaalde locatie wordt via een ESP8266 WiFi-ontwikkelbord naar de firebase-database gestuurd.

2) Zorg voor notificaties tijdens navigatie: Tijdens de navigatie wordt de huidige locatie opgehaald en naar de database gestuurd. Bij elke update van de locatie wordt de afstand tussen de huidige locatie en die locaties (die werden opgeslagen tijdens het gegevensverzamelingsproces) berekend en hersteld door de ESP8266-module, die de gebruiker vervolgens waarschuwt op basis van hoe dicht de gebruiker zich van die opgeslagen locaties bevindt.

Ik heb drie LED's toegevoegd om de wijziging in modi te melden, evenals een succesvolle update van de database en een waarschuwingslampje om de nabijheid van de gebruiker tot de opgeslagen locatie te melden.

De drukknop wordt gebruikt om de locatie met slechts één klik op te slaan (in de opslag-/gegevensverzamelingsmodus) en ook om tussen deze modi te wisselen.

Voeding

In eerste instantie werd er een 3.7V 300mAh Lipo batterij gebruikt, maar dat leverde wat problemen op. Het grootste probleem was het resetten van ESP8266 (misschien te wijten aan de huidige pieken). Ook de batterij ging niet lang mee. Eindelijk kwam een powerbank me te hulp.

Stap 2: Circuit

Stroomkring
Stroomkring

Stap 3: Over Firebase

Over Firebase
Over Firebase
Over Firebase
Over Firebase
Over Firebase
Over Firebase
Over Firebase
Over Firebase

Firebase is een ontwikkelingsplatform voor mobiele en webapplicaties, eigendom van Google. Het heeft veel functies, maar hier gebruik ik er slechts twee, Realtime Database en Cloud Functions.

Om aan de slag te gaan met Firebase, 1. Ga eerst naar de firebase-webpagina.

2. Navigeer nu naar de console en klik op een nieuw project maken.

3. U moet een projectnaam en andere details opgeven om een project te maken.

4. Nadat het project is gemaakt, klikt u op de database-optie in het zijvenster om een nieuwe database te maken.

5. Doe hetzelfde voor de functies.

Dit zijn algemene stappen voor het maken van een project, firebase is goed gedocumenteerd en er zijn veel youtube-videoseries voor beginners, ga er alstublieft door voor meer begrip.

Stap 4: Realtime database

Realtime database
Realtime database
Realtime database
Realtime database

Nadat u de database hebt gemaakt, is de volgende stap om te zien hoe gegevens in de database worden opgeslagen en toegankelijk zijn. Voor het schrijven of lezen van/naar de database, moet u de databaseregels configureren. Voor het ontwikkelingsdoel kunnen we een open regel gebruiken zodat iedereen met de databasereferentie kan lezen/schrijven, maar wees voorzichtig bij het configureren van de regels. De database slaat de gegevens op in het JSON-formaat en wordt gesynchroniseerd met alle apparaten die zijn verbonden met de database. U kunt onderliggende knooppunten toevoegen met het '+'-teken, maar knooppunten kunnen ook programmatisch worden gegenereerd. Alle gegevens die we uploaden naar de database in 'winkel'-modus (opslaglocatie verzameld) worden hier opgeslagen als afzonderlijke knooppunten, terwijl gegevens in 'notificatie'-modus (gegevens ophalen bij navigatie) elke keer worden bijgewerkt (controleer de afbeelding).

Stap 5: Firebase-functies instellen

Firebase-functies instellen
Firebase-functies instellen
Firebase-functies instellen
Firebase-functies instellen
Firebase-functies instellen
Firebase-functies instellen

We hebben iets nodig om de nabijheid van de huidige locatie tot de opgeslagen locaties te berekenen, en de door de achtergronddatabase geactiveerde functies zouden ons werk doen. Functies zijn geschreven in javascript en moeten op de firebase worden geïmplementeerd.

U moet node.js op uw computer hebben geïnstalleerd.

1) Download nu de firebase-opdrachtregelinterface met de opdracht "npm install -g firebase-tools" op uw opdrachtprompt

2) Nu moet u inloggen op firebase met het commando "firebase login" (u moet uw Gmail-inlogwachtwoord opgeven als u nog niet bent ingelogd)

3) Navigeer daarna naar uw projectdirectory en start de functie met het commando "firebase init". U moet de optie 'functies' selecteren om firebase-functies voor uw project te starten.

4) Nu moet je naar de map 'functions' in je projectdirectory gaan en het bestand 'index.js' zoeken.

5)Bewerk het bestand met een teksteditor en bewerk het bestand/vervang het bestand door mappifier_function.txt. (Dit zou in feite onze functie zijn)

6) Implementeer ten slotte uw functie met "firebase deploy" op de opdrachtprompt.

U kunt controleren of de functie is geïmplementeerd in het functiemenu op uw firebase-console

Stap 6: Coderen

Code
Code
Code
Code
Code
Code

Voor ESP8266:

Het bord maakt verbinding met WiFi en Firebase met behulp van inloggegevens en wacht op een druk op de knop. Afhankelijk van de duur van de druk op de knop, worden verschillende modi gestart. In de gegevensverzamelingsmodus (laten we dit "winkel" -modus noemen), zal elke druk op de knop ertoe leiden dat de huidige positie naar de database wordt verzonden, terwijl in de gegevensophaalmodus ("meldingsmodus") de huidige locatie naar de database wordt verzonden en afstand wordt automatisch opgehaald uit de database. Ik heb LED's toegevoegd voor waarschuwingen (nabijheid van gemarkeerde locatie) en melding (zoals GPS-fix, WiFi-verbinding, succesvol schrijven naar database, wijziging van modus, enz.).

Voor Firebase-functie:

Deze functie controleert of er naar de 'huidige locatie'-knoop in de database wordt geschreven en berekent de afstand tussen de locaties in de database en de huidige locatie en vindt vervolgens de kleinste afstand die vervolgens wordt geschreven naar de 'afstand'-knoop in de database.

Vergeet niet om uw wifi-inloggegevens en firebase-authenticatiegegevens toe te voegen voordat u uw programma uploadt. (Zie de afbeeldingen). Raadpleeg deze ook als u nieuw bent bij ESP8266 en om ze te coderen op Arduino IDE.

Stap 7: Optionele stap (een behuizing bouwen)

Optionele stap (een behuizing bouwen)
Optionele stap (een behuizing bouwen)
Optionele stap (een behuizing bouwen)
Optionele stap (een behuizing bouwen)
Optionele stap (een behuizing bouwen)
Optionele stap (een behuizing bouwen)
Optionele stap (een behuizing bouwen)
Optionele stap (een behuizing bouwen)

Om het hardware-onderdeel compact te maken zodat het kan worden gemonteerd, heb ik een kleine behuizing gemaakt om ze erin te passen. Er zijn een paar gaten gemaakt om de LED's te monteren en om de USB-kabel aan te sluiten. Maar de uiteindelijke behuizing overtrof mijn verwachtingen!! Het paste perfect in mijn handpalm en het was heel gemakkelijk te monteren op het fietshandvat en op het stuur.

Stap 8: In actie…

Hier is een kleine video die beide modi demonstreert (opslaan en melding) met waarschuwings- en meldings-LED's.

Stap 9: Verder gaan…

Verder verhuizen…
Verder verhuizen…

Dit systeem kan voor verschillende doeleinden worden gebruikt, bijvoorbeeld, rekening houdend met het huidige scenario, als u de locaties van ziekteverspreiding kunt krijgen en deze in een database kunt opslaan, zal dit systeem waarschuwingen geven wanneer u zich dichter bij die locaties bevindt. Maar ik denk er serieus over om gegevens over oversteken van dieren van over de hele wereld te krijgen om chauffeurs voorzichtig te maken en veel dieren te redden van ongelukken. Ik heb een eenvoudige webpagina gemaakt (maar nog niet gehost) met alle gegevens die ik heb verzameld. Dit zijn de gegevens die ik heb verzameld tijdens het wandelen of fietsen (wanneer ik een kat of hond langs de kant van de weg vind omdat ze meer geneigd zijn om over te steken), maar we hebben veel meer gegevens nodig om dit te implementeren.

Ik ben vrij nieuw in het maken van webpagina's (voornamelijk javascript) en andere dingen en zou graag uw suggesties en expertise willen hebben:)

Aanbevolen: