SMS controller batay sa SIM800L
Ang SIM800L V2.0 GSM/GPRS ay isang quad-band GSM/GPRS module na tugma sa Arduino. Ang module ay ginagamit upang ipatupad ang GSM (mga tawag at SMS) at GPRS function. Ang bentahe ng modyul na ito ay ang interface ng TTL, na may boltahe na 5V, na nagbibigay-daan sa iyo upang direktang ikonekta ito sa Arduino o anumang iba pang sistema na may 5V supply boltahe. Karamihan sa mga module ng GSM/GPRS sa merkado ay nangangailangan ng mga koneksyon sa regulator o level conversion, habang sa SIM800L V.2 GSM/GPRS ay hindi nangangailangan ng karagdagang mga interface level conversion circuits.
Magbigay tayo ng halimbawa ng isang proyekto gamit ang SIM800L V.2 GSM/GPRS. Ang punto ng proyekto ay upang makontrol ang mga switch gamit ang isang SMS controller. Madali mong i-on at i-off ang karamihan sa mga gamit sa bahay sa bahay, gaya ng llama, fan, at iba pa.
Mga katangian ng SIM800L V.2 GSM/GPRS module
Nasa ibaba ang lahat ng teknikal na katangian ng SIM800L V.2 GSM/GPRS module:
- TTL serial interface compatible sa 3.3V at 5V Arduino compatible microcontrollers.
- Ang SIM800L module ay may TTL serial interface.
- Plug ng koneksyon ng antena.
- Suporta sa network: apat na banda 850/900/1800/1900 MHz, na may kakayahang gumawa ng mga tawag, SMS at paglilipat ng data na may makabuluhang pagbawas sa pagkonsumo ng baterya.
- VDD TTL UART interface, kaya maaari mong direktang ikonekta ang MCU gaya ng 51MCU, ARM o MSP430.Ang VDD plug ay ginagamit upang tumugma sa TTL boltahe.
- Modelo: SIMCOM SIM800L
- Operating boltahe: mula 3.7V hanggang 5V;
- mga sukat: 40mm x 28mm x 3mm
- GPRS multislot class 12/10
- GPRS packet service class B
- Sumusunod sa GSM phase 2/2+
- Class 4 (2 Watt @ 850/900 MHz)
- Class 1 (1Watt @ 1800/1900MHz)
Mga kinakailangang materyales
Kakailanganin mo:
1. SIM800L V.2 GSM/GPRS module.
2. Arduino Uno.
3. 4 Channel 5V Relay Module.
4. Mga wire - mga jumper.
5. Power supply 5V.
(Mga link na aktibo sa tindahan para sa pagbili)
Pagpupulong at pagsasaayos
Kapag naikonekta mo na ang lahat ng mga bahagi, lumikha ng isang programa at pagkatapos ay i-upload ito sa iyong Arduino. Ngunit una, dapat mong i-install ang GPRS library, na maaari mong i-download:
gprs.zip
[28.02 Kb] (mga pag-download: 887)
Program code para sa Arduino
Kapag nakonekta mo na ang iyong SIM800L, 4 channel relay module at Arduino sa iyong computer, ilagay ang code sa ibaba at tapos ka na.
#isama
#isama
#define TIMEOUT 5000
#define ACTIVE LOW
#define OFF HIGH
byte Relay[] = {A0,A1,A2,A3};
byte StatRelay[4];
char buffNumber[20];
char currentLine[500] = "";
int currentLineIndex = 0;
bool nextLineIsMessage = false;
String replyNumber = "089510863958";
GPRS gprs;
void 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("I-activate ang SIM800L V2 >>> Awtomatikong Magbasa ng SMS");
gprs.preInit();
pagkaantala(1000);
habang (0 != gprs.init()) {
pagkaantala(1000);
Serial.print("init errorrn");
}
// Pamahalaan ang mensahe sa mode na 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", TIMEOUT)) {
ERROR("ERROR:CNMI");
bumalik;
}
int pjg = replyNumber.length() + 1;
buffNumber[pjg];
replyNumber.toCharArray(buffNumber,pjg);
Serial.print("Ipadala ang tugon sa numero => ");
Serial.println(buffNumber);
Serial.println("Initialization Tapos na");
Serial.println("============================================= ============================= =================");
}
void loop() {
// Baguhin ang status Relay ON / OFF
para sa(int i=0; i < 4; i++) {
digitalWrite(Relay[i], StatRelay[i]);
}
// Kung mayroong input data mula sa SIM800
kung (gprs.serialSIM800.available()) {
char lastCharRead = gprs.serialSIM800.read();
// I-save ang lahat ng data sa lastCharRead, pagkatapos kung mayroong r o n, bilang isang huling senyales ng papasok na mensahe
kung (lastCharRead == 'r' || lastCharRead == 'n') {
String lastLine = String(currentLine);
// Kung ang huling mensahe +CMT ay nagpapahiwatig ng bagong mensahe na dumating
kung (lastLine.startsWith("+CMT:")) {
Serial.println(lastLine);
nextLineIsMessage = totoo;
} else if (lastLine.length() > 0) {
kung (nextLineIsMessage) {
Serial.println(lastLine);
// ================================================== =================== ================>> Function ng Relay Controller
//Relay 1 Controller
if (lastLine.indexOf("Relay 1 ON") >= 0) {
StatRelay[0] = AKTIF;
Serial.print("Tumugon====>>>> ");
Serial.println("Relay 1 Status Aktibo");
gprs.sendSMS(buffNumber, "Relay 1 Status Active");
}
else if (lastLine.indexOf("Relay 1 OFF") >= 0) {
StatRelay[0] = MATI;
Serial.print("Tumugon====>>>> ");
Serial.println("Relay 1 Status Off");
gprs.sendSMS(buffNumber, "Relay 1 Status Off");
}
//Relay 2 Controller
if (lastLine.indexOf("Relay 2 ON") >= 0) {
StatRelay[1] = AKTIF;
Serial.print("Tumugon====>>>> ");
Serial.println("Relay 2 Status Aktibo");
gprs.sendSMS(buffNumber, "Relay 2 Status Active");
}
else if (lastLine.indexOf("Relay 2 OFF") >= 0) {
StatRelay[1] = MATI;
Serial.print("Tumugon====>>>> ");
Serial.println("Relay 2 Status Off");
gprs.sendSMS(buffNumber, "Relay 2 Status Off");
}
//Relay 3 Controller
if (lastLine.indexOf("Relay 3 ON") >= 0) {
StatRelay[2] = AKTIF;
Serial.print("Tumugon====>>>> ");
Serial.println("Relay 3 Status Aktibo");
gprs.sendSMS(buffNumber, "Relay 3 Status Active");
}
else if (lastLine.indexOf("Relay 3 OFF") >= 0) {
StatRelay[2] = MATI;
Serial.print("Tumugon====>>>> ");
Serial.println("Relay 3 Status Off");
gprs.sendSMS(buffNumber, "Relay 3 Status Off");
}
//Relay 4 Controller
if (lastLine.indexOf("Relay 4 ON") >= 0) {
StatRelay[3] = AKTIF;
Serial.print("Tumugon====>>>> ");
Serial.println("Relay 4 Status Aktibo");
gprs.sendSMS(buffNumber, "Relay 1 Status Active");
}
else if (lastLine.indexOf("Relay 4 OFF") >= 0) {
StatRelay[3] = MATI;
Serial.print("Tumugon====>>>> ");
Serial.println("Relay 4 Status Off");
gprs.sendSMS(buffNumber, "Relay 4 Status Off");
}
nextLineIsMessage = false;
}
// ================================================== =================== ===================>>
}
//I-clear ang char array para sa susunod na linya ng read
para sa ( int i = 0; i < sizeof(currentLine); ++i ) {
kasalukuyangLine[i] = (char)0;
}
kasalukuyangLineIndex = 0;
}
iba {
currentLine[currentLineIndex++] = lastCharRead;
}
}
}
Pagsusuri ng device
Gumagana ang tool sa pamamagitan ng pagpapadala ng SMS sa SIM800L na may partikular na pagkakasunod-sunod ng mga character. Halimbawa, para i-on ang relay 1, gamitin ang command na "Relay 1 ON", at para i-off ito, gamitin ang command na "Relay 1 OFF". Para sa natitirang mga relay, halos pareho ang mga command, maliban sa sequence number ng bawat relay na gusto mong maimpluwensyahan. Pagkatapos awtomatikong ipadala ang mensahe, magpapadala ang SIM800 ng tugon sa anyo ng mensahe tungkol sa katayuan ng bawat SIM card.
Video ng pagpupulong, pagsasaayos at pagsubok ng device
Orihinal na artikulo sa Ingles
Mga katulad na master class
Lalo na kawili-wili
Pag-upgrade ng lumang music center sa bago gamit ang sarili mong mga kamay
Paano ibalik ang baterya ng screwdriver
Paano mag-install ng Bluetooth sa anumang radyo ng kotse nang mag-isa
Ang pinakasimpleng DIY electric bike
Huwag itapon ang iyong lumang cartridge - gawin itong power bank
Pagpapalit ng mga baterya ng screwdriver
Mga komento (4)