Gmail ist Googles kostenloser E-Mail-Dienst und gilt seit Mitte 2012 als der weltweit meistge-nutzte. Am Anfang dieses Beitrags wurde bereits gezeigt, wie über den Aufruf eines Shell-Scripts eine E-Mail versendet werden kann. Über Temboo kann man diesen Dienst ebenfalls nutzen. Hierzu steht das Choreo „Sendmail“ zur Verfügung. Das erforderliche cURL-Kommando wird wieder über die Temboo-Webpräsenz erzeugt und ist hier aus Gründen der besseren Lesbarkeit in Listing 4 etwas formatiert worden – cURL erwartet alle Argumente in einer Zeile. Die Argumente APP_KEY_NAME:APP_KEY_VALUE sind noch durch den Application Key zu ersetzen. Ausserdem wurden die E-Mail-Adressen von Sender und Empfänger wieder durch xxxx unkenntlich gemacht. Der eigentliche Inhalt der E-Mail steht in den Feldern „Subject“ und „MessageBody“.
Der E-Mail-Versand ist in ein als Statusmonitor fungierendes Programmbeispiel eingebettet worden. Auf der Arduino-Seite läuft ein Programm, welches einen Sensor abfragt und das Ergebnis über die serielle Schnittstelle an das Linux-Device sendet. Für die Inbetriebnahme wurde dieses Programm durch eine Simulation vs.ino (Listing 5) als virtueller Sensor ersetzt. Hier wird der zu übertragende Sensorwert im Bereich von 0 bis 1023 durch einen Pseudo-Zufallszahlengenerator erzeugt und im Abstand von ca. 2 s zum Linux-Device verschickt.
Auf dem Linux-Device übernimmt ein Shell-Script die Abfrage der seriellen Schnittstelle und untersucht den empfangenen Zahlenwert auf Überschreiten resp. Unterschreiten vorgegebener Limits und sendet entsprechende Meldungen an die Konsole bzw. verschickt diese als E-Mail. Listing 6 zeigt den Quelltext des Shell-Scripts bridge.sh.
Die serielle Schnittstelle /dev/ttymxc3, die die Verbindung von Arduino- und Linux-Device bildet, wird wie die Arduino-Seite auf 115200 Baud eingestellt. Danach folgen die Definitionen der beiden Funktionen sendmail und success?. Die Funktion sendmail enthält das auf der Temboo-Webpräsenz erzeugte cURL-Kommando und eine Umleitung von stdout und stderr in das File log. In der Funktion success? wird das File log nach dem Wort SUCCESS abgefragt, welches bei erfolgreichem Versand der E-Mail in der Antwort des cURL-Kommandos enthalten ist.
In der sich anschließenden Endlosschleife erfolgen die Abfrage der seriellen Schnittstelle, das Erfassen des aktuellen Zeitstempels in der Variablen NOW und eine Ausgabe des erfassten Zahlenwertes auf der Konsole. Mit drei if-Anweisungen wird untersucht, in welchem Bereich sich der übermittelte Zahlenwert befindet und ob eine Meldung verschickt werden soll. Eine Meldung wird nur dann verschickt, wenn der übermittelte Zahlenwert das erste Mal ein Limit über- bzw. unterschritten hat. Wurde eine Bereichsüberschreitung detektiert, dann erfolgt neben der Ausgabe der Mitteilung auf der Konsole auch noch der Versand einer E-Mail mit identischem Inhalt.
Universelle Plattform
Im vorliegenden Beitrag wurde versucht, UDOO als leistungsfähige Plattform für vielfältige Aufgabenstellungen vorzustellen, deren Spannweite von der in einem Prozess verankerten Sensorik und Aktorik über eine leistungsfähige Verarbeitungsfunktion und über Standard-Schnittstellen bis zu Web Services in der Cloud reicht. Die Prozessseite wird durch den Arduino (Due) abgedeckt und der i.MX6 Quad Core stellt genügend Performance für den applikativen Teil der meisten Aufgabenstellungen in diesem Umfeld bereit. Der Prozessor ist damit auch die Basis für einen performanten Internetzugang, um die Möglichkeiten von Web Services zu nutzen, die durch Temboo über eine einheitliche API zugänglich werden.
Literatur
[1] Kühnel, C.: Arduino als IoT-Maschine (Teil 1). Elektronik 2014, H. 13, S. 42 bis 45.
[2] Kühnel, C.: Arduino als IoT-Maschine (Teil 2). Elektronik 2014, H. 17, S. 42 bis 48.
[3] cURL: http://wiki.ubuntuusers.de/cURL
[4] 15 Practical Linux cURL Command Examples (cURL Download Examples): www.thegeekstuff.com/2012/04/curl-examples/
Der Autor
Dr.-Ing. Claus Kühnel |
---|
studierte und promovierte an der Technischen Universität Dresden auf dem Gebiet der Informationselektronik und bildete sich später in Biomedizintechnik weiter. Seit 2004 ist er bei der QIAGEN Instruments AG in Hombrechtikon (CH) als Director Electronic Engineering & Embedded Systems für die Entwicklung von Elektronik-Hardware und Hardware-naher Software verantwortlich. |
info@ckuehnel.ch