SMS-Controller basierend auf SIM800L
SIM800L V2.0 GSM/GPRS ist ein Quadband-GSM/GPRS-Modul, das mit Arduino kompatibel ist. Das Modul dient zur Umsetzung von GSM- (Anrufe und SMS) und GPRS-Funktionen. Der Vorteil dieses Moduls ist die TTL-Schnittstelle mit einer Spannung von 5 V, die den direkten Anschluss an Arduino oder jedes andere System mit 5 V Versorgungsspannung ermöglicht. Die meisten auf dem Markt erhältlichen GSM/GPRS-Module erfordern Reglerverbindungen oder Pegelumwandlung, während GSM/GPRS in SIM800L V.2 keine zusätzlichen Schaltungen zur Schnittstellenpegelumwandlung erfordert.
Lassen Sie uns ein Beispiel für ein Projekt mit SIM800L V.2 GSM/GPRS geben. Ziel des Projekts ist die Steuerung von Schaltern mithilfe eines SMS-Controllers. Sie können die meisten Haushaltsgeräte im Haus, wie zum Beispiel ein Lama, einen Ventilator usw., problemlos ein- und ausschalten.
Eigenschaften des SIM800L V.2 GSM/GPRS-Moduls
Nachfolgend finden Sie alle technischen Eigenschaften des SIM800L V.2 GSM/GPRS-Moduls:
- Serielle TTL-Schnittstelle, kompatibel mit 3,3 V und 5 V Arduino-kompatiblen Mikrocontrollern.
- Das SIM800L-Modul verfügt über eine serielle TTL-Schnittstelle.
- Antennenanschlussstecker.
- Netzwerkunterstützung: vier Bänder 850/900/1800/1900 MHz, ermöglicht Anrufe, SMS und Datenübertragungen bei deutlich reduziertem Batterieverbrauch.
- VDD TTL UART-Schnittstelle, sodass Sie MCU wie 51MCU, ARM oder MSP430 direkt anschließen können.Der VDD-Stecker dient zur Anpassung der TTL-Spannung.
- Modell: SIMCOM SIM800L
- Betriebsspannung: von 3,7 V bis 5 V;
- Abmessungen: 40 mm x 28 mm x 3 mm
- GPRS-Multislot-Klasse 12/10
- GPRS-Paketdienstklasse B
- Entspricht GSM Phase 2/2+
- Klasse 4 (2 Watt bei 850/900 MHz)
- Klasse 1 (1 Watt bei 1800/1900 MHz)
Notwendige Materialien
Du brauchst:
1. SIM800L V.2 GSM/GPRS-Modul.
2. Arduino Uno.
3. 4-Kanal-5-V-Relaismodul.
4. Drähte - Jumper.
5. Stromversorgung 5V.
(Aktive Links zum Shop zum Kauf)
Montage und Konfiguration
Sobald Sie alle Komponenten angeschlossen haben, erstellen Sie ein Programm und laden es dann auf Ihren Arduino hoch. Zunächst müssen Sie jedoch die GPRS-Bibliothek installieren, die Sie herunterladen können:
gprs.zip
[28,02 Kb] (Downloads: 887)
Programmcode für Arduino
Sobald Sie Ihr SIM800L, das 4-Kanal-Relaismodul und Arduino an Ihren Computer angeschlossen haben, geben Sie den untenstehenden Code ein und schon sind Sie fertig.
#enthalten
#enthalten
#define TIMEOUT 5000
#Aktiv-Niedrig definieren
#define AUS HOCH
Byte Relay[] = {A0,A1,A2,A3};
Byte StatRelay[4];
char buffNumber[20];
char currentLine[500] = "";
int currentLineIndex = 0;
bool nextLineIsMessage = false;
String replyNumber = "089510863958";
GPRS GPRS;
void setup() {
for(int i=0; i < 4; i++) {
pinMode(Relay[i] , OUTPUT);
digitalWrite(Relay[i], MATI);
StatRelay[i] = MATI;
}
Serial.begin(9600);
while(!Serial);
Serial.println("SIM800L V2 aktivieren >>> SMS automatisch lesen");
gprs.preInit();
Verzögerung (1000);
while (0 != gprs.init()) {
Verzögerung (1000);
Serial.print("init errorrn");
}
// Nachricht im ASCII-Modus verwalten
if (0 != gprs.sendCmdAndWaitForResp("AT+CMGF=1rn", "OK", TIMEOUT)) {
ERROR("ERROR:CNMI");
zurückkehren;
}
// Eingehende SMS lesen
if (0 != gprs.sendCmdAndWaitForResp("AT+CNMI=1,2,0,0,0rn", "OK", TIMEOUT)) {
ERROR("ERROR:CNMI");
zurückkehren;
}
int pjg = ReplyNumber.length() + 1;
buffNumber[pjg];
ReplyNumber.toCharArray(buffNumber,pjg);
Serial.print("Antwort an Nummer senden => ");
Serial.println(buffNumber);
Serial.println("Initialisierung abgeschlossen");
Serial.println("=========================================== =============== ================");
}
void loop() {
// Status ändern Relais EIN / AUS
for(int i=0; i < 4; i++) {
digitalWrite(Relay[i], StatRelay[i]);
}
// Wenn Eingabedaten von SIM800 vorhanden sind
if (gprs.serialSIM800.available()) {
char lastCharRead = gprs.serialSIM800.read();
// Alle Daten auf lastCharRead speichern, wenn es r oder n gibt, als letztes Signal der eingehenden Nachricht
if (lastCharRead == 'r' || lastCharRead == 'n') {
String lastLine = String(currentLine);
// Wenn die letzte Nachricht +CMT anzeigt, dass eine neue Nachricht eintrifft
if (lastLine.startsWith("+CMT:")) {
Serial.println(lastLine);
nextLineIsMessage = true;
} else if (lastLine.length() > 0) {
if (nextLineIsMessage) {
Serial.println(lastLine);
// ============================================= ==== ================>> Funktion des Relais-Controllers
//Relais 1 Controller
if (lastLine.indexOf("Relay 1 ON") >= 0) {
StatRelay[0] = AKTIF;
Serial.print("Reply====>>>>");
Serial.println("Relais 1 Status aktiv");
gprs.sendSMS(buffNumber, „Relais 1 Status aktiv“);
}
else if (lastLine.indexOf("Relay 1 OFF") >= 0) {
StatRelay[0] = MATI;
Serial.print("Reply====>>>>");
Serial.println("Relais 1 Status Aus");
gprs.sendSMS(buffNumber, „Relais 1 Status Aus“);
}
//Relais 2-Controller
if (lastLine.indexOf("Relay 2 ON") >= 0) {
StatRelay[1] = AKTIF;
Serial.print("Reply====>>>>");
Serial.println("Relais 2 Status aktiv");
gprs.sendSMS(buffNumber, „Relais 2 Status aktiv“);
}
else if (lastLine.indexOf("Relay 2 OFF") >= 0) {
StatRelay[1] = MATI;
Serial.print("Reply====>>>>");
Serial.println("Relais 2 Status Aus");
gprs.sendSMS(buffNumber, „Relais 2 Status Aus“);
}
//Relais 3 Controller
if (lastLine.indexOf("Relay 3 ON") >= 0) {
StatRelay[2] = AKTIF;
Serial.print("Reply====>>>>");
Serial.println("Relais 3 Status aktiv");
gprs.sendSMS(buffNumber, „Relais 3 Status aktiv“);
}
else if (lastLine.indexOf("Relay 3 OFF") >= 0) {
StatRelay[2] = MATI;
Serial.print("Reply====>>>>");
Serial.println("Relais 3 Status Aus");
gprs.sendSMS(buffNumber, „Relais 3 Status Aus“);
}
//Relais 4-Controller
if (lastLine.indexOf("Relay 4 ON") >= 0) {
StatRelay[3] = AKTIF;
Serial.print("Reply====>>>>");
Serial.println("Relais 4 Status aktiv");
gprs.sendSMS(buffNumber, „Relais 1 Status aktiv“);
}
else if (lastLine.indexOf("Relay 4 OFF") >= 0) {
StatRelay[3] = MATI;
Serial.print("Reply====>>>>");
Serial.println("Relais 4 Status Aus");
gprs.sendSMS(buffNumber, „Relais 4 Status Aus“);
}
nextLineIsMessage = false;
}
// ============================================= ==== ===================>>
}
//Char-Array für die nächste Lesezeile löschen
for ( int i = 0; i < sizeof(currentLine); ++i ) {
currentLine[i] = (char)0;
}
currentLineIndex = 0;
}
anders {
currentLine[currentLineIndex++] = lastCharRead;
}
}
}
Geräteprüfung
Das Tool funktioniert, indem es eine SMS mit einer bestimmten Zeichenfolge an den SIM800L sendet. Um beispielsweise Relais 1 einzuschalten, verwenden Sie den Befehl „Relais 1 EIN“ und zum Ausschalten verwenden Sie den Befehl „Relais 1 AUS“. Für die übrigen Relais sind die Befehle nahezu identisch, mit Ausnahme der Sequenznummer jedes Relais, das Sie beeinflussen möchten. Nach dem automatischen Senden der Nachricht sendet SIM800 eine Antwort in Form einer Nachricht über den Status jeder SIM-Karte.
Video der Montage, Konfiguration und Prüfung des Geräts
Originalartikel auf Englisch
Ähnliche Meisterkurse
Besonders interessant
Mit eigenen Händen ein altes Musikcenter in ein neues umrüsten
So stellen Sie die Batterie eines Schraubendrehers wieder her
So installieren Sie Bluetooth selbst in jedes Autoradio
Das einfachste DIY-Elektrofahrrad
Werfen Sie Ihre alte Patrone nicht weg, sondern verwandeln Sie sie in eine Powerbank
Akkuschrauber austauschen
Kommentare (4)