雷鋼 陳俊民 馬志豪
摘 要:闡述了單片機(jī)在大學(xué)生創(chuàng)新實(shí)踐教學(xué)中的應(yīng)用,采用STC12C5A60S2單片機(jī)為核心,以USB串口供電模塊、USB串口下載模塊、手機(jī)智能控制終端模塊、USR-WI-FI232-A2模塊、蜂鳴器模塊等進(jìn)行一鍵尋物系統(tǒng)搭建,實(shí)現(xiàn)了上位機(jī)與終端設(shè)備的數(shù)據(jù)傳輸、處理和終端指令的執(zhí)行的全過(guò)程,完成了尋物互聯(lián)。
關(guān)鍵詞:尋物系統(tǒng);STC12C5A60S2單片機(jī);創(chuàng)新實(shí)踐
在日常生活中常常會(huì)遇到想要的東西卻怎么也找不到的情況,尤其是老年人這種情況尤為常見(jiàn),讓人感到內(nèi)心焦躁,也會(huì)帶來(lái)一定的心理負(fù)擔(dān),從而影響正常生活,給自己和周圍的人帶來(lái)煩惱。隨著科學(xué)技術(shù)的不斷更新與進(jìn)步,在國(guó)家大力提倡大學(xué)生創(chuàng)新創(chuàng)業(yè)的大背景下,一鍵直達(dá)尋物系統(tǒng)項(xiàng)目應(yīng)運(yùn)而生,獲得了校創(chuàng)新創(chuàng)業(yè)項(xiàng)目立項(xiàng)。它優(yōu)勢(shì)在于采用了更先進(jìn)的Wi-Fi技術(shù)取代現(xiàn)有的藍(lán)牙技術(shù),進(jìn)行尋物系統(tǒng)開(kāi)發(fā),更快速、更普及、更便捷,只要有Wi-Fi就可以隨時(shí)定位物品,真正的實(shí)現(xiàn)尋物聯(lián)網(wǎng)。而且裝置小巧,基本不會(huì)改變物品原來(lái)的大小,實(shí)用性更強(qiáng),成本也低。
本設(shè)計(jì)了具有設(shè)計(jì)簡(jiǎn)單、使用方便、成本低廉、體積小巧等特點(diǎn),具有一定的實(shí)用性、商業(yè)性和技術(shù)性。系統(tǒng)以Android為上位機(jī)平臺(tái),STC12C5A60S2單片機(jī)作為下位機(jī),構(gòu)建快速尋物系統(tǒng),對(duì)在Wi-Fi模塊和手機(jī)應(yīng)用程序之間傳輸數(shù)據(jù)進(jìn)行設(shè)計(jì)和實(shí)現(xiàn),通過(guò)安卓端軟件與Wi-Fi硬件之間的無(wú)線通訊、Wi-Fi模塊與單片機(jī)之間的有線通信,構(gòu)建一個(gè)尋物系統(tǒng)。其工作流程圖如圖1所示。
1 硬件設(shè)計(jì)
一鍵尋物系統(tǒng)采用STC12C5A60S2單片機(jī)為核心,以USB串口供電模塊、USB串口下載模塊、手機(jī)智能控制終端模塊、USR-WI-FI232-A2模塊、蜂鳴器模塊等進(jìn)行系統(tǒng)搭建。開(kāi)發(fā)安卓端應(yīng)用程序,通過(guò)WI-FI將數(shù)據(jù)傳遞給Wi-Fi模塊,USR-WI-FI232-A2模塊將訊息發(fā)給智能單片機(jī),進(jìn)而將命令通過(guò)相應(yīng)的接口模塊發(fā)出,以驅(qū)動(dòng)相應(yīng)的終端設(shè)備,實(shí)現(xiàn)對(duì)單片機(jī)蜂鳴器的控制。在尋找物品時(shí),物品上的蜂鳴器震動(dòng),引起尋找者的注意,從而快速的將物品找到。其核心硬件電路如圖2所示。
1.1 STC12C5A60S2單片機(jī)系統(tǒng)
STC12C5A60S2RC是由STC公司開(kāi)發(fā)的一種高速、低功耗、超強(qiáng)抗干擾的新一代8051單片機(jī),其編程指令代碼能夠與傳統(tǒng)8051實(shí)現(xiàn)完全兼容,且運(yùn)行速度提高了8-12倍,內(nèi)部集成MAX810專用復(fù)位電路,2路PWM,8路高速10位A/D轉(zhuǎn)換,能夠在強(qiáng)干擾場(chǎng)合正常工作。由STC12C5A60S2單片機(jī)構(gòu)建的系統(tǒng)中,采用C語(yǔ)言完成程序編寫(xiě),實(shí)現(xiàn)單片機(jī)與Wi-Fi模塊的串口通信,實(shí)現(xiàn)通過(guò)Android手機(jī)實(shí)現(xiàn)單片機(jī)拉低拉高IO口電位驅(qū)動(dòng)蜂鳴器報(bào)警。通過(guò)設(shè)計(jì)控制蜂鳴器的程序和Wi-Fi通信程序完成對(duì)下位機(jī)的程序設(shè)計(jì)。單片機(jī)上的固件程序主要是在Wi-Fi模塊和手機(jī)進(jìn)行Wi-Fi配對(duì)之后,建立了相應(yīng)的通信通道,進(jìn)行數(shù)據(jù)傳輸,Wi-Fi模塊收到手機(jī)傳來(lái)的數(shù)據(jù)之后,進(jìn)行調(diào)制和解碼,然后把字節(jié)碼數(shù)據(jù)串口發(fā)給單片機(jī),單片機(jī)收到對(duì)應(yīng)的數(shù)據(jù)后,驅(qū)動(dòng)蜂鳴器報(bào)警,進(jìn)而實(shí)現(xiàn)尋物的功能。復(fù)位電路由電容E1、電阻R1、開(kāi)關(guān)SW1與電源VDD構(gòu)成,連接主芯片第9腳復(fù)位管腳如圖2所示。單片機(jī)工作電路為時(shí)序電路,必須外接震蕩電路使其工作,在時(shí)鐘電路中,主頻選用11.059MHz晶振X1與電容C1、C2并聯(lián)而成,與主芯片第18、19腳相連,如圖2所示。
單片機(jī)串口通信在傳輸少量的數(shù)據(jù)時(shí),指令方面具有巨大的優(yōu)勢(shì)。STC12C5A60S2單片機(jī)串口的傳輸方式有四種。本系統(tǒng)通信模式采用串口通信方式1,方式10位數(shù)據(jù)的異步通信口,其中1位是起始位,8位數(shù)據(jù)位,一位停止位。
1.2 Wi-Fi模塊
本系統(tǒng)采用USR-WI-FI232-A2模組進(jìn)行Wi-Fi組網(wǎng),通過(guò)簡(jiǎn)單設(shè)置即可實(shí)現(xiàn)串口與 WI-FI 之間數(shù)據(jù)的雙向透?jìng)鳌F潆娐穲D如圖2中wifi模塊所示,是一款一體化的 802.11 b/g/n 的模組,通過(guò)該模組,傳統(tǒng)的串口設(shè)備或 MCU 控制的設(shè)備可以很方便的接入 WI-FI 無(wú)線網(wǎng)絡(luò),從而實(shí)現(xiàn)物聯(lián)網(wǎng)絡(luò)控制與管理。
模塊使用3.3v單電源供電,并支持 802.11b/g/n 無(wú)線標(biāo)準(zhǔn)和TCP/IP/UDP 網(wǎng)絡(luò)協(xié)議棧,同時(shí)該模塊最大傳輸距離為150M,功能十分強(qiáng)大。它可以提供十分靈活的組網(wǎng)方式和網(wǎng)絡(luò)拓?fù)?,AP即無(wú)線接入點(diǎn),是一個(gè)無(wú)線網(wǎng)絡(luò)的中心節(jié)點(diǎn)。通常使用的無(wú)線路由器就是一個(gè) AP,其它無(wú)線終端可以通過(guò) AP 相互連接。STA即無(wú)線站點(diǎn),是一個(gè)無(wú)線網(wǎng)絡(luò)的終端。
1.3 蜂鳴器
蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,具有堅(jiān)固的機(jī)械外表,對(duì)環(huán)境溫度基本沒(méi)有要求,對(duì)輻射不敏感,抗靜電放電,強(qiáng)大的抗電磁干擾性,且價(jià)格低廉。其電路圖如圖2中蜂鳴器電路所示,由三極管Q1、發(fā)光管LED1、電阻R2、蜂鳴器B1與主單片機(jī)25腳相連。
2 軟件設(shè)計(jì)
在打開(kāi)手機(jī)尋物APP之后,初始化連接Wi-Fi后,輸入配對(duì)信息,手機(jī)就能和尋物器進(jìn)行自動(dòng)配對(duì),手機(jī)通過(guò)UDP連接就能向Wi-Fi模塊發(fā)送指令,Wi-Fi模塊收到指令后就能告訴52單片機(jī)驅(qū)動(dòng)蜂鳴器相應(yīng)了。其工作流程如圖1所示。
在Android系統(tǒng)開(kāi)發(fā)中,Android在調(diào)用Wi-Fi類去實(shí)現(xiàn)Wi-Fi通信的時(shí)候,必須在這個(gè)屬性配置文件中獲取相應(yīng)的Wi-Fi權(quán)限。獲取在運(yùn)行配置文件中獲取Wi-Fi權(quán)限的代碼如下:
<!—在Android 6.0之后,使用藍(lán)牙通信,必須打開(kāi)定位權(quán)限 -->
取權(quán)限之后,還要在尋物器的應(yīng)用程序中使用ContextCompat的子類checkSelfPermission類來(lái)檢查應(yīng)用程序是否從手機(jī)獲取相應(yīng)的權(quán)限,如果沒(méi)有則需要使用ActivityCompat的子類requestPermissions來(lái)彈出請(qǐng)求系統(tǒng)彈窗,好讓用戶選擇是否立即開(kāi)啟權(quán)限。如果只是在運(yùn)行配置文件AndroidMainfest.xml中獲取Wi-Fi權(quán)限,但是沒(méi)有檢查權(quán)限,應(yīng)用程序就會(huì)出現(xiàn)秒退的問(wèn)題。
管理Wi-Fi通信主要有三個(gè)類:Wi-FiManager類、Wi-FiInfo類、Wi-FiConfiguration類。其中Wi-FiManager類是Wi-Fi管理類,負(fù)責(zé)管理Wi-Fi的各種操作,比如斷開(kāi)、連接、搜索等;Wi-FiInfo類是獲取當(dāng)前正在連接的熱點(diǎn)的信息比如:IP地址、MAC地址、網(wǎng)關(guān)等;Wi-FiConfiguration類是WI-FI網(wǎng)絡(luò)的配置類,通過(guò)這個(gè)類可以查看Wi-Fi的網(wǎng)絡(luò)配置。手機(jī)和制定設(shè)備建立Wi-Fi連接有四個(gè)步驟:初始化、打開(kāi)關(guān)閉Wi-Fi、搜索顯示列表、點(diǎn)擊列表進(jìn)行配對(duì)。
Wi-Fi初始化主要是獲取Wi-FiManager類、Wi-FiInfo類的對(duì)象,并對(duì)類對(duì)象進(jìn)行實(shí)例化,讓類在activity里面更好的被調(diào)用。打開(kāi)關(guān)閉Wi-Fi主要是通過(guò)調(diào)用Wi-FiManager類的setWi-FiEnabled()方法來(lái)完成的,搜索周圍的Wi-Fi設(shè)備和進(jìn)行廣播主要是使用Wi-FiManager類的startScan()方法來(lái)完成的,而獲取附近的Wi-Fi設(shè)備列表也是通過(guò)這個(gè)類的getScanResults()方法完成的,而getScanResults()方法會(huì)返回一個(gè)存儲(chǔ)設(shè)備信息的對(duì)象,這個(gè)對(duì)象可以通過(guò)JAVA的基本方法ToString()轉(zhuǎn)換成字符串。也是使用Wi-FiManager類的reconnect()方法與制定的ID的網(wǎng)絡(luò)進(jìn)行配對(duì),建立通信通道。
在建立連接后,如果需要和Wi-Fi之間進(jìn)行傳輸數(shù)據(jù),必須使用socket網(wǎng)絡(luò)編程,本設(shè)計(jì)使用的是與Wi-Fi模塊之間建立UDP連接來(lái)進(jìn)行數(shù)據(jù)的傳輸。主要使用了傳輸信息的DatagramPacket類和使用UDP協(xié)議的UDPSocket接口類。
3 結(jié)論
市面上大部分的尋物器都是基于藍(lán)牙技術(shù),而本系統(tǒng)創(chuàng)新性的使用Wi-Fi技術(shù)來(lái)開(kāi)發(fā)尋物器系統(tǒng),讓尋物器反應(yīng)更加快速、更加普及、同時(shí)也能使用路由接入尋物器,讓尋物器聯(lián)網(wǎng)成為現(xiàn)實(shí)。引導(dǎo)未來(lái)發(fā)展的方向,為下一步機(jī)器人化做鋪墊。本系統(tǒng)還有以下幾個(gè)方面需要改進(jìn):(1)豐富功能;目前只有蜂鳴器報(bào)警的功能,以后可以開(kāi)發(fā)Wi-Fi聯(lián)網(wǎng)尋物功能或者GPS地圖尋物功能等。(2)支持更多的操作系統(tǒng);目前,尋物器系統(tǒng)只開(kāi)發(fā)了Android系統(tǒng)的APP,但是還是有很大一部分用戶使用其他操作系統(tǒng)。(3)環(huán)境特殊性;蜂鳴器有一定的局限性,在某些情況下,比如黑天的情況下,被尋找物綻放出來(lái)光亮更方便于尋找,或者兩者相互結(jié)合,效率會(huì)更高。(4)局限性;Wi-Fi還沒(méi)有達(dá)到全部普及,沒(méi)有Wi-Fi的地方將無(wú)法使用。通過(guò)本次創(chuàng)新實(shí)踐,使得項(xiàng)目組成員對(duì)單片機(jī)應(yīng)用有了一個(gè)更加深刻的認(rèn)識(shí),實(shí)現(xiàn)了學(xué)以致用的目的。
參考文獻(xiàn):
[1]劉昱旻,劉衛(wèi)國(guó).Android的架構(gòu)與應(yīng)用開(kāi)發(fā)[J].科技傳播,2011.
[2]李剛.瘋狂Android 講義(第二版)[M].北京電子工業(yè)出版社,2013.
[3]余建華,李有文.機(jī)械工程與自動(dòng)化[J].自動(dòng)化技術(shù),2018(04):173-175.
[4]羅紫陽(yáng),陳鵬.基于單片機(jī)控制的超聲波測(cè)距系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].數(shù)字通信世界,2019(06):91.
[5]郭宏昌.基于Android手機(jī)的實(shí)時(shí)公交查詢系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].物聯(lián)網(wǎng)技術(shù),2015.
(項(xiàng)目來(lái)源:鄭州工程技術(shù)學(xué)院 2019 年大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃 項(xiàng)目編號(hào):201911068036,項(xiàng)目名稱:一鍵直達(dá)尋物系統(tǒng))
作者簡(jiǎn)介:雷鋼(1979-),男,河南鄭州人,碩士,副教授,主要研究方向:電子與通信工程。