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

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

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

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

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
Kelas induk yang serupa
Amat menarik

Menaik taraf pusat muzik lama kepada yang baharu dengan tangan anda sendiri

Bagaimana untuk memulihkan bateri pemutar skru

Cara memasang Bluetooth ke mana-mana radio kereta sendiri

Basikal elektrik DIY yang paling mudah

Jangan buang kartrij lama anda - jadikan ia sebagai bank kuasa

Menggantikan bateri pemutar skru
Komen (4)