LTE Arduino GPS Tracker + Tableau de bord IoT (Partie 1): 6 étapes (avec photos)

LTE Arduino GPS Tracker + Tableau de bord IoT (Partie 1): 6 étapes (avec photos)

Table des matières:

Anonim

introduction

Quoi de neuf les gars! Cet Instructable fait suite à mon premier Instructable sur l’utilisation du bouclier Botletics LTE / NB-IoT pour Arduino. Si vous ne l’avez pas déjà fait, lisez-le afin d’obtenir un bon aperçu de l’utilisation du bouclier et de son contenu.. Dans ce tutoriel, je me concentrerai sur l'enregistrement de données IoT, et plus particulièrement sur le suivi GPS et la température, et vous fournirai tout le code et toutes les instructions dont vous aurez besoin pour prendre la route et le tester!

Cet Instructable est principalement axé sur le bouclier LTE que j'ai personnellement conçu et construit, mais tout ici (y compris la bibliothèque Github Arduino) devrait fonctionner sur les modules 2G et 3G de SIMCom, comme le SIM800 / 808/900/5320, car il version de la bibliothèque Adafruit FONA. Indépendamment du matériel, le concept est exactement le même et vous pouvez faire beaucoup de choses intéressantes, y compris l'enregistrement de données de capteurs, la surveillance météorologique à distance, le suivi automatique des vols par karma par GPS, etc.

Provisions:

Étape 1: Rassembler les pièces

La liste est la même que dans mon premier tutoriel et est très simple!

  • Arduino Uno, Mega ou Leonardo. Sinon, vous pouvez utiliser n’importe quel autre microcontrôleur 3.3V ou 5V, mais vous devrez connecter les broches à l’extérieur.
  • Kit de blindage Botletics SIM7000 (fourni avec le bouclier, une double antenne LTE / GPS uFL et des embases femelles superposées). Assurez-vous de suivre ce didacticiel pour sélectionner une version appropriée!
  • Hologramme carte SIM. La première carte SIM (appelée carte SIM "développeur") est totalement gratuite et fournie avec 1 Mo de données par mois! Aux États-Unis, vous utiliserez probablement la carte SIM Hologram sur le réseau Verizon. Vous pouvez également le récupérer à côté du bouclier Botletics si cela vous convient mieux.
  • Batterie LiPo de 3,7 V (capacité 1000mAH ou supérieure recommandée).
  • Câble USB pour programmer votre Arduino ou pour l’alimenter.

Pour le test de suivi GPS!

  • Vous pouvez utiliser un adaptateur USB de voiture pour alimenter votre Arduino tout en testant le bouclier sur la route.
  • Vous pouvez également utiliser une batterie (7-12 V) pour alimenter l’Arduino via les broches VIN et GND.

Étape 2: Assemblée physique

Maintenant que vous avez toutes vos pièces, voici un bref récapitulatif de ce que vous devez faire pour configurer votre matériel:

  • Souder les en-têtes femelles empilables sur le bouclier. Voir ce tutoriel sur la façon de le faire.
  • Branchez le bouclier sur l’Arduino en veillant à aligner toutes les broches pour ne pas les abîmer!
  • Insérez la carte SIM comme indiqué sur l'image. Les contacts métalliques sont tournés vers le bas et notez l'emplacement de l'encoche dans le coin.
  • Branchez la batterie LiPo au connecteur JST sur le blindage
  • Branchez votre Arduino à votre ordinateur à l’aide d’un câble USB. Vous remarquerez peut-être que le voyant d'alimentation vert du bouclier ne s'allume pas. C'est tout à fait normal, car la broche PWRKEY du bouclier doit être pulsée légèrement pendant un court instant pour pouvoir l'activer. L'exemple d'esquisse Arduino dans la section suivante s'en chargera pour vous!
  • Fixez l’antenne double LTE / GPS aux connecteurs uFL situés sur le bord droit du blindage. Notez que les fils se croisent, alors ne branchez pas les mauvais!
  • Vous êtes prêt pour le logiciel!

Étape 3: Configuration Arduino et test de périphérique

Configuration IDE Arduino

Si vous ne l'avez pas déjà fait, veuillez suivre les étapes "Configuration d'Arduino IDE" et "Exemple Arduino" du produit principal Instructable pour vous assurer que votre carte fonctionne correctement. Dans ces instructions, vous devrez télécharger la bibliothèque sur la page Github et ouvrir l'exemple de code "LTE_Demo". Après avoir suivi ces instructions, vous devez avoir testé la connexion réseau, le GPS et la publication des données sur dweet.io.

Exemple d'esquisse IoT

Maintenant que vous avez testé les fonctionnalités principales de votre bouclier, chargez l'esquisse "IoT_Example" dans Arduino IDE. Vous pouvez également le trouver ici sur Github. Téléchargez ce code sur votre Arduino et ouvrez le moniteur série. Vous devriez voir l’Arduino trouver le module SIM7000, vous connecter au réseau cellulaire, activer le GPS et continuer à essayer jusqu’à ce qu’il obtienne un correctif sur place, puis envoyez les données sur dweet.io. Tout ceci devrait fonctionner sans changer aucune ligne du code, en supposant que vous utilisiez le bouclier LTE et la carte SIM hologramme.

Par défaut, la ligne suivante définit le taux d’échantillonnage (enfin, le délai entre les publications).

#define samplingRate 30 // Le temps entre les publications, en secondes

Si cette ligne est laissée sans commentaires, l’Arduino publiera des données, en retardera 30, en répétant l’enregistrement, répétera, etc. Pendant les 30 secondes, vous pourrez faire des choses comme mettre l’Arduino en mode basse consommation et en faire des choses fantaisistes, mais les choses simples, je vais simplement utiliser la fonction delay () pour suspendre l'opération. Si vous commentez cette ligne, l'Arduino publiera des données puis passera directement en mode veille à consommation réduite jusqu'à ce que vous appuyiez sur le bouton de réinitialisation de votre Arduino. Ceci est utile si vous testez quelque chose et que vous ne voulez pas graver vos précieuses données gratuites (même si honnêtement, chaque message n’utilise pratiquement rien) ou que vous ayez un circuit externe pour réinitialiser l’Arduino (555 heures? Interruption RTC? Interruption de l’accéléromètre? Capteur de température) interrompre? Penser en dehors de la boîte!). En fait, dans le didacticiel Burgalert 7000, je montre comment utiliser un détecteur de mouvement PIR pour réveiller le microcontrôleur.

La ligne suivante détermine si le bouclier s’éteindra après la publication des données ou restera activé. Vous pouvez opter pour l'ancien choix en supprimant la mise en commentaire de la ligne si vous n'échantillonnez qu'une seule fois, mais si vous avez un taux d'échantillonnage relativement élevé, vous voudrez laisser la ligne commentée de manière à ce que le bouclier reste activé et ne soit pas masqué. pour réinitialiser, réactivez le GPRS et le GPS, etc. Lorsque le bouclier est laissé, il est capable de publier très rapidement!

// # define turnOffShield // Désactive le bouclier après la publication des données

N'oubliez pas non plus que cet exemple extrait automatiquement le numéro IMEI spécifique au module et globalement unique du SIM7000 et l'utilise comme ID de périphérique (ou "nom" si vous préférez) pour identifier le périphérique lorsqu'il enregistre des données sur dweet.io. Tu peux changer ça si tu veux, alors je pensais juste te le faire savoir:)

Pour vérifier si vos données sont effectivement envoyées à dweet.io, entrez simplement les informations appropriées et copiez / collez l’URL dans n’importe quel navigateur:

dweet.io/get/latest/dweet/for/{deviceID}

où {deviceID} doit être remplacé par le numéro IMEI qui est imprimé sur le moniteur série au début, juste après que l'Arduino le trouve. Après avoir entré cette URL dans votre navigateur, vous devriez voir une réponse JSON comme celle-ci:

{"this": "a réussi", "par": "obtenir", "le": "dweets", "avec": {"chose": "112233445566778", "créé": "2017-12-28T23: 32: 39.803Z "," content ": {" lat ": 11.223344," long ": - 55.667788," vitesse ": 10," tête ": 75," alt ": 330.7," temp ": 21.2," batt ": 3630}}}

En regardant le "contenu", vous devriez voir la latitude, la longitude de votre position, votre vitesse (en kilomètres par heure), votre direction (degrés, 0 degré étant le nord), votre altitude (mètres), votre température (* C, mais libre de convertir dans le code), et la tension d'alimentation en milli-Volts (qui est VBAT, la tension de la batterie). Pour plus d'informations sur la chaîne de données NMEA, reportez-vous à la page 149 du manuel de commande de SIM7000 AT.

Une fois que vous avez vérifié que votre configuration envoie correctement des données à dweet, configurons le tableau de bord pour afficher toutes nos données sur une belle interface!

Étape 4: Configuration de Freeboard.io

Pour ce didacticiel, nous utiliserons freeboard.io, un tableau de bord IoT vraiment génial qui peut se connecter à de nombreuses plates-formes cloud, telles que PubNub et dweet, ainsi qu’à d’autres fonctionnalités telles que JSON et MQTT. Comme vous l'avez probablement deviné, nous utiliserons également dweet.io, utilisé dans l'exemple de code de la section précédente. Il est important de noter que le fait de faire glisser des volets dans freeboard.io ne semble pas fonctionner dans Chrome. Vous devez donc utiliser Firebox ou Microsoft Edge. Si vous ne le faites pas, il peut s'agir d'un véritable "volet" pour réorganiser les éléments sur votre écran!

Configuration du compte et de l'appareil

  • La première chose à faire est de créer un compte en cliquant sur le bouton rouge "Démarrer maintenant" sur la page d'accueil de freeboard.io, d'entrer les informations d'identification et de cliquer sur "Créer mon compte". Vous recevrez alors une notification par courrier électronique confirmant votre nouveau compte.
  • Maintenant, cliquez sur "Connexion" en haut à droite de la page d'accueil et après vous être connecté, vous devriez voir vos "freeboards", qui ne sont que des tableaux de bord que vous avez configurés pour vos projets. Évidemment, si le compte est nouveau, vous ne verrez rien ici. Entrez simplement un nouveau nom de projet et cliquez sur "Créer un nouveau" en haut à droite. Cela vous amènera ensuite à un tableau de bord vide dans lequel vous pourrez configurer l'interface à votre guise. En franc-bord, vous pouvez configurer divers "panneaux", et chaque panneau peut avoir un ou plusieurs "widgets", tels que des graphiques, des cartes, des jauges, etc. qui affichent vos données d’une manière ou d’une autre.
  • La première chose à faire est de configurer la source de données actuelle, à savoir votre bouclier Arduino + LTE. Pour ce faire, cliquez sur "AJOUTER" en haut à droite sous "Sources de données". Ensuite, sélectionnez "Dweet.io" et entrez le nom de votre choix dans le champ "Nom". Cependant, assurez-vous que sous le champ "Thing Name" vous entrez le numéro IMEI du bouclier au lieu de tout nom arbitraire, car c'est ce que le franc-bord utilisera pour extraire les données de dweet.
  • Après avoir cliqué sur "Enregistrer", votre appareil devrait apparaître sous "Sources de données", ainsi que la dernière fois où il a envoyé des données au serveur. Vous pouvez également cliquer sur le bouton d'actualisation pour rechercher les dernières valeurs, mais le franc-bord se mettra à jour tout seul et vous ne devriez normalement pas avoir à utiliser ce bouton.

Configuration du tableau de bord

Voyons maintenant comment configurer les cloches et les sifflets que vous voulez voir sur votre écran!

  • Pour ajouter un volet, cliquez sur le bouton "AJOUTER UN PANIER" en haut à gauche et vous verrez s'afficher une petite fenêtre à l'écran. Cependant, il n'y a encore rien ici car nous n'avons ajouté aucun widget!
  • Pour ajouter un widget, cliquez sur le petit bouton "+" dans le volet. Cela fera apparaître un menu déroulant avec diverses options de widgets. Puisque nous allons faire un suivi GPS, choisissons le widget "Google Map". Vous devriez alors voir deux champs, la latitude et la longitude. Afin de les remplir correctement, votre appareil doit déjà avoir été posté sur dweet. En supposant que ce soit le cas, vous devriez pouvoir cliquer sur "+ Source de données", cliquer sur la source de données ("SIM7000 GPS Tracker"), puis sur "lat", nom de la variable utilisée par le bouclier lors de la publication sur dweet. Répétez la procédure pour le champ de longitude et cliquez sur le curseur situé en bas si vous souhaitez que la carte trace des lignes entre les points de données pour indiquer votre emplacement.
  • Maintenant, vous devriez voir une petite carte de votre emplacement approximatif! Pour vérifier si la carte fonctionne, essayez de modifier votre latitude / longitude GPS actuelle en une valeur légèrement différente en modifiant, par exemple, le premier chiffre après le point décimal des valeurs lat / longue de l'URL dweet imprimée sur le moniteur série de Arduino IDE lorsque le bouclier a publié des données. Après les avoir modifiés, copiez et collez l'URL et exécutez-le dans votre navigateur.

dweet.io/dweet/for/112233445566778?lat=11.223344&long=-55.667788&speed=0&head=10&alt=324.8&temp=22.88&batt=3629

  • Maintenant, revenez au franc-bord et vous devriez voir que cela représente graphiquement votre emplacement modifié et trace une ligne orange entre les points! Des trucs cool hein? Je pense donc que vous comprenez que notre traceur GPS enverra les données de localisation à Dweet pour que vous puissiez les voir au franc-bord en temps réel ou après la fin de votre aventure.

Extras

Comme notre petit GPS Tracker envoie non seulement des données lat / long, mais également de l'altitude, de la vitesse, du cap et de la température, ajoutons quelques widgets supplémentaires pour rendre notre tableau de bord plus coloré!

  • Commençons par ajouter un nouveau volet, puis pour ajouter une jauge dans le nouveau volet, cliquez sur le bouton "+" dans le volet et sélectionnez "Jauge". Comme auparavant, utilisez la source de données et sélectionnez "Vitesse" comme données que nous souhaitons extraire pour cette jauge. Vous devriez alors voir une belle jauge sur votre tableau de bord!
  • Répétez cette opération pour les valeurs d'altitude et de température.
  • Maintenant pour le titre ajoutons un "Pointer" à la place. Il s’agit essentiellement d’une boussole, car elle part du haut (nord) à 0 degré et tourne dans le sens des aiguilles d’une montre pour les titres positifs. Perfecto!
  • Pour changer la taille du volet, survolez le volet qui contient la carte et vous devriez voir un petit symbole représentant une clé en haut à droite. Cliquez dessus et entrez un titre pour le volet et entrez "2" sous "Colonnes" pour augmenter la largeur du volet.
  • Pour changer les emplacements des vitres, faites-les simplement glisser! Vous pouvez également expérimenter l'ajout d'un «graphique sparkline», qui consiste en principe en un graphique à courbes afin que vous puissiez voir non seulement les données les plus récentes, mais également les données historiques.

Amusez-vous et arrangez-vous à votre guise, car nous sommes prêts à partir en excursion!

Étape 5: test

Pour tester votre configuration, je vous conseillerais de définir une durée d'échantillonnage inférieure, par exemple 10-20, afin de pouvoir capturer votre trajet avec une résolution plus élevée. Je laisserais aussi la variable "turnOffShield" commentée afin que le bouclier ne s'endorme pas. Cela lui permet d'afficher des données en succession rapide.

Après avoir téléchargé le code sur votre Arduino, procurez-vous une batterie (7-12 V) pour alimenter l’Arduino ou branchez simplement l’Arduino à l’aide d’un adaptateur USB de voiture. Vous aurez également besoin d'une batterie LiPo de 3,7 V branchée sur le bouclier, comme mentionné précédemment. le bouclier montré dans l'image ci-dessus est une ancienne version et n'avait pas de support de batterie LiPo, mais il est maintenant nécessaire sur toutes les versions plus récentes.

Ensuite, ouvrez le franc-bord quelque part pour que vous puissiez voir les résultats à votre retour! Une fois que vous avez branché l'Arduino, vous êtes prêt à partir! Commencez à conduire, prenez un café, rentrez chez vous et vous devriez voir les données tracées au franc-bord. Si vous le souhaitez vraiment (je ne le recommande pas en conduisant …), vous pouvez afficher les données de franc-bord sur votre téléphone en temps réel pendant que votre ami conduit le véhicule. Truc amusant!

Étape 6: Résultats

Pour ce test, mon père et moi sommes allés chercher des tambours de poulet chez Trader Joe's (omnomnomnom …) et nous avons recueilli des données assez précises. J'avais l'appareil envoyer des données toutes les 10 secondes et la vitesse maximale du voyage était d'environ 92 km / h, ce qui est assez précis car nous avons gardé un œil sur l'indicateur de vitesse tout le temps. Le bouclier LTE fait définitivement très bien son travail et envoie les données au cloud très rapidement. Jusqu'ici tout va bien!

Cependant, la moins bonne nouvelle est peut-être que le widget de carte sur le franc-bord n’est pas aussi performant que je le pensais au départ. Il ne vous permet pas de déplacer l’emplacement de votre souris et il reste centré sur le dernier emplacement. Il est donc idéal pour un traceur GPS de voiture, mais pas si vous souhaitez analyser un trajet complet avec tous les points de données, en particulier si C'était un long voyage.

Dans ce tutoriel, nous avons appris à utiliser le bouclier LTE en tant que traqueur GPS et enregistreur de données et à visualiser rapidement les données sur freeboard.io. Maintenant, utilisez votre imagination et appliquez-la dans votre propre projet. Vous pouvez même ajouter plus de boucliers et transformer cette chose en un enregistreur de données solaire de faible puissance! (J'aurais peut-être l'intention de faire un tutoriel à ce sujet à l'avenir!). En raison des limitations de la carte de franc-bord, je prévois également de créer un tout nouveau tutoriel sur la création de votre propre application Android qui récupère les données de dweet et vous permettra de tracer graphiquement l'emplacement du suivi sur Google Maps avec Faites une pause et arrêtez les fonctionnalités de votre voyage! Restez à l'écoute!

  • Si vous avez aimé ce projet, donnez-lui s'il vous plaît un cœur!
  • Si vous avez des questions, des commentaires, des suggestions sur un nouveau tutoriel ou si vous avez essayé ce projet vous-même, veuillez commenter ci-dessous!
  • Suivez-moi ici sur Instructables, abonnez-vous à ma chaîne YouTube ou suivez-moi sur Twitter pour rester au courant de mes derniers projets Arduino! Je suis un jeune ingénieur passionné par le partage de ce que j'ai appris. Il y aura donc certainement d'autres tutoriels bientôt!
  • Si vous souhaitez prendre en charge ce que je fais en partageant du matériel open source et en le documentant de manière approfondie à des fins pédagogiques, envisagez l'achat de votre propre bouclier sur Amazon.com, avec lequel vous pourrez jouer!