Wie man ein SIM800L GSM-Modul mit dem Raspberry Pi (ohne Akku) einschalten und verwenden kann.
Kommentareⓘ Cet article peut avoir été partiellement ou totalement traduit à l'aide d'outils automatiques. Nous nous excusons des erreurs que cela pourrait engendrer.
Das SIM800L ist ein GSM/GPRS-Modem, das aufgrund seines sehr niedrigen Preises und seiner hohen Verfügbarkeit in der Elektronik weit verbreitet ist. Es ist eine kostengünstige Möglichkeit, SMS mit einem Raspberry Pi oder Arduino zu senden, sich mit 3G anzuschließen oder ein GPS zu implantieren.
Dennoch ist es fast unmöglich, befriedigende Erklärungen über seine Verwendung und besonders auf seinen Anschluss zu finden.
In diesem Tutorial werden wir also sehen, wie man ein SIM800L von einem Raspberry aus ansteckt und mit Strom versorgt (beachten Sie, dass es auch für ein Arduino funktioniert), ohne externe Stromversorgung oder Batterie!
Die Nötige Hardware, um Ihren SIM800L an Ihren Raspberry anzuschließen.
Wir werden in details und Erklärungen weiter in diesem Tutorial gehen, aber sie sollten wissen, dass ein SIM800L mit einem Raspberry verbindet ein wenig Material erforderlich ist. So werden Sie brauchen:
- Ein SIM800L-Modul.
- Ein Lötkolben, um Ihre SIM800L zu montieren, wenn es nicht bereits ist.
- Ein Breadboard, ein 5 V Kondensator, 100 μF oder mehr, eine 1N4007-Diode, Dupont-Kabel. Sie könnten jedes Einzelne kaufen, aber Sie sollten tatsächlich Dutzende von Kondensatoren und Dioden kaufen, nur um die Versandkosten zu amortisieren. Ich halte es daher für am einfachsten, ein solches Elektronikset zu nehmen, das alles enthält, was wir gerade zitiert haben.
Natürlich benötigen Sie auch ein Raspberry mit raspbian installiert und eine SIM-Karte mit einem Abonnement. Bitte beachten Sie, dass die SIM-Karte im Mikro-SIM-Format sein muss. Wenn Sie ein kleineres Format (nano) haben, benötigen Sie einen Adapter.
Nun zu den Erklärungen und der Praxis.
Keine Zeit oder Lust, die Erklärungen zu lesen? Gehen Sie direkt zum Teil "In der Praxis"….
Die Theorie, wie verwende ich ein SIM800L mit einem Raspberry Pi?
Das SIM800L ist ein Modem. Er ist verantwortlich für die Registrierung im Netz Ihres Betreibers usw. Insgesamt verhält es sich wie ein Telefon, das Sie direkt von Ihrem Raspberry steuern können.
Um das SIM800L vom Raspberry aus steuern zu können, müssen Sie eine Stromversorgung zum ersten liefern und beides physisch und softwareisch mit einem TTL-Anschluss verbinden, der häufiger als Seriell oder Schnittstelle bezeichnet wird.
Von da an können Sie das SIM800L steuern, indem Sie so genannte Hayes – man spricht häufiger von AT-Befehlen – an den serielle Port senden, die für die Funktion eines Modems spezifisch sind. Z.B. eine SMS senden, eine PIN eingeben, den Status des Netzwerks überprüfen und vieles mehr!
Um ein SIM800L mit dem Raspberry Pi zu verwenden, müssen Sie also folgendes tun:
- Den VDD von SIM800L an ein GPIO anschließen, das Strom auf dem Raspberry liefert.
- Verbinden Sie den SIM800L-GND mit einem GND-GPIO auf dem Raspberry.
- Den TXD von SIM800L mit dem Raspberry RXD verbinden.
- Die Raspberry RXD mit dem SIM800L TXD verbinden.
- Senden und Empfangen von Daten mit AT-Befehlen auf der serielle Port.
Nun, das ist die Theorie, aber sie werden sehen, dass die Dinge in der Praxis etwas komplizierter sind…
Die Realität, warum ist es schwierig, ein SIM800L anzuschließen?
Wenn die Theorie scheint einfach zu sein, werden Sie in Wirklichkeit ziemlich wenige Tutorials im Internet finden, die Ihnen erklären, wie man die SIM800L mit einem Raspberry verwenden. Schlimmer noch, Sie werden im Wesentlichen falsche Tutorials finden, die ihre Installation bestenfalls völlig instabil machen, schlimmstenfalls Ihren SIM800L beschädigen.
Aber wie kommt es dann, dass nicht mehr hochwertige Ressourcen für ein so bekanntes Modul zur Verfügung stehen? Weil SIM800L besonders schwer zu füttern und empfindlich ist.
Ein Modul für Telefone und Batterien.
Ursprünglich wurde das SIM800L für die Verwendung in Telefonen von Herstellern entwickelt. Die Verwendung in der Unterhaltungselektronik ist viel jünger und wurde vom Hersteller überhaupt nicht in Erwägung gezogen.
Als Folge seiner Verwendung in Telefonen ist das Modul so konzipiert, dass es mit Lithium-Ionen-Batterien betrieben werden kann, die Spannungen von etwa 3,6 bis 3,7 Volt bieten. Diese Besonderheit wird uns ein erstes Problem bereiten, denn in der digitalen Elektronik werden normalerweise 3,3 Volt oder 5 Volt verwendet, aber nicht 3,6 Volt.
Ein energieintensives Modul.
Das zweite Problem ist, dass der SIM800L Funkoperationen durchführt, die sehr punktuelle Stromspitzen erfordern. In der Regel handelt es sich bei den fraglichen Transaktionen um die Registrierung im Netz des Betreibers, das Versenden von Nachrichten usw. Wenn das Modul in diesen Phasen den nötigen Strom nicht erhält, wird sein Verhalten völlig unvorhersehbar, das von der Fehlermeldung über den Netzverlust bis zum Neustart reicht.
Leider ist es so, dass die Stromversorgung im Allgemeinen und die GPIO-Ports des Raspberry Pi im Besonderen große Schwierigkeiten haben, auf diese Art von Verbrauchsspitzen zu reagieren.
Tatsächlich ist die Energiemenge so groß und über einen so kurzen Zeitraum, dass die Verwendung von zu langen und zu dünnen Stromkabeln ausreichen kann, um das Modul zum Abstellen zu bringen! Dies ist übrigens typisch, wenn Sie mehrere Dupont-Kabel in Serie anschließen.
Seien Sie versichert, wir erklären Ihnen, wie Sie diese beiden Probleme lösen können!
Wie kann man in der Praxis ein SIM800L direkt aus einem Raspberry versorgen?
Wir haben also gesehen, dass wir zwei Probleme haben, um ein SIM800L von einem Raspberry aus zu versorgen: eine inkompatible Spannung und Spitzenwerte für den Stromverbrauch.
Zunächst werden wir das Spannungsproblem angehen.
Verringern Sie die Spannung durch den Raspberry Pi.
Liest man das Datenblatt, d.h. das Datenblatt des SIM800L, sieht man, dass der Hersteller eine Stromspannung in 3,4 und 4,4 Volt mit einer optimalen Spannung von 4 Volt angibt.
Der Raspberry Pi kann zwei Spannungen liefern, 3,3 und 5 Volt. Wir sollten also unseren Blutdruck etwas erhöhen oder verringern.
Lassen Sie uns die erste Möglichkeit, die zu kompliziert zu implementieren ist, abstellen und die zweite prüfen. Wir suchen also nach einem zuverlässigen, einfachen und sehr kostengünstigen Weg, um eine Spannung von mindestens 0,6 Volt zu reduzieren, ohne die Stromstärke zu verringern (Ampere). Glücklicherweise gibt es ein elektronisches Bauteil, das genau das tut, und außerdem ist dieses Bauteil so weit verbreitet, dass es absolut jedem Elektroniker bekannt ist: die Diode.
Die Dioden sind in erster Linie dafür bekannt, dass sie den Strom in eine Richtung durchlassen. Aber eines ihrer Merkmale ist auch die Ursache eines Spannungsabfalles, der bei Siliziumdioden auf 0,7 Volt geschätzt wird.
Wir brauchen also nur eine Siliziumdiode einzufügen, wir nehmen eine 1N4007, zwischen dem 5-Volt-GPIO unseres Pi und dem PIN VDD (Stromversorgung) unseres SIM800L. Und siehe da, wir haben eine Spannung von 4,3 Volt, genau das, was wir brauchen.
Bereitstellung einer Stromquelle, die auf die Spitzenwerte des Verbrauchs reagieren kann.
Nun, da wir unser Spannungsproblem gelöst haben, bleibt unser Problem der Spitzen des Verbrauchs. Dieses Mal brauchen wir eine Komponente, die es uns ermöglicht, Strom zu speichern und sehr schnell zu liefern, wenn der SIM800L ihn benötigt. Und wieder ein Glücksfall, es gibt ihn und es heißt Kondensator!
Kondensatoren werden in vielen Fällen verwendet, aber eine der bekanntesten Verwendungen ist die Fütterungsstabilisierung. Sie laden auf, wenn es zu viel Strom gibt, und entladen sich, wenn es an Strom fehlt.
Wir werden also einen elektrolytischen Kondensator (wir nehmen mindestens 100 μF 5 V, wenn wir mehr in μF oder in Volt keine Probleme haben) parallel zu den VDD- und GND-Pinien unseres SIM800L einsetzen.
Die komplette Montage.
Nun, da wir unsere Probleme gelöst haben, wollen wir sehen, wie unsere komplette Montage aussieht, bevor wir alles mit einer SMS testen.
Um alle unsere Komponenten an Ort und Stelle zu halten und sie miteinander zu verbinden, werden wir ein Breadboard und Dupont-Kabel verwenden.
Dies ist das endgültige Verzweigungsschema, der rote Faden geht zum VDD, der schwarze zum GND.
Einige Anmerkungen zur Montage:
- Führen Sie den Raspberry-Anschluss aus und nicht angeschlossen, verbinden Sie es erst, nachdem Sie alles überprüft haben und sicher sein, dass Ihre Montage gut ist.
- Achten Sie darauf, den Kondensator so nah wie möglich an die VDD- und GND-Kiefern des SIM800L anzuschließen, ideal wie auf dem Schema.
- Der Kondensator ist ein polarisiertes Bauteil, es muss in einer bestimmten Richtung angeschlossen sein, anode auf den VDD, Kathode auf den GND. Die Kathode ist mit einem weißen Streifen auf der Seite markiert.
- Wie der Kondensator ist auch die Diode ein polarisierter Bestandteil, auch hier ist die Kathode mit einem weißen Streifen markiert.
Sobald die Montage abgeschlossen ist, können Sie die SIM-Karte in den vorgesehenen Platz auf dem SIM800L einlegen.
Achten Sie auf die Bedeutung, das ist absolut nicht intuitiv. Sie müssen die Kontaktkarte gegen die Platine eingeben, die schräge Ecke zur Öffnung (es ist etwas größer). Wenn Sie die Karte auf den Kopf stellen, haben Sie einen Standardfehler SIM not inserted
Mit hilfe des Moduls.
Sobald die Montage fertig ist, schalten Sie Ihren Raspberry Pi ein, wir können es mit einer SMS testen!
Senden Sie Ihre erste SMS aus dem Raspberry mit einem SIM800L.
Um dieses Tutorial zu beenden, senden wir eine erste SMS, um zu überprüfen, ob alles funktioniert. Wir gehen bei der Verwendung von SIM800L nicht weiter, aber beachten Sie, dass es viele andere Funktionen bietet. Für eine weitere Nutzung lesen Sie sich im AT-Befehlsleitfaden für die SIM800.
Für den Anfang müssen Sie unserem Tutorial folgen, um den Raspberry Pi Series Port zu aktivieren. Sobald Sie mit der Aktivierung des serielle Ports fertig sind, können wir uns über den serielle Port mit dem SIM800L verbinden.
Um dies zu machen, öffnen Sie eine Verbindung auf /dev/serial0
mit minicom mit der Befehlszeile unten:
sudo minicom -b 115000 -o -D /dev/serial0
Geben Sie den Befehl ein AT
(Oft wird die erste Zeile nicht angezeigt, wenn man tippt, das ist normal) und dann eine Rückfahrt zur Zeile machen, um zu bestätigen. Sie sollten eine Antwort-Nachricht haben OK
.
Jetzt prüfen wir, ob die SIM-Karte freigeschaltet ist (der PIN-Code ist eingegeben). Um dies zu ändern, tippen Sie den Befehl AT+CPIN?
. Wenn die Karte freigeschaltet ist, sollten Sie eine Antwort haben:
+CPIN: READY
OK
Wenn Sie eine Antwort wie diese unten haben, müssen Sie die PIN auf Ihrer Karte eingeben.
+CPIN: SIM PIN
OK
Dazu verwenden Sie den Befehl AT+CPIN=0000
durch Ersatz 0000
Durch ihre eigene PIN.. Dann sollten Sie eine Antwort in der Form haben:
AT+CPIN=0000
OK
+CPIN: READY
SMS Ready
Call Ready
Es ist gut, Sie sind mit dem Netzwerk Ihres Betreibers verbunden. Jetzt müssen wir nur noch eine SMS schreiben. Dazu verwenden Sie die Befehle AT+CMGF=1
um den Textmodus zu aktivieren (so können wir die SMS in einem für einen Menschen verständlichen Format schreiben), dann AT+CMGS="+33612345678"
durch Ersatz +33612345678
durch die Nummer, an die Sie die SMS senden möchten.
Ein Zeichen >
wird erscheinen, geben Sie Ihre SMS und dann, wenn Sie fertig sind, machen Sie Ctrl+Z
.
Am Ende sollten Sie etwas von der folgenden Form haben:
AT+CMGF=1
OK
AT+CMGS="+33612345678"
> Mon premier SMS avec un SIM800L
+CMGS: 29
OK
Und siehe da, Sie haben Ihre erste SMS mit einem Raspberry Pi und einem SIM800L geschickt!
Wie Sie sehen können, ist die tägliche Verwendung direkt bei AT-Bestellungen nicht unbedingt sehr praktisch, aber seien Sie versichert, es gibt Software, um Ihnen das Leben zu vereinfachen, und darüber werden wir in Kürze in einem weiteren Tutorial sprechen!