Arduino Uno mit Antrax GPS Shield Position fernabrufen

Habe ein GPS/GSM Antrax Shield zusammen mit einem Arduino Uno in Betrieb genommen. Als Software habe ich die Demo Software von Antrax installiert. Das funktioniert auch gut, die Position läßt sich als SMS an z.B. ein Smartfone oder einen PC übertragen. Für einen sinnvollen Einsatz allerding wäre die Möglichkeit der Fernabfrage wünschenswert. Dazu müßte dann sicherlich eine SMS mit einem bestimmten Befehl zum
Antrax Shield gesandt werden. Wer kann Hinweise zur Realisierung dieser Funktion geben?

Nacode:
Dazu müßte dann sicherlich eine SMS mit einem bestimmten Befehl zum
Antrax Shield gesandt werden. Wer kann Hinweise zur Realisierung dieser Funktion geben?

Gibt's dazu nicht eine Bibliothek mit einer GSM-Klasse, die wie folgt deklariert ist:

class GSM
  {     
    public:
      GSM(int powerON_pin, int baud);
      void initializeGSM(char pwd[4]);
      void sendSMS(char number[50], char text[180]);
      void makeCall(char number[50]);
    
    private:
      int _powerON_pin; 
      int _baud;
      void readGSMAnswer();
  };

Lass mich einmal raten: Zum Senden von SMS dient die Funktion "sendSMS"?

richtig die class GSM ist bereits im Beispielcode enthalten. Auslösen kann man die Funktion durch Druck auf den Taster S1. Danach wird die aktuelle Position an die vordefinierte Empfangsstation gesendet.
Diese Funktion ist zum testen ok aber in der Praxis dann nicht. Antrax würde mehr GPS/GSM Shields verkaufen wenn sie in ihrem Beispielcode die folgende Funktion integriert hätten.
Ein Benutzer sendet eine SMS an das GPS/GSM Shield mit einem Schlüsselbegriff z.B. "poll" Die Demosoftware fragt die eingehende SMS auf den Schlüsselbegriff ab und löst die gleiche Funktion wie die S1 Taste aus.
Danach wird die SMS mit den Positionsdaten an die vordefinierte Station gesendet. Weil ich derzeit noch nicht in der Lage bin diese Funktion in den Democode einzubinden würde ich mich freuen wenn jemand antwortet und diese Frage bereits gelöst hat.

Hi Nacode,

du bist dir schon im klaren darüber, dass Arduino eine Hobbyhardware ist und du dir deine Anwendungen selber programmieren musst? Dass nicht alles vorgekaut ist und du in der Lage sein solltest, den Tastendruck auch durch etwas anderes ersetzen zu können?
Bei mir funktioniert das Antrax-Shield bestens, das verbaute Telit-Modul hat einen riesigen Funktionsumfang, das Ding ist echt klasse, nur, programmieren muss man sich seine Wünsche schon selbst. Wenn du was fertiges suchst, ist Arduino definitiv das falsche System

Sarah

Hallo Sarah,

danke für deine Antwort auf meine Frage. Fertigen Code würde ich natürlich auch gerne nehmen :slight_smile: aber auch für Hinweise, Tipps, Anregungen etc. bin ich dankbar. So ganz unbedarft mit der Programmierung
bin ich auch nicht was Mikrocontroller angeht. Habe früher viel in 8051 Assembler programmiert. Einige Beispiele was den Einsatz von GPS Systemen angeht kannst du unter www.seefunknetz.de und dann auf
Seefunk-Verfahren klicken und dort habe ich z.B. die Artikel GPS 1-3 veröffentlicht. Aber mit dem Arduino und seiner Sprache ist es Neuland für mich. Also für jeden sachdienlichen Hinweis bin ich offen.

Vy 73 Joachim

Nacode:
Also für jeden sachdienlichen Hinweis bin ich offen.

Wenn es keinen fertigen fremden Code zum Übernehmen gibt, dann hat das Programmieren von Mikrocontrollern viel mit dem Lesen, Verstehen und Umsetzen von Datenblättern zu tun.

Erste Maßnahme ist dann immer der Download des Datenblattes.
Auf Deinem Shield ist ein TELIT GSM-Modul?

Dann dürften die notwendigen AT-Kommandos in dieser Datei stehen, Kapitel "3.7. SMS Management":

Dort eventuell die Unterkapitel

  • 3.7.4. Select/Check SMS Memory
  • 3.7.10. Delete an SMS
  • 3.7.11. Read an SMS
  • 3.7.12. SMS Status

Für das Senden von SMS hast Du ja offenbar fertigen und funktionierenden Library-Code. D.h. in dem vorhandenen Code kannst Du sehen, wie das Modul angesprochen wird, AT-Kommandos an das Modul übermittelt werden und Daten ausgetauscht werden.

Jetzt müßte das zusammen mit den AT-Kommandos zum Lesen und Verwalten einer SMS so umgesetzt werden, dass Du auf das Eintreffen einer Poll-SMS reagieren kannst.

Mehr kann ich Dir dazu auch leider nicht sagen.

Hi Joachim,

nach dem, was du da im "seefunknetz" gemacht hast (alle Achtung!), sehe ich überhaupt keinen Grund, warum du die paar Befehle für das SMS-Auslesen im Uno nicht hinbekommen solltest - aber überhaupt keinen!

Sarah

Habe die Firma Antrax angeschrieben und umgehend folgende Antwort erhalten. Werde den Vorschlag mal aus probieren.

Gruß Joachim

Antwort von Antrax:

Die von Ihnen angesprochene Funktion ist eigentlich ganz einfach zu realisieren. Sie müssen nur die Befehle

AT+CMGF=1

AT+CMGL="ALL"

zum Mobilfunkmodul schicken und bekommen dann einen String mit allen momentan vorhandenen SMS zurück. Dann müssen Sie nur noch schauen, ob der Sub-String "poll" irgendwo darin enthalten ist und wenn ja, rufen Sie die Funktion für das Versenden einer SMS auf ... fertig.

Danach können Sie mit

AT+CMGD=1,4

alle SMS löschen.

Wir werden die von Ihnen beschriebene Funktion demnächst möglicherweise auch in die Demosoftware übernehmen, wobei es aber immer etwas schwierig ist, alle Kundenwünsche in eine Demosoftware zu packen.

SMS kostet ja jedesmal Geld und zeitnah sind die auch nicht immer.
Ich habe SMS schon Stunden und Tage später oder auch garnicht bekommen.
Willst du es nicht lieber mit Mail oder Webzugriff per GPRS versuchen?
Das will ich nämlich demnächst machen ... vlt. können wir uns da gegenseitug helfen?

Du bist im Recht, SMS kostet bei jedem Übertragungsvorgang etwas. Derzeit bin ich dabei weitere Möglichkeiten zu untersuchen. Es wird einige Zeit dauern bis ich mich durch die verschiedenen Dokumentationen
durchgearbeitet habe.