Pengawal SMS berdasarkan SIM800L

Pengawal SMS berdasarkan SIM800L

SIM800L V2.0 GSM/GPRS ialah modul GSM/GPRS empat jalur yang serasi dengan Arduino. Modul ini digunakan untuk melaksanakan fungsi GSM (panggilan dan SMS) dan GPRS. Kelebihan modul ini ialah antara muka TTL, yang mempunyai voltan 5V, yang membolehkan anda menyambungkannya terus ke Arduino atau mana-mana sistem lain dengan voltan bekalan 5V. Kebanyakan modul GSM/GPRS di pasaran memerlukan sambungan pengawal selia atau penukaran tahap, manakala dalam SIM800L V.2 GSM/GPRS tidak memerlukan litar penukaran tahap antara muka tambahan.

Mari kita berikan contoh projek menggunakan SIM800L V.2 GSM/GPRS. Tujuan projek ini adalah untuk mengawal suis menggunakan pengawal SMS. Anda boleh menghidupkan dan mematikan kebanyakan perkakas rumah di rumah dengan mudah, seperti llama, kipas dan sebagainya.

Ciri-ciri modul SIM800L V.2 GSM/GPRS


Di bawah adalah semua ciri teknikal modul SIM800L V.2 GSM/GPRS:
  • Antara muka bersiri TTL serasi dengan mikropengawal serasi 3.3V dan 5V Arduino.
  • Modul SIM800L mempunyai antara muka bersiri TTL.
  • Palam sambungan antena.
  • Sokongan rangkaian: empat jalur 850/900/1800/1900 MHz, mampu membuat panggilan, SMS dan pemindahan data dengan penggunaan bateri yang berkurangan dengan ketara.
  • Antara muka VDD TTL UART, jadi anda boleh menyambung terus MCU seperti 51MCU, ARM atau MSP430.Palam VDD digunakan untuk memadankan voltan TTL.
  • Model: SIMCOM SIM800L
  • Voltan operasi: dari 3.7V hingga 5V;
  • dimensi: 40mm x 28mm x 3mm
  • Kelas berbilang slot GPRS 12/10
  • Kelas perkhidmatan paket GPRS B
  • Mematuhi GSM fasa 2/2+
  • Kelas 4 (2 Watt @ 850/900 MHz)
  • Kelas 1 (1Watt @ 1800/1900MHz)


Bahan-bahan yang diperlukan


Pengawal SMS berdasarkan SIM800L


Anda perlukan:


1. Modul SIM800L V.2 GSM/GPRS.
2. Arduino Uno.
3. Modul Geganti 4 Saluran 5V.
4. Wayar - pelompat.
5. Bekalan kuasa 5V.
(Pautan aktif ke kedai untuk pembelian)

Perhimpunan dan konfigurasi


Pengawal SMS berdasarkan SIM800L


Sebaik sahaja anda telah menyambungkan semua komponen, buat program dan kemudian muat naik ke Arduino anda. Tetapi pertama sekali, anda mesti memasang perpustakaan GPRS, yang boleh anda muat turun:

gprs.zip [28.02 Kb] (muat turun: 887)


Kod program untuk Arduino


Pengawal SMS berdasarkan SIM800L


Sebaik sahaja anda telah menyambungkan SIM800L, modul geganti 4 saluran dan Arduino anda ke komputer anda, masukkan kod di bawah dan anda selesai.



#termasuk 

#termasuk

#define TIMEOUT 5000

#define AKTIF RENDAH

#define OFF HIGH



Geganti bait[] = {A0,A1,A2,A3};

bait StatRelay[4];

char buffNombor[20];

char currentLine[500] = "";

int currentLineIndex = 0;

bool nextLineIsMessage = palsu;

String replyNumber = "089510863958";

GPRS gprs;



persediaan void() {

untuk(int i=0; i < 4; i++) {

pinMode(Relay[i] , OUTPUT);

digitalWrite(Relay[i], MATI);

StatRelay[i] = MATI;

}



Serial.begin(9600);

while(!Siri);

Serial.println("Aktifkan SIM800L V2 >>> Baca SMS Secara Automatik");

gprs.preInit();

kelewatan(1000);

manakala (0 != gprs.init()) {

kelewatan(1000);

Serial.print("init errorrn");

}



// Urus mesej ke mod ASCII

jika (0 != gprs.sendCmdAndWaitForResp("AT+CMGF=1rn", "OK", TIMEOUT)) {

ERROR("ERROR:CNMI");

kembali;

}

// Baca SMS Masuk

jika (0 != gprs.sendCmdAndWaitForResp("AT+CNMI=1,2,0,0,0rn", "OK", TIMEOUT)) {

ERROR("ERROR:CNMI");

kembali;

}

int pjg = replyNumber.length() + 1;

buffNumber[pjg];

replyNumber.toCharArray(buffNumber,pjg);

Serial.print("Hantar balasan ke nombor => ");

Serial.println(buffNumber);

Serial.println("Permulaan Selesai");

Serial.println("=========================================== =====================================");

}



gelung kosong() {

// Tukar status Relay HIDUP / MATI

untuk(int i=0; i < 4; i++) {

digitalWrite(Relay[i], StatRelay[i]);

}



// Jika terdapat data input daripada SIM800

jika (gprs.serialSIM800.available()) {

char lastCharRead = gprs.serialSIM800.read();



// Simpan semua data pada lastCharRead, kemudian jika terdapat r atau n, sebagai isyarat akhir mesej masuk

if (lastCharRead == 'r' || lastCharRead == 'n') {

String lastLine = String(currentLine);



// Jika mesej terakhir +CMT menunjukkan mesej baru tiba

if (lastLine.startsWith("+CMT:")) {

Serial.println(lastLine);

nextLineIsMessage = benar;

} else if (lastLine.length() > 0) {

jika (nextLineIsMessage) {

Serial.println(lastLine);



// ================================================== =================== ================>> Fungsi Relay Controller



//Relay 1 Pengawal



if (lastLine.indexOf("Relay 1 ON") >= 0) {

StatRelay[0] = AKTIF;

Serial.print("Balas ====>>>> ");

Serial.println("Relay 1 Status Aktif");

gprs.sendSMS(buffNumber, "Relay 1 Status Active");

}



else if (lastLine.indexOf("Relay 1 OFF") >= 0) {

StatRelay[0] = MATI;

Serial.print("Balas ====>>>> ");

Serial.println("Status Relay 1 Dimatikan");

gprs.sendSMS(buffNumber, "Status Relay 1 Dimatikan");

}



//Relay 2 Pengawal



if (lastLine.indexOf("Relay 2 ON") >= 0) {

StatRelay[1] = AKTIF;

Serial.print("Balas ====>>>> ");

Serial.println("Relay 2 Status Active");

gprs.sendSMS(buffNumber, "Status Relay 2 Active");

}

else if (lastLine.indexOf("Relay 2 OFF") >= 0) {

StatRelay[1] = MATI;

Serial.print("Balas ====>>>> ");

Serial.println("Status Relay 2 Dimatikan");

gprs.sendSMS(buffNumber, "Status Relay 2 Dimatikan");

}



//Relay 3 Pengawal

if (lastLine.indexOf("Relay 3 ON") >= 0) {

StatRelay[2] = AKTIF;

Serial.print("Balas ====>>>> ");

Serial.println("Relay 3 Status Active");

gprs.sendSMS(buffNumber, "Status Relay 3 Aktif");

}

else if (lastLine.indexOf("Relay 3 OFF") >= 0) {

StatRelay[2] = MATI;

Serial.print("Balas ====>>>> ");

Serial.println("Status Relay 3 Dimatikan");

gprs.sendSMS(buffNumber, "Status Relay 3 Dimatikan");

}



//Relay 4 Pengawal

if (lastLine.indexOf("Relay 4 ON") >= 0) {

StatRelay[3] = AKTIF;

Serial.print("Balas ====>>>> ");

Serial.println("Relay 4 Status Active");

gprs.sendSMS(buffNumber, "Relay 1 Status Active");

}

else if (lastLine.indexOf("Relay 4 OFF") >= 0) {

StatRelay[3] = MATI;

Serial.print("Balas ====>>>> ");

Serial.println("Status Relay 4 Dimatikan");

gprs.sendSMS(buffNumber, "Status Relay 4 Off");

}

nextLineIsMessage = palsu;

}



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



}

//Kosongkan tatasusunan char untuk baris bacaan seterusnya

untuk ( int i = 0; i < sizeof(currentLine); ++i ) {

Barisan semasa[i] = (char)0;

}

currentLineIndex = 0;

}

lain {

currentLine[currentLineIndex++] = lastCharRead;

}

}

}



Pemeriksaan peranti


Pengawal SMS berdasarkan SIM800L


Alat ini berfungsi dengan menghantar SMS ke SIM800L dengan urutan aksara tertentu. Contohnya, untuk menghidupkan geganti 1, gunakan perintah “Geganti 1 HIDUP”, dan untuk mematikannya, gunakan perintah “Geganti 1 MATI”. Untuk geganti yang tinggal, arahannya hampir sama, kecuali nombor jujukan setiap geganti yang anda ingin pengaruhi. Selepas menghantar mesej secara automatik, SIM800 akan menghantar respons dalam bentuk mesej tentang status setiap kad SIM.

Video pemasangan, konfigurasi dan ujian peranti



Artikel asal dalam bahasa Inggeris
kembalilah
Komen
  • tali lehersenyumketawamerah mukasenyumansantai santaitersengih
    mata_hatimencium_haticium_mata_tutupmemerahlegaberpuas hatitersengih
    kejapterkeluar_lidah_kenyit_mataterkeluar_lidah_mata_tertutuptersengihberciumterkeluar_lidahsedang tidur
    risauberkerut dahikesianbuka mulutmeringiskeliruterdiam
    tanpa ekspresitidak terhiburpeluh_senyumpeluhkecewa_legapenatpasif
    kecewakelirutakutpeluh sejuktabahmenangismenangis teresak-esak
    kegembiraanterperanjatmenjeritmuka_penatmarahkemarahankemenangan
    mengantuksedaptopengcermin mata hitammuka_peningimptersenyum_imp
    neutral_facetiada_muluttidak bersalah
3+tiga=
Komen (4)
  1. qeeeq
    #1 qeeeq tetamu 26 Ogos 2017 23:50
    0
    Wah! Seperti yang mereka katakan, segala-galanya yang bijak adalah mudah. Saya tidak perlu membeli apa-apa, mungkin semua orang mempunyai timbunan sampah di rumah
  2. Alexei
    #2 Alexei tetamu 16 Disember 2017 16:53
    0
    Tidak berfungsi. Apabila menyusun, ia berkata "Arduino: 1.8.5 Hourly Build 2017/08/28 06:33 (Windows 7), Board:"Arduino/Genuino Uno"
    1. Denis
      #3 Denis tetamu 17 Disember 2017 08:11
      0
      Anda perlu menggunakan laluan tanpa huruf Rusia untuk projek itu.
  3. Andrey
    #4 Andrey tetamu 10 Februari 2019 11:54
    2
    Terdapat banyak kesilapan dalam lakaran. Ia tidak akan berfungsi.