Zrób to sam
Kursy mistrzowskie, instrukcje, przydatne wskazówki, przepisy kulinarne.
» » »Kontroler SMS oparty na SIM800L
Kontroler SMS oparty na SIM800L

SIM800L V2.0 GSM / GPRS to czterozakresowy moduł GSM / GPRS kompatybilny z Arduino. Moduł służy do realizacji funkcji GSM (połączenia i SMS-y) oraz GPRS. Zaletą tego modułu jest interfejs TTL o napięciu 5V, który pozwala bezpośrednio podłączyć go do Arduino lub dowolnego innego systemu z zasilaczem 5V. Większość dostępnych na rynku modułów GSM / GPRS wymaga połączeń regulatora lub konwersji poziomu, natomiast w SIM800L V.2 GSM / GPRS nie wymaga dodatkowych obwodów konwersji poziomu interfejsu.

Oto przykładowy projekt wykorzystujący SIM800L V.2 GSM / GPRS. Celem projektu jest sterowanie przełącznikami za pomocą kontrolera SMS. Możesz łatwo włączać i wyłączać większość urządzeń gospodarstwa domowego w domu, takich jak lama, wentylator itp.

Charakterystyka modułu GSM / GPRS SIM800L V.2


Poniżej znajdują się wszystkie dane techniczne modułu SIM800L V.2 GSM / GPRS:
  • Interfejs szeregowy TTL zgodny z mikrokontrolerami 3,3 V i 5 V zgodny z Arduino.
  • Moduł SIM800L ma interfejs szeregowy TTL.
  • Wtyczka anteny
  • Obsługa sieci: cztery pasma 850/900/1800/1900 MHz, zdolne do wykonywania połączeń, SMS-ów i przesyłania danych przy znacznie zmniejszonym zużyciu baterii.
  • Interfejs UART VDD TTL, dzięki czemu można bezpośrednio podłączyć MCU, takie jak 51MCU, ARM lub MSP430. Wtyczka VDD stosowana do dopasowania napięcia TTL.
  • Model: SIMCOM SIM800L
  • Napięcie robocze: od 3,7 V do 5 V;
  • wymiary: 40 mm x 28 mm x 3 mm
  • GPRS multislot klasa 12/10
  • GPRS Batch Service Class B
  • Odpowiada fazie GSM 2/2 +
  • Klasa 4 (2 waty przy 850/900 MHz)
  • Klasa 1 (1 Wat przy 1800/1900 MHz)


Wymagane materiały


Kontroler SMS oparty na SIM800L


Będziesz potrzebował:


1. .
2. .
3. .
4. .
5. .
(Aktywne linki do sklepu do zakupu)

Montaż i konfiguracja


Kontroler SMS oparty na SIM800L


Po podłączeniu wszystkich komponentów utwórz program, a następnie pobierz go na swoje Arduino. Ale najpierw musisz zainstalować bibliotekę GPRS, którą możesz pobrać:

[28.02 Kb] (pliki do pobrania: 481)


Kod programu dla Arduino


Kontroler SMS oparty na SIM800L


Po podłączeniu SIM800L, 4-kanałowego modułu przekaźnikowego i Arduino do komputera, wprowadź poniższy kod i gotowe.


#include
#include
# zdefiniować TIMEOUT 5000
# zdefiniować AKTYWNY NISKI
# zdefiniować WYSOKA

bajt Przekaźnik [] = {A0, A1, A2, A3};
bajt StatRelay [4];
char buffNumber [20];
char currentLine [500] = "";
int currentLineIndex = 0;
bool nextLineIsMessage = false;
Łańcuch replyNumber = "089510863958";
GPRS GPRS;

void setup () {
dla (int i = 0; i <4; i ++) {
pinMode (przekaźnik [i], WYJŚCIE);
digitalWrite (przekaźnik [i], MATI);
StatRelay [i] = MATI;
}

Serial.begin (9600);
while (! Serial);
Serial.println („Aktywuj SIM800L V2 >>> Automatycznie czytaj SMS”);
gprs.preInit ();
opóźnienie (1000);
while (0! = gprs.init ()) {
opóźnienie (1000);
Serial.print („init errorrn”);
}

// Zarządzaj wiadomością w trybie ASCII
if (0! = gprs.sendCmdAndWaitForResp („AT + CMGF = 1rn”, „OK”, TIMEOUT)) {
BŁĄD („BŁĄD: CNMI”);
powrót
}
// Czytaj SMS przychodzący
if (0! = gprs.sendCmdAndWaitForResp („AT + CNMI = 1,2,0,0,0rn”, „OK”, TIMEOUT)) {
BŁĄD („BŁĄD: CNMI”);
powrót
}
int pjg = replyNumber.length () + 1;
buffNumber [pjg];
replyNumber.toCharArray (buffNumber, pjg);
Serial.print („Wyślij odpowiedź na numer =>”);
Serial.println (buffNumber);
Serial.println („Wykonano inicjalizację”);
Serial.println ("============================================= ================= ");
}

void loop () {
// Zmień status Przekaźnik WŁ. / WYŁ
dla (int i = 0; i <4; i ++) {
digitalWrite (Przekaźnik [i], StatRelay [i]);
}

// Jeśli istnieją dane wejściowe z SIM800
if (gprs.serialSIM800.available ()) {
char lastCharRead = gprs.serialSIM800.read ();

// Zapisz wszystkie dane w lastCharRead, a następnie, jeśli istnieje r lub n, jako ostatni sygnał przychodzącej wiadomości
if (lastCharRead == 'r' || lastCharRead == 'n') {
String lastLine = String (currentLine);

// Jeśli ostatnia wiadomość + CMT wskazuje, że nowa wiadomość dotarła
if (lastLine.startsWith („+ CMT:”)) {
Serial.println (lastLine);
nextLineIsMessage = true;
} else if ((lastLine.length ()> 0) {
if (nextLineIsMessage) {
Serial.println (lastLine);

// ================================================= ================== >> Funkcja sterownika przekaźnika

// Sterownik przekaźnika 1

if (lastLine.indexOf („Przekaźnik 1 włączony”)> = 0) {
StatRelay [0] = AKTIF;
Serial.print („Odpowiedź ==== >>>>”);
Serial.println („Status przekaźnika 1 aktywny”);
gprs.sendSMS (buffNumber, „Relay 1 Status Active”);
}

else if (lastLine.indexOf („Przekaźnik 1 WYŁ.”)> = 0) {
StatRelay [0] = MATI;
Serial.print („Odpowiedź ==== >>>>”);
Serial.println („Status przekaźnika 1 wyłączony”);
gprs.sendSMS (buffNumber, „Relay 1 Status Off”);
}

// Sterownik przekaźnika 2

if (lastLine.indexOf („Przekaźnik 2 WŁ.”)> = 0) {
StatRelay [1] = AKTIF;
Serial.print („Odpowiedź ==== >>>>”);
Serial.println („Status przekaźnika 2 aktywny”);
gprs.sendSMS (buffNumber, „Relay 2 Status Active”);
}
else if (lastLine.indexOf („Przekaźnik 2 WYŁ.”)> = 0) {
StatRelay [1] = MATI;
Serial.print („Odpowiedź ==== >>>>”);
Serial.println („Status przekaźnika 2 wyłączony”);
gprs.sendSMS (buffNumber, „Relay 2 Status Off”);
}

// Sterownik przekaźnika 3
if (lastLine.indexOf („Relay 3 ON”)> = 0) {
StatRelay [2] = AKTIF;
Serial.print („Odpowiedź ==== >>>>”);
Serial.println („Status przekaźnika 3 aktywny”);
gprs.sendSMS (buffNumber, „Relay 3 Status Active”);
}
else if (lastLine.indexOf („Relay 3 OFF”)> = 0) {
StatRelay [2] = MATI;
Serial.print („Odpowiedź ==== >>>>”);
Serial.println („Status przekaźnika 3 wyłączony”);
gprs.sendSMS (buffNumber, „Relay 3 Status Off”);
}

// Sterownik przekaźnika 4
if (lastLine.indexOf („Przekaźnik 4 WŁ.”)> = 0) {
StatRelay [3] = AKTIF;
Serial.print („Odpowiedź ==== >>>>”);
Serial.println („Status przekaźnika 4 aktywny”);
gprs.sendSMS (buffNumber, „Relay 1 Status Active”);
}
else if (lastLine.indexOf („Relay 4 OFF”)> = 0) {
StatRelay [3] = MATI;
Serial.print („Odpowiedź ==== >>>>”);
Serial.println („Status przekaźnika 4 wyłączony”);
gprs.sendSMS (buffNumber, „Relay 4 Status Off”);
}
nextLineIsMessage = false;
}

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

}
// Wyczyść tablicę znaków dla następnego wiersza odczytu
dla (int i = 0; i 


Sprawdzanie urządzenia


Kontroler SMS oparty na SIM800L


Narzędzie działa, wysyłając SMS na SIM800L z określoną sekwencją znaków. Na przykład, aby włączyć przekaźnik 1, użyj polecenia „Przekaźnik 1 WŁ”, a aby wyłączyć, użyj polecenia „Przekaźnik 1 WYŁ”. Reszta przekaźników ma prawie takie same polecenia, z wyjątkiem numeru seryjnego każdego przekaźnika, na którym chcesz działać. Po automatycznym wysłaniu wiadomości SIM800 wyśle ​​odpowiedź w formie komunikatu o stanie dla każdej karty SIM.

Montaż wideo, konfiguracja i weryfikacja urządzenia



Wróć
Komentarze (4)
  1. qeeeq
    #1 qeeeq Goście 26 sierpnia 2017 23:50
    0
    Łał! Jak mówią, wszystko genialne jest proste. Nie musiałem nawet niczego kupować, prawdopodobnie przy takich śmieciach luzem
  2. Alexey
    #2 Alexey Goście 16 grudnia 2017 16:53
    0
    To nie działa. Podczas kompilacji pisze „Arduino: 1.8.5 Build co godzinę 2017/08/28 06:33 (Windows 7), Zarząd:„ Arduino / Genuino Uno ”
    1. Denis
      #3 Denis Goście 17 grudnia 2017 08:11
      0
      Musisz użyć ścieżki bez rosyjskich liter do projektu.
  3. Andrey
    #4 Andrey Goście 10 lutego 2019 11:54
    0
    Szkic zawiera wiele błędów. Nie zadziała

Przeczytaj także

Kody błędów pralek