Im vorhergehenden Teil dieser Reihe wurde erklärt, wie man mit einem Arduino Uno und einem GSM-Board (in diesem Fall mit dem Siemens TC35) SMS versenden kann. Heute nun soll das Programm dahingehend erweitert werden, dass SMS empfangen und ausgewertet werden können und anhand des SMS-Inhalts ein Schalter bzw. ein Pin des Arduino geschaltet werden kann.
Der Schaltungsaufbau ist der gleich, wie er im letzten Versuch verwendet wurde. Hinzugekommen ist ein größeres Stück Software für den Arduino, welches nun die erforderlichen Befehle zum Empfang von SMS an das GSM-Modem sendet.
Die zur Kommunikation verwendete Lib SoftwareSerial definiert nur einen 64 Byte großen Empfangspuffer. Für den Empfang von SMS ist das viel zu wenig. In der Datei hardware/arduino/avr/libraries/SoftwareSerial/SoftwareSerial.h wird die Puffergröße durch _SS_MAX_RX_BUFF festgelegt. Diese Puffergröße sollte dort auf mindestens 1024 festgelegt werden.
#define _SS_MAX_RX_BUFF 1024
Folgende Vorgehensweise im Arduino-Programm für die Initialisierung wurde gewählt:
- Aktivieren der seriellen Schnittstellen zum GSM-Modem wie auch zum Computer (für die Protokollierung und zu Testzwecken)
- Einschalten des GSM-Teils des TC35 über den IGT-Pin
- Löschen aller alten bereits auf der SIM-Karte gespeicherten SMS-Nachrichten
Im anschließenden loop des Arduino wird ermittelt, ob neue SMS-Nachrichten vorliegen. Diese sollen dem Schema "PIN{ ON | OFF | STATUS }" ensprechen. Bei korrekt übermittelter PIN wird bei falschem Kommando eine SMS mit entsprechendem Hilfetext zurückgesendet. ON bewirkt das Einschalten des Schalter, OFF das Ausschalten und STATUS sendet eine SMS mit dem aktuellen Zustand des Schalters an den Sender der SMS zurück. ...weiterlesen "Arduino Uno und Siemens TC35: SMS empfangen und Schalter steuern"