WiFi無線模組公司基于安卓的物聯(lián)異步串行通信系統(tǒng)
發(fā)布日期:2021-12-06
瀏覽次數(shù):2388
WiFi無線模組公司基于安卓的物聯(lián)異步串行通信系統(tǒng),由于計算機和因特網(wǎng)技術(shù)的普及,網(wǎng)絡(luò)成了人際交流的工具,以網(wǎng)絡(luò)為對象進(jìn)行交流。人與物交流的工具使一切事物連結(jié)起來,由此產(chǎn)生了物聯(lián)網(wǎng)技術(shù)。當(dāng)前,物聯(lián)網(wǎng)技術(shù)正在走向多功能、多方向、實用型和全感知、可靠傳輸、智能處理、結(jié)構(gòu)兼容方向發(fā)展。在集成電路上,異步串行通信方式是一種應(yīng)用在芯片上的通信方式,所發(fā)送的字符以數(shù)據(jù)幀的形式異步傳輸,通信雙方都有各自的時鐘源來控制信息的發(fā)送與接收。本論文是物聯(lián)網(wǎng)技術(shù)和單片機控制在“串行通信數(shù)據(jù)流”實驗教學(xué)中的應(yīng)用。經(jīng)過試驗,學(xué)生可以開發(fā)出Android系統(tǒng)的串行通信控制接口和JAVA網(wǎng)絡(luò)程序,掌握TCPSocket通訊數(shù)據(jù)流,并能在MCU和WiFiCV5200和PC機之間進(jìn)行異步串行通信的數(shù)據(jù)流。采用51單片機設(shè)計物聯(lián)型異步串行通訊系統(tǒng),WiFi無線模組公司W(wǎng)iFi無線模組實現(xiàn)了基于Android的串口通信控制APP,運行于Android手機,APP中選擇不同的按鈕發(fā)送數(shù)據(jù),通過TCPSocket數(shù)據(jù)流,WiFi無線模組公司W(wǎng)iFiCV5200使用異步串行通信向MCU發(fā)送數(shù)據(jù),MCU是通過MAX232電平轉(zhuǎn)換電路向PC機發(fā)送異步串行通信,PC機通過串口調(diào)試輔助接收手機端發(fā)送的數(shù)據(jù)信息;完成IOT全異步串行通信的數(shù)據(jù)傳輸輸。
由Android手機前端控制接口和底層單片機控制電路組成。Android手機開發(fā)客戶端APP,利用手機端的控制界面,發(fā)送數(shù)據(jù)通過TCPSocket與WiFi無線模組公司W(wǎng)iFi模塊CV5200數(shù)據(jù)進(jìn)行通信。下層MCU控制電路中的WiFi模塊通過異步通信把數(shù)據(jù)信息發(fā)送給單片機,MCU通過RXD引腳接收WiFi模塊發(fā)送的數(shù)據(jù),并通過TXD管腳將數(shù)據(jù)發(fā)送到PC機終端顯示。PC機和單片機由于電平標(biāo)準(zhǔn)的不同,用MAX232電平轉(zhuǎn)換電路實現(xiàn)數(shù)據(jù)通訊,完成IOTUART系統(tǒng)的數(shù)據(jù)傳輸。
MCU底層硬件電路由51單片機小系統(tǒng)。電源電路.
WiFi模塊CV5200.電平轉(zhuǎn)換MAX232電路組成。本機小系統(tǒng)包括晶振電路和復(fù)位電路,晶振選取值為11.0592MHz,穩(wěn)壓電源輸出5V電壓,與電平轉(zhuǎn)換模塊MAX232供電,3.3V電壓為WiFi模塊CV5200供電。單片微處理器通過WiFi無線模組公司W(wǎng)iFi模塊CV5200構(gòu)建底層MCU電路和安卓手機局域網(wǎng),WiFi模塊通過UTXD管腳將上位機接收的數(shù)據(jù)送至單片機。MCU通過RXD管腳接收數(shù)據(jù),并通過TXD引腳將數(shù)據(jù)發(fā)送到PC機,以實現(xiàn)上位機和底層終端設(shè)備間的數(shù)據(jù)傳輸。
APP軟件開發(fā)包括用戶界面UI設(shè)計和TCPSocket數(shù)據(jù)流動信箱,UI布局使用XML設(shè)計控件,TCP數(shù)據(jù)流處理使用JavaSocket網(wǎng)絡(luò)編程實現(xiàn)TCP/IP數(shù)據(jù)傳輸功能。
Android用戶控制界面使用XML設(shè)計UI,在資源文件夾res中res上的布局文件layout.activity_main.xml,使用線性布局LinearLayout,將界面分為兩部分,一部分設(shè)置android:orientation="vertical",豎向布局,設(shè)計一個TextView的文本信息“物聯(lián)異步串行通訊系統(tǒng)”,用兩個EditText來設(shè)置手機連接WiFi的IP地址和端口號的輸入?yún)^(qū)域,Button觸發(fā)按鈕btn_Lj是在垂直方向布局中用來建立手機連接WiFi服務(wù)器Socket的網(wǎng)絡(luò)通信。第2部分布局設(shè)置android:orientation="horizontal",水平方向布局設(shè)計Button按鈕btn_Q和按鈕btn_Z通過在res資源文件中的values.strings.xml設(shè)置stringname,為“Q字符”“Z字符”顯示按鈕之后,按鈕中發(fā)送了數(shù)據(jù)信息。
TCP數(shù)據(jù)流使用JAVA編程,通過MainActivity.java來設(shè)計src資源文件中的數(shù)據(jù)傳輸流量。activity_main.xml通過setContentView方法裝載到當(dāng)前的MainActivity,使用findViewById方法在MainActivity中引用兩個EditText和三個Button,使用View.onClikListener接口覆蓋按鈕事件監(jiān)聽機制的方法onClik()。在MCU控制電路中,開發(fā)的APP與WiFi模塊通過創(chuàng)建Socket類對象,利用Socket數(shù)據(jù)流(輸入和輸出流)來實現(xiàn)TCP網(wǎng)絡(luò)通信。btn_Lj按鈕觸發(fā)用來建立手機與WiFi服務(wù)器的通訊連接,開發(fā)APP以Client.WiFiCV5200模塊作為服務(wù)器(Server)端,這個線程是通過繼承Thread類方法來建立的,它使用onClik()方法監(jiān)聽按鈕觸發(fā)動作來啟動這個線程。使用WiFi無線模組公司W(wǎng)iFi服務(wù)器(192.168.4.1)和端口號(8080)的IP地址建立的TCP網(wǎng)絡(luò)通信線程,建立Socket對象Socketsocket=newSocket(IP地址,端口號)向WiFi服務(wù)器請求一個通信連接。按鍵btn_Q和按鈕btn_Z分別通過觸發(fā)一個Button動作發(fā)送相應(yīng)的字符“Q”和字符“Z”(字符“Q”和“Z”裝入String變量str)。成功連接到WiFi網(wǎng)絡(luò)之后,通過獲得Socket對象的輸出流OutputStreamoutputStream=socket.getOutputStream()用getBytes()方法將str轉(zhuǎn)換為字節(jié)型數(shù)組data,通過調(diào)用outputStream對象的write()方法,將data數(shù)據(jù)寫入輸出的數(shù)據(jù)流,以傳輸outputStream.write(data,Length),利用成功建立的TCPSocket通訊鏈路提供單片機控制電路中的WiFi模塊CV5200來接收和讀取手機端發(fā)送的數(shù)據(jù)信息。在數(shù)據(jù)傳送完成之后,調(diào)用close()方法關(guān)閉輸入流InputStream.close().關(guān)閉輸出流outputStream.close().關(guān)閉Socket連接Socket.close()。
單片微機需要完成串口通訊的初始化工作,通過設(shè)置寄存器TMOD加載定時初始值來設(shè)計串行通信波特率,設(shè)定串行中斷控制寄存器SCON配置串口通訊的工作方式,開啟串行通訊中斷,串行通訊接收標(biāo)志位RI=1進(jìn)入串行通訊中斷服務(wù)子程式。下層MCU控制電路中的WiFi無線模組公司W(wǎng)iFi模塊CV5200接收由電話端發(fā)送的數(shù)據(jù)字符“Q”或“Z”,單片機連續(xù)檢測串口通訊接收信號是否RI為1,若RI=1,WiFi模塊通過異步串行通信,向MCP3.0引腳RXD接收主機的數(shù)據(jù),字符“Q”或“Z”,再次由P3.1引腳TXD發(fā)送到PC機,PC機通過串口接收并顯示字符“Q”或“Z”,實現(xiàn)手機.MCU與PC機間UART傳輸。