DIY to udělej sám
Mistrovské třídy, pokyny, užitečné tipy, recepty.
» » »SMS řadič založený na SIM800L
SMS řadič založený na SIM800L

SIM800L V2.0 GSM / GPRS je čtyřpásmový modul GSM / GPRS kompatibilní s Arduino. Modul slouží k implementaci funkcí GSM (volání a SMS) a GPRS. Výhodou tohoto modulu je rozhraní TTL s napětím 5 V, které vám umožňuje přímé připojení k Arduino nebo jinému systému s napájením 5 V. Většina modulů GSM / GPRS na trhu vyžaduje připojení regulátoru nebo převod úrovně, zatímco u SIM800L V.2 GSM / GPRS nevyžaduje další obvody převodu na úrovni rozhraní.

Zde je příklad projektu využívajícího SIM800L V.2 GSM / GPRS. Smyslem projektu je ovládat přepínače pomocí SMS kontroleru. Můžete snadno zapnout a vypnout většinu domácích spotřebičů v domě, jako je například lama, ventilátor atd.

Vlastnosti modulu GSM / GPRS SIM800L V.2


Níže jsou uvedeny všechny technické specifikace modulu SIM800L V.2 GSM / GPRS:
  • Sériové rozhraní TTL kompatibilní s mikrokontroléry 3.3V a 5V kompatibilními s Arduino.
  • Modul SIM800L má sériové rozhraní TTL.
  • Zástrčka antény
  • Podpora sítě: čtyři pásma 850/900/1800/1900 MHz, schopná volat, SMS a datových přenosů s výrazně sníženou spotřebou baterie.
  • Rozhraní UDD TTL UART, takže můžete přímo připojit MCU, jako je 51MCU, ARM nebo MSP430. Zástrčka VDD použitá pro přizpůsobení napětí TTL.
  • Model: SIMCOM SIM800L
  • Pracovní napětí: od 3,7 V do 5 V;
  • rozměry: 40 mm x 28 mm x 3 mm
  • GPRS multislot třída 12/10
  • GPRS Batch Service Class B
  • Odpovídá fázi GSM 2/2 +
  • Třída 4 (2 watty @ 850/900 MHz)
  • Třída 1 (1 Wat @ 1800/1900 MHz)


Požadované materiály


SMS řadič založený na SIM800L


Budete potřebovat:


1. .
2. .
3. .
4. .
5. .
(Aktivní odkazy na obchod pro nákup)

Montáž a konfigurace


SMS řadič založený na SIM800L


Po připojení všech součástí vytvořte program a stáhněte si jej do svého Arduina. Nejprve však musíte nainstalovat knihovnu GPRS, kterou si můžete stáhnout:

[28,02 Kb] (počet stažení: 481)


Programový kód pro Arduino


SMS řadič založený na SIM800L


Po připojení SIM800L, 4-kanálového reléového modulu a Arduina k počítači zadejte níže uvedený kód a máte hotovo.


#include
#include
#define TIMEOUT 5000
#define AKTIVNÍ NÍZKÁ
#definovat VYSOKÁ

bajtové relé [] = {A0, A1, A2, A3};
byte StatRelay [4];
char buffNumber [20];
char currentLine [500] = "";
int currentLineIndex = 0;
bool nextLineIsMessage = false;
String answerNumber = "089510863958";
GPRS gprs;

neplatné nastavení () {
pro (int i = 0; i <4; i ++) {
pinMode (relé [i], VÝSTUP);
digitalWrite (relé [i], MATI);
StatRelay [i] = MATI;
}

Serial.egegin (9600);
while (! Serial);
Serial.println ("Aktivovat SIM800L V2 >>> Automaticky číst SMS");
gprs.preInit ();
zpoždění (1000);
while (0! = gprs.init ()) {
zpoždění (1000);
Serial.print ("init errorrn");
}

// Správa zprávy do režimu ASCII
if (0! = gprs.sendCmdAndWaitForResp ("AT + CMGF = 1rn", "OK", TIMEOUT)) {
CHYBA („CHYBA: CNMI“);
návrat
}
// Číst příchozí SMS
if (0! = gprs.sendCmdAndWaitForResp ("AT + CNMI = 1,2,0,0,0rn", "OK", TIMEOUT)) {
CHYBA („CHYBA: CNMI“);
návrat
}
int pjg = answerNumber.length () + 1;
buffNumber [pjg];
answerNumber.toCharArray (buffNumber, pjg);
Serial.print ("Odeslat odpověď na číslo =>");
Serial.println (buffNumber);
Serial.println („Inicializace byla dokončena“);
Serial.println ("============================================== ================ "");
}

void loop () {
// Změna stavu Relé ON / OFF
pro (int i = 0; i <4; i ++) {
digitalWrite (Relé [i], StatRelay [i]);
}

// Pokud existují vstupní data ze SIM800
if (gprs.serialSIM800.available ()) {
char lastCharRead = gprs.serialSIM800.read ();

// Uložte všechna data na lastCharRead, pak pokud existuje r nebo n, jako konečný signál příchozí zprávy
if (lastCharRead == 'r' || lastCharRead == 'n') {
String lastLine = String (currentLine);

// Pokud poslední zpráva + CMT označuje, že nová zpráva dorazí
if (lastLine.startsWith ("+ CMT:")) {
Serial.println (lastLine);
nextLineIsMessage = true;
} jinak pokud (lastLine.length ()> 0) {
if (nextLineIsMessage) {
Serial.println (lastLine);

// ================================================= =================== >> Funkce kontroléru relé

// Řadič 1 relé

if (lastLine.indexOf ("Relé 1 ON")> = 0) {
StatRelay [0] = AKTIF;
Serial.print („Odpovědět ==== >>>>“);
Serial.println ("Stav relé 1 aktivní");
gprs.sendSMS (buffNumber, "Relay 1 Status Active");
}

jinak if (lastLine.indexOf ("Relé 1 OFF")> = 0) {
StatRelay [0] = MATI;
Serial.print („Odpovědět ==== >>>>“);
Serial.println („Stav 1 stavu vypnuto“);
gprs.sendSMS (buffNumber, "Relay 1 Status Off");
}

// Řadič relé 2

if (lastLine.indexOf ("Relé 2 ON")> = 0) {
StatRelay [1] = AKTIF;
Serial.print („Odpovědět ==== >>>>“);
Serial.println ("Stav relé 2 aktivní");
gprs.sendSMS (buffNumber, "Relay 2 Status Active");
}
jinak if (lastLine.indexOf ("Relé 2 OFF")> = 0) {
StatRelay [1] = MATI;
Serial.print („Odpovědět ==== >>>>“);
Serial.println („Stav 2 relé vypnuto“);
gprs.sendSMS (buffNumber, "Relay 2 Status Off");
}

// Řadič relé 3
if (lastLine.indexOf ("Relé 3 ON")> = 0) {
StatRelay [2] = AKTIF;
Serial.print („Odpovědět ==== >>>>“);
Serial.println ("Stav relé 3 aktivní");
gprs.sendSMS (buffNumber, "Relay 3 Status Active");
}
jinak if (lastLine.indexOf ("Relé 3 OFF")> = 0) {
StatRelay [2] = MATI;
Serial.print („Odpovědět ==== >>>>“);
Serial.println ("Stav relé 3 vypnutý");
gprs.sendSMS (buffNumber, "Relay 3 Status Off");
}

// Řadič 4 relé
if (lastLine.indexOf ("Relé 4 ON")> = 0) {
StatRelay [3] = AKTIF;
Serial.print („Odpovědět ==== >>>>“);
Serial.println ("Stav relé 4 aktivní");
gprs.sendSMS (buffNumber, "Relay 1 Status Active");
}
jinak if (lastLine.indexOf ("Relé 4 OFF")> = 0) {
StatRelay [3] = MATI;
Serial.print („Odpovědět ==== >>>>“);
Serial.println ("Stav 4 stavu vypnuto");
gprs.sendSMS (buffNumber, "Relay 4 Status Off");
}
nextLineIsMessage = false;
}

// ================================================= ==================== >> >>

}
// Vymažte pole char pro další řádek čtení
pro (int i = 0; i 


Kontrola zařízení


SMS řadič založený na SIM800L


Nástroj funguje tak, že odešle SMS na SIM800L se specifickou posloupností znaků. Například pro zapnutí relé 1 použijte příkaz „Relé 1 ON“ a pro vypnutí pomocí příkazu „Relé 1 OFF“. Zbytek relé má téměř stejné příkazy, s výjimkou sériového čísla každého relé, na které chcete jednat. Po automatickém odeslání zprávy odešle SIM800 odpověď ve formě stavové zprávy pro každou SIM kartu.

Sestavení videa, konfigurace a ověření zařízení



Vraťte se
Komentáře (4)
  1. qeeeq
    #1 qeeeq Hosté 26. srpna 2017 23:50
    0
    Páni! Jak se říká, vše geniální je jednoduché. Nemusel jsem ani kupovat nic, pravděpodobně u každého takového odpadu hromadně
  2. Alexey
    #2 Alexey Hosté 16. prosince 2017 16:53
    0
    To nefunguje. Při kompilaci píše „Arduino: 1.8.5 Hourly Build 2017/08/28 06:33 (Windows 7), Board:„ Arduino / Genuino Uno “
    1. Denis
      #3 Denis Hosté 17. prosince 2017 08:11
      0
      K projektu musíte použít cestu bez ruských písmen.
  3. Andrey
    #4 Andrey Hosté 10. února 2019 11:54
    0
    V náčrtu je mnoho chyb. Nebude fungovat.

Přečtěte si také

Chybové kódy pro pračky