Đồ án "Thiết kế luận lý gửi và nhận tin nhắn trên Module Sim900 sử dụng MCU89 để điều khiển" - Đại học Quốc gia TP.Hồ Chí Minh-Trường Đại học Bách Khoa - Năm 2012
Bạn đang xem tài liệu "Đồ án "Thiết kế luận lý gửi và nhận tin nhắn trên Module Sim900 sử dụng MCU89 để điều khiển" - Đại học Quốc gia TP.Hồ Chí Minh-Trường Đại học Bách Khoa - Năm 2012", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- do_an_thiet_ke_luan_ly_gui_va_nhan_tin_nhan_tren_module_sim9.pdf
Nội dung text: Đồ án "Thiết kế luận lý gửi và nhận tin nhắn trên Module Sim900 sử dụng MCU89 để điều khiển" - Đại học Quốc gia TP.Hồ Chí Minh-Trường Đại học Bách Khoa - Năm 2012
- ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC – KỸ THUẬT MÁY TÍNH o0o ĐỒ ÁN THIẾT KẾ LUẬN LÝ GỬI VÀ NHẬN TIN NHẮN TRÊN MODULE SIM900 SỬ DỤNG MCU89 ĐỂ ĐIỀU KHIỂN SINH VIÊN THỰC HIỆN: 1. VŨ ĐÌNH QUY 50902175 2. NGUYỄN THANH SƠN 50902279 3. TRẦN LINH TÂM 50902358 4. LÊ THANH TÂN 50902369 TP. HỒ CHÍ MINH, THÁNG 5 NĂM 2012
- MỤC LỤC I. Giới thiệu về module Sim900 1. Giới thiệu về module Sim900 (nói phần mạch layout luôn nha ông - chụp hình luôn) 2. Nguyên lý hoạt động Sim900 (nói nguyên lý truyền nhận và cách sử dụng board khởi động board và cách nhận tín hiệu qua backlight nha ) II. Thiết kế chi tiết chương trình 1. Hoạt động của chương trình: a) Gửi tin nhắn b) Nhận tin nhắn c) Đọc tin nhắn d) Xoá tin nhắn 2. Mô tả các group file trong chương trình a) main.c b) Button.c c) Timer.c d) Uart.c e) LCD.c III. Hướng dẫn sử dụng chương trình 1. Gửi tin nhắn 2. Đọc tin nhắn vừa mới đến 3. Đọc tin nhắn đã nhận trong hộp Inbox 4. Đọc tin nhắn đã gửi trong hộp Outbox 5. Xoá 1 tin nhắn nào đó
- I. Giới thiệu về Module Sim900: Figure 1: Sim900 Sim900 là được xem như là một chiếc điện thoại với các chức năng từ cơ bản như: nghe gọi, nhắn tin cho đến GPRS Giao tiếp vật lý trong ứng dụng điện thoại của SIM900 là 60 chân, nó cung cấp tất cả các giao diện vật lý giữa module Sim và bo mạch của khách hàng: Có Serial port và Debug port giúp dễ dàng hơn trong việc phát triển ứng dụng. Một kênh audio bao gồm Input của Microphone và Ouput của Speaker. Có thể dễ dàng được cấu hình bằng lệnh AT qua cổng giao tiếp nối tiếp. Giao tiếp với simcard giống như điện thoại di động. SIM900 hỗ trợ giao thức TCP/IP, rất hữu ích cho việc truyền dữ liệu trên Internet. SIM900 được thiết kế với công nghệ tiết kiệm năng lượng vì vậy mức tiêu thụ chỉ ở mức 1.5mA ở trong chế độ SLEEP. Để hiện thực việc nhắn tin qua sim900 thì chỉ cần Serial port của sim900 để gửi, nhận các AT command . Để tiện cho việc làm mạch thì nhóm sử dụng module SIM900 GSM/GPRS Header Board (Gold-PCB).
- Figure 2: SIM900 GSM/GPRS Header Board (Gold-PCB). 1. Phần cứng của module sim900: 1.1 Mạch nguồn : Sim900 đòi hỏi nguồn khá khắt khe. Cụ thể, nguồn cung cấp cho SIM900 là nguồn DC 3,4 – 4,5V. Dòng điện cung cấp phải lớn hơn hoặc bằng 2A. Trong quá trình khởi động SIM900, áp sẽ bị sụt áp. Nếu dòng cung cấp không đủ, điện áp sẽ bị sụt xuống dưới mức yêu cầu và SIM900 không thể khởi động được. Nếu điện áp lớn hơn 4.5V thì sim900 sẽ bị cháy. Figure 3: Mạch nguồn sử dụng chip LM2596 1.2 Giao tiếp với sim card : Module sim900 hổ trợ 2 loại SIM Card: 1.8V và 3V. Sim900 sẽ tự xác định loại sim nào và cấp nguồn. Nhóm sử dụng loại sim 6 chân.
- Figure 4: module simcard Figure 5: Pin description 1.3 Kết nối với vi điều khiển: Figure 6: Kết nối qua serial port
- Cổng giao tiếp nối tiếp cung cấp các tốc độ truyền dữ liệu sau: 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200. Tốc độ giao tiếp mặc định là 115200. Có bảy đường truyền kết nối, nhóm chỉ sử dụng hai đường là RXD và TXD. 1.4 Đèn thông tin trạng thái của sim900. Để kiểm tra trạng thái kết nối của sim900 với mạng thì dung đèn netlight Figure 7: Netlight Bảng trạng thái của đèn Netlight Trạng thái Chức năng của GSM/GPRS Off GSM không hoạt động 64ms On/ 800ms Off GSM không tìm thấy mạng 64ms On/ 3000ms Off GSM đang kết nối mạng 64ms On/ 300ms Off Đang kết nối GPRS 1.5 Giao tiếp với sim900 qua AT conmand: Việc điều khiển SIM900 được thực hiện thông qua việc truyền các lệnh AT (các lệnh này thường bắt đầu bằng “AT”, dùng để điều khiển các thiết bị tương tác với mạng .
- Ví dụ: Lệnh AT để gửi một tin nhắn : AT+CMGS=”+84908556993” >Test Lệnh AT để lấy danh sách tin nhắn: AT+CMGL=”ALL” Lệnh AT để đọc tin nhắn: AT+GMGR = 1 Lệnh AT để xoá tin nhắn: AT+CMGD=1 II. Thiết kế chi tiết chương trình: 1. Cấu trúc chương trình: Chương trình gồm 3 mode thực hiện các chế độ gửi nhận tin nhắn, lưu tin nhắn trong hộp thư đến hộp thư đi và xoá tin nhắn. Soạn tin nhắn MENU Hộp thư đến Hộp thư đi
- Trong mỗi mode sẽ thực hiện các chức năng riêng lẻ: Mode soạn tin nhắn: Viết tin nhắn Nhập số điện thoại Gửi tin nhắn đi Mode hộp thư đến: Xem danh sách tin Đọc tin nhắn bất kì Có thể xoá tin nhắn nhắn trong hộp thư Mode hộp thư đi: Xem danh sách tin nhắn Đọc nội dung tin Có thể xoá tin nhắn trong hộp thư nhắn bất kì 2. Hoạt động của chương trình: Chương trình mô phỏng gồm: 1. Module Sim900 dùng để truyền nhận tin nhắn qua GSM. 2. MCU 89V51RD2 để điều khiển Module Sim900. 3. LCD để hiển thị kết quả ra màn hình. 4. Năm phím nhấn button để thao tác với MCU. Chương trình sẽ hoạt động như sau: Khi khởi động chương trình, chương trình sẽ được bắt đầu trạng thái MENU và ở chế độ gửi tin nhắn. Nhấn phím NEXT để chuyển sang chế độ khác, và các chế độ được chuyển đổi theo nguyên lý xoay vòng. Nếu LCD đang hiển thị ở chế độ nào, ta nhấn phím OK thì sẽ vào và tương tác trên chế độ đó. a) Gửi tin nhắn: Ở chế độ gửi tin nhắn, ta nhấn phím OK để vào viết tin nhắn. Trong quá trình viết tin nhắn, các phím bấm sẽ có chức năng như sau:
- Phím OK: thể hiện đã viết xong tin nhắn (kể cả tin nhắn trống) và chuyển sang nhập số điện thoại muốn gửi tin nhắn. Phím NEXT: để di chuyển con trỏ sang vị trí phải trong quá trình viết. Phím BACK: Để xoá kí tự phía trước (phòng quá trình viết sai), nếu không còn kí tự nào để xoá thì sẽ chuyển ra danh sách MENU. Phím 1: Nhập kí tự là số từ 0-9. Trong quá trình nhập, con trỏ sẽ nháy tại chỗ khoảng 1s để thay đổi kí tự. Nếu không thay đổi nữa thì sau 1s kí tự hiện thời sẽ được chọn và con trỏ nhảy sang vị trí tiếp theo. Phím 2: Nhập kí tự đặc biệt. Ví dụ: .,!?$/ Phím 3-5: Nhập kí tự bảng chữ cái Alphabet. Sau khi nhập xong nội dung tin nhắn cần gửi. Ta ấn OK. Lúc này chương trình yêu cầu nhập vào số điện thoại muốn gửi. Các phím chức năng sẽ như sau: Phím OK: Ấn để gửi tin nhắn với số điện thoại tương ứng. Điều kiện để nhấn được phím OK là phải nhập số điện thoại tối thiểu 3 số. Phím NEXT: để di chuyển con trỏ sang vị trí phải trong quá trình viết. Phím BACK: Để xoá kí tự phía trước (phòng quá trình viết sai), nếu không còn kí tự nào để xoá thì sẽ chuyển ra mục viết tin nhắn. Phím 1-5: Nhập kí tự là số từ 0-9. b) Nhận tin nhắn: Khi có tin nhắn đến, thông báo có tin nhắn sẽ hiện ra, hỏi là có đọc tin nhắn hay không? Các phím chức năng sẽ như sau: Phím OK: Ấn để đọc tin nhắn đến. Phím BACK: Để huỷ đọc tin nhắn và tiếp tục công việc hiện thời. Các phím còn lại không làm gì trong trường hợp này.
- c) Đọc tin nhắn trong hộp thư: Khi vào hộp thư để đọc tin nhắn. Nếu hộp thư trống thì sẽ hiển thị Empty, lúc này chỉ có phím BACK được enable để quay lại danh mục MENU. Trường hợp còn lại. Các phím chức năng sẽ như sau: Phím NEXT: Để chuyển đến tin nhắn tiếp theo trong danh sách tin nhắn của hộp thư. Phím OK: Ấn để đọc tin nhắn đang được chọn. Phím BACK: Để quay lại MENU. Phím 1 sẽ dùng để xoá tin nhắn được chọn. d) Xoá tin nhắn: Khi ấn phím 1 vào tin nhắn được chọn trong hộp thư. Thông báo hiện lên có xoá tin nhắn hay không. Lúc này các phím chức năng sẽ như sau: Phím OK: Đồng ý xoá tin nhắn. Phím BACK: Huỷ xoá tin nhắn và tiếp tục công việc hiện tại. Các phím còn lại sẽ disable. 3. Mô tả các group file trong chương trình: a) Main.c File này dùng để chạy chương trình chính. Khởi tạo các hàm InitTimer, và InitUart. b) Timer.c Các chức năng khi timer được ngắt: Timer0: Dùng để ngắt hiển thị LCD. Cứ 0.4s sẽ hiển thị trạng thái LCD 1 lần. Timer1: Dùng để quét phím, cứ 0.01s sẽ quét 1 lần. Timer2: dùng để ngắt UART trong quá trình truyền nhận dữ liệu c) Button.c
- Chứa các hàm thực hiện các chức năng cho từng phím nhấn trong từng mode tương ứng. Hàm getKey() để xem phím nào được nhấn. Hàm này thực hiện chống rung phím. Đọc dữ liệu 3 lần. Nếu giống nhau thì chọn. Hàm ProcessKey() và các hàm Button() để hiện thực các chức năng khi một phím được nhấn. d) Uart.c Chứa các hàm để dùng để giao tiếp trực tiếp giữa MCU và Module Sim900. Hàm send_mess(): để gửi tin nhắn đi. Hàm check_list_mess(): để lấy danh sách tin nhắn về. Hàm load_mess(): dùng để lấy nội dung 1 tin nhắn. e) LCD.c Dùng để hiển thị các chế độ và quá trình hiện thực của chương trình để tiện theo dõi.
- III. Mô phỏng Hướng dẫn sử dụng chương trình: 1. Gửi tin nhắn: Bấm OK ở giao diện New Message. Tiếp theo sẽ viết tin nhắn vào phần text.
- Tiếp đến sẽ nhập số điện thoại cầnSau khi gửi sẽ hiên thông báo cho bạn biết trong 0.5s. 2. Đọc tin nhắn vừa mới đến:
- 3. Đọc tin nhắn đã nhận trong hộp Inbox: Trường hợp không có tin nhắn trong hộp thư.
- Trường hợp có 5 tin nhắn trong hộp thư và tin nhắn được chọn đang ở số 3. 4. Đọc tin nhắn đã gửi trong hộp Outbox:
- 5. Xoá 1 tin nhắn nào đó: