Pasidaryk pats
Gyvenimo įsilaužimai, meistriškumo pamokos, naudingi patarimai, receptai.
namai » Elektronika » Elektronika is Kinijos » SMS valdiklis SIM800L pagrindu
SMS valdiklis SIM800L pagrindu

SIM800L V2.0 GSM/GPRS yra keturių dažnių juostų GSM/GPRS modulis, suderinamas su Arduino. Modulis naudojamas GSM (skambučiai ir SMS) ir GPRS funkcijoms įgyvendinti. Šio modulio privalumas yra TTL sąsaja, kurios įtampa yra 5V, kuri leidžia tiesiogiai prijungti jį prie Arduino ar bet kurios kitos sistemos su 5V maitinimo įtampa. Daugumai rinkoje esančių GSM/GPRS modulių reikia reguliatoriaus jungčių arba lygio konvertavimo, o SIM800L V.2 GSM/GPRS nereikalauja papildomų sąsajos lygio konvertavimo grandinių.

Pateikiame projekto pavyzdį naudojant SIM800L V.2 GSM/GPRS. Projekto esmė – valdyti jungiklius naudojant SMS valdiklį. Galite nesunkiai įjungti ir išjungti daugumą namuose esančių buitinių prietaisų, tokių kaip lama, ventiliatorius ir pan.

SIM800L V.2 GSM/GPRS modulio charakteristikos


Žemiau pateikiamos visos SIM800L V.2 GSM/GPRS modulio techninės charakteristikos:
  • TTL nuoseklioji sąsaja suderinama su 3,3 V ir 5 V Arduino suderinamais mikrovaldikliais.
  • SIM800L modulis turi TTL nuosekliąją sąsają.
  • Antenos prijungimo kištukas.
  • Tinklo palaikymas: keturios 850/900/1800/1900 MHz juostos, galinčios skambinti, SMS ir perduoti duomenis su žymiai sumažintu akumuliatoriaus suvartojimu.
  • VDD TTL UART sąsaja, todėl galite tiesiogiai prijungti MCU, pvz., 51MCU, ARM arba MSP430.VDD kištukas naudojamas TTL įtampai suderinti.
  • Modelis: SIMCOM SIM800L
  • Darbinė įtampa: nuo 3,7V iki 5V;
  • išmatavimai: 40mm x 28mm x 3mm
  • GPRS kelių lizdų klasė 12/10
  • B klasės GPRS paketų paslaugos
  • Atitinka GSM fazę 2/2+
  • 4 klasė (2 vatai @ 850/900 MHz)
  • 1 klasė (1 vatas @ 1800/1900 MHz)


Reikalingos medžiagos


SMS valdiklis SIM800L pagrindu


Jums reikės:


1. SIM800L V.2 GSM/GPRS modulis.
2. Arduino Uno.
3. 4 kanalų 5V relės modulis.
4. Laidai – džemperiai.
5. Maitinimas 5V.
(Aktyvios nuorodos į parduotuvę pirkti)

Surinkimas ir konfigūracija


SMS valdiklis SIM800L pagrindu


Sujungę visus komponentus, sukurkite programą ir įkelkite ją į savo Arduino. Tačiau pirmiausia turite įdiegti GPRS biblioteką, kurią galite atsisiųsti:

gprs.zip [28,02 Kb] (atsisiuntimai: 887)


Arduino programos kodas


SMS valdiklis SIM800L pagrindu


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


#įtraukti 
#įtraukti
#define LAIKAS 5000
#define ACTIVE LOW
#define OFF HIGH

baitų perdavimas[] = {A0,A1,A2,A3};
baitas StatRelay[4];
char buffNumber[20];
char currentLine[500] = "";
int currentLineIndex = 0;
bool nextLineIsMessage = false;
Eilutė replyNumber = "089510863958";
GPRS gprs;

void setup() {
for(int i=0; i < 4; i++) {
pinMode(Relė[i] , IŠVESTIS);
digitalWrite(Relay[i], MATI);
StatRelay[i] = MATI;
}

Serial.begin(9600);
while(!Serialas);
Serial.println("Suaktyvinti SIM800L V2 >>> Automatiškai skaityti SMS");
gprs.preInit();
delsimas (1000);
while (0 != gprs.init()) {
delsimas (1000);
Serial.print("init errorrn");
}

// Tvarkyti pranešimą ASCII režimu
if (0 != gprs.sendCmdAndWaitForResp("AT+CMGF=1rn", "OK", LAIKOTIS)) {
KLAIDA("KLAIDA:CNMI");
grąžinti;
}
// Skaityti gaunamas SMS
if (0 != gprs.sendCmdAndWaitForResp("AT+CNMI=1,2,0,0,0rn", "OK", LAIKOTIS)) {
KLAIDA("KLAIDA:CNMI");
grąžinti;
}
int pjg = replyNumber.length() + 1;
buffNumber[pjg];
replyNumber.toCharArray(buffNumber,pjg);
Serial.print("Siųsti atsakymą numeriu => ");
Serial.println(buffNumber);
Serial.println("Inicializacija atlikta");
Serial.println("============================================== =============== =================");
}

void loop() {
// Keisti būseną Relė ON / OFF
for(int i=0; i < 4; i++) {
digitalWrite(Relay[i], StatRelay[i]);
}

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

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

// Jei paskutinis pranešimas +CMT rodo naują pranešimą
if (lastLine.startsWith("+CMT:")) {
Serial.println(paskutinė eilutė);
nextLineIsMessage = tiesa;
} else if (lastLine.length() > 0) {
if (nextLineIsMessage) {
Serial.println(paskutinė eilutė);

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

//Relės 1 valdiklis

if (lastLine.indexOf("Relay 1 ON") >= 0) {
StatRelay[0] = AKTIF;
Serial.print("Atsakyti====>>>> ");
Serial.println("1 relės būsena aktyvi");
gprs.sendSMS(buffNumber, "Relay 1 Status Active");
}

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

//Relės 2 valdiklis

if (lastLine.indexOf("Relay 2 ON") >= 0) {
StatRelay[1] = AKTIF;
Serial.print("Atsakyti====>>>> ");
Serial.println("Relės 2 būsena aktyvi");
gprs.sendSMS(buffNumber, "Relay 2 Status Active");
}
else if (lastLine.indexOf("Relay 2 OFF") >= 0) {
StatRelay[1] = MATI;
Serial.print("Atsakyti====>>>> ");
Serial.println("Relay 2 Status Off");
gprs.sendSMS(buffNumber, "Relay 2 Status Off");
}

//Relės 3 valdiklis
if (lastLine.indexOf("Relay 3 ON") >= 0) {
StatRelay[2] = AKTIF;
Serial.print("Atsakyti====>>>> ");
Serial.println("Relės 3 būsena aktyvi");
gprs.sendSMS(buffNumber, "Relay 3 Status Active");
}
else if (lastLine.indexOf("Relay 3 OFF") >= 0) {
StatRelay[2] = MATI;
Serial.print("Atsakyti====>>>> ");
Serial.println("Relės 3 būsena išjungta");
gprs.sendSMS(buffNumber, "Relay 3 Status Off");
}

//Relės 4 valdiklis
if (lastLine.indexOf("Relay 4 ON") >= 0) {
StatRelay[3] = AKTIF;
Serial.print("Atsakyti====>>>> ");
Serial.println("Relės 4 būsena aktyvi");
gprs.sendSMS(buffNumber, "Relay 1 Status Active");
}
else if (lastLine.indexOf("Relay 4 OFF") >= 0) {
StatRelay[3] = MATI;
Serial.print("Atsakyti====>>>> ");
Serial.println("Relės 4 būsena išjungta");
gprs.sendSMS(buffNumber, "Relay 4 Status Off");
}
nextLineIsMessage = false;
}

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

}
//Išvalyti char masyvą kitai skaitymo eilutei
for ( int i = 0; i < sizeof(currentLine); ++i ) {
currentLine[i] = (char)0;
}
currentLineIndex = 0;
}
Kitas {
currentLine[currentLineIndex++] = lastCharRead;
}
}
}


Įrenginio patikrinimas


SMS valdiklis SIM800L pagrindu


Įrankis veikia siunčiant SMS į SIM800L su tam tikra simbolių seka. Pavyzdžiui, norėdami įjungti 1 relę, naudokite komandą „Relay 1 ON“, o norėdami ją išjungti – komandą „Relay 1 OFF“. Likusių relių komandos yra beveik vienodos, išskyrus kiekvienos relės, kurią norite paveikti, eilės numerį. Automatiškai išsiuntus žinutę, SIM800 išsiųs atsakymą pranešimo forma apie kiekvienos SIM kortelės būseną.

Vaizdo įrašas apie įrenginio surinkimą, konfigūravimą ir testavimą



Originalus straipsnis anglų kalba
grįžk
komentuoti
  • varlytėšypsokisjuokdamasisskaistalaišypsenėlėatsipalaidavęs atsipalaidavęsišsišiepti
    širdis_akysbučiuojantis_širdisbučiuojantis_užmerktas_akisparaudusipalengvėjopatenkintasšypsnys
    mirktelėtiužstrigęs_liežuvis_mirksi_akisiškištas liežuvis užmerktos akysišsišiepęsbučiuojasiįstrigo_liežuvismiega
    neramussusiraukęsskausmingasišsižiokgrimasassutrikęsnutilo
    be išraiškosnelinksmasprakaito_šypsenaprakaitasnusivylęs_palengvėjęspavargęspasyvus
    nusivylęssutrikęsbaisušaltas prakaitasištvertiverktiraudoti
    džiaugsmasapstulbintasrėktipavargęs_veidelispiktaspyktistriumfas
    mieguistasskanukaukėakiniai nuo saulėsgalvos svaigimasimpbesišypsantis_imp
    neutralus_veidasno_mouthnekaltas
3+trys=
Komentarai (4)
  1. qeeeq
    #1 qeeeq Svečiai 2017 m. rugpjūčio 26 d. 23.50 val
    0
    Oho! Kaip sakoma, viskas išradinga yra paprasta. Man net nereikėjo nieko pirkti, turbūt kiekvienas turi namuose krūvą tokių šiukšlių
  2. Aleksejus
    #2 Aleksejus Svečiai 2017 m. gruodžio 16 d. 16:53
    0
    Neveikia. Kompiliuojant rašoma: „Arduino: 1.8.5 Hourly Build 2017/08/28 06:33 (Windows 7), Board:“Arduino/Genuino Uno“
    1. Denisas
      #3 Denisas Svečiai 2017 m. gruodžio 17 d. 08:11
      0
      Į projektą reikia naudoti kelią be rusiškų raidžių.
  3. Andrejus
    #4 Andrejus Svečiai 2019 m. vasario 10 d. 11.54 val
    2
    Eskizuose yra daug klaidų. Tai neveiks.

DIY kištukinis raktas

Aromatinių lašinių sūdymas namuose

Velykinis pyragas | Pasidaryk pats

Metodas, kaip išmokti suvirinti nenaudojant elektrodų savo rankomis

«Padarykite tai patys – savo rankomis» - įdomių naminių gaminių, pagamintų iš laužo medžiagų ir namuose esančių daiktų, svetainė. Žingsnis po žingsnio meistriškumo kursai su nuotraukomis ir aprašymais, technologijomis, gyvenimo gudrybėmis - viskas, ko reikia tikram meistrui ar tiesiog amatininkui rankdarbiams. Bet kokio sudėtingumo amatai, didelis kūrybiškumo krypčių ir idėjų pasirinkimas.

Rekomenduojame perskaityti

Skalbimo mašinos klaidų kodai