Table des matières:

Suivi GPS en temps réel : 3 étapes
Suivi GPS en temps réel : 3 étapes

Vidéo: Suivi GPS en temps réel : 3 étapes

Vidéo: Suivi GPS en temps réel : 3 étapes
Vidéo: TRACEUR GPS/GSM - avec zones paramétrables - [PEARLTV.FR] 2024, Novembre
Anonim

Par elizabethnaSuivez plus par l'auteur:

Traqueur Trick-or-Treat Pumpkin Pi
Traqueur Trick-or-Treat Pumpkin Pi
Traqueur Trick-or-Treat Pumpkin Pi
Traqueur Trick-or-Treat Pumpkin Pi
Comment construire un moniteur de température Raspberry Pi
Comment construire un moniteur de température Raspberry Pi
Comment construire un moniteur de température Raspberry Pi
Comment construire un moniteur de température Raspberry Pi
Diffuser des données de Google Sheets vers un tableau de bord
Diffuser des données de Google Sheets vers un tableau de bord
Diffuser des données de Google Sheets vers un tableau de bord
Diffuser des données de Google Sheets vers un tableau de bord

Dans ce tutoriel, nous allons vous montrer comment effectuer un suivi de localisation en temps réel à l'aide d'un BerryGPS-GSM, d'un Raspberry Pi Zero et d'un état initial. Nous enverrons la longitude, la latitude et la vitesse via 3G avec le BerryGPS-GSM à l'état initial.

Fournitures

  • Raspberry Pi Zéro
  • BerryGPS-GSM
  • Etat initial

Étape 1: État initial

Etat initial
Etat initial

Nous voulons diffuser toutes nos données de longitude, latitude et vitesse vers un service cloud et faire en sorte que ce service transforme nos données en un joli tableau de bord auquel nous pouvons accéder depuis notre ordinateur portable ou appareil mobile. Nous utiliserons l'état initial.

Étape 1: Inscrivez-vous pour le compte d'État initial

Accédez à https://iot.app.initialstate.com et créez un nouveau compte. Vous bénéficiez d'un essai gratuit de 14 jours et toute personne disposant d'une adresse e-mail edu peut s'inscrire à un plan étudiant gratuit.

Étape 2: Installez l'ISStreamer

Installez le module Python Initial State sur votre Raspberry Pi. Dans l'invite de commande, exécutez la commande suivante:

$ cd /home/pi/

$ \curl -sSL https://get.initialstate.com/python -o - | sudo bash

Étape 3: Faites de l'Automagic

Après l'étape 2, vous verrez quelque chose de similaire à la sortie suivante à l'écran:

pi@raspberrypi ~ $ \curl -sSL https://get.initialstate.com/python -o - | sudo bashPassword: Début de l'installation facile d'ISStreamer Python ! Cela peut prendre quelques minutes à installer, prenez un café:) Mais n'oubliez pas de revenir, j'aurai des questions plus tard ! Trouvé easy_install: setuptools 1.1.6 Pip trouvé: pip 1.5.6 de /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) version majeure de pip: 1 version mineure de pip: 5 ISStreamer trouvé, mise à jour… Exigence déjà à jour: ISStreamer dans Library/Python/2.7/site-packages Nettoyage… Voulez-vous obtenir automatiquement un exemple de script ? [o/N] Où voulez-vous enregistrer l'exemple ? [par défaut:./is_example.py] Veuillez sélectionner l'application Initial State que vous utilisez: 1. app.initialstate.com 2. [NOUVEAU !] iot.app.initialstate.com Entrez le choix 1 ou 2: Entrez iot.app Nom d'utilisateur.initialstate.com: Entrez le mot de passe iot.app.initialstate.com:

Lorsqu'on vous demande si vous souhaitez obtenir automatiquement un exemple de script, mettez "y" pour oui et appuyez sur Entrée pour enregistrer votre script dans l'emplacement par défaut. Pour la question sur l'application que vous utilisez, sélectionnez 2 (sauf si vous vous êtes inscrit avant novembre 2018) et entrez votre nom d'utilisateur et votre mot de passe.

Étape 4: Exécutez l'exemple de script

Exécutez le script de test pour vous assurer que nous pouvons créer un flux de données sur votre compte Initial State. Écrivez la commande suivante:

$ python is_example.py

Étape 5: Exemple de données

Revenez à votre compte Initial State dans votre navigateur Web. Un nouveau compartiment de données appelé "Python Stream Example" aurait dû s'afficher à gauche dans votre étagère de journaux (vous devrez peut-être actualiser la page). Cliquez sur ce bucket pour afficher vos données.

Étape 2: BerryGPS-GSM & Raspberry Pi Zero

BerryGPS-GSM & Raspberry Pi Zero
BerryGPS-GSM & Raspberry Pi Zero

Si vous utilisez un BerryGPS-GSM, vous pouvez suivre ce guide pour faire fonctionner le GPS et faire en sorte que votre Pi se connecte via 3G à l'aide de PPP.

Le guide lié montre également comment faire en sorte que votre Pi se connecte automatiquement au réseau de l'opérateur lors du démarrage. Vous en aurez besoin si vous prévoyez d'effectuer un suivi à distance.

Installer des bibliothèques

Vous devrez installer les bibliothèques suivantes:

$ sudo apt-get install python-pip

$ sudo pip installer pynmea2 $ sudo pip installer ISStreamer

Script Python principal

Ici, nous allons créer le script principal qui diffusera les données GPS vers l'état initial. Le code ci-dessous crée un thread séparé qui est utilisé pour surveiller le port série. Ceci est nécessaire car nous avons une pause dans la boucle principale. La pause est là pour limiter la quantité de données que nous téléchargeons sur la 3G.

Si nous faisions tout dans le même thread pendant la pause, le tampon série se remplirait (c'est FIFO) et lorsque nous obtiendrons la prochaine valeur du tampon, il sera vieux de quelques secondes. Cela se produit à chaque boucle et, éventuellement, les données seront en retard de minutes ou d'heures.

Pour créer le script python et ouvrir l'éditeur de texte, entrez la commande suivante:

$ nano GPStracker.py

Copiez et collez le code suivant dans l'éditeur de texte. Vous devrez entrer votre clé d'accès à l'état initial à la ligne 11, où il est indiqué « ENTRER VOTRE CLÉ D'ACCÈS »:

# ! /usr/bin/pythonfrom gps import * from time import * import threading import datetime from ISStreamer. Streamer import Streamer gpsd = None #Setup global variable #Setup the Initial State stream, entrez votre clé d'accès ci-dessous streamer = Streamer(bucket_name="GPS_Tracker ", bucket_key="GPS_TRACKER", access_key="ENTRER VOTRE CLÉ D'ACCÈS") classe GPSDcollector(threading. Thread): def _init_(self, threadID): threading. Thread._init_(self) self.threadID = threadID global gpsd #bring dans la portée gpsd = gps(mode=WATCH_ENABLE) #Start GPSD self.running = True #Commencer à exécuter ce thread def run(self): global gpsd while gpsdThread.running: gpsd.next() if _name_ == '_main_': gpsdThread = GPSDcollector(1) # crée un thread pour collecter des données essayez: gpsdThread.start() # démarrez-le avec True: imprimez 'GPS ', gpsd.utc, ' CPU time->', datetime.datetime.now().time(), if (gpsd.fix.longitude0) et (gpsd.fix.longitude'nan'): streamer.log("Location", "{lat}, {lon}".format(lat=gpsd.fix.latitude, lon=gpsd.fix.longitu de)) streamer.log("speed", gpsd.fix.speed) print ' lat ', gpsd.fix.latitude, print ' lon ', gpsd.fix.longitude, print ' speed ', gpsd.fix.speed sleep (5) sauf (KeyboardInterrupt, SystemExit): #lorsque vous appuyez sur ctrl+c, imprimez "\nKilling Thread…" gpsdThread.running = False gpsdThread.join() # attendez que le thread ait terminé ce qu'il fait imprimer "Terminé.\nSortie."

Enregistrez et quittez l'éditeur de texte en appuyant sur CTRL + X, Y, entrez.

Lancer le script automatiquement au démarrage

Si vous effectuez une surveillance à distance, vous souhaitez que le script s'exécute au démarrage. Pour ce faire, nous allons créer un petit script qui lancera le programme python principal. Saisissez la commande suivante:

$ nano GPStrackerStart.sh

Copiez les lignes dans l'éditeur de texte:

#!/bin/bash

dormir 15 python /home/pi/GPStracker.py &

La pause ci-dessus est là pour donner au Pi le temps de démarrer et de se connecter via PPP.

Rendez le script exécutable:

$ chmod +x ~/GPStrackerStart.sh

Nous utiliserons cron pour démarrer le script à chaque démarrage du Pi:

$ crontab -e

Ajoutez la ligne ci-dessous en bas:

@reboot /home/pi/GPStrackerStart.sh &

Étape 3: Tableau de bord de l'emplacement et de la vitesse

Tableau de bord de localisation et de vitesse
Tableau de bord de localisation et de vitesse

Maintenant que votre projet est opérationnel, les données doivent être envoyées à l'état initial. Vous aurez des données GPS et des données de vitesse. Vous pouvez utiliser les données GPS dans une tuile de cartes pour suivre l'emplacement. Pour la carte Tile, assurez-vous de cocher la case Draw Path afin que votre suivi de localisation soit mappé comme le tableau de bord ci-dessus. Vous pouvez mettre vos données de vitesse dans un graphique linéaire pour voir la vitesse au fil du temps.

Conseillé: