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, sodass 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. .
2. .
3. .
4. .
5. .
(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:
[28.02 Kb] (downloads: 481)
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
#Definiere TIMEOUT 5000
#define AKTIV NIEDRIG
#define OFF HIGH
Byte Relais [] = {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 () {
für (int i = 0; i <4; i ++) {
PinMode (Relais [i], AUSGANG);
digitalWrite (Relais [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)) {
FEHLER ("FEHLER: CNMI");
zurückkehren
}
// Eingehende SMS lesen
if (0! = gprs.sendCmdAndWaitForResp ("AT + CNMI = 1,2,0,0,0rn", "OK", TIMEOUT)) {
FEHLER ("FEHLER: 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 ("Initialization Done");
Serial.println ("============================================ ================ ");
}
void loop () {
// Status Relais EIN / AUS ändern
für (int i = 0; i <4; i ++) {
digitalWrite (Relay [i], StatRelay [i]);
}
// Wenn Eingangsdaten von SIM800 vorliegen
if (gprs.serialSIM800.available ()) {
char lastCharRead = gprs.serialSIM800.read ();
// Alle Daten in lastCharRead speichern, dann, wenn es r oder n gibt, als endgültiges Signal für eingehende Nachrichten
if (lastCharRead == 'r' || lastCharRead == 'n') {
String lastLine = String (currentLine);
// Wenn die letzte Nachricht + CMT anzeigt, dass eine neue Nachricht eingegangen ist
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 Steuerung
if (lastLine.indexOf ("Relais 1 EIN")> = 0) {
StatRelay [0] = AKTIF;
Serial.print ("Reply ==== >>>>");
Serial.println ("Relais 1 Status Aktiv");
gprs.sendSMS (buffNumber, "Relais 1 Status Aktiv");
}
sonst wenn (lastLine.indexOf ("Relais 1 AUS")> = 0) {
StatRelay [0] = MATI;
Serial.print ("Reply ==== >>>>");
Serial.println ("Relais 1 Status Off");
gprs.sendSMS (buffNumber, "Relais 1 Status Aus");
}
// Relais 2 Steuerung
if (lastLine.indexOf ("Relais 2 EIN")> = 0) {
StatRelay [1] = AKTIF;
Serial.print ("Reply ==== >>>>");
Serial.println ("Relais 2 Status Aktiv");
gprs.sendSMS (buffNumber, "Relais 2 Status Aktiv");
}
sonst wenn (lastLine.indexOf ("Relais 2 AUS")> = 0) {
StatRelay [1] = MATI;
Serial.print ("Reply ==== >>>>");
Serial.println ("Relais 2 Status Off");
gprs.sendSMS (buffNumber, "Relais 2 Status Aus");
}
// Relais 3 Steuerung
if (lastLine.indexOf ("Relais 3 EIN")> = 0) {
StatRelay [2] = AKTIF;
Serial.print ("Reply ==== >>>>");
Serial.println ("Relais 3 Status Aktiv");
gprs.sendSMS (buffNumber, "Relais 3 Status Aktiv");
}
sonst wenn (lastLine.indexOf ("Relais 3 AUS")> = 0) {
StatRelay [2] = MATI;
Serial.print ("Reply ==== >>>>");
Serial.println ("Relais 3 Status Off");
gprs.sendSMS (buffNumber, "Relais 3 Status Aus");
}
// Relais 4 Steuerung
if (lastLine.indexOf ("Relais 4 EIN")> = 0) {
StatRelay [3] = AKTIF;
Serial.print ("Reply ==== >>>>");
Serial.println ("Relais 4 Status Aktiv");
gprs.sendSMS (buffNumber, "Relais 1 Status Aktiv");
}
sonst wenn (lastLine.indexOf ("Relais 4 AUS")> = 0) {
StatRelay [3] = MATI;
Serial.print ("Reply ==== >>>>");
Serial.println ("Relais 4 Status Off");
gprs.sendSMS (buffNumber, "Relais 4 Status Aus");
}
nextLineIsMessage = false;
}
// =============================================== =================== >>
}
// Lösche das Zeichen-Array für die nächste Lesezeile
für (int i = 0; i
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 dieselben 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.