Dari pats
Life hacks, meistarklases, noderīgi padomi, receptes.
mājas » Elektronika » Elektronika no Ķīnas » SMS kontrolieris uz SIM800L bāzes
SMS kontrolieris uz SIM800L bāzes

SIM800L V2.0 GSM/GPRS ir četrjoslu GSM/GPRS modulis, kas ir saderīgs ar Arduino. Modulis tiek izmantots GSM (zvani un SMS) un GPRS funkciju ieviešanai. Šī moduļa priekšrocība ir TTL interfeiss, kura spriegums ir 5V, kas ļauj to tieši savienot ar Arduino vai jebkuru citu sistēmu ar 5V barošanas spriegumu. Lielākajai daļai tirgū pieejamo GSM/GPRS moduļu ir nepieciešami regulatora savienojumi vai līmeņa pārveidošana, savukārt SIM800L V.2 GSM/GPRS nav nepieciešamas papildu interfeisa līmeņa pārveidošanas shēmas.

Sniegsim piemēru projektam, kas izmanto SIM800L V.2 GSM/GPRS. Projekta mērķis ir vadīt slēdžus, izmantojot SMS kontrolieri. Jūs varat viegli ieslēgt un izslēgt lielāko daļu sadzīves tehnikas mājā, piemēram, lamu, ventilatoru utt.

SIM800L V.2 GSM/GPRS moduļa raksturojums


Tālāk ir sniegti visi SIM800L V.2 GSM/GPRS moduļa tehniskie parametri:
  • TTL seriālais interfeiss, kas saderīgs ar 3,3 V un 5 V Arduino saderīgiem mikrokontrolleriem.
  • SIM800L modulim ir TTL seriālais interfeiss.
  • Antenas savienojuma spraudnis.
  • Tīkla atbalsts: četras joslas 850/900/1800/1900 MHz, kas spēj veikt zvanus, SMS un datu pārsūtīšanu ar ievērojami samazinātu akumulatora patēriņu.
  • VDD TTL UART interfeiss, lai jūs varētu tieši savienot MCU, piemēram, 51MCU, ARM vai MSP430.VDD spraudnis tiek izmantots, lai saskaņotu TTL spriegumu.
  • Modelis: SIMCOM SIM800L
  • Darba spriegums: no 3,7V līdz 5V;
  • izmēri: 40mm x 28mm x 3mm
  • GPRS vairāku slotu klase 12/10
  • GPRS pakešu pakalpojuma klase B
  • Atbilst GSM fāzei 2/2+
  • 4. klase (2 vati pie 850/900 MHz)
  • 1. klase (1 vats pie 1800/1900 MHz)


Nepieciešamie materiāli


SMS kontrolieris uz SIM800L bāzes


Jums būs nepieciešams:


1. SIM800L V.2 GSM/GPRS modulis.
2. Arduino Uno.
3. 4 kanālu 5V releja modulis.
4. Vadi - džemperi.
5. Barošana 5V.
(Aktīvās saites uz veikalu iegādei)

Montāža un konfigurācija


SMS kontrolieris uz SIM800L bāzes


Kad esat pievienojis visus komponentus, izveidojiet programmu un pēc tam augšupielādējiet to savā Arduino. Bet vispirms jums ir jāinstalē GPRS bibliotēka, kuru varat lejupielādēt:

gprs.zip [28,02 Kb] (lejupielādes: 887)


Programmas kods Arduino


SMS kontrolieris uz SIM800L bāzes


Kad esat pievienojis datoram SIM800L, 4 kanālu releja moduli un Arduino, ievadiet tālāk norādīto kodu un esat pabeidzis.


#iekļauts 
#iekļauts
#define TIMEOUT 5000
#define ACTIVE LOW
#define IZSLĒGTS AUGSTS

baitu relejs[] = {A0,A1,A2,A3};
baits StatRelay[4];
char buffNumber[20];
char currentLine[500] = "";
int currentLineIndex = 0;
bool nextLineIsMessage = false;
Virkne replyNumber = "089510863958";
GPRS gprs;

void setup() {
for(int i=0; i < 4; i++) {
pinMode(Relay[i] , OUTPUT);
digitalWrite(Relay[i], MATI);
StatRelay[i] = MATI;
}

Serial.begin(9600);
while(!Serial);
Serial.println("Aktivizēt SIM800L V2 >>> Automātiski lasīt SMS");
gprs.preInit();
kavēšanās (1000);
while (0 != gprs.init()) {
kavēšanās (1000);
Serial.print("init errorrn");
}

// Pārvaldīt ziņojumu ASCII režīmā
if (0 != gprs.sendCmdAndWaitForResp("AT+CMGF=1rn", "OK", TIMEOUT)) {
KĻŪDA("KĻŪDA:CNMI");
atgriešanās;
}
// Lasīt ienākošās SMS
if (0 != gprs.sendCmdAndWaitForResp("AT+CNMI=1,2,0,0,0rn", "OK", TIMEOUT)) {
KĻŪDA("KĻŪDA:CNMI");
atgriešanās;
}
int pjg = replyNumber.length() + 1;
buffNumber[pjg];
replyNumber.toCharArray(buffNumber,pjg);
Serial.print("Sūtīt atbildi uz numuru => ");
Serial.println(buffNumber);
Serial.println("Inicializācija pabeigta");
Serial.println("============================================= =============== =================");
}

void loop() {
// Mainīt statusu Relay ON / OFF
for(int i=0; i < 4; i++) {
digitalWrite(Relay[i], StatRelay[i]);
}

// Ja ir ievades dati no SIM800
if (gprs.serialSIM800.available()) {
char lastCharRead = gprs.serialSIM800.read();

// Saglabājiet visus datus vietnē lastCharRead, tad, ja ir r vai n, kā ienākošā ziņojuma pēdējo signālu
if (lastCharRead == 'r' || lastCharRead == 'n') {
String lastLine = String(pašreizējāLine);

// Ja pēdējais ziņojums +CMT norāda uz jaunu ziņojumu
if (lastLine.startsWith("+CMT:")) {
Serial.println(lastLine);
nextLineIsMessage = patiess;
} else if (lastLine.length() > 0) {
if (nextLineIsMessage) {
Serial.println(lastLine);

// ================================================= ==== ================>> Releja kontrollera funkcija

//Releja 1 kontrolieris

if (lastLine.indexOf("Relejs 1 IESL.") >= 0) {
StatRelay[0] = AKTIF;
Serial.print("Atbildēt====>>>> ");
Serial.println("Releja 1 statuss aktīvs");
gprs.sendSMS(buffNumber, "Releja 1 statuss aktīvs");
}

else if (lastLine.indexOf("Relay 1 OFF") >= 0) {
StatRelay[0] = MATI;
Serial.print("Atbildēt====>>>> ");
Serial.println("Releja 1 statuss izslēgts");
gprs.sendSMS(buffNumber, "Relay 1 Status Off");
}

//Releja 2 kontrolieris

if (lastLine.indexOf("Relejs 2 IESL.") >= 0) {
StatRelay[1] = AKTIF;
Serial.print("Atbildēt====>>>> ");
Serial.println("Releja 2 statuss aktīvs");
gprs.sendSMS(buffNumber, "2. releja statuss aktīvs");
}
else if (lastLine.indexOf("Relay 2 OFF") >= 0) {
StatRelay[1] = MATI;
Serial.print("Atbildēt====>>>> ");
Serial.println("Releja 2 statuss izslēgts");
gprs.sendSMS(buffNumber, "Relay 2 Status Off");
}

//Releja 3 kontrolieris
if (lastLine.indexOf("Relejs 3 IESL.") >= 0) {
StatRelay[2] = AKTIF;
Serial.print("Atbildēt====>>>> ");
Serial.println("Releja 3 statuss aktīvs");
gprs.sendSMS(buffNumber, "Releja 3 statuss aktīvs");
}
else if (lastLine.indexOf("Relay 3 OFF") >= 0) {
StatRelay[2] = MATI;
Serial.print("Atbildēt====>>>> ");
Serial.println("Releja 3 statuss izslēgts");
gprs.sendSMS(buffNumber, "Relay 3 Status Off");
}

//Releja 4 kontrolieris
if (lastLine.indexOf("Relejs 4 IESL.") >= 0) {
StatRelay[3] = AKTIF;
Serial.print("Atbildēt====>>>> ");
Serial.println("Releja 4 statuss aktīvs");
gprs.sendSMS(buffNumber, "Releja 1 statuss aktīvs");
}
else if (lastLine.indexOf("Relejs 4 IZSLĒGTS") >= 0) {
StatRelay[3] = MATI;
Serial.print("Atbildēt====>>>> ");
Serial.println("Releja 4 statuss izslēgts");
gprs.sendSMS(buffNumber, "Relay 4 Status Off");
}
nextLineIsMessage = false;
}

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

}
//Notīrīt char masīvu nākamajai lasīšanas rindai
for ( int i = 0; i < sizeof(currentLine); ++i ) {
pašreizējāLine[i] = (char)0;
}
currentLineIndex = 0;
}
else {
currentLine[currentLineIndex++] = lastCharRead;
}
}
}


Ierīces pārbaude


SMS kontrolieris uz SIM800L bāzes


Rīks darbojas, nosūtot SMS uz SIM800L ar noteiktu rakstzīmju secību. Piemēram, lai ieslēgtu 1. releju, izmantojiet komandu “Relay 1 ON”, bet, lai to izslēgtu, izmantojiet komandu “Relay 1 OFF”. Pārējiem relejiem komandas ir gandrīz vienādas, izņemot katra releja kārtas numuru, kuru vēlaties ietekmēt. Pēc automātiskas ziņas nosūtīšanas SIM800 nosūtīs atbildi ziņojuma veidā par katras SIM kartes statusu.

Video par ierīces montāžu, konfigurēšanu un testēšanu



Oriģināls raksts angļu valodā
Atgriezies
komentēt
  • tauriņšsmaidītsmejotiessarktsmaidiņšatslābināts atslābinātssmieties
    sirds_aciskissing_heartskūpstās_aizvērtas_acispietvīkusiatvieglotsapmierinātspasmīn
    ar aciiestrēdzis_ārpus mēles_aciiestrēdzis_ārpus mēles_aizvērtas_acissmīnotskūpstotiesiestrēdzis_mēleguļot
    uztrauciessaraucot pierinomocītsatvērta_mutegrimasēapjucisapklususi
    neizteiksmīgsneuzjautrinātssviedri_smaidssviedrivīlies_atvieglotsnogurispasīvs
    vīlušiesapmulsisbailīgsauksti sviedrineatlaidīgiraudātšņukstēt
    priekspārsteigtskliedziensnogurusi_sejadusmīgsniknumstriumfs
    miegainsnammaskasaulesbrillesdizzy_faceimpsmiling_imp
    neitrāla_sejanav_mutesnevainīgs
3+trīs=
Komentāri (4)
  1. qeeeq
    #1 qeeeq Viesi 2017. gada 26. augusts 23:50
    0
    Oho! Kā saka, viss ģeniālais ir vienkāršs. Man pat nekas nebija jāpērk, laikam katram mājās ir kaudze tādu atkritumu
  2. Aleksejs
    #2 Aleksejs Viesi 2017. gada 16. decembris 16:53
    0
    Nestrādā. Kompilējot ir rakstīts "Arduino: 1.8.5 Hourly Build 2017/08/28 06:33 (Windows 7), Board:"Arduino/Genuino Uno"
    1. Deniss
      #3 Deniss Viesi 2017. gada 17. decembris 08:11
      0
      Jāizmanto ceļš bez krievu burtiem uz projektu.
  3. Andrejs
    #4 Andrejs Viesi 2019. gada 10. februārī plkst. 11:54
    2
    Skicē ir daudz kļūdu. Tas nedarbosies.

DIY uzgriežņu atslēga

Aromātiskā speķa sālīšana mājās

Lieldienu kūka | Dari pats

Metode, kā iemācīties metināt, neizmantojot elektrodus ar savām rokām

«Dariet to pats - ar savām rokām» - vietne ar interesantiem mājās gatavotiem izstrādājumiem, kas izgatavoti no lūžņiem un priekšmetiem mājās. Soli pa solim meistarklases ar fotogrāfijām un aprakstiem, tehnoloģijām, dzīves hackiem – viss, kas vajadzīgs īstam meistaram vai vienkārši amatniekam rokdarbiem. Jebkuras sarežģītības amatniecība, liela virzienu un ideju izvēle radošumam.

Mēs iesakām lasīt

Veļas mašīnas kļūdu kodi