A SIM800L V2.0 GSM / GPRS egy négysávos GSM / GPRS modul, amely kompatibilis az Arduino-val. A modult a GSM (hívások és SMS) és a GPRS funkcióinak végrehajtására használják. Ennek a modulnak az az előnye, hogy a TTL interfész 5 V feszültséggel rendelkezik, amely lehetővé teszi, hogy közvetlenül csatlakoztassa egy Arduino-hoz vagy bármely más rendszerhez, amelyhez 5 V-os tápellátás van. A legtöbb piacon lévő GSM / GPRS modul szabályozó kapcsolatot vagy szint átalakítást igényel, míg a SIM800L V.2 esetében a GSM / GPRS nem igényel további interfész szintű átalakító áramkört.
Íme egy példaprojekt a SIM800L V.2 GSM / GPRS használatával. A projekt célja a kapcsolók vezérlése az SMS vezérlővel. Könnyedén be- és kikapcsolhatja a ház legtöbb háztartási készülékét, például láma, ventilátor stb.
A SIM800L V.2 GSM / GPRS modul jellemzői
Az alábbiakban bemutatjuk a SIM800L V.2 GSM / GPRS modul összes műszaki specifikációját:
- TTL soros interfész kompatibilis az Arduino-val kompatibilis 3,3 és 5 V-os mikrovezérlőkkel.
- A SIM800L modulnak TTL soros interfésze van.
- Antenna csatlakozó
- Hálózati támogatás: négy sáv, 850/900/1800/1900 MHz, amely hívások kezdeményezésére, SMS és adatátvitelre képes, és jelentősen csökkenti az akkumulátorfogyasztást.
- VDD TTL UART interfész, így közvetlenül csatlakoztathat egy MCU-t, például 51MCU, ARM vagy MSP430. A VDD csatlakozó a TTL feszültségének megfelelő
- Típus: SIMCOM SIM800L
- Üzemi feszültség: 3,7–5 V;
- méretek: 40 mm x 28 mm x 3 mm
- GPRS multislot osztály 12/10
- GPRS kötegelt szolgáltatási osztály B
- Megfelel a GSM 2/2 + fázisának
- 4. osztály (2 watt @ 850/900 MHz)
- 1. osztály (1 W @ 1800/1900 MHz)
Szükséges anyagok
Szüksége lesz:
1. .
2. .
3. .
4. .
5. .
(Aktív linkek a boltba vásárláshoz)
Összeszerelés és konfiguráció
Miután csatlakoztatta az összes komponenst, készítsen egy programot, és töltse le az Arduino-ba. De először telepítenie kell a GPRS könyvtárat, amely letölthető:
[28,02 Kb] (letöltések: 481)
Programkód Arduino számára
Miután csatlakoztatta a SIM800L, négycsatornás relé modult és az Arduino-t a számítógéphez, írja be az alábbi kódot, és kész.
#include
#include
#define TIMEOUT 5000
#define aktív alacsony
#define OFF HIGH
byte relé [] = {A0, A1, A2, A3};
StatRelay byte [4];
char buffNumber [20];
char currentLine [500] = "";
int currentLineIndex = 0;
bool nextLineIsMessage = false;
String responseNumber = "089510863958";
GPRS GPRS;
érvénytelen beállítás () {
mert (int i = 0; i <4; i ++) {
pinMode (relé [i], kimenet);
digitalWrite (relé [i], MATI);
StatRelay [i] = MATI;
}
Serial.begin (9600);
míg (! sorozat);
Serial.println ("Aktiválja a SIM800L V2 >>> automatikusan olvassa az SMS-t");
gprs.preInit ();
késleltetés (1000);
míg (0! = gprs.init ()) {
késleltetés (1000);
Serial.print ("init errorrn");
}
// Üzenet kezelése az ASCII módba
if (0! = gprs.sendCmdAndWaitForResp ("AT + CMGF = 1rn", "OK", TIMEOUT)) {
HIBA ("HIBA: CNMI");
return;
}
// Olvassa be a bejövő SMS-t
if (0! = gprs.sendCmdAndWaitForResp ("AT + CNMI = 1,2,0,0,0rn", "OK", TIMEOUT)) {
HIBA ("HIBA: CNMI");
return;
}
int pjg = válaszszám.hossz () + 1;
buffNumber [pjg];
responseNumber.toCharArray (buffNumber, pjg);
Serial.print ("Válasz küldése a számra =>");
Serial.println (buffNumber);
Serial.println ("Inicializálás kész");
Serial.println ("=============================================== ================= ");
}
void loop () {
// A relé állapotának megváltoztatása BE / KI
mert (int i = 0; i <4; i ++) {
digitalWrite (Relé [i], StatRelay [i]);
}
// Ha van bemeneti adat a SIM800-ból
if (gprs.serialSIM800.a available ()) {
char lastCharRead = gprs.serialSIM800.read ();
// Az összes adatot mentse a lastCharRead oldalra, majd ha van r vagy n, a bejövő üzenet végső jelét
if (lastCharRead == 'r' || lastCharRead == 'n') {
String lastLine = String (currentLine);
// Ha az utolsó üzenet + CMT azt jelzi, hogy új üzenet érkezik
if (lastLine.startsWith ("+ CMT:")) {
Serial.println (lastLine);
nextLineIsMessage = true;
} máshol, ha (lastLine.length ()> 0) {
if (nextLineIsMessage) {
Serial.println (lastLine);
// ================================================= ================== >> A relévezérlő funkciója
// 1. relé vezérlő
if (lastLine.indexOf ("1. relé BE")> = 0) {
StatRelay [0] = AKTIF;
Serial.print ("Válasz ==== >>>>");
Serial.println ("1. relé állapota aktív");
gprs.sendSMS (buffNumber, "1. relé állapota aktív");
}
else if (lastLine.indexOf ("1. relé KI")> = 0) {
StatRelay [0] = MATI;
Serial.print ("Válasz ==== >>>>");
Serial.println ("1. relé állapota ki");
gprs.sendSMS (buffNumber, "1. relé állapota ki");
}
// 2. relé vezérlő
if (lastLine.indexOf ("2. relé BE")> = 0) {
StatRelay [1] = AKTIF;
Serial.print ("Válasz ==== >>>>");
Serial.println ("A 2. relé állapota aktív");
gprs.sendSMS (buffNumber, "2. relé állapota aktív");
}
else if (lastLine.indexOf ("2. relé KI")> = 0) {
StatRelay [1] = MATI;
Serial.print ("Válasz ==== >>>>");
Serial.println ("2. relé állapota ki");
gprs.sendSMS (buffNumber, "2. relé állapota ki");
}
// 3. relé vezérlő
if (lastLine.indexOf ("3. relé BE")> = 0) {
StatRelay [2] = AKTIF;
Serial.print ("Válasz ==== >>>>");
Serial.println ("A 3. relé állapota aktív");
gprs.sendSMS (buffNumber, "3. relé állapota aktív");
}
egyébként ha (lastLine.indexOf ("3. relé KI")> = 0) {
StatRelay [2] = MATI;
Serial.print ("Válasz ==== >>>>");
Serial.println ("3. relé állapota ki");
gprs.sendSMS (buffNumber, "3. relé állapota ki");
}
// 4. relé vezérlő
if (lastLine.indexOf ("4. relé BE")> = 0) {
StatRelay [3] = AKTIF;
Serial.print ("Válasz ==== >>>>");
Serial.println ("A 4. relé állapota aktív");
gprs.sendSMS (buffNumber, "1. relé állapota aktív");
}
else if (lastLine.indexOf ("4. relé KI")> = 0) {
StatRelay [3] = MATI;
Serial.print ("Válasz ==== >>>>");
Serial.println ("4. relé állapota ki");
gprs.sendSMS (buffNumber, "Relay 4 Status Off");
}
nextLineIsMessage = hamis;
}
// ================================================= ==================== >>
}
// Törölje a tömböt az olvasás következő sorához
for (int i = 0; i
Az eszköz ellenőrzése
Az eszköz úgy működik, hogy SMS-t küld a SIM800L-re egy meghatározott karakter sorozattal. Például az 1. relé engedélyezéséhez használja az „1. relé BE” parancsot, és kapcsolja ki az „1. relé OFF” parancsot. A többi relé szinte ugyanazokkal a parancsokkal rendelkezik, kivéve az egyes relék sorozatszámát, amelyeken működni kíván. Az üzenet automatikus elküldése után a SIM800 állapotüzenet formájában válaszokat küld minden SIM-kártyára.