Gawin mo ito sa iyong sarili
Mga klase ng master, mga tagubilin, kapaki-pakinabang na tip, mga recipe.
» » »Controller ng SMS batay sa SIM800L
SIM800L batay sa SMS controller

Ang SIM800L V2.0 GSM / GPRS ay isang quad-band na GSM / GPRS module na katugma sa Arduino. Ginagamit ang module upang maipatupad ang mga function ng GSM (mga tawag at SMS) at GPRS. Ang bentahe ng modyul na ito ay ang interface ng TTL na may boltahe ng 5V, na nagbibigay-daan sa iyo upang direktang ikonekta ito sa isang Arduino o anumang iba pang sistema na may isang suplay ng kuryente 5V. Karamihan sa mga module ng GSM / GPRS sa merkado ay nangangailangan ng mga koneksyon sa regulator o pag-convert ng antas, habang sa SIM800L V.2 GSM / GPRS ay hindi nangangailangan ng karagdagang mga circuit ng conversion ng antas ng interface.

Narito ang isang halimbawa ng proyekto gamit ang SIM800L V.2 GSM / GPRS. Ang kahulugan ng proyekto ay upang makontrol ang mga switch gamit ang SMS controller. Madali mong i-on at i-off ang karamihan sa mga gamit sa sambahayan sa bahay, tulad ng isang llama, isang tagahanga, at iba pa.

Katangian ng module ng SIM800L V.2 GSM / GPRS


Nasa ibaba ang lahat ng mga teknikal na pagtutukoy ng module ng SIM800L V.2 GSM / GPRS:
  • Ang katugmang interface ng TTL na katugma sa 3.3V at 5V microcontroller na katugma sa Arduino.
  • Ang module ng SIM800L ay may interface ng TTL serial.
  • Plug ng antena
  • Suporta sa network: apat na banda 850/900/1800/1900 MHz, na may kakayahang tumawag, SMS at data transfer na may makabuluhang nabawasan ang pagkonsumo ng baterya.
  • Ang interface ng VDD TTL UART, kaya maaari mong direktang kumonekta sa isang MCU tulad ng 51MCU, ARM o MSP430. VDD plug na ginamit upang tumugma sa boltahe ng TTL
  • Model: SIMCOM SIM800L
  • Paggawa boltahe: mula sa 3.7V hanggang 5V;
  • mga sukat: 40mm x 28mm x 3mm
  • GPRS multislot klase 12/10
  • GPRS Batch Service Class B
  • Sumusunod sa GSM phase 2/2 +
  • Klase 4 (2 Watts @ 850/900 MHz)
  • Klase 1 (1 Wat @ 1800/1900 MHz)


Mga Kinakailangan na Materyales


SIM800L batay sa SMS controller


Kakailanganin mo:


1. .
2. .
3. .
4. .
5. .
(Aktibong mga link sa tindahan para bilhin)

Assembly at pagsasaayos


SIM800L batay sa SMS controller


Kapag nakakonekta mo ang lahat ng mga sangkap, lumikha ng isang programa, at pagkatapos i-download ito sa iyong Arduino. Ngunit una, dapat mong i-install ang library ng GPRS, na maaari mong i-download:

[28.02 Kb] (mga pag-download: 481)


Program Code para sa Arduino


SIM800L batay sa SMS controller


Matapos mong ikonekta ang iyong SIM800L, 4-channel relay module at Arduino sa iyong computer, ipasok ang code sa ibaba at tapos ka na.


#nagsama
#nagsama
#define TIMEOUT 5000
#define ACTIVE LOW
#define OFF HIGH

byte Relay [] = {A0, A1, A2, A3};
byte StatRelay [4];
char buffNumber [20];
char kasalukuyangLine [500] = "";
int kasalukuyangLineIndex = 0;
susunod na boolLineIsMessage = maling;
String replyNumber = "089510863958";
GPRS gprs;

walang pag-setup () {
para sa (int i = 0; i <4; i ++) {
pinMode (Relay [i], OUTPUT);
digitalWrite (Relay [i], MATI);
StatRelay [i] = MATI;
}

Serial.begin (9600);
habang (! Serial);
Serial.println ("Isaaktibo ang SIM800L V2 >>> Awtomatikong Basahin ang SMS");
gprs.preInit ();
pagkaantala (1000);
habang (0! = gprs.init ()) {
pagkaantala (1000);
Serial.print ("init errorrn");
}

// Pamahalaan ang mensahe sa mode ASCII
kung (0! = gprs.sendCmdAndWaitForResp ("AT + CMGF = 1rn", "OK", TIMEOUT)) {
ERROR ("ERROR: CNMI");
bumalik
}
// Basahin ang Papasok na SMS
kung (0! = gprs.sendCmdAndWaitForResp ("AT + CNMI = 1,2,0,0,0rn", "OK", PANAHON)) {
ERROR ("ERROR: CNMI");
bumalik
}
int pjg = replyNumber.length () + 1;
buffNumber [pjg];
replyNumber.toCharArray (buffNumber, pjg);
Serial.print ("Magpadala ng tugon sa numero =>");
Serial.println (buffNumber);
Serial.println ("Tapos na ang Initialization");
Serial.println ("============================================= ================= ");
}

walang bisa na loop () {
// Baguhin ang katayuan Relay ON / OFF
para sa (int i = 0; i <4; i ++) {
digitalWrite (Relay [i], StatRelay [i]);
}

// Kung mayroong data ng pag-input mula sa SIM800
kung (gprs.serialSIM800.Magagamit ()) {
char hulingCharRead = gprs.serialSIM800.read ();

// I-save ang lahat ng data sa lastCharRead, pagkatapos kung mayroong r o n, bilang pangwakas na signal ng papasok na mensahe
kung (lastCharRead == 'r' || lastCharRead == 'n') {
String lastLine = String (kasalukuyangLine);

// Kung ang huling mensahe + ang CMT ay nagpapahiwatig ng bagong mensahe na dumating
kung (lastLine.startsWith ("+ CMT:")) {
Serial.println (lastLine);
susunodLineIsMessage = totoo;
} kung hindi pa (lastLine.length ()> 0) {
kung (susunodLineIsMessage) {
Serial.println (lastLine);

// ================================================= ================== >> Pag-andar ng Relay Controller

// Relay 1 Controller

kung (lastLine.indexOf ("Relay 1 ON")> = 0) {
StatRelay [0] = AKTIF;
Serial.print ("Sumagot ==== >>>>");
Serial.println ("Aktibo ng Relay 1 Katayuan");
gprs.sendSMS (buffNumber, "Relay 1 Status Aktibo");
}

kung hindi man (lastLine.indexOf ("Relay 1 OFF")> = 0) {
StatRelay [0] = MATI;
Serial.print ("Sumagot ==== >>>>");
Serial.println ("Relay 1 Status Off");
gprs.sendSMS (buffNumber, "Relay 1 Status Off");
}

// Relay 2 Controller

kung (lastLine.indexOf ("Relay 2 ON")> = 0) {
StatRelay [1] = AKTIF;
Serial.print ("Sumagot ==== >>>>");
Serial.println ("Relay 2 Status Aktibo");
gprs.sendSMS (buffNumber, "Relay 2 Status Aktibo");
}
kung hindi man (lastLine.indexOf ("Relay 2 OFF")> = 0) {
StatRelay [1] = MATI;
Serial.print ("Sumagot ==== >>>>");
Serial.println ("Relay 2 Status Off");
gprs.sendSMS (buffNumber, "Relay 2 Status Off");
}

// Relay 3 Controller
kung (lastLine.indexOf ("Relay 3 ON")> = 0) {
StatRelay [2] = AKTIF;
Serial.print ("Sumagot ==== >>>>");
Serial.println ("Aktibo ng Relay 3 Katayuan");
gprs.sendSMS (buffNumber, "Relay 3 Status Aktibo");
}
kung hindi man (lastLine.indexOf ("Relay 3 OFF")> = 0) {
StatRelay [2] = MATI;
Serial.print ("Sumagot ==== >>>>");
Serial.println ("Relay 3 Status Off");
gprs.sendSMS (buffNumber, "Relay 3 Status Off");
}

// Relay 4 Controller
kung (lastLine.indexOf ("Relay 4 ON")> = 0) {
StatRelay [3] = AKTIF;
Serial.print ("Sumagot ==== >>>>");
Serial.println ("Relay 4 Status Aktibo");
gprs.sendSMS (buffNumber, "Relay 1 Status Aktibo");
}
kung hindi man (lastLine.indexOf ("Relay 4 OFF")> = 0) {
StatRelay [3] = MATI;
Serial.print ("Sumagot ==== >>>>");
Serial.println ("Relay 4 Status Off");
gprs.sendSMS (buffNumber, "Relay 4 Status Off");
}
susunodLineIsMessage = maling;
}

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

}
// I-clear ang hanay ng char para sa susunod na linya ng pagbasa
para sa (int i = 0; i 


Suriin ang aparato


SIM800L batay sa SMS controller


Gumagana ang tool sa pamamagitan ng pagpapadala ng SMS sa SIM800L na may isang tiyak na pagkakasunod-sunod ng mga character. Halimbawa, upang paganahin ang relay 1, gamitin ang utos na "Relay 1 ON", at i-off ang paggamit ng utos na "Relay 1 OFF". Ang natitirang mga relay ay may halos parehong mga utos, maliban sa serial number ng bawat relay na nais mong kumilos. Pagkatapos awtomatikong magpadala ng isang mensahe, ang SIM800 ay magpapadala ng tugon sa anyo ng isang mensahe ng katayuan para sa bawat SIM card.

Ang pagpupulong ng video, pagsasaayos, at pag-verify ng aparato



Bumalik
Mga Komento (4)
  1. qeeeq
    #1 qeeeq Panauhin August 26, 2017 23:50
    0
    Wow! Tulad ng sinasabi nila, ang lahat ng mapanlikha ay simple. Hindi na ako bumili kahit ano, marahil sa bawat basurang iyon sa bahay nang malaki
  2. Alexey
    #2 Alexey Panauhin Disyembre 16, 2017 16:53
    0
    Hindi ito gumana. Kapag nag-iipon, isinulat nito ang "Arduino: 1.8.5 Bawat Oras na Gumawa ng 2017/08/28 06:33 (Windows 7), Lupon:" Arduino / Genuino Uno "
    1. Denis
      #3 Denis Panauhin Disyembre 17, 2017 08:11
      0
      Kailangan mong gumamit ng isang landas na walang mga liham na Ruso sa proyekto.
  3. Andrey
    #4 Andrey Panauhin 10 Pebrero 2019 11:54
    0
    Maraming pagkakamali sa sketch. Hindi gagana.