Tìm hiểu về module sim 800A, cùng làm ứng dụng điều khiển từ xa 4 trong 1

Mạch GSM GPRS Sim800A được phát triển từ module sim 900A tích hợp nguồn xung và ic đệm được thiết kế cho các ứng dụng cần độ bền và độ ổn định cao.

Mục lục

  • Giới thiệu về module Sim 800A
  • Cách test module Sim 800A
    • Test với máy tính
    • Test module sim 800A với arduino
  • Phát triển ứng dụng điều khiển từ xa 4 trong 1
    • Sơ đồ đấu mạch điều khiển
    • Sơ đồ đấu mạch động lực
    • Code
    • Video test thực tế

Cơ bản về module sim 800A

Mạch GSM GPRS Sim800A được phát triển từ module sim 900A tích hợp nguồn xung và ic đệm được thiết kế cho các ứng dụng cần độ bền và độ ổn định cao.

4-2Module GSM GPRS Sim800A

THÔNG SỐ KỸ THUẬT MẠCH GSM GPRS Sim800A

  • Sử dụng module GSM GPRS Sim800A.
  • Nguồn cấp đầu vào: 5 – 18VDC, lớn hơn 1A.
  • Mức tín hiệu giao tiếp: TTL (3.3-5VDC) hoặc RS232.
  • Tích hợp chuyển mức tín hiệu TTL Mosfet tốc độ cao.
  • Tích hợp IC chuyển mức tín hiệu RS232 MAX232.
  • Tích hợp nguồn xung với dòng cao cung cấp cho Sim800A.
  • Sử dụng khe Micro Sim.
  • Thiết kế mạch nhỏ gọn, bền bỉ, chống nhiễu.

Thứ tự các chân:
Header 1:

  • VCC: Nguồn dương từ 5-18VDC, lớn hơn 1A
  • GND: Mass, 0VDC.
  • EN: Mặc định nối lên cao, chức năng dùng để khởi động (Enable) hoặc dừng hoạt động (Disable) Module Sim800, nếu nếu muốn module Sim800 dừng hoạt động bạn có thể nối chân này xuống âm GND (0VDC).
  • 232R: Chân nhận tín hiệu RS232.
  • 232T: Chân truyền tín hiệu RS232
  • GND: Mass, 0VDC.
  • RXD: Chân nhận tín hiệu TTL, chấp nhận mức 3.3 và 5VDC.
  • TXD: Chân truyền tín hiệu TTL, chấp nhận mức 3.3 và 5VDC.

Header 2:

  • BRXD: Thường không sử dụng, chân nhận tín hiệu, dùng để giao tiếp nạp Firmware cho Sim800, mức tín hiệu 3.3VDC.
  • BTXD: Thường không sử dụng, chân truyền tín hiệu, dùng để giao tiếp nạp Firmware cho Sim800, mức tín hiệu 3.3VDC.
  • GND: Mass, 0VDC.
  • EPN: Ngõ ra loa Speaker âm
  • EPP: Ngõ ra loa Speaker dương.
  • MICP: Ngõ vào Micro dương.

Cách test module sim 800A

Kết nối module với máy tính để test

Dụng cụ:

Phần mềm:

Link cài driver cp2102: https://drive.google.com/file/d/1GzW76cb2FZScGXKhsuXWyVeR4uZwlvy_/view

Link tải phần mềm tập lệnh: https://www.hw-group.com/software/hercules-setup-utility

Sơ đồ kết nối:

1-2kết nối máy tính với module sim

Tập lệnh: Tập lệnh đầy đủ: https://cdn-shop.adafruit.com/datasheets/sim800_series_at_command_manual_v1.01.pdf

Tập lệnh cơ bản:

  1. Lệnh chung:

Lệnh: AT<CR><LF>

Trả lời: OK

Mô tả : Kiểm tra đáp ứng , nếu trả về OK thì Module hoạt động

Lệnh: AT+IPR=[baud rate]<CR><LF>

Trả lời: OK

Mô tả : cài đặt tốc độ giao tiếp dữ liệu với module Sim800A, chỉ cài được các tốc độ sau

baud rate : 0 (auto), 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200

2-1Test tập lệnh cơ bản với module sim

2. Lệnh thực hiện cuộc gọi:

Lệnh: ATD[Số_điện_thoại];<CR><LF>

Trả lời: OK

Mô tả : Lệnh thực hiện cuộc gọi

Lệnh: ATH<CR><LF>

Trả lời: OK

Mô tả : Lệnh cúp máy

Lệnh: ATA<CR><LF>

Trả lời: OK

Mô tả : Lệnh thực hiện chấp nhận cuộc gọi

3-1Test tập lệnh thực hiện cuộc gọi

Nếu muốn hiển thị thông tin người gọi đến các bạn thực hiên thêm lệnh sau

Lệnh: AT+CLIP=1<CR><LF>

Trả lời: OK

3. Lệnh điều khiển tin nhắn

Lệnh: AT+CMGF=1<CR><LF>

Trả lời: OK

Mô tả : Lệnh đưa SMS về chế độ Text , phải có lệnh này mới gửi nhận tin nhắn dạng Text

Cấu trúc gửi tin nhắn

Lệnh: AT+CMGS=”Số_điện _thoại”<CR><LF>

Đợi đến khi có ký tự ‘>’ được gửi về

Gửi nội dụng tin nhắn : “NSHOP”

Gửi mã Ctrl+Z hay 0x1A để kết thúc nội dung và gửi tin nhắn

Trả lời : OK

4-1test tập lệnh nhắn tin

Chú ý: sau mỗi lệnh các bạn thường thấy thực chất nó là hai mã điều khiển

tương ứng 0x0D(hexa)

tương ứng 0x0A(hexa)

Các bạn chỉ cần nhấn enter là có thể gửi

Kết nối với arduino

Sơ đồ đấu

5-1Kết nối module sim với arduino để test

Code test

#include "SIM900.h"#include <SoftwareSerial.h>SoftwareSerial SIM900(10, 11);String number1 = "0332177764";// nhap sdt vào đâyvoid setup(){Serial.begin(9600);SIM900.begin(9600);//19200delay(2000); // give time to log on to network.      SIM900.print("AT+CLIP=1\r"); // test      delay(1000);      SIM900.println("AT");      }void loop() {  // nhấn 1 để gọi, nhấn 2 để gửi tin nhắn  if(Serial.available() >0)  switch (Serial.read())  {  case '1':  Serial.println("dang goi");  call();    break;  case '2':  Serial.println("dang nhan tin");  message();    break;}      }//////////////////////////////////////////////////////void call(){  //cú pháp gọi: ATD 0332177764 ;\r\n  SIM900.print (F("ATD"));  SIM900.print (number1);  SIM900.print (F(";\r\n"));  }//////////////////////////////////////////////////////void message(){    // cách gửi tin nhắn B1: AT+CMGF=1   >>> OK    /////////////////////B2: AT+CMGS="0332177764"  >>> TRA VE >   >>> NHAP TIN NHAN >>> CTRL + Z de gui  SIM900.println("AT+CMGF=1");      delay(1000);  //Serial.println ("Set SMS Number");  SIM900.println("AT+CMGS=\"" + number1 + "\"\r");  delay(1000);  String SMS = "NSHOP";  SIM900.println(SMS);  delay(100);  SIM900.println((char)26);// ASCII code of CTRL+Z  delay(1000);  }

Phát triển ứng dụng điều khiển từ xa 4 trong 1

– Ứng dụng điều khiển từ xa 4 trong 1 bao gồm

  1. Nhắn tin điều khiển
  2. Gọi điện điều khiển
  3. Điều khiển bằng remote
  4. Điều khiển bằng wifi

Trong đó 2 ứng dụng đầu dành cho những người ko rành về công nghệ, ứng dụng 3 nhanh gọn phạm vi thấp

ứng dụng 4 tiện lợi giành cho những người biết xài smartphone

Phần cứng cần thiết:

1 x Công tắc thông minh wifi Tuya 16A điều khiển từ xa

1 x Mạch GSM GPRS Sim800A (SIM900A Update)

1 x Arduino Nano V3.0 ATmega328P

1 x Module nguồn 5V 2A Loại 2A

1 x Mạch thu sóng RF 433Mhz học lệnh

1 x Module 1 Relay Với Opto Cách Ly Kích H/L (5VDC)

1 x Contactor

1 x Relay nhiệt https://nshopvn.com/product/relay-nhiet-chint-nxr-25-cho-contactor-nxc/?variant=74448

1 x Mạch chống nhiễu điện từ, bảo vệ tiếp điểm LC Technology

Nguyên lý hoạt động

  • Trường hợp 1 Khi có cuộc gọi từ số điện thoại cài đặt gọi tới module sim sẽ giao tiếp với arduino tiến hành kích module relay 5v trong 2s > Module relay được kích sẽ bật nút bấm vật lý trên mạch Wifi Tuya làm thay đổi trạng thái của Tải máy bơm ( nếu đang bật sẽ chuyển sang tắt, nếu đang tắt sẽ chuyển sang bật)
  • Trường hợp 2 tương tự TH1 khi tin nhắn “ON” được gửi từ số điện thoại cài đặt module sim sẽ giao tiếp với arduino tiến hành kích module relay 5v 2s > Module relay được kích sẽ bật nút vật lý trên mạch Wifi Tuya làm theo đổi trạng thái Tải máy bơm ( nếu đang bật sẽ chuyển sang tắt, nếu đang tắt sẽ chuyển sang bật)
  • Trường hợp 3: Module thu rf được cài đặt nhấn nhả, khi có tín hiệu từ remote sẽ tiến hành bật relay > Module relay được kích sẽ bật nút vật lý trên mạch Wifi Tuya làm theo đổi trạng thái Tải máy bơm ( nếu đang bật sẽ chuyển sang tắt, nếu đang tắt sẽ chuyển sang bật)
  • Trường hợp 4: Sử dụng chính app Tuya Smart hoặc Smart life kết nối với mạch Wifi Tuya điều khiển trực tiếp

Sơ đồ mạch điều khiển

1-3Sơ đồ mạch điều khiển phần 12-2Sơ đồ mạch điều khiển phần 2

Sơ đồ mạch Động lực

3-2Sơ đồ mạch động lực

Code nạp vào arduino nano

#include "SIM900.h"#include <SoftwareSerial.h>char incomingByte; String inputString; char inchar;SoftwareSerial SIM900(3, 4);// 3-Tx, 4-Rx         11 12int relay = 12;String number1 = "0378078760";// nhap sdt vào đâyString number2 = "0909951121";void setup(){Serial.begin(9600);SIM900.begin(9600);//19200pinMode(relay, OUTPUT); // relaypinMode(8, OUTPUT); // den báo kết nối sim + arduinodigitalWrite(relay, LOW);digitalWrite(8, LOW);delay(2000); // give time to log on to network.      SIM900.print("AT+CLIP=1\r");      delay(1000);      SIM900.println("AT");      delay(1000);      Serial.println("Connecting..."); // kết nối        //}      Serial.println("Connected!");        SIM900.println("AT+CMGF=1"); // khởi động chức năng SMS      delay(1000);        SIM900.println("AT+CNMI=1,2,0,0,0");      delay(1000);      SIM900.println("AT+CMGL=\"REC UNREAD\"");          if(SIM900.available() >0)// kiểm tra xem đã kết nối với arduino chưa     {      if (inputString.indexOf("OK") == -1){         digitalWrite(8,HIGH);      }       else{          digitalWrite(8,LOW);       }        inputString = "";            }     }void loop() {if(SIM900.available() >0){delay(100);      // Serial Buffer      while(SIM900.available()){        incomingByte = SIM900.read();        inchar = incomingByte;        inputString += incomingByte;        }        delay(10);              Serial.println(inputString);        inputString.toUpperCase();                if ((inputString.indexOf("OFF") > -1) ){  //thay tin nhắn tắt chỗ indexOf("ON")// nhan tin         digitalWrite(relay,HIGH);         delay(5000);         digitalWrite(relay, LOW);          }                  if ((inputString.indexOf("ON") > -1)){// thay tin nhắn bật chỗ indexOf("OFF") // nhan tin         digitalWrite(relay,HIGH);         delay(5000);         digitalWrite(relay, LOW);          }        if ( (inputString.indexOf(number1) > -1)||(inputString.indexOf(number2) > -1)) // Goi dien          {            doSomething();          }               //Delete Messages        if (inputString.indexOf("OK") == -1){        SIM900.println("AT+CMGDA=\"DEL ALL\"");        delay(1000);}        inputString = "";        delay(1000);           }//while(SIM900.available()){       }///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void doSomething(){        delay(2000);         SIM900.println("ATH");  // thực hiện lệnh cúp máy           digitalWrite(relay,HIGH);         delay(5000);         digitalWrite(relay, LOW); }///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void message(){    // cách gửi tin nhắn B1: AT+CMGF=1   >>> OK    /////////////////////B2: AT+CMGS="0332177764"  >>> TRA VE >   >>> NHAP TIN NHAN >>> CTRL + Z de gui  SIM900.println("AT+CMGF=1");      delay(1000);  //Serial.println ("Set SMS Number");  SIM900.println("AT+CMGS=\"" + number1 + "\"\r");  delay(1000);  String SMS = "da bat may bom";  SIM900.println(SMS);  delay(100);  SIM900.println((char)26);// ASCII code of CTRL+Z  delay(1000);  }

Video test thực tế

đang cập nhật

Untitled Document
Tạo đơn hàng
BƯỚC 1
Tạo đơn hàng
Xác nhận đơn hàng
BƯỚC 2
Xác nhận đơn hàng
Giao hàng
BƯỚC 3
Giao hàng
Nhận hàng và thanh toán
BƯỚC 4
Nhận hàng và thanh toán