SIM800L-basierter SMS-Controller

SIM800L V2.0 GSM / GPRS ist ein Quadband-GSM / GPRS-Modul, das mit Arduino kompatibel ist. Das Modul dient zur Implementierung der Funktionen GSM (Anrufe und SMS) und GPRS. Der Vorteil dieses Moduls ist die TTL-Schnittstelle mit einer Spannung von 5V, mit der Sie es direkt an ein Arduino oder ein anderes System mit einer 5V-Stromversorgung anschließen können. Die meisten GSM / GPRS-Module auf dem Markt erfordern Regleranschlüsse oder Pegelumsetzung, während in SIM800L V.2 für GSM / GPRS keine zusätzlichen Schnittstellen-Pegelumsetzungsschaltungen erforderlich sind.

Hier ist ein Beispielprojekt mit SIM800L V.2 GSM / GPRS. Die Bedeutung des Projekts ist die Steuerung der Switches mit dem SMS-Controller. Sie können die meisten Haushaltsgeräte im Haus problemlos ein- und ausschalten, z. B. ein Lama, ein Ventilator usw.

Eigenschaften des SIM800L V.2 GSM / GPRS-Moduls

Nachfolgend finden Sie alle technischen Daten des SIM800L V.2 GSM / GPRS-Moduls:

  • Die serielle TTL-Schnittstelle ist mit 3, 3 V- und 5 V-Mikrocontrollern kompatibel, die mit Arduino kompatibel sind.

  • Das SIM800L-Modul verfügt über eine serielle TTL-Schnittstelle.

  • Antennenstecker

  • Netzwerkunterstützung: Vier Bänder mit 850/900/1800/1900 MHz, die Anrufe, SMS und Datenübertragung mit deutlich reduziertem Batterieverbrauch ermöglichen.

  • VDD TTL UART-Schnittstelle, damit Sie eine MCU wie 51MCU, ARM oder MSP430 direkt anschließen können. VDD-Stecker zur Anpassung der TTL-Spannung.

  • Modell: SIMCOM SIM800L

  • Arbeitsspannung: von 3, 7 V bis 5 V;

  • Abmessungen: 40 mm x 28 mm x 3 mm

  • GPRS-Multislot-Klasse 12/10

  • GPRS Batch Service Klasse B

  • Entspricht der GSM Phase 2/2 +

  • Klasse 4 (2 Watt bei 850/900 MHz)

  • Klasse 1 (1 Watt bei 1800/1900 MHz)

    Benötigte Materialien

    Sie benötigen:

    1. SIM800L V.2 GSM / GPRS-Modul.

    2. Arduino Uno.

    3. 4-Kanal-5-Volt-Relaismodul.

    4. Drähte - Brücken.

    5. Spannungsversorgung 5 V.

    (Aktive Links zum Shop zum Kauf)

    Montage und Konfiguration

    Nachdem Sie alle Komponenten verbunden haben, erstellen Sie ein Programm und laden Sie es auf Ihren Arduino herunter. Zunächst müssen Sie jedoch die GPRS-Bibliothek installieren, die Sie herunterladen können:

    gprs.zip [28.02 Kb] (downloads: 507)

    Programmcode für Arduino

    Nachdem Sie Ihr SIM800L, 4-Kanal-Relaismodul und Arduino an Ihren Computer angeschlossen haben, geben Sie den folgenden Code ein und Sie sind fertig.

      #include #include #define TIMEOUT 5000 #define ACTIVE LOW #define OFF HIGH 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 >> Automatically Read SMS"); gprs.preInit(); delay(1000); while (0 != gprs.init()) { delay(1000); Serial.print("init errorrn"); } // Manage message to mode ASCII if (0 != gprs.sendCmdAndWaitForResp("AT+CMGF=1rn", "OK", TIMEOUT)) { ERROR("ERROR:CNMI"); return; } // Read Incoming SMS if (0 != gprs.sendCmdAndWaitForResp("AT+CNMI=1, 2, 0, 0, 0rn", "OK", TIMEOUT)) { ERROR("ERROR:CNMI"); return; } int pjg = replyNumber.length() + 1; buffNumber[pjg]; replyNumber.toCharArray(buffNumber, pjg); Serial.print("Send reply to number = > "); Serial.println(buffNumber); Serial.println("Initialization Done"); Serial.println("============================================================="); } void loop() { // Change status Relay ON / OFF for(int i=0; i 0) { if (nextLineIsMessage) { Serial.println(lastLine); // ================================================================>> Function of Relay Controller //Relay 1 Controller if (lastLine.indexOf("Relay 1 ON") >= 0) { StatRelay[0] = AKTIF; Serial.print("Reply====>>>> "); Serial.println("Relay 1 Status Active"); gprs.sendSMS (buffNumber, "Relay 1 Status Active"); } else if (lastLine.indexOf("Relay 1 OFF") >= 0) { StatRelay[0] = MATI; Serial.print("Reply====>>>> "); Serial.println("Relay 1 Status Off"); gprs.sendSMS (buffNumber, "Relay 1 Status Off"); } //Relay 2 Controller if (lastLine.indexOf("Relay 2 ON") >= 0) { StatRelay[1] = AKTIF; Serial.print("Reply====>>>> "); Serial.println("Relay 2 Status Active"); gprs.sendSMS (buffNumber, "Relay 2 Status Active"); } else if (lastLine.indexOf("Relay 2 OFF") >= 0) { StatRelay[1] = MATI; Serial.print("Reply====>>>> "); Serial.println("Relay 2 Status Off"); gprs.sendSMS (buffNumber, "Relay 2 Status Off"); } //Relay 3 Controller if (lastLine.indexOf("Relay 3 ON") >= 0) { StatRelay[2] = AKTIF; Serial.print("Reply====>>>> "); Serial.println("Relay 3 Status Active"); gprs.sendSMS (buffNumber, "Relay 3 Status Active"); } else if (lastLine.indexOf("Relay 3 OFF") >= 0) { StatRelay[2] = MATI; Serial.print("Reply====>>>> "); Serial.println("Relay 3 Status Off"); gprs.sendSMS (buffNumber, "Relay 3 Status Off"); } //Relay 4 Controller if (lastLine.indexOf("Relay 4 ON") >= 0) { StatRelay[3] = AKTIF; Serial.print("Reply====>>>> "); Serial.println("Relay 4 Status Active"); gprs.sendSMS (buffNumber, "Relay 1 Status Active"); } else if (lastLine.indexOf("Relay 4 OFF") >= 0) { StatRelay[3] = MATI; Serial.print("Reply====>>>> "); Serial.println("Relay 4 Status Off"); gprs.sendSMS (buffNumber, "Relay 4 Status Off"); } nextLineIsMessage = false; } // ==================================================================>> } //Clear char array for next line of read for ( int i = 0; i < sizeof(currentLine); ++i ) { currentLine[i] = (char)0; } currentLineIndex = 0; } else { currentLine[currentLineIndex++] = lastCharRead; } } } 

    Geräteprüfung

    Das Tool sendet eine SMS mit einer bestimmten Zeichenfolge an SIM800L. Verwenden Sie zum Aktivieren von Relais 1 beispielsweise den Befehl „Relais 1 EIN“ und zum Ausschalten den Befehl „Relais 1 AUS“. Die restlichen Relais haben fast die gleichen Befehle, mit Ausnahme der Seriennummer jedes Relais, auf das Sie einwirken möchten. Nach dem automatischen Senden einer Nachricht sendet das SIM800 eine Antwort in Form einer Statusnachricht für jede SIM-Karte.

    Videomontage, Konfiguration und Geräteüberprüfung

    Originalartikel in Englisch