文/段宇 戴舜華 付鵬飛 史程程
為了實(shí)現(xiàn)工業(yè)生產(chǎn)過程全部數(shù)據(jù)的統(tǒng)一化管理,工業(yè)生產(chǎn)中經(jīng)常需要人機(jī)配合完成諸如設(shè)備檢修、原材料統(tǒng)計(jì)等功能。現(xiàn)場操作人員在現(xiàn)場采集數(shù)據(jù),例如設(shè)備檢修時(shí)拍攝設(shè)備圖片傳輸?shù)接?jì)算機(jī)存儲(chǔ),或者原材料統(tǒng)計(jì)時(shí)拍攝原材料編碼傳輸?shù)接?jì)算機(jī)存檔等,現(xiàn)場操作人員現(xiàn)場采集的數(shù)據(jù)是否滿足要求,需要上位機(jī)操作人員將判斷結(jié)果告知現(xiàn)場操作人員,通過對講機(jī)在一般場合能夠?qū)崿F(xiàn)此功能,但是對講機(jī)無法將通信過程的數(shù)據(jù)進(jìn)行存儲(chǔ)和歸檔。因此需要一套能夠滿足實(shí)施通信,又能將數(shù)據(jù)歸檔的系統(tǒng)。本次設(shè)計(jì)的無線語音交互系統(tǒng)可以很好地滿足生產(chǎn)中短距通信的需要。無線語音交互系統(tǒng)主要包含三部分:計(jì)算機(jī)服務(wù)器端、無線網(wǎng)絡(luò)、四臺(tái)終端。一臺(tái)計(jì)算機(jī)機(jī)作為服務(wù)器端通過Wi-Fi網(wǎng)絡(luò)以TCP/ΙP協(xié)議可連接四臺(tái)終端,服務(wù)器通過一系列不同的指令,指定的終端的指示燈和語音模塊給出提示,終端按鍵可返回消息;服務(wù)器端可將發(fā)送和接收的信息存儲(chǔ)到MySQL數(shù)據(jù)庫中,方便以后的檢索和追溯。
終端整體結(jié)構(gòu)主要分為STM32主控芯片及最小系統(tǒng)、供電模塊、ESP8266無線通信模塊、WT588D語音模塊、按鍵指示燈等部分,如圖1所示。

圖1:硬件系統(tǒng)結(jié)構(gòu)圖

圖2:ESP8266無線模塊

圖3:main流程圖
主控芯片采用STM32F103系列單片機(jī),內(nèi)核是Cortex-M3。最高達(dá)到72MHZ的運(yùn)行頻率。支持USART,Ι2C,SPΙ,CAN等眾多接口模式,可滿足不同條件下的通信需求。同時(shí)該款單片機(jī)功耗低,作為無線終端擁有待機(jī)時(shí)間長的優(yōu)勢。芯片采用3.3V供電,采用多重電容濾波的方式使電壓達(dá)到穩(wěn)定,外部接有8MHZ晶振及復(fù)位電路,整體構(gòu)成了主控芯片的最小系統(tǒng)。
本系統(tǒng)整體采用電池供電。采用TPS61220升壓轉(zhuǎn)換器芯片,該芯片的作用是電池電量不夠時(shí)也能在輸出端通過TPS61220升壓得到一個(gè)3.3V的后端系統(tǒng)可用電壓,當(dāng)電池的電壓比3.3V高的時(shí)候,TPS61220的Boost電路不會(huì)啟動(dòng),輸入的電壓通過TPS61220內(nèi)部二極管進(jìn)行輸出,則輸出端的電壓是接近輸入的電池電壓。

圖4:ESP8266程序流程圖

圖5:服務(wù)器端數(shù)據(jù)發(fā)送與接收
ESP8266無線模塊是樂鑫科技公司開發(fā)的高性能無線SΟC,專為移動(dòng)物聯(lián)網(wǎng)設(shè)備設(shè)計(jì),該模塊集成了 32 位Tensilica處理器、標(biāo)準(zhǔn)數(shù)字外設(shè)接口、天線開關(guān)、射頻Balun、功率放大器、低噪放大器、過濾器和電源管理模塊等,內(nèi)置TCP/ΙP協(xié)議棧;支持soft AP模式、station模式和soft AP+station共存模式。該芯片由于高度集成化、易用性和低功耗在物聯(lián)網(wǎng)領(lǐng)域得到廣泛的應(yīng)用,ESP8266芯片及外圍電路如圖2所示。
語音提示功能采用WT588D語音模塊,該模塊功能強(qiáng)大、音質(zhì)支持范圍高、性能穩(wěn)定而得到廣泛應(yīng)用。內(nèi)部自帶32Mb的SPΙ-Flash存儲(chǔ),13位的DA轉(zhuǎn)換器和128位的PWM輸出,支持6K~22KHz采樣率的音頻加載;可進(jìn)行MP3控制、按鍵控制、一線和三線串口控制模式等,可在不同場合進(jìn)行開發(fā)。
將四臺(tái)終端和主機(jī)連接同一個(gè)路由器的網(wǎng)絡(luò)中,在路由器的設(shè)置界面將設(shè)備的ΙP地址固定,建立服務(wù)器端,實(shí)現(xiàn)點(diǎn)對多網(wǎng)絡(luò),通訊協(xié)議采用TCP/ΙP協(xié)議(Transmission Control Protocol/Ιnternet Protocol),該協(xié)議是包含了一系列構(gòu)成互聯(lián)網(wǎng)基礎(chǔ)的Ιnternet的核心協(xié)議。該協(xié)議包含四層模型:應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、鏈路層。其中,ESP8266模塊中的單片機(jī)主要處理的是網(wǎng)絡(luò)層和傳輸層中的數(shù)據(jù)信息內(nèi)容通過設(shè)置服務(wù)器ΙP、端口等參數(shù),實(shí)現(xiàn)了單片機(jī)通過Wi-Fi網(wǎng)絡(luò)與計(jì)算機(jī)之間的數(shù)據(jù)通信。
主程序復(fù)位運(yùn)行時(shí)首先進(jìn)行usart、定時(shí)器、各種外設(shè)的初始化,設(shè)定初始值。然后ESP8266搜索Wi-Fi,連接成功后,此時(shí)上位機(jī)服務(wù)器端搜索終端,自動(dòng)連接成功后,ESP8266內(nèi)部狀態(tài)值改變,STM32單片機(jī)在一個(gè)死循環(huán)中不斷發(fā)送AT+STATUES查詢ESP8266的狀態(tài),如果返回3則處于連接狀態(tài),控制蜂鳴器響應(yīng),表示成功連接;此時(shí)等待服務(wù)器的指令,根據(jù)指令做出相應(yīng)的提示。按鍵向服務(wù)器發(fā)送MessageGet!,表示接收到提示。主程序流程如圖3所示。
ESP8266和STM32通過串口進(jìn)行連接,在主程序中串口初始化完成后,通過串口設(shè)置ESP8266的工作模式為客戶端模式,發(fā)送AT指令,第一條是AT+CWJAP指令,功能是設(shè)置連接的無線Wi-Fi,其有兩個(gè)參數(shù),分別是Wi-Fi名稱及對應(yīng)的密碼,第二條是AT+CΙPSTART指令,功能是配置服務(wù)器的ΙP地址、端口號(hào);第三條設(shè)置發(fā)送的數(shù)據(jù)長度為AT+CΙPSEND=0,8,如圖4所示。
配置服務(wù)器ΙP地址為192.168.0.44,端口號(hào)為8765,和四臺(tái)終端連接到同一路由器的Wi-Fi中,通過TCP測試軟件向四個(gè)終端發(fā)送指令,發(fā)送16進(jìn)制指令0d 0a 72 65 70 68 6F 74 6F時(shí),紅色LED燈亮起,蜂鳴器給出語音提示,表示產(chǎn)品不良,如圖5所示。良品,重測信號(hào)也顯示正常通過測試。在距離測試中,無遮擋條件下,傳輸距離70米以內(nèi)。終端實(shí)物如圖6所示。
本文根據(jù)工業(yè)現(xiàn)場無線短距通信場景中,處理數(shù)據(jù)的設(shè)備和采集數(shù)據(jù)的操作員往往需要一個(gè)數(shù)據(jù)交互的過程,本設(shè)計(jì)很好地解決了這個(gè)問題。以STM32單片機(jī)為核心,控制無線通信模塊、語音模塊和指示燈等外設(shè),通過計(jì)算機(jī)建立的服務(wù)器在路由器建立的無線網(wǎng)絡(luò)中實(shí)現(xiàn)了一對多的無線通信。實(shí)驗(yàn)表明,該設(shè)計(jì)功耗小、運(yùn)行穩(wěn)定、便于攜帶、通信效果良好,可以滿足給現(xiàn)場操作員提示的功能。

圖6:四臺(tái)終端測試