Table des matières:

Le Mappifier - Cartographie + Système de Notification : 9 Étapes
Le Mappifier - Cartographie + Système de Notification : 9 Étapes

Vidéo: Le Mappifier - Cartographie + Système de Notification : 9 Étapes

Vidéo: Le Mappifier - Cartographie + Système de Notification : 9 Étapes
Vidéo: Comment utiliser une ponceuse à ongles/Cuticules/Vitesse/Embouts/Manucure/Roses on the nails 2024, Novembre
Anonim
Le Mappifier - Cartographie + Système de Notification
Le Mappifier - Cartographie + Système de Notification

La conduite de nuit est très amusante. Mais souvent, cela s'avère être un cauchemar, sous la forme d'animaux traversant la route (surtout ces chats et chiens errants, qui attendent que vous conduisiez près d'eux pour qu'ils puissent traverser !!). J'ai donc pensé à faire quelque chose qui vous avertisse lorsque vous vous approchez de ces endroits vulnérables, afin que vous puissiez conduire plus prudemment.

Le système comporte deux parties: Collecte de données et récupération de données. La première partie prend les données de localisation, c'est-à-dire les endroits où il y a plus de probabilité de croisement d'animaux. Ces données doivent être ajoutées manuellement et sont mises à jour sur une carte. Cette dernière partie prend notre position actuelle, puis la compare avec les données collectées et des notifications ou des avertissements appropriés sont fournis.

Fournitures

Matériel utilisé

Carte de développement WiFi ESP8266

Module GPS Ublox NEO-6M

LED

Bouton-poussoir momentané

Logiciel utilisé

IDE Arduino

Tout éditeur JavaScript

Firebase (pour le stockage et la récupération de données)

Étape 1: L'unité matérielle

Le matériel doit fonctionner de deux manières (modes): 1) Stocker l'emplacement dans la base de données: il s'agit d'une partie importante du processus de collecte de données; l'emplacement récupéré par le module GPS est envoyé à la base de données Firebase via une carte de développement WiFi ESP8266.

2) Fournir des notifications pendant la navigation: Pendant la navigation, l'emplacement actuel est récupéré et envoyé à la base de données. À chaque mise à jour de l'emplacement, la distance entre l'emplacement actuel et ces emplacements (qui ont été stockés pendant le processus de collecte de données) est calculée et récupérée par le module ESP8266 qui avertit ensuite l'utilisateur en fonction de la proximité de l'utilisateur par rapport à ces emplacements stockés.

J'ai ajouté trois LED pour notifier le changement de mode, ainsi qu'une mise à jour réussie de la base de données et un voyant d'avertissement pour notifier la proximité de l'utilisateur à l'emplacement stocké.

Le bouton poussoir permet de mémoriser la localisation en un seul clic (en mode mémorisation/collecte de données) et aussi de basculer entre ces modes.

Alimentation

Initialement, une batterie Lipo de 3,7V 300mAh a été utilisée, mais elle a posé quelques problèmes. Le problème majeur était la réinitialisation de l'ESP8266 (peut-être en raison des pics de courant). De plus, la batterie n'a pas duré beaucoup. Enfin, un powerbank est venu à mon secours.

Étape 2: Circuit

Circuit
Circuit

Étape 3: À propos de Firebase

À propos de Firebase
À propos de Firebase
À propos de Firebase
À propos de Firebase
À propos de Firebase
À propos de Firebase
À propos de Firebase
À propos de Firebase

Firebase est une plate-forme de développement d'applications mobiles et Web appartenant à Google. Il a de nombreuses fonctionnalités, mais ici je n'en utilise que deux, Realtime Database et Cloud Functions.

Pour commencer sur Firebase, 1. Allez d'abord sur la page Web de Firebase.

2. Naviguez maintenant vers la console et cliquez sur créer un nouveau projet.

3. Vous devez fournir un nom de projet ainsi que d'autres détails pour créer un projet.

4. Une fois le projet créé, cliquez sur l'option de base de données dans le volet latéral pour créer une nouvelle base de données.

5. Faites de même pour les fonctions.

Ce sont des étapes générales pour créer un projet, firebase est bien documenté et il existe de nombreuses séries de vidéos youtube pour les débutants, veuillez les parcourir pour en savoir plus.

Étape 4: Base de données en temps réel

Base de données en temps réel
Base de données en temps réel
Base de données en temps réel
Base de données en temps réel

Après avoir créé la base de données, l'étape suivante consiste à voir comment les données de la base de données sont stockées et accessibles. Pour écrire ou lire vers/depuis la base de données, vous devez configurer les règles de la base de données. À des fins de développement, nous pouvons utiliser une règle ouverte afin que toute personne disposant de la référence de la base de données puisse lire/écrire, mais soyez prudent lors de la configuration des règles. La base de données stocke les données au format JSON et est synchronisée avec tous les appareils connectés au base de données. Vous pouvez ajouter des nœuds enfants à l'aide du signe « + », mais les nœuds peuvent également être générés par programme. Toutes les données que nous téléchargeons dans la base de données en mode « magasin » (emplacement de stockage collecté) sont stockées ici en tant que nœuds séparés tandis que les données en mode « notification » (récupération des données lors de la navigation) sont mises à jour à chaque fois (vérifiez l'image).

Étape 5: Configuration des fonctions Firebase

Configuration des fonctions Firebase
Configuration des fonctions Firebase
Configuration des fonctions Firebase
Configuration des fonctions Firebase
Configuration des fonctions Firebase
Configuration des fonctions Firebase

Nous avons besoin de quelque chose pour calculer la proximité de l'emplacement actuel avec les emplacements stockés, et les fonctions déclenchées par la base de données en arrière-plan feraient notre travail. Les fonctions sont écrites en javascript et doivent être déployées sur la firebase.

Vous devez avoir installé node.js sur votre ordinateur.

1) Téléchargez maintenant l'interface de ligne de commande de firebase en utilisant la commande "npm install -g firebase-tools" sur votre invite de commande

2) Maintenant, vous devez vous connecter à firebase en utilisant la commande "firebase login" (vous devez donner votre mot de passe de connexion gmail si vous n'êtes pas déjà connecté)

3)Après cela, accédez à votre répertoire de projet et lancez la fonction avec la commande "firebase init". Vous devrez sélectionner l'option « Fonctions » pour lancer les fonctions Firebase pour votre projet.

4) Maintenant, vous devez aller dans le dossier 'functions' de votre répertoire de projet et trouver le fichier 'index.js'.

5) Éditez le fichier avec un éditeur de texte et éditez le fichier/remplacez le fichier par mappifier_function.txt. (Ce serait effectivement notre fonction)

6) Enfin, déployez votre fonction en utilisant "firebase deploy" sur l'invite de commande.

Vous pouvez vérifier si la fonction est déployée dans le menu des fonctions de votre console firebase

Étape 6: Coder

Code
Code
Code
Code
Code
Code

Pour ESP8266:

La carte se connecte au WiFi et à Firebase à l'aide d'informations d'identification et attend que vous appuyiez sur un bouton-poussoir. Selon la durée d'appui sur le bouton, différents modes sont initiés. En mode de collecte de données (appelons ce mode "magasin"), chaque pression sur un bouton entraînera l'envoi de la position actuelle à la base de données tandis qu'en mode de récupération de données ("mode de notification"), l'emplacement actuel est envoyé à la base de données et la distance est extraite automatiquement de la base de données. J'ai ajouté des LED pour les avertissements (proximité de l'emplacement marqué) et les notifications (comme la localisation GPS, la connexion WiFi, l'écriture réussie de la base de données, le changement de mode, etc.).

Pour la fonction Firebase:

Cette fonction vérifie une écriture sur le nœud « emplacement actuel » de la base de données et calcule la distance entre les emplacements sur la base de données et l'emplacement actuel, puis trouve la plus petite distance qui est ensuite écrite sur le nœud « distance » sur la base de données.

N'oubliez pas d'ajouter vos informations d'identification Wi-Fi et vos informations d'authentification Firebase avant de télécharger votre programme. (Veuillez voir les images). De plus, si vous êtes nouveau sur ESP8266 et pour les coder sur Arduino IDE, reportez-vous à ces derniers.

Étape 7: Étape facultative (construire un boîtier)

Étape facultative (construire une enceinte)
Étape facultative (construire une enceinte)
Étape facultative (construire une enceinte)
Étape facultative (construire une enceinte)
Étape facultative (construire une enceinte)
Étape facultative (construire une enceinte)
Étape facultative (construire une enceinte)
Étape facultative (construire une enceinte)

Afin de rendre la partie matérielle compacte afin qu'elle puisse être montée, j'ai fait un petit boîtier pour les insérer à l'intérieur. Quelques trous ont été faits pour monter les LED et pour connecter le câble USB. Mais l'enceinte finale était au-delà de mes attentes !! Il s'insère parfaitement dans ma paume et se monte très facilement sur la poignée du cycle et sur le volant.

Étape 8: En action…

Voici une petite vidéo démontrant les deux modes (store et notification) avec des LED d'avertissement et de notification.

Étape 9: Aller plus loin…

Aller plus loin…
Aller plus loin…

Ce système peut être utilisé à diverses fins, par exemple, compte tenu du scénario actuel, si vous pouvez obtenir les emplacements de propagation de la maladie et les stocker dans une base de données, des avertissements seront fournis par ce système lorsque vous vous rapprocherez de ces emplacements. Mais je pense sérieusement à obtenir des données sur les croisements d'animaux du monde entier pour rendre les conducteurs prudents et sauver de nombreux animaux des accidents. J'ai créé une page Web simple (mais pas encore hébergée) qui contient toutes les données que j'ai collectées. Ce sont les données que j'ai collectées lors de la marche ou du vélo (chaque fois que je trouve un chat ou un chien sur le bord de la route car ils sont plus enclins à traverser) mais nous avons besoin de beaucoup plus de données pour mettre en œuvre cela.

Je suis assez nouveau dans la création de pages Web (principalement javascript) et d'autres choses et j'aimerais avoir vos suggestions et votre expertise:)

Conseillé: