Pasidaryk pats pasidaryk pats
Meistriškumo kursai, instrukcijos, naudingi patarimai, receptai.
» » »SMS valdiklis, pagrįstas SIM800L
SIM800L pagrįstas SMS valdiklis

SIM800L V2.0 GSM / GPRS yra keturių juostų GSM / GPRS modulis, suderinamas su Arduino. Modulis naudojamas GSM (skambučių ir SMS) ir GPRS funkcijoms įgyvendinti. Šio modulio pranašumas yra TTL sąsaja su 5 V įtampa, leidžianti tiesiogiai prijungti jį prie „Arduino“ ar bet kurios kitos sistemos su 5 V maitinimo šaltiniu. Daugumai rinkoje esančių GSM / GPRS modulių reikalingas reguliatoriaus ryšys arba lygio keitimas, tuo tarpu SIM800L V.2 GSM / GPRS nereikia papildomų sąsajos lygio konvertavimo grandinių.

Čia yra projekto pavyzdys, naudojantis SIM800L V.2 GSM / GPRS. Projekto tikslas yra valdyti jungiklius naudojant SMS valdiklį. Galite lengvai įjungti ir išjungti daugelį namų apyvokos prietaisų, tokių kaip lama, ventiliatorius ir pan.

GSM / GPRS modulio SIM800L V.2 charakteristikos


Žemiau yra visos GSM / GPRS modulio SIM800L V.2 specifikacijos:
  • TTL nuosekli sąsaja suderinama su 3,3 V ir 5 V mikrovaldikliais, suderinama su Arduino.
  • SIM800L modulis turi TTL nuoseklią sąsają.
  • Antenos kištukas
  • Tinklo palaikymas: keturios 850/900/1800/1900 MHz juostos, galinčios skambinti, siųsti SMS ir perduoti duomenis žymiai sumažinus baterijos sunaudojimą.
  • VDD TTL UART sąsaja, todėl galite tiesiogiai prijungti tokį MCU kaip 51MCU, ARM ar MSP430. VDD kištukas, naudojamas atitikti TTL įtampą.
  • Modelis: SIMCOM SIM800L
  • Darbinė įtampa: nuo 3,7 V iki 5 V;
  • matmenys: 40mm x 28mm x 3mm
  • GPRS multislot klasė 12/10
  • GPRS paketinių paslaugų klasė B
  • Atitinka GSM 2/2 + fazę
  • 4 klasė (2 vatai @ 850/900 MHz)
  • 1 klasė (1 W @ 1800/1900 MHz)


Reikalingos medžiagos


SIM800L pagrįstas SMS valdiklis


Jums reikės:


1. .
2. .
3. .
4. .
5. .
(Aktyvios nuorodos į parduotuvę perkant)

Surinkimas ir konfigūracija


SIM800L pagrįstas SMS valdiklis


Prijungę visus komponentus, sukurkite programą ir atsisiųskite ją į savo „Arduino“. Bet pirmiausia turite įdiegti GPRS biblioteką, kurią galite atsisiųsti:

[28,02 Kb] (atsisiuntimai: 481)


Programos kodas Arduino


SIM800L pagrįstas SMS valdiklis


Prijungę SIM800L, 4 kanalų relės modulį ir „Arduino“ prie savo kompiuterio, įveskite žemiau esantį kodą ir viskas.


# įtraukti
# įtraukti
#define TIMEOUT 5000
#definuojate AKTYVIĄ MAŽAI
#define OFF HIGH

baitų relė [] = {A0, A1, A2, A3};
baitas „StatRelay“ [4];
char buffNumber [20];
char currentLine [500] = "";
int currentLineIndex = 0;
bool nextLineIsMessage = klaidinga;
Styginių atsakymasNumber = "089510863958";
GPRS GPRS;

negaliojanti sąranka () {
už (int i = 0; i <4; i ++) {
pinMode (relė [i], IŠĖJIMAS);
„digitalWrite“ (relė [i], MATI);
„StatRelay“ [i] = MATI;
}

„Serial.begin“ (9600);
tuo tarpu (! serialas);
„Serial.println“ („Įjungti SIM800L V2 >>> automatiškai skaityti SMS“);
gprs.preInit ();
vėlavimas (1000);
tuo tarpu (0! = gprs.init ()) {
vėlavimas (1000);
„Serial.print“ („init errorrn“);
}

// Tvarkykite pranešimą į ASCII režimą
if (0! = gprs.sendCmdAndWaitForResp („AT + CMGF = 1rn“, „OK“, TIMEOUT)) {
KLAIDA („KLAIDA: CNMI“);
grįžti
}
// Perskaitykite gaunamą SMS
if (0! = gprs.sendCmdAndWaitForResp („AT + CNMI = 1,2,0,0,0rn“, „OK“, TIMEOUT)) {
KLAIDA („KLAIDA: CNMI“);
grįžti
}
int pjg = answerNumber.length () + 1;
buffNumber [pjg];
„ReplyNumber.toCharArray“ („buffNumber“, pjg);
Serial.print („Siųsti atsakymą numeriu =>“);
Serijos.println („buffNumber“);
„Serial.println“ („Inicializacija atlikta“);
Serial.println ("=============================================== ================= ");
}

tuščia kilpa () {
// Pakeisti būseną Relė įjungta / išjungta
už (int i = 0; i <4; i ++) {
„digitalWrite“ (relė [i], „StatRelay“ [i]);
}

// Jei yra įvesties duomenų iš SIM800
if (gprs.serialSIM800.avable ()) {
char lastCharRead = gprs.serialSIM800.read ();

// Išsaugokite visus duomenis „lastCharRead“, tada, jei yra r arba n, kaip galutinį gaunamo pranešimo signalą
if (lastCharRead == 'r' || lastCharRead == 'n') {
Styga lastLine = Styga (dabartinė eilutė);

// Jei paskutinis pranešimas + CMT rodo, kad gaunamas naujas pranešimas
if (lastLine.startsWith („+ CMT:“)) {
Serial.println (paskutinė linija);
nextLineIsMessage = tiesa;
} else if (lastLine.length ()> 0) {
if (nextLineIsMessage) {
Serial.println (paskutinė linija);

// ================================================= ================== >> Relės valdiklio funkcija

// 1 relės valdiklis

if (lastLine.indexOf („1 relė įjungta“)> = 0) {
„StatRelay“ [0] = AKTIF;
„Serial.print“ („Atsakyti ==== >>>>“);
„Serial.println“ („1 relės būsena aktyvi“);
gprs.sendSMS („buffNumber“, „1 relės būsena aktyvi“);
}

else if (lastLine.indexOf („1 relė išjungta“)> = 0) {
„StatRelay“ [0] = MATI;
„Serial.print“ („Atsakyti ==== >>>>“);
„Serial.println“ („1 relės būsena išjungta“);
gprs.sendSMS („buffNumber“, „1 relės būsena išjungta“);
}

// 2 relės valdiklis

if (lastLine.indexOf („2 relė įjungta“)> = 0) {
„StatRelay“ [1] = AKTIF;
„Serial.print“ („Atsakyti ==== >>>>“);
„Serial.println“ („2 relės būsena aktyvi“);
gprs.sendSMS („buffNumber“, „2 relės būsena aktyvi“);
}
else if (lastLine.indexOf („2 relė išjungta“)> = 0) {
„StatRelay“ [1] = MATI;
„Serial.print“ („Atsakyti ==== >>>>“);
„Serial.println“ („2 relės būsena išjungta“);
gprs.sendSMS („buffNumber“, „2 relės būsena išjungta“);
}

// 3 relės valdiklis
if (lastLine.indexOf („3 relė įjungta“)> = 0) {
„StatRelay“ [2] = AKTIF;
„Serial.print“ („Atsakyti ==== >>>>“);
„Serial.println“ („3 relės būsena aktyvi“);
gprs.sendSMS („buffNumber“, „3 relės būsena aktyvi“);
}
else if (lastLine.indexOf („3 relė išjungta“)> = 0) {
„StatRelay“ [2] = MATI;
„Serial.print“ („Atsakyti ==== >>>>“);
„Serial.println“ („3 relės būsena išjungta“);
gprs.sendSMS („buffNumber“, „3 relės būsena išjungta“);
}

// 4 relės valdiklis
if (lastLine.indexOf („4 relė įjungta“)> = 0) {
„StatRelay“ [3] = AKTIF;
„Serial.print“ („Atsakyti ==== >>>>“);
„Serial.println“ („4 relės būsena aktyvi“);
gprs.sendSMS („buffNumber“, „1 relės būsena aktyvi“);
}
else if (lastLine.indexOf („4 relė išjungta“)> = 0) {
„StatRelay“ [3] = MATI;
„Serial.print“ („Atsakyti ==== >>>>“);
„Serial.println“ („4 relės būsena išjungta“);
gprs.sendSMS („buffNumber“, „4 relės būsena išjungta“);
}
nextLineIsMessage = klaidinga;
}

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

}
// Aiškus simbolių rinkinys kitai skaitymo eilutei
už (int i = 0; i 


Įrenginio patikrinimas


SIM800L pagrįstas SMS valdiklis


Įrankis veikia siunčiant SMS į SIM800L su tam tikra simbolių seka. Pvz., Norėdami įjungti 1 relę, naudokite komandą „1 relė įjungta“, o norėdami išjungti, naudokite komandą „1 relė išjungta“. Likusios relės turi beveik tas pačias komandas, išskyrus kiekvienos relės, kuria norite veikti, serijos numerį. Automatiškai išsiuntęs pranešimą, SIM800 išsiųs atsakymą būsenos pranešimo forma kiekvienai SIM kortelei.

Vaizdo įrašų surinkimas, konfigūravimas ir įrenginio patikrinimas



Komentarai (4)
  1. qeeeq
    #1 qeeeq Svečiai 2017 rugpjūčio 26, 23:50
    0
    Oho! Kaip sakoma, viskas išradinga yra paprasta. Man net nereikėjo nieko pirkti, tikriausiai kiekvienoje tokioje šiukšlėje namuose buvau urmu
  2. Aleksejus
    #2 Aleksejus Svečiai 2017 m. Gruodžio 16 d. 16:53
    0
    Tai neveikia. Kurdamas jis rašo „Arduino: 1.8.5 valandinis statinys 2017/08/28 06:33 („ Windows 7 “), lenta:„ Arduino / Genuino Uno “
    1. Denisas
      #3 Denisas Svečiai 2017 m. Gruodžio 17 d. 08:11
      0
      Projekte turite naudoti kelią be rusiškų raidžių.
  3. Andrejus
    #4 Andrejus Svečiai 2019 m. Vasario 10 d. 11:54
    0
    Eskize yra daug klaidų. Neveiks.

Taip pat skaitykite

Skalbimo mašinų klaidų kodai