Starter-, Referenz-Kits

Arduino als IoT-Maschine - Teil 3

5. Dezember 2014, 13:25 Uhr | Von Dr. Claus Kühnel
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 2

E-Mail über Google Mail versenden

Listing 4. cURL-Kommando zum Versenden einer E-Mail über das Temboo-Choreo Sendmail
Listing 4. cURL-Kommando zum Versenden einer E-Mail über das Temboo-Choreo Sendmail.
© QIAGEN Instruments AG

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“.

passend zum Thema

Listing 5. Dieses Arduino-Programm (Quelltext vs.ino) erzeugt Zufallszahlen, die einen Sensor simulieren sollen. Die Werte werden dann alle zwei Sekunden an das Linux-Device des UDOO verschickt
Listing 5. Dieses Arduino-Programm (Quelltext vs.ino) erzeugt Zufallszahlen, die einen Sensor simulieren sollen. Die Werte werden dann alle zwei Sekunden an das Linux-Device des UDOO verschickt.
© QIAGEN Instruments AG

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.

Listing 6. Das Shell-Script bridge.sh fragt die serielle Schnittstelle des Linux-Device ab und untersucht den empfangenen Zahlenwert auf die Einhaltung bestimmter Grenzwerte
Listing 6. Das Shell-Script bridge.sh fragt die serielle Schnittstelle des Linux-Device ab und untersucht den empfangenen Zahlenwert auf die Einhaltung bestimmter Grenzwerte.
© QIAGEN Instruments AG

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.

 

 

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



  1. Arduino als IoT-Maschine - Teil 3
  2. Daten in einer Web-Tabelle speichern
  3. E-Mail über Google Mail versenden

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!