DIY lakukan sendiri
Kelas induk, arahan, tip berguna, resipi.
» » »Pengawal SMS berdasarkan SIM800L
Pengawal SMS berasaskan SIM800L

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

Berikut adalah contoh projek menggunakan SIM800L V.2 GSM / GPRS. Maksud projek ini adalah untuk mengawal suis menggunakan pengawal SMS. Anda boleh menghidupkan dan mematikan kebanyakan peralatan rumah di rumah, seperti llama, kipas, dan sebagainya.

Ciri-ciri modul SIM800L V.2 GSM / GPRS


Berikut adalah semua spesifikasi teknikal modul SIM800L V.2 GSM / GPRS:
  • Antara muka bersiri TTL yang serasi dengan mikrokontroler 3.3V dan 5V yang serasi dengan Arduino.
  • Modul SIM800L mempunyai antara muka bersiri TTL.
  • Palam antena
  • Sokongan rangkaian: empat band 850/900/1800/1900 MHz, mampu membuat panggilan, SMS dan pemindahan data dengan penggunaan bateri berkurangan.
  • Antara muka VDD TTL UART, jadi anda boleh terus menyambungkan MCU seperti 51MCU, ARM atau MSP430. Palam VDD digunakan untuk menyesuaikan voltan TTL.
  • Model: SIMCOM SIM800L
  • Voltan yang bekerja: dari 3.7V hingga 5V;
  • dimensi: 40mm x 28mm x 3mm
  • Kelas multislot GPRS 12/10
  • Kelas Batch GPRS B
  • Sesuai dengan fasa GSM 2/2 +
  • Kelas 4 (2 Watts @ 850/900 MHz)
  • Kelas 1 (1 Wat @ 1800/1900 MHz)


Bahan yang Diperlukan


Pengawal SMS berasaskan SIM800L


Anda perlu:


1. .
2. .
3. .
4. .
5. .
(Pautan aktif ke kedai untuk dibeli)

Perhimpunan dan konfigurasi


Pengawal SMS berasaskan SIM800L


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

[28.02 Kb] (muat turun: 481)


Kod Program untuk Arduino


Pengawal SMS berasaskan SIM800L


Selepas anda menyambung SIM800L, modul geganti 4-saluran dan Arduino ke komputer anda, masukkan kod di bawah dan anda selesai.


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

Relay byte [] = {A0, A1, A2, A3};
byte StatRelay [4];
char buffNumber [20];
char currentLine [500] = "";
int currentLineIndex = 0;
bool nextLineIsMessage = false;
Jawapan StringNumber = "089510863958";
GPRS gprs;

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

Serial.begin (9600);
sementara (! Siri);
Serial.println ("Aktifkan SIM800L V2 >>> Secara Automatik Baca SMS");
gprs.preInit ();
kelewatan (1000);
sementara (0! = gprs.init ()) {
kelewatan (1000);
Serial.print ("init errorrn");
}

// Mengurus mesej kepada ASCII mod
jika (0! = gprs.sendCmdAndWaitForResp ("AT + CMGF = 1rn", "OK", TIMEOUT)) {
RALAT ("RALAT: CNMI");
kembali
}
// Baca SMS Masuk
jika (0! = gprs.sendCmdAndWaitForResp ("AT + CNMI = 1,2,0,0,0rn", "OK", TIMEOUT)) {
RALAT ("RALAT: CNMI");
kembali
}
int pjg = replyNumber.length () + 1;
buffNumber [pjg];
replyNumber.toCharArray (buffNumber, pjg);
Serial.print ("Hantar balasan kepada nombor =>");
Serial.println (buffNumber);
Serial.println ("Inisialisasi Selesai");
Serial.println ("============================================= ================= ");
}

kekosongan gelung () {
// Tukar status Relay ON / OFF
untuk (int i = 0; i <4; i ++) {
digitalWrite (Relay [i], StatRelay [i]);
}

// Jika terdapat input data dari SIM800
jika (gprs.serialSIM800.available ()) {
char lastCharRead = gprs.serialSIM800.read ();

// Simpan semua data pada lastCharRead, maka jika ada r atau n, sebagai isyarat terakhir dari pesan masuk
jika (lastCharRead == 'r' || lastCharRead == 'n') {
String lastLine = String (currentLine);

// Jika mesej terakhir + CMT menandakan mesej baru tiba
jika (lastLine.startsWith ("+ CMT:")) {
Serial.println (lastLine);
nextLineIsMessage = true;
} else if (lastLine.length ()> 0) {
jika (nextLineIsMessage) {
Serial.println (lastLine);

// ================================================= ================== >> Fungsi Pengawal Relay

/ // Relay 1 Controller

jika (lastLine.indexOf ("Relay 1 ON")> = 0) {
StatRelay [0] = AKTIF;
Serial.print ("Reply ==== >>>>");
Serial.println ("Status Relay 1 Aktif");
gprs.sendSMS (buffNumber, "Relay 1 Status Active");
}

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

// // Relay 2 Controller

jika (lastLine.indexOf ("Relay 2 ON")> = 0) {
StatRelay [1] = AKTIF;
Serial.print ("Reply ==== >>>>");
Serial.println ("Status Relay 2 Aktif");
gprs.sendSMS (buffNumber, "Relay 2 Status Active");
}
lain jika (lastLine.indexOf ("Relay 2 OFF")> = 0) {
StatRelay [1] = MATI;
Serial.print ("Reply ==== >>>>");
Serial.println ("Status Ralat 2");
gprs.sendSMS (buffNumber, "Status Relay 2");
}

// // Relay 3 Controller
jika (lastLine.indexOf ("Relay 3 ON")> = 0) {
StatRelay [2] = AKTIF;
Serial.print ("Reply ==== >>>>");
Serial.println ("Relay 3 Status Aktif");
gprs.sendSMS (buffNumber, "Relay 3 Status Active");
}
lain jika (lastLine.indexOf ("Relay 3 OFF")> = 0) {
StatRelay [2] = MATI;
Serial.print ("Reply ==== >>>>");
Serial.println ("Relay 3 Status Off");
gprs.sendSMS (buffNumber, "Relay 3 Status Off");
}

/ // Relay 4 Controller
jika (lastLine.indexOf ("Relay 4 ON")> = 0) {
StatRelay [3] = AKTIF;
Serial.print ("Reply ==== >>>>");
Serial.println ("Relay 4 Status Aktif");
gprs.sendSMS (buffNumber, "Relay 1 Status Active");
}
lain jika (lastLine.indexOf ("Relay 4 OFF")> = 0) {
StatRelay [3] = MATI;
Serial.print ("Reply ==== >>>>");
Serial.println ("Relay 4 Status Off");
gprs.sendSMS (buffNumber, "Relay 4 Status Off");
}
nextLineIsMessage = false;
}

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

}
// Kosongkan array char untuk baris bacaan seterusnya
untuk (int i = 0; i 


Pemeriksaan peranti


Pengawal SMS berasaskan SIM800L


Alat ini berfungsi dengan menghantar SMS ke SIM800L dengan urutan urutan tertentu. Sebagai contoh, untuk membolehkan geganti 1, gunakan arahan "Relay 1 ON", dan untuk mematikannya, gunakan perintah "Relay 1 OFF". Selebihnya relay mempunyai hampir perintah yang sama, kecuali nombor siri setiap relay yang anda mahu bertindak. Selepas menghantar mesej secara automatik, SIM800 akan menghantar respons dalam bentuk mesej status untuk setiap kad SIM.

Perhimpunan video, konfigurasi, dan pengesahan peranti



Kembali
Komen (4)
  1. qeeeq
    #1 qeeeq Tetamu 26 Ogos 2017 23:50
    0
    Wow! Seperti yang mereka katakan, semua bijak adalah mudah. Saya tidak perlu membeli apa-apa, mungkin pada setiap sampah seperti di rumah secara pukal
  2. Alexey
    #2 Alexey Tetamu 16 Disember 2017 16:53
    0
    Ia tidak berfungsi. Apabila menyusun, ia menulis "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 jalan tanpa huruf Rusia untuk projek itu.
  3. Andrey
    #4 Andrey Tetamu 10 Februari 2019 11:54
    0
    Terdapat banyak kesilapan dalam lakaran. Tidak akan berfungsi.