PhuPOP gửi vào
- 73847 lượt xem
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
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!