Table des matières:

Tracker GPS en temps réel fait maison (SIM800L, Ublox NEO-6M, Arduino): 8 étapes
Tracker GPS en temps réel fait maison (SIM800L, Ublox NEO-6M, Arduino): 8 étapes

Vidéo: Tracker GPS en temps réel fait maison (SIM800L, Ublox NEO-6M, Arduino): 8 étapes

Vidéo: Tracker GPS en temps réel fait maison (SIM800L, Ublox NEO-6M, Arduino): 8 étapes
Vidéo: Branchement d'un GPS à une carte arduino 2024, Juillet
Anonim
Traqueur GPS en temps réel fait maison (SIM800L, Ublox NEO-6M, Arduino)
Traqueur GPS en temps réel fait maison (SIM800L, Ublox NEO-6M, Arduino)

Vous avez donc un module GSM qui traîne comme moi ? Un traceur GPS aussi ?

On pense pareil!

Dans ce instructables, je vais essayer de vous guider comment atteindre votre objectif du point de vue d'un débutant.

Comme je n'avais aucune connaissance préalable en ingénierie électrique (pour être honnête, le projet n'en a pas besoin de grand-chose, mais non) et que je ne savais pas comment créer un appareil qui pompe des données en temps réel vers un serveur Web, j'ai rencontré de nombreux problèmes. Pourtant, j'ai finalement réussi à faire fonctionner les choses.

Ainsi, dans ce didacticiel, je souhaite souligner les erreurs qu'un débutant peut commettre et développer le projet en conséquence.

N'oubliez pas: soyez toujours prudent lorsque vous travaillez avec de l'électricité !

ATTENTION: je ne suis pas professionnel. Le code n'est peut-être pas assez sophistiqué pour tous vos besoins. Le projet se veut un "projet hobby", mais ! ça a marché pour moi. Et si cela fonctionnait pour moi, cela fonctionnerait aussi pour vous !

Étape 1: Prérequis

Conditions préalables
Conditions préalables
Conditions préalables
Conditions préalables
Conditions préalables
Conditions préalables

MODULE GSM - SIM800L

  • Assez petit, facile à utiliser
  • Capable d'utiliser l'Internet mobile (GPRS)
  • Pas cher

MODULE GPS - Ublox NEO6M

  • Aussi petit
  • Fait très bien son travail

Un microcontrôleur - peut être n'importe quoi - vous pouvez utiliser le célèbre Arduino Uno ou le Nano pour libérer de l'espace

Batterie - J'ai utilisé une cellule 18650 comme source d'alimentation principale et unique (3,7 V nominal)

Support de batterie - pourquoi ? - parce que souder un accu 18650 est assez dangereux à cause de la chaleur.

DC-DC Boost Converter Step Up Module 5V - Indispensable, car l'Arduino que j'ai utilisé a besoin de 5V

Des outils, des trucs de base qui peuvent être utiles:

Fils, fer à souder, planche à pain pour les tests

Étape 2: Concept principal

Concept principal
Concept principal

Le concept principal du système est le suivant:

Il se compose de 3 parties:

  1. Un appareil - qui a les coordonnées GPS appropriées et peut se connecter à un serveur à distance et lui envoyer des données
  2. Un serveur Web - qui peut recevoir des données entrantes - les stocker - et servir d'autres clients
  3. La plateforme - où l'on peut visualiser les coordonnées - Idéalement ce devrait être maintenant une application mobile, ou un site web

Étape 3: Le module SIM800L

Le module SIM800L
Le module SIM800L
Le module SIM800L
Le module SIM800L

J'ai eu des moments difficiles avec le module.

Je voudrais commencer par quelques caractéristiques et références.

D'après la fiche technique:

  • Il fonctionne entre 3,4 V et 4,4 V
  • Il peut envoyer des SMS, passer des appels vocaux vers d'autres téléphones et même se connecter à Internet !
  • Nous pouvons communiquer avec lui via des commandes AT !
  • Il peut utiliser jusqu'à 2A aux heures de pointe ! Remarque: vous ne pourrez probablement pas le mesurer avec un multimètre - en raison de ses faibles taux d'échantillonnage

Mon expérience est que le SIM800L en dessous de 3,8 V ne fonctionne pas vraiment.

Pour plus d'informations, visitez: fiche technique

Votre travail consiste donc à fournir au moins 3,8 V au module (idéalement 4 V), une alimentation qui délivre au moins 2 A.

Avant d'utiliser le module dans l'appareil final, je vous suggère d'établir une communication avec votre SIM800L et votre ordinateur pour vous assurer que votre appareil fonctionne correctement.

Tout d'abord, branchez la carte SIM comme sur l'image ci-dessus.

Pour le connecter à votre PC, vous pouvez utiliser un convertisseur USB vers TTL ou un Arduino.

Maintenant, je vais avec l'Arduino.

Connectez le SIM800L VCC et GND aux bornes de votre source d'alimentation.

Connectez TX à la 10ème broche numérique Arduino, RX à la 11ème broche numérique Arduino.

Téléchargez le code, j'ai lié dans cette étape.

Avec le code, vous pouvez envoyer des commandes et les récupérer sur votre moniteur série.

Quelques commandes simples:

AT Renvoie OK, si la connexion est OK.

ATD+123456789; Appelez un numéro de téléphone donné. Remarque: n'oubliez pas de le terminer par un point-virgule.

AT+CPIN ? Renvoie l'état de la carte SIM (verrouillée ou non)

Si vous souhaitez envoyer un SMS, vous devez terminer votre saisie par un caractère spécial, cela peut être fait avec le symbole '$'.

Pour d'autres commandes intéressantes, je vous suggère de lire ceci.

Il existe différentes commandes, familiarisez-vous avec elles, elles sont vraiment utiles.

Il y a une LED d'état rouge qui vous indique dans quelle opération se trouve le SIM800L.

64 MS ON - 800MS OFF - SIM800L n'est pas enregistré sur le réseau.

64 MS ON - 3000MS OFF - SIM800L est enregistré sur le réseau.

64 MS ON - 300MS OFF - SIM800l est en mode GPRS

Si le SIM800L continue de redémarrer après environ 8 à 10 clignotements, cela peut être dû à un manque d'alimentation efficace.

Si vous n'allez pas bien après AT, vérifiez le câblage ! Si vous avez un multimètre, vérifiez la continuité des fils.

Vérifiez les connexions des fils et des soudures ! Le module ne fonctionnera que lorsqu'il clignote.

Étape 4: Ublox Neo 6m

Ublox Néo 6m
Ublox Néo 6m
Ublox Néo 6m
Ublox Néo 6m

Quelques caractéristiques

  • Tension maximale: 3,6 V - Je l'ai alimenté avec la broche 3,3 V d'Arduino
  • La consommation de courant maximale est de 67 mA - vous pouvez donc l'alimenter à partir d'arduino
  • Plage de température:: -40-85 Celsius (je suppose que cela vous conviendra)

L'appareil que j'ai commandé est venu avec une antenne vue sur la photo, je viens de la brancher dans la fente correspondante.

L'appareil lorsqu'il a des signaux, clignote avec une LED bleue.

Tout d'abord, vérifiez comment fonctionne un GPS ici, si vous ne le savez pas.

Lorsque l'appareil est allumé et trouve 3 satellites, il envoie beaucoup de valeurs séparées par des virgules à l'Arduino comme ci-dessus.

Pour nous aider dans notre travail, nous pouvons utiliser des bibliothèques externes pour analyser ces données afin qu'elles soient plus lisibles par l'homme.

Vous pouvez utiliser la bibliothèque TinyGps ou la bibliothèque NeoGPS. J'ai utilisé le 2ème car il est plus léger.

Pour les tests, vous devez connecter les broches d'alimentation à arduino 3.3V et GND.

Téléchargez ce code et utilisez-le avec votre GPS. RX numérique broche 10, TX numérique broche 11

Remarque: N'oubliez pas d'utiliser le module à l'extérieur, de préférence lorsqu'il n'y a pas de nuage.

Après une demi-minute, l'appareil devrait clignoter et afficher vos coordonnées GPS !:)

Une fois que vous savez que votre module SIM800L et GPS fonctionnent correctement, vous pouvez passer à l'étape suivante.

Étape 5: Circuits

Circuits
Circuits

Le circuit est comme sur la photo.

Ainsi, la batterie 3.4V - 4.2V 18650 est la principale source d'alimentation. Sim800L obtient l'énergie directement à partir de celui-ci. Il y a un condensateur entre eux en parallèle afin d'améliorer la stabilité du circuit.

Lorsque vous choisissez un condensateur, vous devez choisir un condensateur à faible ESR.

Un convertisseur élévateur 5V augmente la tension de la batterie à 5V (il est nécessaire car Arduino fonctionne avec 5V).

Le rail d'alimentation 5V est connecté au Nano ici. Les Sim800L et Neo6m sont connectés avec Nano comme sur la photo. (Sim Tx-D10, SimRx-D11; NeoTX-D3, NeoRX-D4)

D12 est connecté à RST, nous sommes donc en mesure de redémarrer le système par programmation (sauf le SIM800L). REMARQUE: Cette méthode de redémarrage peut ne pas être la meilleure pratique)

Et enfin, deux LEDS sont connectées au NANO, afin que nous puissions dire à l'utilisateur, si une erreur se produit.

Étape 6: Coder

Le code est attaché aux Instructables ou jetez un œil à github.

Vous pouvez le modifier pour qu'il fonctionne correctement selon vos besoins, ou vous pouvez utiliser le code d'un autre si vous le souhaitez.

waitUntilResponse(); fonction d'assistance a été prise de son code. Vérifiez son travail, et codez aussi !

Brièvement, dans la fonction de configuration, nous devons activer la connexion GPRS de notre module SIM800L. On sait si c'est réussi si la LED clignote rapidement. (configuration GPRSConnection())

Dans la fonction de boucle - toutes les 15 secondes, la fonction sendData() est appelée - qui a la requête

J'ai utilisé des chaînes de requête pour envoyer des données au serveur Web dans ce format:

adresse ip/fichier.php?key=value&key=value par ex.

En cas d'erreur, la LED correspondante s'allumera. (SIM, GPS)

Étape 7: Serveur Web

Serveur Web
Serveur Web

Pour notre usage, un simple serveur web léger suffit.

Vous pouvez choisir parmi certaines options:

  1. Vous pouvez utiliser un serveur distant d'une entreprise, que vous devrez probablement payer régulièrement.
  2. Vous pouvez utiliser votre propre ordinateur. Je ne le suggère que pour les tests, il n'est pas vraiment efficace de le faire fonctionner 24h / 24 et 7j / 7, à cause du gaspillage d'énergie, des problèmes de sécurité.
  3. Vous pouvez utiliser un petit ordinateur, comme Raspberry PI. Léger, bon marché, ne consomme pas beaucoup d'énergie.

J'ai essayé la 2ème et la 3ème option, elles ont bien fonctionné. Eh bien, l'objectif principal n'est pas les serveurs de ces instructables, mais je vous donne quelques conseils.

Si vous utilisez un PC, vous utilisez probablement Windows. Si j'étais vous, j'y installerais un serveur Apache ou XAMPP.

XAMPP contient déjà du PHP, en plus du HTML, du Perl et d'un système de gestion de base de données. Avec PHP, vous pouvez créer un serveur dynamique. Si vous souhaitez utiliser le serveur local que vous venez de créer depuis n'importe où dans le monde, vous devez attribuer une adresse IP statique à votre PC et effectuer un transfert de port. Un tutoriel utile pour l'IP statique:

Et tout le truc de la redirection de port:

Si vous avez une framboise, c'est une bonne pratique de l'utiliser. Vous pouvez vous familiariser avec les commandes Linux et exécuter votre propre serveur 24h/24 et 7j/7.

Le système d'exploitation était Raspbian Jessie avec une configuration sans tête (pas de clavier, ni de moniteur) - je l'ai contrôlé avec mon ordinateur avec une connexion SSH.

J'ai utilisé Putty pour me connecter à mon Raspberry. N'oubliez pas de changer le mot de passe de votre compte, afin que les autres ne puissent pas se connecter à votre Pi. La valeur par défaut est: pi, passw: framboise.

J'ai installé un serveur web lighttpd avec sqlite3. Bon tuto trouvé ici:

J'ai utilisé principalement PHP dans le code du serveur. Avec PHP vous pouvez recevoir des données, lire/écrire des bases de données - encoder une requête au format json, etc. … Ce tutoriel vous aidera beaucoup, comment gérer votre base de données avec PHP.

Vous pouvez également voir mon code sur github, dans le dossier server_files.

Et bien sûr, vous devez activer la redirection de port vers votre Pi sur votre routeur, si vous souhaitez y accéder à distance.

Étape 8: Fin/Expérience

Un enclos reste à faire.

Mon expérience est que, le système ne fonctionne pas trop mal. Mais il y a des améliorations de stabilité en attente.

Si le tracker ne fonctionne pas avec le code que j'ai joint, ne vous inquiétez pas. Essayez de vous assurer que le SIM800L et le NEO 6M fonctionnent comme ils le devraient. Vous pouvez modifier librement mon code, ou en chercher un meilleur. J'espère juste que je pourrais vous montrer un exemple, comment vous pouvez mener à bien ce projet.

J'accepte tout conseil, correction des commentaires. N'hésitez pas à demander.

Conseillé: