Tiểu luận Tìm hiểu truyền dữ liệu qua GPRS và giám sát qua mạng
Mục lục
Sơ lược về GPRS 3
Module SIM900A 5
Sơ lược về GPRS TCP Server 7
Thiết lập kết nối giữa Modem SIM900A và Server 8
Quá trình truyền nhận gói tin TCP giữa module SIM900A và TCP Server 9
Mô hình thực nghiệm 10
Client 11
Server 14
Kết quả đạt được 16
Tài liệu tham khảo 17
hụ thuộc vào số khe thời gian được dùng cho dịch vụ GPRS. Phương thức tính cước: dựa vào dữ liệu truyền nhận, không dựa vào thời gian kết nối. Module SIM900A Đặc điểm kỹ thuật SIM 900A là một module Dual-band GSM/GPRS của hãng SIMCOM được tích hợp chip lõi AMR926EJ-S, thích ứng với chuẩn giao tiếp công nghiệp, hoạt động trên 2 băng tần GSM/GPRS 900/1800 MHz, cung cấp giao tiếp Voice, SMS, Data và Fax. Hình ảnh module SIM900A Các thông số Nguồn cung cấp : 3.1 – 4.8V Dual band 900/1800MHz GPRS multi-slot class 10/8 GPRS mobile station class B GPRS class 10: maximum 85.6kbps (downlink) PBCCH supported Coding schemes CS 1, 2, 3, 4 CSD up to 14.4Kbps USSD supported Non transparent mode PPP-stack Các giao thức hỗ trợ : TCP/UDP, FTP/HTTP, Tính năng đặc biệt: MMS, FOTA, tích hợp tập lệnh AT Tập lệnh AT Tập lệnh AT là tập hợp các lệnh dùng để điều khiển modem qua giao tiếp UART. AT làviết gọn của chữ ATtention. Mỗi dòng lệnh của nó bắt đầu với “AT” hay “at”. Đó là lý do tại sao các lệnh modem được gọi là các l ệnh AT. Nhiều lệnh của nó được sử dụng để điều khiển các modem quay số sử dụng dây mối (wired dial -up modems), chẳng hạn như ATD (Dial), ATA (Answer), ATH (Hool control) và ATO (return to online data state), cũng được hỗ trợ bởi các modem GSM/GPRS và các điện thoại di động. Bên cạnh bộ lệnh AT thông dụng này, các modem GSM/GPRS và các điện thoại di động còn được hỗ trợ bởi một bộ lệnh AT đặc biệt đối với công nghệ GSM. Sơ lược về GPRS TCP Server Đây là chương trình trên máy tính dùng để truyền nhận các gói TCP giữa modem GPRS và máy tính được kết nối với đường truyền internet. Trong thực tế có nhiều sự lựa chọn về công cụ để xây dựng chương trình ứng dụng, tuy nhiên công cụ Microsoft Winsock Control được lựa chọn do các nguyên nhân sau: Độ tin cậy cao. Dễ dàng xây dựng ứng dụng dựa trên các công cụ của Microsoft Visual Studio. Phù hợp với các ứng dụng dựa trên lớp TCP/UDP. Chương trình ứng dụng được xây dựng trên lớp TCP/UDP cho phép nâng cao tính linh động của ứng dụng, do không phải phụ thuộc vào các ứng dụng ở lớp cao hơn như FTP, HTTP, Đồng thời cho phép giảm bớt dữ liệu lưu thông trên đường truyền, tiết kiệm chi phí do hoạt động trong thời gian dài phù hợp với các ứng dụng truyền dữ liệu và giám sát qua mạng. Từ đây có hai sự lựa chọn là TCP và UDP. Mỗi phương thức truyền nhận đều có ưu nhược điểm riêng TCP UDP Đảm bảo độ tin cậy của gói dữ liệu được truyền đi do quá trình kết nối và bắt tay chặt chẽ giữa client (SIM900A) và server. Độ tin cậy không cao. Gói dữ liệu chỉ được truyền đi mà không cần biết đến trạng thái kết nối giữa client và server, không cần biết gói dữ liệu có truyền được đến đích hay không. Tốc độ truyền nhận chậm hơn so với UDP, do phải chờ gói dữ liệu bắt tay của gói dữ liệu trước đó trước khi gói dữ liệu tiếp theo được truyền đi. Tốc độ truyền nhận nhanh, do không cần phải chờ các gói dữ liệu phục vụ cho quá trình bắt tay khi truyền nhận. Ứng dụng giám sát điều khiển yêu cầu dữ liệu có độ tin cậy cao trong truyền nhận, do vậy giao thức TCP được lựa chọn trong nội dung tiểu luận. Thiết lập kết nối giữa Modem SIM900A và Server Một máy tính (Client PC) đóng vai trò điều khiển module SIM900A bằng tập lệnh AT qua chuẩn giao tiếp UART, thiết lập kết nối với một máy tính khác (Server PC) chạy TCP Server. Client PC gửi lệnh AT+CIPSHUT cho modem, yêu cầu modem hủy bỏ các kết nối trước đó, đưa modem về trạng thái (IP INITIAL) Nếu lệnh được thực hiện thành công, modem trả về cho Client PC chuỗi OK. Ngược lại, nếu thất bại ERROR Sau khi hủy bỏ các kết nối thành công, Client PC gửi lệnh tạo thiết lập kết nối AT+CIPSTART=“TCP”,“222.252.96.179”,“2505” trong đó TCP là giao thức kết nối, 222.252.96.179 là đia chỉ IP của Server PC kết nối Internet, 2505 là port được mở để TCP Server lắng nghe kết nối. Sau đó, modem trả về chuỗi OK Sau một khoảng thời gian, modem kết nối được với Server PC và được chấp nhận kết nối, modem trả về chuỗi CONNECT OK cho Client PC Quá trình truyền nhận gói tin TCP giữa module SIM900A và TCP Server Client gửi lệnh yêu cầu truyền dữ liệu AT+CIPSEND=18, trong đó 18 là số byte cần truyền. Modem trả về >. Client PC gửi qua modem chuỗi dữ liệu cần truyền, khi nào đủ 18 byte, modem tự động gửi dữ liệu đó cho TCP Server. Sau một khoảng thời gian, nếu quá trình truyền TCP thành công, modem gửi trả về Client SEND OK Nếu TCP Server gửi lại một gói tin bất kỳ cho modem, modem sẽ chuyển tiếp gói tin đó cho Client PC với định dạng RECV FROM:222.252.96.179:2505 +IPD32:Socket 1 Already login 29N7890 Mô hình thực nghiệm RS232 INTERNET CLIENT SERVER Client gửi dữ liệu về Server theo chu kỳ 7s, đồng thời nhận các gói tin điều khiển đóng/mở đèn LED Server lắng nghe dữ liệu gửi về và hiển thị, đồng thời ra lệnh cho Client đóng mở đèn LED Client Code : Private bytSyn As Byte Private bytInit As Byte Private strTemp As String Private Sub btnInit_Click() MSComm1.PortOpen = True bytInit = 0 Timer4.Enabled = True End Sub Private Sub Timer4_Timer() Select Case bytInit Case 0 MSComm1.Output = "AT+CIPSHUT" & vbCr Case 1 MSComm1.Output = "AT+CIPSTART=" & Chr(34) & "TCP" & Chr(34) & Chr(44) & Chr(34) & txtIp.Text & Chr(34) & Chr(44) & Chr(34) & txtPort.Text & Chr(34) & vbCr Timer4.Enabled = False Timer3.Enabled = True End Select bytInit = bytInit + 1 End Sub Private Sub Timer3_Timer() Timer3.Enabled = False btnStart.Enabled = True btnInit.Enabled = False End Sub Private Sub btnStart_Click() If Timer1.Enabled = False Then Timer1.Enabled = True End If End Sub Private Sub btnStop_Click() If MSComm1.PortOpen = True Then MSComm1.Output = "AT+CIPSHUT" & vbCr Timer6.Enabled = True End If End Sub Private Sub Timer6_Timer() Timer6.Enabled = False MSComm1.Output = "AT+CIPCLOSE" & vbCr If Timer1.Enabled = True Then Timer1.Enabled = False End If Timer5.Enabled = False If MSComm1.PortOpen = True Then MSComm1.PortOpen = False End If btnInit.Enabled = True End Sub Private Sub Form_Load() Timer1.Interval = 7000 Timer2.Interval = 750 Timer3.Interval = 5000 Timer4.Interval = 500 Timer5.Interval = 500 Timer6.Interval = 500 MSComm1.CommPort = 4 MSComm1.Settings = "9600,N,8,1" MSComm1.SThreshold = 0 MSComm1.RThreshold = 1 If MSComm1.PortOpen = False Then MSComm1.PortOpen = True End If Timer1.Enabled = False Timer2.Enabled = True Timer3.Enabled = False Timer4.Enabled = False Timer5.Enabled = False Timer6.Enabled = False btnStart.Enabled = False bytSyn = 5 strTemp = "" txtIp.Text = "42.118.126.121" txtPort.Text = "25565" End Sub Private Sub Timer2_Timer() MSComm1.Output = "AT" & vbCr bytSyn = bytSyn - 1 If bytSyn = 0 Then Timer2.Enabled = False MSComm1.PortOpen = False End If End Sub Private Sub Timer1_Timer() MSComm1.Output = "AT+CIPSEND" & vbCr Timer5.Enabled = True End Sub Private Sub Timer5_Timer() Timer5.Enabled = False MSComm1.Output = "@" & txtData.Text & "%" & Chr(26) End Sub Private Sub MsComm1_OnComm() strTemp = strTemp & MSComm1.Input MSComm1.InBufferCount = 0 If ((Right(strTemp, 3) = "@@@") Or (Right(strTemp, 3) = "%%%")) Then If Right(strTemp, 3) = "@@@" Then Shape1.FillColor = vbRed Else Shape1.FillColor = vbBlack End If strTemp = "" End If Text1.Text = Right(strTemp, 30) End Sub Server Code : Option Explicit Dim InterIP As String Private Sub btnDisconnect_Click() tcpServer.Close Text1.Text = Text1.Text & "Disconnected" & vbCrLf End Sub Private Sub btnListen_Click() tcpServer.Listen Text1.Text = "Listening for client..." & vbCrLf InterIP = tcpServer.LocalIP lblInterIP.Caption = "Internal IP: " & tcpServer.LocalIP End Sub Private Sub btnSend_Click() tcpServer.SendData txtSend End Sub Private Sub Command1_Click() If Command1.Caption = "ON" Then Command1.Caption = "OFF" tcpServer.SendData "@@@" Shape1.FillColor = &HFF Else Command1.Caption = "ON" tcpServer.SendData "%%%" Shape1.FillColor = &H0 End If End Sub Private Sub Form_Load() tcpServer.LocalPort = 25565 lblInterIP.Caption = "Internal IP: " & tcpServer.LocalIP tcpServer.Close Open "C:\Record.txt" For Output As #1 Close #1 End Sub Private Sub tcpServer_Close() Text1.Text = Text1.Text & "Client out" & vbCrLf tcpServer.Close Open "C:\Record.txt" For Append As #1 Write #1, " Client " & tcpServer.RemoteHostIP & " disconnected at " & Date$ & " " & Time$ & vbCrLf Close #1 tcpServer.Listen End Sub Private Sub tcpServer_DataArrival(ByVal bytesTotal As Long) ' Declare a variable for the incoming data. ' Invoke the GetDat method and set the Text ' property of a TextBox named txtOutput to ' the data. Dim strData As String tcpServer.GetData strData If ((Left(strData, 1) "@") Or (Right(strData, 1) "%")) Then strData = "Transmission error" Else strData = Mid(strData, 2, Len(strData) - 2) End If Open "C:\Record.txt" For Append As #1 Write #1, strData Close #1 Text1.Text = Text1.Text & strData & vbCrLf End Sub Private Sub tcpServer_ConnectionRequest(ByVal requestID As Long) If tcpServer.State sckClosed Then tcpServer.Close tcpServer.Accept requestID Text1.Text = " Client " & tcpServer.RemoteHostIP & " connected " & vbCrLf Open "C:\Record.txt" For Append As #1 Write #1, " Client " & tcpServer.RemoteHostIP & " connected at " & Date$ & " " & Time$ & vbCrLf Close #1 End Sub Private Sub Text1_Change() End Sub Kết quả đạt được TÌm hiểu và sử dụng tập lệnh AT cho module SIM900 để thiết lập cấu hình và điều khiển việc truyền nhận dữ liệu. Viết chương trình truyền nhận dữ liệu qua giao thức TCP, dùng socket bằng ngôn ngữ Visual Basic. Viết chương trình truyền nhận UART từ máy tính xuống MSP430 và từ MSP430 xuống Module SIM900. Tài liệu tham khảo SIMCOM – AT Command Set Đỗ Minh Quốc – Hệ thống SCADA trong thủy lợi ứng dụng GPRS, Webserver Nguyễn Đức Thành – Đo lường và điều khiển bằng máy tính Microsoft MSDN Một số tài liệu không nguồn trên Internet
File đính kèm:
- tieu_luan_tim_hieu_truyen_du_lieu_qua_gprs_va_giam_sat_qua_m.docx
- Pres.pptx