Das Herzstück des Melders ist ein Arduino, also benötigt man da auch noch das passende Programm für. Insgesamt setzt sich die Software auf dem Melder aus einem Arduino-Sketch und zwei Bibliotheken zusammen.
In typischen Beispielprogrammen für den Arduino, gerade den Arduino Pro Mini, erfolgt folgende Aufteilung:
- die physische, serielle Schnittstelle wird für das Debugging verwendet
- für die Kommunikation mit einem SIM800 wird eine SoftSerial verwendet
Dieser Aufteilung wollte ich nicht folgen, da die Kommunikation mit dem SIM800 für die Gesamtfunktion relevanter ist und ich hier den physischen UART der per Software emulierten Schnittstelle als überlegen ansehe.
Entsprechend gibt es die Bibliothek DebugOverSoftSerial, die Debuginformationen über eine SoftSerial ausgeben kann.
Zusätzlich gibt es die Bibliothek SimpleSim800, die verschiedene Funktionen gegenüber dem SIM800 bereitstellt. Hier erfolgt die Kommunikation über den physischen UART.
In dem Programm TrapSensor werden die verschiedenen, durch die Hardware bereitgestellten Funktionen, miteinander verwoben.
Welche Funktionen beinhaltet das Programm?
- Messen den Versorgungsspannung
- Auslesen der externen Schalter
- Zyklisches Auslesen der Schalter und Meldung bei Veränderung
- Zyklische Meldung zu definierten Uhrzeiten
- Ansteuerung der verschiedenen LEDs
Was muss man jetzt machen, wenn man das selber in Betrieb nehmen möchte?
Im Hauptprogramm TrapSensor.ino ist die URL der Web-Application hinterlegt. Hier muss einer zur eigenen Installation passende URL hinterlegt werden.
const char url[] = "http://yourdomain/traps/ping";
In der Datei SimpleSim800.cpp sind APN und PIN der verwendeten SIM-Karte definiert. In Abhängigkeit von der SIM müssen hier ggf. Anpassungen vorgenommen werden.
// 1NCE
const char _networkAPN[] = "iot.1nce.net";
const char _userName[] = "";
const char _passWord[] = "";
const char _simPin[] = "9545";