Sim900A & Arduino | Gửi và nhận SMS

I. Giới thiệu

Bài viết trước mình có giới thiệu về thư viện SIM900 cho Arduino, hôm nay mình sẽ viết bài hướng dẫn các bạn sử dụng nó trong môi trường Arduino để thực hiện công việc gửi, nhận SMS, đọc nội dung SMS, xóa SMS và nhận trả lời mọi comment về những vấn đề phát sinh trong quá trình các bạn làm theo hướng dẫn của mình. " Và cũng nhân tiện cho mình gửi lời xin lỗi đến các bạn trong diễn đàn. Ở bài viết trước mình có nói sẽ hướng dẫn cho các bạn làm hệ thống chống trộm và định vị cho xe nhưng cái modul GPS của mình đổ keo để chống nước khi gắn vào xe và bây giờ không tiện gỡ ra vì vậy qua loạt bài này mình không có sử dụng modul GPS nếu bạn nào muốn làm những dự án liên quan GPS có thể inbox hoặc comment mình có thể hướng dẫn và gửi code tham khảo của mình cho". Mình viết bài chỉ ở mức cơ bản để các bạn có thể hiểu và sử dụng modul SIM900 trong môi trường Arduino và từ đó tư duy phát triển theo định hướng riêng cho các project khác nhau. 

II. Chuẩn bị

  • Module Sim 900a mini (mình sử dụng loại này bạn nào dùng loại khác thì chú ý nối đúng TX RX).
  • Mạch Arduino UNO hoặc MEGA
  • 1 Tụ 2200uF / 10V
  • 1 Diode N4007 
  • Sim điện thoại còn tiền devil

Các bạn tải thư viện Sim900 cho arduino tại đây: GSMSHIELD

Để sử dụng modul sim với nguồn 5V trên mạch Arduino các bạn hàn diode vào chân Vcc và tụ phân cực vào chân Vcc và GND. (Nếu không hàn diode và tụ thì các bạn sử dụng với nguồn 3,3V/2A nhé. nếu dòng nhỏ hơn 2A khi khởi động modul sim sẽ bị tắt do không đủ dòng.) Xem ở đây nhé http://arduino.vn/bai-viet/851-su-dung-module-sim900a-mini-voi-arduino-module-nhan-tin-voi-arduino

III. Nối dây

1. Mạch UNO

Module SIM 900A Arduino UNO
TX 2
RX 3
Power 4
VCC VCC
GND GND

2. Mạch MEGA

Module SIM 900A Arduino MEGA
TX 50
RX 51
Power 4
VCC VCC
GND GND

Với mạch MEGA các bạn mở file GSM.cpp trong thư viện ra, ở dòng 27,28

Thay lại pin cho nó trong phần khai báo pin:

#define _GSM_TXPIN_ 2 
#define _GSM_RXPIN_ 3

Thành

#define _GSM_TXPIN_ 50 
#define _GSM_RXPIN_ 51

(Trên đây là cách đơn giản nhất mà mình tìm ra để không phải sửa đổi nhiều thứ trong thư viện)

IV. Code tham khảo

#include "SIM900.h" 
#include <SoftwareSerial.h> 
#include "sms.h"

SMSGSM sms;

int numdata; 
boolean started=false; //trạng thái modul sim 
char smstext[160];// nội dung tin nhắn 
char number[20]; // số điện thoại format theo định dạng quốc tế

void setup(){   
    Serial.begin(9600);   
    Serial.println("Gui va nhan tin nhan");  
    if (gsm.begin(2400)){     
        Serial.println("\nstatus=READY");     
        started=true;     
    }   else 
        Serial.println("\nstatus=IDLE");  
    
    if(started){     
        sms.SendSMS("+84123456789", "Online");   //đổi lại số của bạn nhé :D
    } 
}

void loop() {   
    if(started){     
        int pos; //địa chỉ bộ nhớ sim (sim luu tối đa 40 sms nên max pos = 40)     
        pos = sms.IsSMSPresent(SMS_UNREAD); // kiểm tra tin nhắn chưa đọc trong bộ nhớ     
        //hàm này sẽ trả về giá trị trong khoảng từ 0-40     
        if(pos){//nêu có tin nhắn chưa đọc       
            if(sms.GetSMS(pos, number, smstext, 160)){         
                Serial.print("So dien thoại: ");         
                Serial.println(number);         
                Serial.print("Noi dung tin nhan: ");         
                Serial.println(smstext);         
                sms.SendSMS(number, "Da doc tin");       
            }     
        }     
        delay(1000);   
    } else Serial.println("Offline");
}

Các bạn làm theo hướng dẫn của mình nếu có thắc mắc về lỗi thì các bạn comment kèm theo code + lỗi. Ở bài kế tiếp mình sẽ hướng dẫn các bạn lấy các thông tin có trong tin nhắn gửi đến để sử dụng thông tin đó vào các trường hợp khác nhau ví dụ như mã khóa, điều khiển thiết bị ... 

Ở đây mình cố gắng tối giản nên mình sử dụng button trên modul để bật tắt modul sim thay vì dùng pin 4 như hướng dẫn nối dây ở trên. Các bạn tự tìm hiểu để bật modul bằng pin 4 khi nối nó vào chân power của modul sim nha.

Các bạn tự tìm hiểu thêm về cách dùng thư viện tại bài viết: Thư viện sim900 cho arduino

Chúc các bạn thành công!

lên
29 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

Sử dụng module SIM900a mini với Arduino - Module nhắn tin với Arduino

Những dự án xây dựng các hệ thống điều khiển từ xa, gửi nhận dữ liệu thu thập từ các cảm biến... ở những nơi không có internet thì sử dụng sóng điện thoại là giải pháp duy nhất vì chi phí rẻ, bất chấp khoảng cách và độ ổn định cao. Với Modul sim 900a kết hợp với mạch xử lý arduino uno hoặc mega các bạn có thể làm được nhiều hệ thống tương đối tốt có thể ứng dụng vào thực tế như bộ định vị, các hệ thống điều khiển thiết bị từ xa qua điện thoại, sms makerting,..

lên
59 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: 

Điều khiển thiết bị bằng tin nhắn với Sim900 và Arduino

Mình viết tiếp bài hướng dẫn cơ bản về modul sim900 và arduino. Bài viết hơi muộn do tuần rồi công việc nhiều mình không có thời gian viết bài cũng như trả lời bình luận. Có 1 số inbox đến và mình cũng không có thời nghiên cứu để trả lời và giải đáp. Mục đích của mình ở những bài viết trên đây là muốn chia sẻ cho các bạn quan tâm tới chủ đề này để các bạn dựa vào đó để tìm hiểu và phát triển ứng dụng vào từng project riêng của các bạn. Mình không thể chỉ chi tiết cho các bạn các bước từ việc nối dây đến code hay sơ đồ mạch lẫn mạch in ... vì thế mong các bạn nên tự tìm hiểu trước khi hỏi để 2 bên không mất thời gian. Bài viết mình có thể chưa hoàn thiện có gì sai sót các bạn để lại comment góp ý để mình hoàn thiện thêm nhé angel.

lên
30 thành viên đã đánh giá bài viết này hữu ích.