- Comment ça fonctionne:
- Composants requis:
- Explication du circuit:
- Conversion de la minute du degré GPS au degré décimal des coordonnées:
- Explication de la programmation:
Le système de suivi des véhicules devient très important de nos jours, en particulier en cas de vol de véhicules. Si vous avez un système GPS installé dans votre véhicule, vous pouvez suivre l'emplacement de votre véhicule et cela aide la police à suivre les véhicules volés. Auparavant, nous avons construit un projet similaire dans lequel les coordonnées de localisation du véhicule sont envoyées sur un téléphone portable, vérifiez ici `` Tracker de véhicule basé sur Arduino utilisant le GPS et le GSM.
Ici, nous construisons une version plus avancée du système de suivi de véhicule dans lequel vous pouvez suivre votre véhicule sur Google Maps. Dans ce projet, nous enverrons les coordonnées de localisation au serveur local et il vous suffit d'ouvrir une `` page Web '' sur votre ordinateur ou votre mobile, où vous trouverez un lien vers Google Maps avec les coordonnées de localisation de vos véhicules. Lorsque vous cliquez sur ce lien, il vous emmène sur Google Maps, indiquant l'emplacement de votre véhicule. Dans ce système de suivi de véhicule utilisant Google Maps, le module GPS est utilisé pour obtenir les coordonnées de localisation, le module Wi-Fi pour continuer à envoyer des données à l'ordinateur ou au mobile via Wi-Fi et Arduino est utilisé pour faire communiquer le GPS et le Wi-Fi.
Comment ça fonctionne:
Pour suivre le véhicule, nous devons trouver les coordonnées du véhicule en utilisant le module GPS. Le module GPS communique en permanence avec le satellite pour obtenir les coordonnées. Ensuite, nous devons envoyer ces coordonnées du GPS à notre Arduino en utilisant UART. Et puis Arduino extrait les données requises des données reçues par GPS.
Avant cela, Arduino envoie une commande au module Wi-Fi ESP8266 pour la configuration et la connexion au routeur et l'obtention de l'adresse IP. Après cela, Arduino initialise le GPS pour obtenir les coordonnées et l'écran LCD affiche un `` message de rafraîchissement de la page ''. Cela signifie que l'utilisateur doit actualiser la page Web. Lorsque l'utilisateur actualise la page Web, Arduino obtient les coordonnées GPS et les envoie à la page Web (serveur local) via Wi-Fi, avec des informations supplémentaires et un lien Google Maps. Maintenant, en cliquant sur ce lien, l'utilisateur redirige vers Google Maps avec la coordonnée, puis il / elle obtiendra l'emplacement actuel du véhicule au point rouge sur Google Maps. L'ensemble du processus est correctement montré dans la vidéo à la fin.
Composants requis:
- Arduino UNO
- Module Wi-Fi ESP8266
- Module GPS
- Cable USB
- Fils de connexion
- Portable
- Source de courant
- Écran LCD 16x2
- Planche à pain
- Routeur Wi-Fi
Explication du circuit:
Le circuit pour ce `` suivi de véhicule à l'aide du projet Google Maps '' est très simple et nous avons principalement besoin d'un Arduino UNO, d'un module GPS et d'un module Wi-Fi ESP8266. Il y a un écran LCD 16x2 connecté en option pour afficher l'état. Cet écran LCD est connecté à 14-19 (A0-A5) broches d'Arduino.
Ici, la broche Tx du module GPS est directement connectée à la broche numérique numéro 10 d'Arduino. En utilisant la bibliothèque série logicielle ici, nous avons autorisé la communication série sur les broches 10 et 11, et les avons respectivement rendus Rx et Tx et laissé la broche Rx du module GPS ouverte. Par défaut, les broches 0 et 1 d'Arduino sont utilisées pour la communication série, mais en utilisant la bibliothèque SoftwareSerial, nous pouvons autoriser la communication série sur d'autres broches numériques de l'Arduino. Un adaptateur 12 volts est utilisé pour alimenter le module GPS. Passez par ici pour apprendre «Comment utiliser le GPS avec Arduino» et obtenir les coordonnées.
Les broches Vcc et GND du module Wi-Fi ESP8266 sont directement connectées à 3,3 V et GND d'Arduino et CH_PD est également connecté à 3,3 V. Les broches Tx et Rx de l'ESP8266 sont directement connectées aux broches 2 et 3 d'Arduino. La bibliothèque série logicielle est également utilisée ici pour permettre la communication série sur les broches 2 et 3 d'Arduino. Nous avons déjà couvert l'interfaçage du module Wi-Fi ESP8266 avec Arduino en détail, veuillez également passer par «Comment envoyer des données d'Arduino vers une page Web en utilisant le WiFi» avant de faire ce projet. Voici l'image de l'ESP8266:
L'ESP8266 a deux LED, l'une est rouge, pour indiquer l'alimentation et la seconde est bleue qui est la LED de communication de données. La LED bleue clignote lorsque ESP envoie des données via sa broche Tx. De plus, ne connectez pas l'ESP à une alimentation +5 volts, sinon votre appareil pourrait être endommagé. Ici, dans ce projet, nous avons sélectionné un débit de 9600 bauds pour toutes les communications UART.
L'utilisateur peut également voir la communication entre le module Wi-Fi ESP8266 et Arduino, sur le moniteur série, à la vitesse de transmission de 9600:
Vérifiez également la vidéo à la fin de ce projet, pour le processus de travail détaillé.
Conversion de la minute du degré GPS au degré décimal des coordonnées:
Le module GPS reçoit les coordonnées du satellite au format Degré Minute (jjmm.mmmm) et ici nous avons besoin du format Degré décimal pour rechercher l'emplacement sur Google Maps. Nous devons donc d'abord convertir les coordonnées du format Degré Minute en Format Degré Décimal en utilisant une formule donnée.
Supposons que 2856,3465 (jjmm.mmmm) soit la latitude que nous recevons du module GPS. Les deux premiers nombres sont maintenant des degrés et les autres sont des minutes.
Donc 28 est le degré et 56,3465 est la minute.
Maintenant, ici, pas besoin de convertir la partie Degré (28), mais seulement besoin de convertir la partie Minute en Degré décimal en divisant 60:
Coordonnée de degré décimal = degré + minute / 60
Coordonnée de degré décimal = 28 + 56,3465 / 60
Coordonnée de degré décimal = 28 + 0,94
Coordonnée de degré décimal = 28,94
Le même processus sera effectué pour les données de longitude. Nous avons converti les coordonnées de degré minute en degré décimal en utilisant les formules ci-dessus dans Arduino Sketch:
float minut = lat_minut.toFloat (); minute = minute / 60; float degree = lat_degree.toFloat (); latitude = degré + minute; minut = longue_minute.toFloat (); minute = minute / 60; degré = long_degree.toFloat (); logitude = degré + minute;
Explication de la programmation:
Dans ce code, nous avons utilisé la bibliothèque SerialSoftware pour interfacer l'ESP8266 et le module GPS avec Arduino. Ensuite, nous avons défini différentes broches pour les deux et initialiser UART avec un débit de 9600 bauds. Bibliothèque LiquidCrystal incluse pour l'interface LCD avec Arduino.
#comprendre
Après cela, nous devons définir ou déclarer une variable et une chaîne à des fins différentes.
Chaîne webpage = ""; int i = 0, k = 0; int gps_status = 0; Nom de la chaîne = "
1. Nom: Votre nom
"; // 22 String dob ="2. Date de naissance: 12 février 1993
"; // 21 Numéro de chaîne ="4. Numéro de véhicule: RJ05 XY 4201
"; // 29 String cordinat ="Coordonnées:
"; // 17 String latitude =" "; String logitude =" "; String gpsString =" "; char * test =" $ GPGGA ";Ensuite, nous avons créé des fonctions à des fins différentes comme:
Fonction pour obtenir des données GPS avec des coordonnées:
void gpsEvent () {gpsString = ""; while (1) {while (gps.available ()> 0) {char inChar = (char) gps.read (); gpsString + = inChar; if (i <7) {if (gpsString! = test) {i = 0;……………….
Fonction pour extraire des données de la chaîne GPS et convertir ces données au format de degré décimal à partir du format décimal minute, comme expliqué précédemment.
void coordonnée2dec () {String lat_degree = ""; pour (i = 18; i <20; i ++) lat_degree + = gpsString; Chaîne lat_minut = ""; pour (i = 20; i <28; i ++) lat_minut + = gpsString;……………….
Fonction d'envoi de commandes à l'ESP8266 pour le configurer et le connecter avec WIFI.
void connect_wifi (String cmd, int t) {int temp = 0, i = 0; while (1) {Serial.println (cmd); Serial1.println (cmd); while (Serial1.available ()> 0)……………….
Fonction void show_coordinate () pour afficher les coordonnées sur l'écran LCD et Serial Monitor et fonction void get_ip () pour obtenir l'adresse IP.
Fonction Void Send () pour créer une chaîne d'informations qui doit être envoyée à la page Web en utilisant ESP8266 et void sendwebdata () Fonction pour envoyer une chaîne d'informations à la page Web en utilisant UART.
Dans la fonction de boucle vide , Arduino attend en permanence la page Web du formulaire de demande (page Web rafraîchissante).
boucle vide () {k = 0; Serial.println ("Veuillez actualiser votre page"); lcd.setCursor (0,0); lcd.print ("Veuillez actualiser"); lcd.setCursor (0,1); lcd.print ("Votre page Web.."); tandis que (k <1000)……………….
Vérifiez le code complet ci-dessous.