Raspberry Pi für Profis

SMS senden und empfangen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Der Raspberry Pi versendet SMS-Nachrichten mit Hilfe eines entsprechenden Skripts. Zusätzlich steht ein weiteres vorgefertigtes Skript für den Empfang dieser Nachrichten zur Verfügung.
06:07

Transkript

Eine SMS zu empfangen und zu schicken mit dem Raspberry ist relativ einfach, wenn Sie mal einen Surfstick zum Laufen gebracht haben. Ich gehe also davon aus, dass Sie einen funktionstüchtigen Surfstick in ihren Raspberry eingesteckt haben. Ich zeige Ihnen zunächst einmal, wie das Ganze auf der Kommandozeile aussieht, und später schauen wir uns diese Skripte etwas genauer an. Ich bin hier auf meinem Raspberry eingeloggt und starte einfach mal das Skript "sendsms.sh" und dann gebe ich die Telefonnummer ein an die ich diese SMS verschicken möchte, und dann einfach den eigentlichen SMS-Text. Weil der Leerzeichen enthält, muss ich ihn in Anführungszeichen setzen. und schreibe das berühmte "Hallo Welt", klicke auf "Okay" und dann habe ich auch schon sofort eine Antwort. Alles klar, diese SMS wurde verschickt. Schauen wir uns mal an, ob diese SMS ankam mit "fetchsms.sh" dauert eine Sekunde. Dann sehen Sie, ich habe von dieser Telefonnummer hier vorne eine SMS bekommen mit dem Titel "Hallo Welt". Das sind die beiden Skripte und die schauen wir uns jetzt noch etwas genauer an. "sendsms.sh", hier sehen wir es uns am besten in den Projektdateien an, da ist es bunt und leichter übersichtlich. Das ist ein normales Bash-Skript und das eigentliche Hauptprogramm befindet sich ganz am Ende. Das besteht eigentlich nur aus drei Schritten, aus "verify_input", aus "build_sms" und aus "send_sms". Schauen wir uns das mal der Reihe nach an. "verify_input", da wird einfach überprüft, ob der Nutzer zwei Variablen angegeben hat, nämlich die Telefonnummer und auch tatsächlich diesen Text. Und es wird überprüft, ob das erste, was er angegeben hat, auch tatsächlich eine Telefonnummer ist. Nicht dass er das irgendwie vertauscht hat und zuerst den SMS-Text, sondern die Telefonnummer angegeben hat. "verify_input", das ist in Ordnung. Dann wird eine SMS erzeugt, mit "build_sms". Gehen wir mal hier oben rein. Da wird zunächst einmal in die Variable "now" das aktuelle Datum und die aktuelle Zeit gespeichert. Es wird nachgeschaut, wie viele Zeichen hat denn die SMS, die hier mit "$1" übergeben wird, und dann wird das Ganze in einer XML-Datei gespeichert. Und diese XML-Datei heißt "sms.xml". Es gibt dann ein Index "-1", hier wird die Telefonnummer des Empfängers angegeben. Hier ist der eigentliche Inhalt der SMS und die Länge und das Datum angegeben. Und als Letztes wird dann tatsächlich diese SMS verschickt und das ist die eigentliche Magie bei diesem Skript: Mit einem "curl"-Aufruf wird einfach "192.168.1.1" aufgerufen. "api/sms/send-sms", das ist innerhalb dieser Weboberfläche, die der Huawei-Stick bereitstellt, eben die Schnittstelle, um diese SMS zu verschicken. Der Inhalt dieser SMS befindet sich eben in dieser XML-Datei und wenn das Ganze verschickt worden ist, wird diese XML-Datei wiederum gelöscht. Das war es, so verschicke ich eine SMS und ähnlich funktioniert das Ganze dann auch mit dem Abholen von SMS. "fetchsms.sh", auch hier habe ich ganz am Ende das Hauptprogramm. "prepare_to_fetch", "_fetch_sms", "read_sms" und dann nochmal ein "exit". Gehen wir es der Reihe nach durch. "prepare_to_fetch", das erzeugt eine XML-Datei, die heißt "fetch.xml" und das bedeutet einfach, dass ich die ersten 20 SMS die auf der SIM-Karte gespeichert oder angekommen sind, abholen möchte. Mit "fetch_sms" mache ich es ähnlich, wie beim Versenden: Ich schicke per "curl" diese XML-Datei an diesen Huawei-Stick beziehungsweise an die Weboberfläche dieses Huawei-Sticks und bekomme dann eine Antwort zurück. Und diese Antwort wird in "allsms.xml" gespeichert. Und das ist eine normale XML-Datei und die kann ich dann der Reihe nach bearbeiten. In dem Fall mache ich das mit "awk" und ich sage, ich möchte alles, was in dieser XML-Datei steht, in ein anderes Format, in eine Text-Datei, überführen und diese Text-Datei hat einfach Zeile für Zeile jede SMS gespeichert. Und die einzelnen Felder in dieser Datei sind mit einem Tabstopp, hier sehen wir dieses Tabstopp, voneinander getrennt. Und mit "read_sms" gehe ich dann diese Datei Zeile für Zeile durch, splitte jede einzelne Zeile extra auf und sage "index", "phone", "content" und "date" und das gebe ich dann hier aus. Das ist genau das, was wir hier auch gesehen haben, nämlich die Telefonnummer und eigentlichen Inhalt dieser Datei. Und jetzt kann ich beispielsweise sagen, wenn der "content" "play" lautet, dann soll etwas Spezielles ausgelöst werden und diese SMS soll danach auch gelöscht werden. Und jetzt könnte ich hier sagen, "play", "start", "stop", was auch immer. Und je nachdem, was hier drin ist, wird hier eben ein anderer Befehl auf der Kommandozeile ausgelöst. Wenn dieser Befehl abgearbeitet ist, dann soll diese SMS gelöscht werden und das passiert in der Funktion "delete_sms". Und Sie ahnen es schon, auch hier wird eine XML-Datei erzeugt. Und diese XML-Datei wird per "curl" an die Weboberfläche des Huawei-Sticks weitergereicht. Sie sehen also, es ist relativ einfach. Der Trick besteht darin, dass wir XML-Dateien an die Weboberfläche des Huawei-Sticks auf "192.168.1.1" verschicken und dann eben verschiedene Befehle, wie "senden" und "löschen" abgeben. Wenn Sie diese Dateien erzeugen, dann ist es noch wichtig, dass Sie diese Datei natürlich ausführbar machen. Das heißt, wir müssen "fetchsms.sh" und "sendsms.sh" mit "chmod 755" ausführbar machen, denn nur dann können wir eben dieses Skript auch ausführen.

Raspberry Pi für Profis

Sehen Sie, wie Sie den Minicomputer Raspberry Pi im W-LAN betreiben, damit ins Internet gehen, ihn per E-Mail steuern, SMS versenden, QR-Codes entziffern und vieles mehr.

1 Std. 38 min (27 Videos)
Derzeit sind keine Feedbacks vorhanden...
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:30.06.2014
Aktualisiert am:01.04.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!