Tự làm
Các lớp học thạc sĩ, hướng dẫn, lời khuyên hữu ích, công thức nấu ăn.
» » »Bộ điều khiển SMS dựa trên SIM800L
Bộ điều khiển SMS dựa trên SIM800L

SIM800L V2.0 GSM / GPRS là mô-đun GSM / GPRS bốn băng tần tương thích với Arduino. Mô-đun được sử dụng để thực hiện các chức năng của GSM (cuộc gọi và SMS) và GPRS. Ưu điểm của mô-đun này là giao diện TTL có điện áp 5V, cho phép bạn kết nối trực tiếp nó với Arduino hoặc bất kỳ hệ thống nào khác có nguồn điện 5V. Hầu hết các mô-đun GSM / GPRS trên thị trường yêu cầu kết nối bộ điều chỉnh hoặc chuyển đổi cấp độ, trong khi trong SIM800L V.2 GSM / GPRS không yêu cầu các mạch chuyển đổi cấp giao diện bổ sung.

Dưới đây là một dự án ví dụ sử dụng SIM800L V.2 GSM / GPRS. Ý nghĩa của dự án là điều khiển các thiết bị chuyển mạch bằng bộ điều khiển SMS. Bạn có thể dễ dàng bật và tắt hầu hết các thiết bị gia dụng trong nhà, chẳng hạn như llama, quạt, v.v.

Đặc điểm của mô-đun GSM / GPRS SIM800L V.2


Dưới đây là tất cả các thông số kỹ thuật của mô-đun GSM / GPRS SIM800L V.2:
  • Giao diện nối tiếp TTL tương thích với các vi điều khiển 3,3V và 5V tương thích với Arduino.
  • Mô-đun SIM800L có giao diện nối tiếp TTL.
  • Anten cắm
  • Hỗ trợ mạng: bốn băng tần 850/900/1800/1900 MHz, có khả năng thực hiện cuộc gọi, SMS và truyền dữ liệu với mức tiêu thụ pin giảm đáng kể.
  • Giao diện VDD TTL UART, do đó bạn có thể kết nối trực tiếp MCU như 51MCU, ARM hoặc MSP430. Phích cắm VDD được sử dụng để phù hợp với điện áp TTL.
  • Model: SIMCOM SIM800L
  • Điện áp làm việc: từ 3,7V đến 5V;
  • kích thước: 40mm x 28mm x 3 mm
  • GPRS đa lớp 12/10
  • Dịch vụ hàng loạt GPRS B
  • Tương ứng với GSM giai đoạn 2/2 +
  • Lớp 4 (2 Watts @ 850/900 MHz)
  • Lớp 1 (1 Wat @ 1800/1900 MHz)


Vật liệu cần thiết


Bộ điều khiển SMS dựa trên SIM800L


Bạn sẽ cần:


1. .
2. .
3. .
4. .
5. .
(Liên kết hoạt động đến cửa hàng để mua)

Lắp ráp và cấu hình


Bộ điều khiển SMS dựa trên SIM800L


Khi bạn đã kết nối tất cả các thành phần, tạo một chương trình, sau đó tải nó xuống Arduino của bạn. Nhưng trước tiên, bạn phải cài đặt thư viện GPRS mà bạn có thể tải xuống:

[28.02 Kb] (tải xuống: 481)


Mã chương trình cho Arduino


Bộ điều khiển SMS dựa trên SIM800L


Sau khi bạn đã kết nối SIM800L, mô-đun chuyển tiếp 4 kênh và Arduino với máy tính của bạn, hãy nhập mã bên dưới và bạn đã hoàn tất.


#inc loại
#inc loại
#define THỜI GIAN 5000
#define HOẠT ĐỘNG THẤP
#define TẮT CAO

Rơle byte [] = {A0, A1, A2, A3};
byte StatRelay [4];
char buffNumber [20];
char currentLine [500] = "";
int currentLine Index = 0;
bool nextLineIsMessage = false;
Chuỗi replyNumber = "089510863958";
Gprs GPRS;

void setup () {
for (int i = 0; i <4; i ++) {
pinMode (Rơle [i], OUTPUT);
kỹ thuật sốWrite (Rơle [i], MATI);
StatRelay [i] = MATI;
}

Nối tiếp.begin (9600);
trong khi (! nối tiếp);
Serial.println ("Kích hoạt SIM800L V2 >>> Tự động đọc SMS");
gprs.preInit ();
độ trễ (1000);
while (0! = gprs.init ()) {
độ trễ (1000);
Serial.print ("init errorrn");
}

// Quản lý tin nhắn sang chế độ ASCII
if (0! = gprs.sendCmdAndWaitForResp ("AT + CMGF = 1rn", "OK", TIMEOUT)) {
LRI ("LRI: CNMI");
trở về
}
// Đọc tin nhắn SMS đến
if (0! = gprs.sendCmdAndWaitForResp ("AT + CNMI = 1,2,0,0,0rn", "OK", TIMEOUT)) {
LRI ("LRI: CNMI");
trở về
}
int pjg = replyNumber.length () + 1;
đệm [pjg];
replyNumber.toCharArray (buffNumber, pjg);
Serial.print ("Gửi trả lời cho số =>");
Serial.println (buffNumber);
Serial.println ("Đã khởi tạo xong");
Nối tiếp.println ("============================================= ================= ");
}

void loop () {
// Thay đổi trạng thái BẬT / TẮT
for (int i = 0; i <4; i ++) {
kỹ thuật sốWrite (Rơle [i], StatRelay [i]);
}

// Nếu có dữ liệu đầu vào từ SIM800
if (gprs.serialSIM800.av Available ()) {
char lastCharRead = gprs.serialSIM800.read ();

// Lưu tất cả dữ liệu trên lastCharRead, sau đó nếu có r hoặc n, là tín hiệu cuối cùng của tin nhắn đến
if (lastCharRead == 'r' || lastCharRead == 'n') {
Chuỗi lastLine = String (currentLine);

// Nếu tin nhắn cuối cùng + CMT cho biết tin nhắn mới đến
if (lastLine.startsWith ("+ CMT:")) {
Serial.println (lastLine);
nextLineIsMessage = true;
} khác if (lastLine.length ()> 0) {
if (nextLineIsMessage) {
Serial.println (lastLine);

// ================================================= ================== >> Chức năng của bộ điều khiển rơle

// Bộ điều khiển chuyển tiếp 1

if (lastLine.indexOf ("Chuyển tiếp 1 BẬT")> = 0) {
StatRelay [0] = AKTIF;
Serial.print ("Trả lời ==== >>>>");
Serial.println ("Chuyển tiếp 1 trạng thái hoạt động");
gprs.sendSMS (buffNumber, "Chuyển tiếp 1 trạng thái hoạt động");
}

khác if (lastLine.indexOf ("Rơle 1 TẮT")> = 0) {
StatRelay [0] = MATI;
Serial.print ("Trả lời ==== >>>>");
Serial.println ("Tắt trạng thái chuyển tiếp 1");
gprs.sendSMS (buffNumber, "Tắt trạng thái chuyển tiếp 1");
}

// Bộ điều khiển chuyển tiếp 2

if (lastLine.indexOf ("Chuyển tiếp 2 BẬT")> = 0) {
StatRelay [1] = AKTIF;
Serial.print ("Trả lời ==== >>>>");
Serial.println ("Chuyển tiếp 2 trạng thái hoạt động");
gprs.sendSMS (buffNumber, "Chuyển tiếp 2 trạng thái hoạt động");
}
khác if (lastLine.indexOf ("Rơle 2 TẮT")> = 0) {
StatRelay [1] = MATI;
Serial.print ("Trả lời ==== >>>>");
Serial.println ("Tắt trạng thái chuyển tiếp 2");
gprs.sendSMS (buffNumber, "Tắt trạng thái chuyển tiếp 2");
}

// Bộ điều khiển chuyển tiếp 3
if (lastLine.indexOf ("Chuyển tiếp 3 BẬT")> = 0) {
StatRelay [2] = AKTIF;
Serial.print ("Trả lời ==== >>>>");
Serial.println ("Chuyển tiếp 3 trạng thái hoạt động");
gprs.sendSMS (buffNumber, "Chuyển tiếp 3 trạng thái hoạt động");
}
khác if (lastLine.indexOf ("Rơle 3 TẮT")> = 0) {
StatRelay [2] = MATI;
Serial.print ("Trả lời ==== >>>>");
Serial.println ("Tắt trạng thái chuyển tiếp 3");
gprs.sendSMS (buffNumber, "Tắt 3 trạng thái tắt");
}

// Bộ điều khiển chuyển tiếp 4
if (lastLine.indexOf ("Chuyển tiếp 4 BẬT")> = 0) {
StatRelay [3] = AKTIF;
Serial.print ("Trả lời ==== >>>>");
Serial.println ("Chuyển tiếp 4 trạng thái hoạt động");
gprs.sendSMS (buffNumber, "Chuyển tiếp 1 trạng thái hoạt động");
}
khác if (lastLine.indexOf ("Rơle 4 TẮT")> = 0) {
StatRelay [3] = MATI;
Serial.print ("Trả lời ==== >>>>");
Serial.println ("Tắt trạng thái chuyển tiếp 4");
gprs.sendSMS (buffNumber, "Tắt trạng thái chuyển tiếp 4");
}
nextLineIsMessage = false;
}

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

}
// Xóa mảng char cho dòng đọc tiếp theo
for (int i = 0; i 


Kiểm tra thiết bị


Bộ điều khiển SMS dựa trên SIM800L


Công cụ này hoạt động bằng cách gửi SMS đến SIM800L với một chuỗi ký tự cụ thể. Ví dụ, để bật rơle 1, hãy sử dụng lệnh Rơle 1 ON ON và để tắt nó, hãy sử dụng lệnh Rơle 1 TẮT Rơle. Phần còn lại của rơle có các lệnh gần như giống nhau, ngoại trừ số sê-ri của mỗi rơle mà bạn muốn hành động. Sau khi tự động gửi tin nhắn, SIM800 sẽ gửi phản hồi dưới dạng tin nhắn trạng thái cho mỗi thẻ SIM.

Lắp ráp video, cấu hình và xác minh thiết bị



Quay lại
Nhận xét (4)
  1. qeeee
    #1 qeeee Khách Ngày 26 tháng 8 năm 2017 23:50
    0
    Ồ Như họ nói, tất cả khéo léo là đơn giản. Tôi thậm chí còn phải mua bất cứ thứ gì, có lẽ ở mỗi đống rác như vậy ở nhà với số lượng lớn
  2. Alexey
    #2 Alexey Khách Ngày 16 tháng 12 năm 2017 16:53
    0
    Nó không làm việc ra. Khi biên dịch, nó viết "Arduino: 1.8.5 Hourly Build 2017/08/28 06:33 (Windows 7), Board:" Arduino / Genuino Uno "
    1. Denis
      #3 Denis Khách Ngày 17 tháng 12 năm 2017 08:11
      0
      Bạn cần sử dụng một đường dẫn không có chữ cái tiếng Nga cho dự án.
  3. Hà Nội
    #4 Hà Nội Khách 10 tháng 2 năm 2019 11:54
    0
    Có rất nhiều sai lầm trong bản phác thảo. Sẽ không hoạt động.