ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN – ĐIỆN TỬ
BÁO CÁO ĐỒ ÁN 1 ĐỀ TÀI: GỬI TIN NHẮN LÊN WEB SERVER THÔNG QUA GPRS VÀ PHÂN LOẠI.
Giảng viên: TS. Võ Quế Sơn Vũ Sĩ Hưng
41201528
TP Hồ Chí Minh ngày 03 tháng 12 năm 2015
1
ĐỒ ÁN 1
MỤC LỤC
2
ĐỒ ÁN 1
I.
CƠ SỞ LÝ THUYẾT: 1. SƠ LƯỢC VỀ GPRS: General Packet Radio Service (GPRS) là dịch vụ vô tuyến gói tổng hợp được phát triển trên nền tảng công nghệ thông tin di động toàn cầu GSM. Công nghệ GPRS hay còn biết đến với mạng di động thế hệ 2.5G (trong khi GSM đc xem như là mạng 2G). GPRS cung cấp dữ liệu ở tốc độ từ 56 đến 114 kbps. Dịch vụ GPRS cung cấp: - Dịch vụ tin nhắn đa phương tiện (MMS) - Push to Talk - Ứng dụng Internet dành cho Thiết bị thông minh (WAP) GPRS có thể được dùng như sóng mang SMS. Nếu SMS trên GPRS được dùng, tốc độ truyền tải SMS có thể đạt đến 30 tin nhắn SMS một phút. Tốc độ nhanh hơn nhiều so với SMS thông thường trên GSM, tốc độ truyền tải chỉ khoảng 6 đến 10 tin SMS một phút. 2. TẬP LỆNH AT: Tập lệnh AT (Attention command) là tập lệnh chuẩn được hỗ trợ bởi hầu hết các thiết bị di động như điện thoại di động, GSM modem mà có hỗ trợ gửi và nhận tin nhắn tin nhắn dưới dạng SMS (Short Message Service) và điều khiển cuộc gọi. Ví dụ một số lệnh AT như: AT+CMGS, AT+ CMGL,... 3. TỔNG QUAN VỀ ASP.NET: Tên đầy đủ của ASP.NET là Active Server Pages.NET (.NET ở đây là .NET framework) là công nghệ phát triển các ứng dụng trên nền web, thế hệ kế tiếp của ASP. Một số thành phần quan trọng trong một dự án về ASP.NET : Default.aspx: nơi thiết kế giao diện cho website, có 3 chế độ là design (cho phép sửa chữa nội dung web một cách trực quan), source (hiện thị mã nguồn html, tại đây người dùng có thể soạn thảo trực tiếp lên các thẻ html), split (cho phép xem trang web
đồng thời ở cả 2 chế độ trên). Default.aspx.cs: chứa mã nguồn viết bằng C# Global.asax: chúng ta sử dụng tập tin này để khai báo các biến toàn cục và phản ứng với các sự kiện toàn cục. 3
ĐỒ ÁN 1
Web.config: tập tin dạng XML chứa cấu hình cho ứng dụng ASP.NET nó bao gồm các cấu hình về an ninh, quản lý trạng thái, quản lý bộ nhớ,... TỔNG QUAN VỀ DỰ ÁN: Khi gửi một tin nhắn về số điện thoại trong SIM điện thoại đặt trên module SIM900 thì tin nhắn sẽ được giữ lại. Nhấn SW1 trên kit TIVA để tiến hành gửi chuỗi dữ liệu tin nhắn vừa được gửi đến SIM lên server web vào file Text.txt . Sau đó file Text sẽ dựa vào cú pháp của tin nhắn mà phân loại vào những ô hiển thị phù hợp.
4.
UART
GPRS
4
ĐỒ ÁN 1
II.
CÁC THÀNH PHẦN CỦA DỰ ÁN: 1. MODULE SIM900:
Các tính
năng nổi bật của SIM900: SIM900 hoạt động trên 2 băng tần 900 và 1800MHz Đế Sim Card tích hợp trên board Tích hợp nguồn xung 3A, với 3 chế độ nguồn 3.3V/4V/4.5V 5
ĐỒ ÁN 1
Tích hợp ngõ ra Speaker, MIC Header RS232, ADC, VRTC, I2C, PWM
Kích thước nhỏ gọn 47mm x 34.29 mm
GSM Module Sim900 là một sản phẩm do AT-COM phát triển nhằm giúp người sử dụng có thể khai thác các tính năng của Sim900 một cách dễ dàng. Board hỗ trợ khá đầy các ngõ ra của Module Sim900 ( RS232, Audio, ADC, VRTC, PWM, I2C...). Dễ kết nối kết nối với các dòng vi điều khiển như PIC, AVR, ARM, Arduino để phát triển các ứng dụng điều khiển, giám sát qua môi trường mạng GSM, GPRS. Ngõ ra RS232 và UART giúp giao tiếp máy tính và lập trình cho Module Sim900 thông qua tập lệnh AT COMMAND. Tập lệnh AT COMMAND cho việc gửi dữ liệu lên web server thông qua GPRS: AT+CGATT? [Kiểm tra GPRS có kích hoạt hay chưa] [Phản hồi là "+CGATT: 1" chỉ ra rằng GPRS đã được kích hoạt] AT+CIPSHUT [Đóng IP] [Phản hồi: "SHUT OK"] AT+CIPSTATUS [Kiểm tra IP đã được khởi tạo hay chưa] [Phản hồi: "STATE: IP INITIAL"] AT+CIPMUX=0 [Cài đặt chế độ kết nối] [Phản hồi: "OK" là cài đặt thành công] AT+CGDCONT=1,"IP","m-wap"; [Phản hồi là "OK", có thể xác nhận bằng lệnh "AT+CGDCONT?"] AT+CSTT="m-wap","mms","mms"; [Phản hồi:"OK"] AT+CIICR [Kết nối đến nhà cung cấp dịch vụ, có thể mất vài giây] [Phản hồi: "OK"] AT+CIFSR [Lấy địa chỉ IP cuả module]
[Phản hồi: "IP address" đăng ký cho module] AT+CIPSTART="TCP","trandaolong.somee.com","80" [Bắt đầu kết nối, TCP, tên miền, port] 6
ĐỒ ÁN 1
[Phản hồi: "OK" và sau đó "CONNECT OK"] AT+CIPSEND [Yêu cầu gửi dữ liệu] [Phản hồi lại ký tự “>” để xác nhận bạn có thể gửi dữ liệu] GET />[Sau đó gửi byte 0x0A(Ctrl+Enter) và 0x1A(Ctrl+Z) để tiến hành gửi dữ liệu] [Module sẽ xác nhận bằng phản hồi: "SEND OK"] AT+CIPSHUT [Ngắt kết nối hiện tại] [Phản hồi: "SHUT OK"] Những đoạn lệnh AT trên sẽ được gửi từ chip ARM Cortex M4 thông qua UART cho module Sim900. 2.
KIT TM4C123G LAUNCHPAD:
Tiva Lauchpad là phiên bản nâng cấp của kit Stellaris Lauchpad hiện đã ngừng sản xuất, có giá thành thấp và ít tiêu hao năng lượng, được 7
ĐỒ ÁN 1
sản xuất bởi tập đoàn Texas Instruments. Tiva lauchpad mang đầy đủ
tính năng của kit Stellaris Lauchpad đồng thời nâng cấp thêm 1 số ngoại vi và sửa những lỗi có trên phiên bản Stellaris Lauchpad cũ. Ta sẽ dùng Kit này để đọc chuỗi dữ liệu từ trong module SIM900 và truyền lên web server thông qua GPRS. Code cho Kit như sau: #include "inc/hw_ints.h" #include <stdbool.h> #include <stdint.h> #include "inc/hw_memmap.h" #include "driverlib/pin_map.h" #include "inc/hw_types.h" #include "driverlib/sysctl.h" #include "driverlib/gpio.h" #include "utils/uartstdio.h" #include "driverlib/uart.h" #include "driverlib/interrupt.h" #include "driverlib/pin_map.h" int sms[8000]; int i=0; int a=0; int b=0; //======================================================= ====================// void UART1IntHandler(void) { unsigned long ulStatus; ulStatus = UARTIntStatus(UART1_BASE, true); //get interrupt status UARTIntClear(UART1_BASE, ulStatus); //clear the asserted interrupts while(UARTCharsAvail(UART1_BASE)) { sms[i]=UARTCharGet(UART1_BASE); sms[]
//luu chuoi tin nhan vao mang
if((((sms[i])=='D')&&((sms[i-1])=='S')&&((sms[i-2])=='U')&&((sms[i-3])=='C'))) { a=1; //Neu dung la tin nhan ta se cho a=1 } i++; }
ĐỒ ÁN 1 int main(void) { SysCtlClockSet(SYSCTL_SYSDIV_2_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|
SYSCTL_OSC_MAIN);//tan so 80Mhz SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1); ConfigureUARTB(); //Goi chuong trinh con IntMasterEnable(); //enable processor interrupts IntEnable(INT_UART1); //enable the UART interrupt UARTIntEnable(UART1_BASE, UART_INT_RX | UART_INT_RT); UARTprintf("AT\n"); SysCtlDelay(SysCtlClockGet()/3); UARTCharPut(UART1_BASE, 26); while(1) { /* Bien a dung de kiem soat gui hay khong gui tin nhan len sever. Neu ki tu gui ve co chua CUSD thi do chinh la tin nhan. Nhan duoc tin nhan ta se cho a=1 de cho phep gui tin nhan len sever */ if(a==1) {
a=0; GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1,0x02); // Bat led do bao hieu dang gui
SysCtlDelay(SysCtlClockGet()/15); //Delay 0,2s UARTprintf("AT+CIPSHUT\n"); //Ngat ket noi trc khi ket noi
SysCtlDelay(SysCtlClockGet()/15); //Delay 0,2s UARTprintf("AT+CIPSTART=\"TCP\",\"www.vusihung.somee.com\",\"80\"\n"); //Ket noi toi sever SysCtlDelay(SysCtlClockGet()/3); //Delay 1s UARTprintf("AT+CIPSEND\n"); //Gui voi noi dung: //Noi dung gui di for (b=0; b{ UARTprintf("%c", sms[b]); } UARTprintf("%c \n", sms[i]); //Ket thuc noi dung SysCtlDelay(SysCtlClockGet()/15); //Delay 0,2s
9
ĐỒ ÁN 1 UARTCharPut(UART1_BASE, 26); // Enter gui di. GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1,0x00); // tat led do bao hieu qua trinh gui key
thuc
}
i=0;
} }
Kết nối Module Sim900 và Kit TIVA: nối chân TXD của SIM900 với chân PC6 (RXD) của KIT, chân RXD của SIM900 với chân PC7(TXD) của KIT, kết nối GND chung cho KIT và module sau đó lấy nguồn 4.5V từ module cấp cho KIT vào chân VBUS. 3.
WEB SERVER: a) Code giao diện dùng mã HTML (nằm trong file Default.aspx): <!—Các khai báo ban đầu cho chương trình --> <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> " /><html xmlns=" /><head id="Head1" runat="server"> <title>Do an 1</title> <style type="text/css"> .canhgiua { margin-left:auto; margin-right:auto; } #form1 { height: 565px; }
public partial class _Default : System.Web.UI.Page { // Khởi tạo hàm readFile
private int readFile(string file) { try { StreamReader reader = new StreamReader(file); string content = reader.ReadLine(); reader.Close(); return int.Parse(content); } catch { return 1; } } // Khởi tạo chức năng cho nút nhấn A01 trên trang web
12
ĐỒ ÁN 1
protected void Button1_Click(object sender, EventArgs e) { int DATA; string pathfile = Server.MapPath(Request.ApplicationPath + "\\Text.txt"); DATA = readFile(pathfile); Label2.Text = DATA.ToString(); } // Khởi tạo chức năng cho nút nhấn DELETE REPORT trên trang web protected void Button2_Click(object sender, EventArgs e)
Mã nguồn cho các sự kiện toàn cục (trong file Global.asax):
<%@ Application Language=VB Debug=true %> <script runat="server"> Sub Application_BeginRequest(ByVal Sender as Object, ByVal E as EventArgs) Dim data_string, file_System, file_path, file, report_path, report, report_system data_string = Request.QueryString("Data") if data_string <> "" then file_System = CreateObject("Scripting.FileSystemObject") report_system = CreateObject("Scripting.FileSystemObject") report_path = Server.MapPath("Report.txt") file_path = Server.MapPath("Text.txt") 'Xóa nội dung file Text.txt Dim stream As New IO.StreamWriter(file_path, False) stream.Write("") stream.Close() 'Ghi data_string vào file Text.txt file = file_System.OpenTextFile(file_path, 8, True) file.WriteLine(data_string)
file.Close() file = Nothing file_System = Nothing End If End Sub </script>
Cách triển khai ứng dụng ASP.net trên somee.com: Để đăng ký web hosting .NET miễn phí vào trang />Trong mục FREE .NET HOSTING chọn Learn More như hình dưới.
13
ĐỒ ÁN 1
Trong trang tiếp theo hiện ra. Click vào Order now như hình bên dưới để vào trang đăng ký.
Điền đầy đủ các thông tin đăng ký. Yêu cầu Email phải chính xác để xác minh tài khoản. Mục Zip/Postal code nhập 70000 nếu ở TP. HCM,
14
ĐỒ ÁN 1
các mục: Primary phone, Secondary phone, Fax number không cần nhập cũng được. Sau đó click Register new user and continue. Trong trang mới hiện ra. Check vào 2 ô bên dưới. Sau đó Click Continue.
Ở trang mới hiện ra. Chúng ta thiết lập những thông tin cơ bạn như tên website trong mục Site name; Operating system chọn Windows server 2008 R2, ASP.NET verson chọn 4.0. Site tile và Site Description do bạn tự đặt. Sau đó click vào Create website. Như vậy ta đã tạo xong host cho web site. Bây giờ ta sẽ tiến hành up web lên host. Mở project website đã viết trong Visual Studio, chuột phải vào thư mục chứa web site chọn Publish website. Sau đó đi tới thư mục chứa tất cả các file publish này và zip lại thành file có đuôi .zip. Tiến hành upload file này lên web như hình sau:
Bây giờ ta tiến hành đính kèm cơ sở dữ liệu với host. Click vào mục Attach database. Tại mục From backup location chọn tên website sau đó chọn thư mục chứa database của chúng ta. Sau đó chọn 2 file của database. Cuối cùng click và Attach. Có bảng thông báo hiện ra chọn Ok. Bây giờ việc cuối cùng là cấu hình lại file web.config. Để chỉnh sửa lại file web.config ta quay trở lại mục File Manager. Tìm tới file web.config chọn Edit text. Thay chuỗi connectionString trong dấu ngoặc kép bằng chuỗi connection string lấy được khi cấu hình MS SQL trên host:
15
ĐỒ ÁN 1
Bây giờ chúng ta có thể vào website mà chúng ta đã tạo với tên miền có đuôi .somee.comkhi đăng ký host đã cấp sẵn. Ở đây tôi đăng ký với
tên miền là />III.
KẾT QUẢ THỰC HIỆN: Đây là trang web sau khi được khởi tạo với 4 mục :
Gửi tin nhắn vào số điện thoại gán trên module SIM 900 với 1 trong 4 cú pháp sau : A01_[ nội dung ] A02_[ nội dung ] A03_[ nội dung ] A04_[ nội dung ] Kết quả: 16
ĐỒ ÁN 1
Với tin nhắn A01_[ Học bù sáng t3 ] Sau khi đăng nhập vào trang web, nhấn nút A01 để nhận thông tin.
IV.
TÀI LIỆU THAM KHẢO: 1. TM4C123G_LaunchPad_Workshop_Workbook 2. />3. /> 17