Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Localisez votre tableau avec un SMS

Composants et fournitures

Arduino MKR GSM 1400
× 1

À propos de ce projet

Remarque :Ce tutoriel est peut-être obsolète, veuillez y aller ici pour une version plus récente.

Le but de ce projet est de montrer comment utiliser la localisation cellulaire de l'Arduino MKR GSM 1400. Pour ce faire, nous avons mis en place une application simple qui permet de réessayer la latitude et la longitude du MKR GSM lors d'un SMS avec un contrôle de sécurité lettre est reçue. Le numéro d'expéditeur est récupéré à partir du SMS reçu et une réponse est créée avec le lien Google Maps approprié complété par les coordonnées fournies par les services de localisation fournis par le module u-blox.

Ce dont vous avez besoin

Le projet est basé sur un Arduino MKR GSM 1400, une antenne, une batterie LiPo, un smartphone et une carte SIM de données.

  • L'Arduino MKR GSM 1400 exécute l'esquisse et prend en charge la connectivité GSM qui permet les fonctions de localisation requises par notre projet ;
  • L'antenne et la batterie sont respectivement utilisées pour permettre la connexion au réseau de données cellulaire avec un bon signal et pour alimenter l'appareil lorsque d'autres alimentations ne sont pas disponibles ;
  • Le smartphone est nécessaire pour envoyer le SMS au MKR GSM 1400 et demander la localisation GPRS ;
  • La carte SIM est requise pour accéder au réseau de données et permettre le fonctionnement du réseau ;
  • Le code PIN, l'APN et les identifiants d'accès sont requis pour se connecter au réseau de données.

Configuration matérielle

Ce projet ne nécessite rien de particulier. Connectez à la carte l'antenne, insérez la carte SIM et connectez la batterie LiPo au connecteur JST.

La batterie LiPo est optionnelle, mais elle permet de faire face aux pics de courant que le module GSM pourrait nécessiter dans des conditions particulières de mauvaise couverture.

Comment ça marche

Ce projet utilise la bibliothèque MKRGSM pour gérer les messages SMS et la géoréférencement cellulaire.

Lorsqu'un SMS est reçu, le contenu est vérifié pour savoir s'il contient la lettre "L". Ce n'est que si c'est le cas que le sketch procède à la localisation et à la transmission du SMS. Avec cette solution, n'importe quel numéro peut demander l'emplacement du système, mais seul celui qui connaît le mot de passe (la « lettre secrète ») obtiendra une réponse. C'est la ligne qui fait la vérification if (c !=76) et 76 est le code ASCII de "L". Vous pouvez modifier la valeur pour changer la lettre reconnue.

Le module GSM ne dispose pas de récepteur GPS, mais le constructeur dispose d'une base de données de localisation de chaque cellule du réseau GSM et il fournit donc des coordonnées pour chaque identifiant de cellule fourni. Ce système est assez précis dans les zones urbaines, où chaque cellule couvre une petite zone. Dans les zones rurales, la couverture de chaque cellule est beaucoup plus grande et l'emplacement fourni est une approximation plus grossière.

Pour créer le lien pour Google Maps, nous utilisons une URL standard où nous concaténons simplement les valeurs Long et Lat appropriées à la fin. Cette URL ressemble à "https://www.google.com/maps/place/, ". La position indiquée sur la carte sera celle où la cellule est physiquement basée ; notre planche est dans le rayon couvert par la cellule.

Le croquis

Suite à une description détaillée de l'esquisse ; la première section de code est utilisée pour inclure les bibliothèques requises par l'application.

MKRGSM incluent toutes les fonctionnalités de connexion GSM, de localisation et de gestion des SMS, celles-ci sont disponibles via l'objet GSMClient, GPRS, GSM et GSMLocation, les API de gestion des SMS sont disponibles via l'objet GSM_SMS , l'en-tête ArduinoLowPower importer les API qui permettent une gestion basse consommation du module de la carte.

Si vous téléchargez le code à partir de l'éditeur Web, vous trouverez un arduino_secrets.h fichier qui inclut les données sensibles telles que PIN, APN, utilisateur et mot de passe. Sur l'éditeur web, vous devez remplir les données sensibles dans l'onglet Secrets.

// inclure la bibliothèque GSM#include #include "ArduinoLowPower.h"char PINNUMBER [] =SECRET_PINNUMBER;char GPRS_APN[] =SECRET_GPRS_APN;char GPRS_LOGIN [] =SECRET_GPRS_LOGIN;char GPRS_PASSWORD[ ] =SECRET_GPRS_PASSWORD;// initialise les instances de la bibliothèqueGPRS gprs;GSM gsmAccess;GSM_SMS sms;GSMLocation location; 

La mesureEmplacement() interroge le module pour réessayer les coordonnées par réseau cellulaire, si de nouvelles coordonnées sont disponibles il l'affecte à la variable globale sinon redemande 45 secondes, si aucune mesure ne respecte les contraintes de précision il renvoie les dernières bonnes

//variable globale utilisée pour la gestion de l'emplacement String GSMlatitude ="0.000000";String GSMlongitude ="0.000000" ; // Cette fonction utilise les API de l'emplacement pour obtenir les coordonnées de l'appareil et mettre à jour la variable globa si toutes les exigences sont satisfaitvoid mesureLocation() {délai d'attente long non signé =millis();while (millis() - délai d'attente <45000) {if (location.available() &&location.accuracy() <300 &&location.accuracy() !=0) { GSMlatitude =String(location.latitude(), 6);GSMlongitude =String(location.longitude(), 6);break;}}} 

Le connectNetwork() fonction utiliser l'API smAccess.begin et gprs.attachGPRS pour connecter la carte au réseau de données ; sont utilisées les données d'identification pin , apn , utilisateur et passer attribué par les déclarations dans arduino_secrets.h.

// La fonction connectNetwork() est utilisée pour les données de la carte. connectionvoid connectNetwork(){bool status =false;//set global AT command timeout cela permet de récupérer de la communication uart//freeze entre le module samd et ublox module.gprs.setTimeout(100000);gsmAccess.setTimeout(100000);// Démarrer la connexion GSM pendant (statut ==false) {if ((gsmAccess.begin(PINNUMBER) ==GSM_READY) &(gprs.attachGPRS(GPRS_APN, GPRS_LOGIN, GPRS_PASSWORD) ==GPRS_READY)) {status =true;} else {delay(1000);}}}La section setup permet d'initialiser tout l'objet utilisé par le sketch, s'appelle la fonction connectionNetwork() pour établir les données connection et le début de la structure de localisation.//section code utilisée pour initialiser la connexion de données et la localisation objectvoid setup() {connectNetwork();location.begin();} 

La dernière section de code est la fonction de boucle où sont implémentées la gestion des SMS et la mesure de localisation, à chaque fois qu'un nouveau SMS est disponible la carte répond au destinataire avec un SMS avec les coordonnées de la carte, pour réduire la consommation la carte arrête le module et passe en sommeil profond pendant 60 secondes.

boucle vide() { int c; Réponse de chaîne ; Messager de chaîne =""; mesurerEmplacement(); délai d'attente long non signé =millis(); while (millis() - timeout <5000) {if (sms.available()) { //vérifier les SMS disponibleschar senderNumber[20] ={"0"};sms.remoteNumber(senderNumber, 20); //Obtenir le numéro distantint c =sms.read();if (c !=76) {sms.flush();break;}//concaténer la chaîne de message à envoyer au numéro distantString txtMsg ="https:// www.google.com/maps/place/" + GSMlatitude + "," + GSMlongitude;// envoyer les messagesms.beginSMS(senderNumber);sms.print(txtMsg);sms.endSMS();break;} } // Éteignez le module GSM pour obtenir la plus faible consommation d'énergie de la carte pendant que vous dormez gsmAccess.shutdown(); LowPower.sleep (60000); //activer la faible puissance pendant 60 secondes et après réessayer la carte connectNetwork(); //allumer le module et se reconnecter au réseau de données} 

Comment l'utiliser

Configurez le matériel comme expliqué ci-dessus, personnalisez le croquis avec vos identifiants d'accès, chargez le croquis sur le tableau et attendez que la connexion avec le réseau GSM soit établie. Cela peut prendre 30 secondes.

Une fois la connexion établie, envoyez simplement un SMS au numéro SIM MKRGSM avec un "L" comme texte :cela lancera le processus de localisation et le forum répondra avec un SMS contenant le lien Google Maps avec la position demandée.

Code

Arduino

Processus de fabrication

  1. Allez grand ou rentrez chez vous avec la conception de votre nouveau produit
  2. Rejoignez l'IOT avec votre station météo – CWOP
  3. Utilisation de la carte PSoC 6 Pioneer avec le Pioneer IoT Add-on Shield
  4. Utiliser les QR codes avec votre GMAO :pas à pas
  5. Soyez intelligent avec votre dollar IoT
  6. Webinaire :Automatisez votre processus avec Techman Robot
  7. 7 façons de réduire le coût de votre PCB
  8. Développez vos activités grâce à l'entretien agricole
  9. Que faire de votre équipement usagé