Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Lokalisieren Sie Ihr Board mit einer SMS

Komponenten und Verbrauchsmaterialien

Arduino MKR GSM 1400
× 1

Über dieses Projekt

Hinweis:Dieses Tutorial könnte veraltet sein, bitte gehen Sie hier für eine aktuellere Version.

Der Zweck dieses Projekts besteht darin, zu zeigen, wie die Mobilfunklokalisierung des Arduino MKR GSM 1400 verwendet wird. Dazu haben wir eine einfache Anwendung implementiert, mit der Sie den Breiten- und Längengrad des MKR GSM bei einer SMS mit Sicherheitsüberprüfung erneut versuchen können Brief eingegangen ist. Die Absendernummer wird aus der empfangenen SMS wiederhergestellt und eine Antwort mit dem richtigen Google Maps-Link erstellt, der durch die Koordinaten der Standortdienste des u-blox-Moduls ergänzt wird.

Was Sie brauchen

Das Projekt basiert auf einem Arduino MKR GSM 1400, einer Antenne, einem LiPo-Akku, einem Smartphone und einer Daten-SIM-Karte.

  • Der Arduino MKR GSM 1400 führt die Skizze aus und unterstützt die GSM-Konnektivität, die die von unserem Projekt benötigten Lokalisierungsfunktionen ermöglicht;
  • Antenne und Akku werden jeweils verwendet, um die Verbindung zum Mobilfunknetz mit einem guten Signal zu ermöglichen und das Gerät mit Strom zu versorgen, wenn keine anderen Netzteile verfügbar sind;
  • Das Smartphone wird benötigt, um die SMS an das MKR GSM 1400 zu senden und die GPRS-Lokalisierung anzufordern;
  • Die SIM-Karte wird benötigt, um auf das Datennetz zuzugreifen und den Netzbetrieb zu ermöglichen;
  • PIN, APN und Zugangsdaten sind erforderlich, um eine Verbindung zum Datennetzwerk herzustellen.

Hardware-Setup

Dieses Projekt erfordert nichts Besonderes. Verbinden Sie die Antenne mit der Platine, legen Sie die SIM-Karte ein und schließen Sie den LiPo-Akku an den JST-Anschluss an.

Der LiPo-Akku ist optional, ermöglicht jedoch die Bewältigung der Stromspitzen, die das GSM-Modul unter bestimmten Bedingungen mit geringer Abdeckung erfordern könnte.

So funktioniert's

Dieses Projekt verwendet die MKRGSM-Bibliothek, um die SMS-Nachrichten und die zellbasierte Georeferenzierung zu verwalten.

Beim Empfang einer SMS wird der Inhalt daraufhin überprüft, ob er den Buchstaben „L“ enthält. Nur wenn dies der Fall ist, fährt die Skizze mit der Lokalisierung und dem SMS-Versand fort. Bei dieser Lösung kann jede beliebige Nummer den Standort des Systems abfragen, aber nur wer das Passwort (den "geheimen Brief") kennt, bekommt eine Antwort. Dies ist die Zeile, in der if (c !=76) . geprüft wird und 76 ist der ASCII-Code von "L". Sie können den Wert ändern, um den erkannten Buchstaben zu ändern.

Das GSM-Modul hat keinen GPS-Empfänger, aber der Hersteller verfügt über eine Datenbank mit dem Standort jeder Zelle des GSM-Netzes und liefert daher Koordinaten für jede gelieferte Zellen-ID. Dieses System ist in städtischen Gebieten ziemlich genau, wo jede Zelle einen kleinen Bereich abdeckt. In ländlichen Gebieten ist die Abdeckung jeder Zelle viel größer und der bereitgestellte Ort hat eine gröbere Näherung.

Um den Link für Google Maps zu erstellen, verwenden wir eine Standard-URL, bei der wir am Ende nur die richtigen Long- und Lat-Werte verketten. Diese URL sieht aus wie "https://www.google.com/maps/place/, ". Die auf der Karte angezeigte Position ist die Position, auf der die Zelle physikalisch basiert; unser Board befindet sich innerhalb des von der Zelle abgedeckten Radius.

Die Skizze

Nach einer detaillierten Beschreibung der Skizze; der erste Codeabschnitt wird verwendet, um die von der Anwendung benötigten Bibliotheken einzuschließen.

MKRGSM umfassen alle GSM-Verbindungs-, Lokalisierungs- und SMS-Verwaltungsfunktionen, diese sind über das Objekt GSMClient, GPRS, GSM verfügbar und GSMLation, die SMS-Verwaltungs-APIs sind über das Objekt GSM_SMS verfügbar , die Überschrift ArduinoLowPower Importieren Sie die APIs, die eine Verwaltung des Board-Moduls mit geringem Stromverbrauch ermöglichen.

Wenn Sie den Code aus dem Web-Editor herunterladen, finden Sie eine arduino_secrets.h Datei mit sensiblen Daten wie PIN, APN, Benutzer und Passwort. Im Webeditor müssen Sie die sensiblen Daten in der Registerkarte "Geheimnisse" eingeben.

// include the GSM library#include #include "ArduinoLowPower.h"char PINNUMBER [] =SECRET_PINNUMBER;char GPRS_APN[] =SECRET_GPRS_APN;char GPRS_LOGIN [] =SECRET_GPRS_LOGIN;char GPRS ] =SECRET_GPRS_PASSWORD;// die Bibliotheksinstanzen initialisierenGPRS gprs;GSM gsmAccess;GSM_SMS sms;GSMStandort; 

Die measureLocation() fordert das Modul auf, die Koordinaten über das Mobilfunknetz zu wiederholen, wenn neue Koordinaten verfügbar sind, weist es sie der globalen Variablen zu, andernfalls fragen Sie erneut für 45 Sekunden, wenn keine Messungen verfügbar sind, die die Genauigkeitsbeschränkungen einhalten, werden die letzten guten zurückgegeben

//globale Variable, die für die Standortverwaltung verwendet wirdString GSMlatitude ="0.000000";String GSMlongitude ="0.000000";// Diese Funktion verwendet die APIs des Standorts, um die Gerätekoordinaten abzurufen und die globale Variable zu aktualisieren, wenn alle Anforderungen erfüllt sind zufriedenvoid measureLocation() {unsigned long timeout =millis(); while (millis() - timeout <45000) {if (location.available() &&location.accuracy() <300 &&location.accuracy() !=0) { GSMlatitude =String(location.latitude(), 6);GSMlongitude =String(location.longitude(), 6);break;}}} 

Das connectNetwork() Funktion verwenden Sie die API smAccess.begin und gprs.attachGPRS um das Board mit dem Datennetz zu verbinden; verwendet werden die Anmeldedaten pin , apn , Nutzer und passieren zugewiesen durch die Deklarationen in arduino_secrets.h.

// Die Funktion connectNetwork() wird für die Board-Datenverbindung verwendetvoid connectNetwork(){bool status =false;//setze globales AT-Befehls-Timeout, dies ermöglicht die Wiederherstellung von der uart-Kommunikation // Einfrieren zwischen Samd-Modul und ublox module.gprs.setTimeout(100000);gsmAccess.setTimeout(100000);// GSM-Verbindung starten während (status ==false) {if ((gsmAccess.begin(PINNUMBER) ==GSM_READY) &(gprs.attachGPRS(GPRS_APN, GPRS_LOGIN, GPRS_PASSWORD) ==GPRS_READY)) {status =true;} else {delay(1000);}}}Der Setup-Abschnitt ermöglicht die Initialisierung aller von der Skizze verwendeten Objekte Verbindung und die Lokalisierungsstruktur beginnend. // Codeabschnitt, der verwendet wird, um Datenverbindung und Lokalisierung zu initialisieren. objectvoid setup() {connectNetwork();location.begin();} 

Der letzte Codeabschnitt ist die Schleifenfunktion, in der das SMS-Management und die Standortmessung implementiert sind, jedes Mal, wenn eine neue SMS verfügbar ist die Platinenantwort mit einer SMS mit den Platinenkoordinaten an den Sender, um den Verbrauch zu reduzieren die Platine das Modul herunterfahren und geht für 60 Sekunden in den Tiefschlaf.

void loop() { int c; String-Antwort; String-Nachricht =""; messenLocation(); lange Zeitüberschreitung ohne Vorzeichen =millis(); while (millis() - timeout <5000) {if (sms.available()) { //Nach SMS-Verfügbarkeit suchenchar senderNumber[20] ={"0"};sms.remoteNumber(senderNumber, 20); //Get remote numberint c =sms.read();if (c !=76) {sms.flush();break;} // Verketten Sie die String-Nachricht, die an die entfernte numberString gesendet werden soll txtMsg ="https:// www.google.com/maps/place/" + GSMlatitude + "," + GSMlongitude;// sende die Nachrichtenms.beginSMS(senderNumber);sms.print(txtMsg);sms.endSMS();break;} } // Schalten Sie das GSM-Modul aus, um im Ruhezustand den niedrigsten Stromverbrauch des Boards zu erzielen gsmAccess.shutdown(); LowPower.sleep(60000); // Aktivieren Sie die niedrige Leistung für 60 Sekunden und versuchen Sie es erneut mit der Platine connectNetwork (); // Modul einschalten und wieder mit Datennetz verbinden} 

So verwenden Sie es

Richten Sie die Hardware wie oben beschrieben ein, personalisieren Sie den Sketch mit Ihren Zugangsdaten, laden Sie den Sketch auf das Board und warten Sie, bis die Verbindung mit dem GSM-Netz hergestellt ist. Dies kann 30 Sekunden dauern.

Nachdem die Verbindung hergestellt ist, senden Sie einfach eine SMS an die MKRGSM SIM-Nummer mit einem "L" als Text:Dies startet den Lokalisierungsprozess und das Board antwortet mit einer SMS mit dem Google Maps-Link mit der angeforderten Position.

Code

Arduino

Herstellungsprozess

  1. Go Big oder Go Home mit Ihrem neuen Produktdesign
  2. Beteiligen Sie sich mit Ihrer Wetterstation am IOT – CWOP
  3. Verwenden des PSoC 6 Pioneer Boards mit dem Pioneer IoT Add-on Shield
  4. QR-Codes mit Ihrem CMMS verwenden:Schritt für Schritt
  5. Aktualisieren Sie Ihr Gepäck mit Gepäcksets aus Kohlefaser
  6. Seien Sie schlau mit Ihrem IoT-Dollar
  7. Webinar:Automatisieren Sie Ihren Prozess mit Techman Robot
  8. 7 Möglichkeiten, Ihre PCB-Kosten zu senken
  9. Erweitern Sie Ihren Betrieb mit Farm Maintenance
  10. Was tun mit gebrauchten Geräten