Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
! ! ! NOTIZ ! ! !
Da der lokale Mobilfunkmast in meiner Nähe aufgerüstet wird, kann ich dieses GSM-Modul nicht mehr verwenden. Der neuere Tower unterstützt keine 2G-Geräte mehr. Daher kann ich dieses Projekt nicht mehr unterstützen
Vor kurzem habe ich ein relativ günstiges Quad Band GSM/GPRS Modul zum Spielen bekommen. Es ist ein SIM800L-Modul und kommuniziert mit jedem Mikro über eine serielle Schnittstelle. Es kam komplett mit einer Panel-Mount-Antenne.
Ich beschloss, ein einfaches SMS-Controller-System zu bauen, das Befehle des Kurznachrichtendienstes (SMS) verwendet, um Geräte zu steuern und Alarme anzuzeigen.
Schritt 1: SMS-Befehle
Wie bei jedem Kommunikationssystem müssen bestimmte Befehle an ein entferntes Gerät gesendet werden, um ihm mitzuteilen, was zu tun ist. Ebenso muss das entfernte Gerät auf diese Befehle antworten oder reagieren. Dieses Projekt besteht aus zwei Teilen, dem SMS-Controller und einem Standard-Mobiltelefon.
Die Idee war, einen einfachen SMS-Controller mit vier digitalen Ausgängen zu schaffen. Abhängig von der empfangenen SMS muss das Gerät die einzelnen Ausgänge steuern können.
Ich habe mich auch für vier digitale Eingänge entschieden. Dies kann verwendet werden, um Alarme oder andere Informationen anzuzeigen.
Bevor ich mit dem Build begann, habe ich beschlossen, bestimmte Befehle für bestimmte Funktionen zu erstellen. Diese „Befehle“werden per SMS von einem Mobiltelefon gesendet.
SMS-Controller-Empfangsbefehle:
o1:1 - Ausgang 1 einschalten
o1:0 - Ausgang 1 ausschalten
o1:p - Impulsausgang 1 Ein, dann ausschalten
o2:1 - Ausgang 2 einschalten
o2:0 - Ausgang 2 ausschalten
o2:p - Impulsausgang 2 Ein, dann ausschalten
o3:1 - Ausgang 3 einschalten
o3:0 - Ausgang 3 ausschalten
o3:p - Impulsausgang 3 Ein, dann ausschalten
o4:1 - Ausgang 4 einschalten
o4:0 - Ausgang 4 ausschalten
o4:p - Impulsausgang 4 Ein, dann ausschalten
???? - Status der Ein- und Ausgänge abfragen
#### - System zurücksetzen
Für Rückmeldungen sollte der SMS Controller auf die empfangenen Befehle reagieren und mit einer SMS antworten. Ich entschied, dass diese Antwort-SMS den Status aller I/O-Pins enthalten sollte.
Antwortbefehle des SMS-Controllers:
i1:x i2:x i3:x i4:x o1:x o2:x o3:x o4:x
wobei x der E/A-Status ist, 1 für Ein, 0 für Aus.
Schritt 2: Aufbau des SMS-Controllers
Benötigte Ausrüstung:
Jeder Arduino oder eigenständiger ATMEGA328p auf einem Steckbrett
SIM800L GSM/GPRS-Modul mit einer SIM-Karte, die SMS senden und empfangen kann
Step-Down-DC/DC-Wandler
HINWEIS !
Der DC/DC-Wandler wird zur Stromversorgung des SIM800L-Moduls benötigt. Dieses Modul arbeitet je nach Version zwischen 3,7 V und 5 V. Dieses Modul benötigt auch eine Stromversorgung, die bis zu 2A liefern kann, wenn das Modul Daten überträgt. Es kann nicht direkt vom Arduino Uno mit Strom versorgt werden !
Die Schaltung ist ganz einfach. Ich habe es zusammengebaut und auf Steckbrett getestet.
Die Stromversorgung der Schaltung erfolgt über den DC/DC-Wandler, wobei die Ausgangsspannung auf 4,5 V eingestellt ist. Es gibt vier LEDs zur Simulation der digitalen Ausgänge und vier Tasten für die digitalen Eingänge. Der SIM800L wird an die Rx/Tx-Pins des ATMEGA328p angeschlossen.
Eine 5. LED wird verwendet, um anzuzeigen, wenn das System mit dem Senden einer SMS beschäftigt ist.
Schritt 3: Programmierung des ATMEGA328p
Öffnen Sie vor dem Programmieren die INO-Datei und bearbeiten Sie die Telefonnummer. Ersetzen Sie xxxxxxxxxx in Zeile 46 durch Ihre eigene Mobilfunknummer. Kompilieren Sie die Datei erneut und laden Sie sie hoch.
Lesen Sie auch die Anweisungen zum Konfigurieren des seriellen Software-Ports in der INO-Datei.
//=============================================================================//
// ! ! ! HINWEIS ! ! !
// ================
//
// PUFFER IN DER SERIELLEN SOFTWAREBIBLIOTHEK WIRD AUF 200. GEÄNDERT
//
// Um Software Serial zu verwenden, sollte der Benutzer auch den Software Serial BUFFER auf 200 ändern.
// Dies muss in der folgenden Datei bearbeitet werden:
//
// C:/Programme/Arduino x.x.x/Hardware/Arduino/AVR/Libraries/SoftwareSerial/src/SoftWareSerial.h
//
// Ändern Sie den Puffer wie folgt:
//
// #ifndef_SS_MAX_RX_BUFF
// #define _SS_MAX_RX_BUFF 200
// RX-Puffergröße
// #endif
//
//=============================================================================
Beziehen Sie sich auf diese Anleitung, um den ATMEGA328p auf dem Steckbrett mit einem Arduino UNO zu programmieren.
www.instructables.com/id/Arduino-UNO-as-AtM…
Schritt 4: Verwenden des SMS-Controllers
Verwenden des SMS-Controllers
Der SMS Controller sendet automatisch eine SMS an Ihr Telefon, wenn einer der vier Eingänge ausgelöst wird. Die Details des Auslösers sind im SMS-Text enthalten.
Die SMS-Nachrichten und Befehle können in der INO-Datei nach Ihren Wünschen bearbeitet werden.
Testen der SMS-Controller-Ausgänge
Senden Sie von Ihrem Mobiltelefon die folgenden Befehle an Ihre SIM800L-Simkartennummer:
o1:1, dies schaltet Ausgang 1 ein.
Auf Ihrem Telefon erhalten Sie folgende SMS:
i1:0 i2:0 i3:0 i4:0 o1:1 o2:0 03:0 o4:0
01:0, dies schaltet Ausgang 1 aus.
Auf Ihrem Telefon erhalten Sie folgende SMS:
i1:0 i2:0 i3:0 i4:0 o1:0 o2:0 03:0 o4:0
01:p, dadurch wird Ausgang 1 für 1 Sekunde eingeschaltet und dann Ausgang 1 wieder ausgeschaltet (gepulst).
Auf Ihrem Telefon erhalten Sie folgende SMS:
i1:0 i2:0 i3:0 i4:0 o1:0 o2:0 03:0 o4:0
Testen der SMS-Controller-Eingänge
Am SMS Controller Taste 1 kurz drücken
Auf Ihrem Telefon erhalten Sie automatisch folgende SMS:
i1:1 i2:0 i3:0 i4:0 o1:0 o2:0 03:0 o4:0
Am SMS Controller Taste 2 kurz drücken
Auf Ihrem Telefon erhalten Sie automatisch folgende SMS:
i1:1 i2:1 i3:0 i4:0 o1:0 o2:0 03:0 o4:0
Am SMS Controller Taste 3 kurz drücken
Auf Ihrem Telefon erhalten Sie automatisch folgende SMS:
i1:1 i2:1i3:1 i4:0 o1:0 o2:0 03:0 o4:0
Wie auf der empfangenen SMS zu sehen ist, ändern sich die Ausgänge entsprechend den empfangenen Befehlen. Die Eingänge wechseln jedoch nach dem Drücken der Tasten nicht von 1 auf 0 zurück. Da ich Änderungen an den Eingängen sehen wollte, habe ich mich entschieden, den Eingangsstatus zu versiegeln, bis ein Reset-Befehl an den SMS-Controller gesendet wird.
Alarme zurücksetzen
Um den Eingangsstatus zurückzusetzen, senden Sie den folgenden Befehl:
####, dadurch wird der Eingangsstatus zurückgesetzt.
Auf Ihrem Telefon erhalten Sie folgende SMS:
i1:0 i2:0 i3:0 i4:0 o1:0 o2:0 03:0 o4:0
Status Updates
Sie können den Status auch jederzeit durch Senden des folgenden Befehls abfragen:
????, wird eine Statusaktualisierung der I/Os angefordert.
Auf Ihrem Telefon erhalten Sie folgende SMS:
i1:x i2:x i3:x i4:x o1:x o2:x 03:x o4:x
wobei x den Status angibt, 1 für ein, 0 für aus.
Schritt 5: Android-Anwendung
Mit MIT App Inventor 2 (https://ai2.appinventor.mit.edu/) habe ich eine einfache Benutzeroberfläche für mein Android-Handy erstellt. Mit dieser App können Sie die Beschreibung jedes E/A anpassen. Es ermöglicht auch die Eingabe der Telefonnummer.
Die vier Schaltflächen dienen zur Steuerung der Ausgänge, während die Kontrollkästchen den Eingangsstatus anzeigen.
Um die App zu bearbeiten, erstellen Sie ein MIT App Inventor 2-Konto und importieren Sie die AIA-Datei.
Um die App auf Ihrem Telefon zu installieren, kopieren Sie die APK-Datei auf Ihr Telefon und installieren Sie sie. Sie müssen die Installation von Apps aus "Unbekannten Quellen" in den Sicherheitseinstellungen Ihres Telefons aktivieren.