介紹了 一種基于手機(jī)WiFi熱點(diǎn)的電子秤自動(dòng)化質(zhì)監(jiān)系統(tǒng)的設(shè)計(jì),系統(tǒng)由質(zhì)監(jiān)模塊和手機(jī)模塊組成。質(zhì)監(jiān)模塊采 用LPC1100作為MCU,HLK-RM04為無(wú)線(xiàn)芯片,從電子秤RS232接口獲取數(shù)據(jù),并通過(guò)手機(jī)WiFi無(wú)線(xiàn)網(wǎng)發(fā)送至手機(jī) 模塊,實(shí)現(xiàn)高效方便的質(zhì)監(jiān)。
引言
本文設(shè)計(jì)了一種以LPC1100為主控制器,使用HLK- RM04無(wú)線(xiàn)芯片的電子秤質(zhì)監(jiān)模塊,連接到手機(jī)WFi熱點(diǎn)建 立的局域網(wǎng),直接將質(zhì)監(jiān)數(shù)據(jù)發(fā)送至手機(jī),手機(jī)還可以與電 腦互聯(lián),對(duì)質(zhì)監(jiān)數(shù)據(jù)進(jìn)行匯總處理,實(shí)現(xiàn)自動(dòng)化質(zhì)監(jiān)。
1.總體設(shè)計(jì)
1.1基本原理
通用電子秤內(nèi)部都會(huì)提供標(biāo)準(zhǔn)的RS232接口,通過(guò) 這個(gè)接口,可以獲取電子秤稱(chēng)重?cái)?shù)據(jù),這就為自動(dòng)化質(zhì)監(jiān) 提供了可能,設(shè)計(jì)一個(gè)質(zhì)監(jiān)模塊嵌入電子秤內(nèi),將電子秤 實(shí)時(shí)數(shù)據(jù)通過(guò)無(wú)線(xiàn)芯片HLK-RM04發(fā)送至手機(jī)中。這 個(gè)過(guò)程需要一個(gè)無(wú)線(xiàn)局域網(wǎng),這個(gè)無(wú)線(xiàn)局域網(wǎng)由用戶(hù)手機(jī) WiFi熱點(diǎn)建立。質(zhì)監(jiān)模塊在電子秤通電開(kāi)始工作時(shí)自動(dòng) 運(yùn)行,不斷檢測(cè)質(zhì)監(jiān)人員的手機(jī)無(wú)線(xiàn)網(wǎng)絡(luò),一旦檢測(cè)到無(wú) 線(xiàn)網(wǎng)絡(luò)的存在,自動(dòng)建立TCP連接,與手機(jī)建立聯(lián)系,按 手機(jī)發(fā)送的指令檢測(cè)標(biāo)準(zhǔn)砝碼的重量,并將檢測(cè)結(jié)果回送 至手機(jī)中,質(zhì)監(jiān)員就可以隨時(shí)高效率方便地同時(shí)檢測(cè)多臺(tái) 電子秤,并且質(zhì)監(jiān)員回到質(zhì)監(jiān)局后,可以將手機(jī)上記錄的 數(shù)據(jù)傳送至電腦,進(jìn)行匯總處理。質(zhì)監(jiān)系統(tǒng)整體示意圖如圖1所示。
1.2質(zhì)監(jiān)模塊組成
整個(gè)系統(tǒng)由若干個(gè)質(zhì)監(jiān)模塊和一部智能手機(jī)組成,共 同組成全自動(dòng)的質(zhì)監(jiān)系統(tǒng),實(shí)現(xiàn)對(duì)多臺(tái)電子秤同時(shí)質(zhì)監(jiān)。
質(zhì)監(jiān)模塊由Cortex-M0系列LPC1100主控制器、HLK- RM04無(wú)線(xiàn)芯片、變壓電路、RS232轉(zhuǎn)化電路、按鍵電路、 指示燈等模塊組成,如圖2所示。
上電復(fù)位后,主程序開(kāi)始運(yùn)行,首先向HLK-RM04 無(wú)線(xiàn)芯片發(fā)送信號(hào),使它進(jìn)入AT+指令集設(shè)置模式,進(jìn)行初始化設(shè)置,包括需要連接的無(wú)線(xiàn)局域網(wǎng)的名稱(chēng)和密 碼、啟動(dòng)DHCP、主設(shè)備的IP和建立TCP連接的端口號(hào) 等,設(shè)置完成后,重啟無(wú)線(xiàn)芯片,無(wú)線(xiàn)芯片不斷查找指定的 局域網(wǎng),找到后自動(dòng)連接,而主程序一直監(jiān)聽(tīng),如果質(zhì)監(jiān)員 要檢測(cè)電子秤,就會(huì)打開(kāi)手機(jī)WiR熱點(diǎn),建立無(wú)線(xiàn)局域 網(wǎng),并在電子秤上放置標(biāo)準(zhǔn)砝碼,無(wú)線(xiàn)芯片檢測(cè)到該網(wǎng)絡(luò) 會(huì)自動(dòng)連接上,質(zhì)監(jiān)員通過(guò)手機(jī)質(zhì)監(jiān)程序發(fā)送開(kāi)始質(zhì)監(jiān)的 指令,主程序收到后,會(huì)開(kāi)始與電子秤RS232接口進(jìn)行通 信,將電子秤測(cè)出的數(shù)據(jù)發(fā)送至質(zhì)監(jiān)員手機(jī),至此該電子 秤的質(zhì)監(jiān)工作完成。
2.硬件設(shè)計(jì)
2.1質(zhì)監(jiān)模塊
質(zhì)監(jiān)模塊MCU從電子秤RS232接口獲取數(shù)據(jù),經(jīng)過(guò)處 理后,通過(guò)UART串口發(fā)送至模塊上的WiFi芯片,由WiFi 芯片將數(shù)據(jù)通過(guò)無(wú)線(xiàn)網(wǎng)發(fā)送至質(zhì)監(jiān)人員的手機(jī)。MCU選用 基于第二代ARM Cortex-MO內(nèi)核的微控制器LPC1100,它是 32位微處理器,具有高性能,低功耗的優(yōu)點(diǎn)。
2.1.1 WiFi控制電路
WiFi控制電路用來(lái)連接WiFi芯片和MCU,實(shí)現(xiàn)兩 者之間的數(shù)據(jù)傳輸,以及MCU對(duì)WiFi的控制。質(zhì)監(jiān)模塊選用的WiFi芯片是是海凌科電子 新推出的低成本嵌入式UART- ETH-WiFi(串口 -以太網(wǎng)-無(wú)線(xiàn)網(wǎng))模 塊 HLK-RM04。HLK-RM04 實(shí)現(xiàn)了 無(wú)線(xiàn)網(wǎng)和串口之間的轉(zhuǎn)換,MCU可 以通過(guò)對(duì)串口操作實(shí)現(xiàn)WiFi芯片的 配置、無(wú)線(xiàn)通信的目的。WFi控制模 塊主要是將MCU的UART _TX、
UART_RX與HLK-RM04的對(duì)應(yīng)的 引腳相連,實(shí)現(xiàn)兩者之間串行異步通 信。SW1與SW2是按鈕開(kāi)關(guān),給 HLK-RM04提供重新啟動(dòng)和恢復(fù)出 廠(chǎng)設(shè)置這兩個(gè)信號(hào)。WFi外圍控制 電路圖如圖3所示。
2. 1.2 電源模塊電路
電子秤的RS232接口采用主動(dòng)供電式,即電子秤利 用RS232中兩根功能性引腳為外設(shè)提供電源,本文中質(zhì) 監(jiān)模塊就是利用這兩根引腳供電,使用一個(gè)電壓轉(zhuǎn)換電 路,把電子秤提供的電壓轉(zhuǎn)化為十5 V和十3.3 V,分別為 HLK-RM04 和 LPC1100 供電。
2.2手機(jī)模塊
手機(jī)模塊可以直接使用任意一款安卓操作系統(tǒng),自帶 WFi熱點(diǎn)的手機(jī)。直接下載質(zhì)監(jiān)程序就可以作為質(zhì)監(jiān)人 員的質(zhì)監(jiān)工具。
正常情況下,能夠穩(wěn)定運(yùn)行的無(wú)線(xiàn)AP —般是無(wú)線(xiàn)路 由器,但是在本系統(tǒng)中,需要測(cè)試的對(duì)象可能是全市所有 的電子秤,不可能在每個(gè)測(cè)試地點(diǎn)放置無(wú)線(xiàn)路由器,也不 能夠隨身攜帶路由器使用。最好的辦法是使用手機(jī)充當(dāng) 無(wú)線(xiàn)AP,將數(shù)據(jù)采集和無(wú)線(xiàn)局域網(wǎng)這兩種功能合二為一, 這將帶來(lái)極大的便利。但是手機(jī)作為便攜式設(shè)備,又是電 池供電,能不能長(zhǎng)時(shí)間穩(wěn)定地充當(dāng)無(wú)線(xiàn)AP昵?本文以 HTC one型號(hào)手機(jī)為例進(jìn)行可行性分析,用手機(jī)建立熱 點(diǎn),即創(chuàng)建無(wú)線(xiàn)局域網(wǎng),在電腦上運(yùn)行 WireLessMon 獲耳又 無(wú)線(xiàn)網(wǎng)的強(qiáng)度信息,不斷改變手機(jī)和電腦的距離,繪制如 圖4所示的無(wú)線(xiàn)局域網(wǎng)信號(hào)強(qiáng)度圖。
理論上無(wú)線(xiàn)信號(hào)強(qiáng)度超過(guò)一 70 dBm就可以建立連 接,但是為了更好的通信質(zhì)量,選取在大于一60 dBm時(shí)通信,從圖4中可以看出,最佳覆蓋范圍 是手機(jī)為中心,半徑5 m的圓形區(qū)域。
就一般農(nóng)貿(mào)市場(chǎng)而言,半徑5 m可以覆 蓋好幾個(gè)攤位,完全能夠支持多臺(tái)電子秤同 時(shí)測(cè)試。測(cè)試過(guò)程中,手機(jī)滿(mǎn)電狀態(tài)可以連 續(xù)開(kāi)啟WLAN熱點(diǎn)2小時(shí)以上,實(shí)際使用 過(guò)程中,在不用的時(shí)候可以暫時(shí)關(guān)閉熱點(diǎn), 完全能滿(mǎn)足使用的需要。
3.軟件設(shè)計(jì)
3.1質(zhì)監(jiān)模塊
3.1.1總體流程圖
軟件總體的流程如圖5所示,上電啟動(dòng)后,首先檢查 各部分是否正常工作,主要是看電子秤能否正常通信,還 有WFi模塊是否正常工作,如果出現(xiàn)異常,則對(duì)應(yīng)的指示 燈顯示為紅色。然后調(diào)用WiFi子程序?qū)?/span>WiFi模塊進(jìn)行 配置,初始化完成后重新啟動(dòng)WFi芯片,以便配置生效。 重啟后,WFi模塊將不斷搜索手機(jī)熱點(diǎn),如果搜索完畢會(huì) 自動(dòng)進(jìn)行連接,并與手機(jī)建立TCP連接,主程序進(jìn)入監(jiān)聽(tīng) 階段,采用被動(dòng)應(yīng)答的方式,循環(huán)監(jiān)聽(tīng)WFi收到的指令, 并對(duì)當(dāng)前的指令進(jìn)行解析和回復(fù),同時(shí)開(kāi)啟定時(shí)器,如果 一段時(shí)間沒(méi)有收到手機(jī)發(fā)送的心跳包,主程序默認(rèn)測(cè)試結(jié) 束,重新進(jìn)入開(kāi)始階段。
3.1.2 WiFi配置子程序
HLK-RM04芯片提供UART接口與MCU進(jìn)行通 信,通過(guò)該接口,MCU既可以對(duì)HLK-RM04進(jìn)行配置也 可以收發(fā)無(wú)線(xiàn)網(wǎng)的數(shù)據(jù)。MCU采用AT指令集的方式配 置HLK-RM04,將配置的參數(shù)數(shù)據(jù)寫(xiě)成一段固定的配置 字符串,主控制器給HLK-RM04發(fā)送一個(gè)ES/RSTT信號(hào) 使其進(jìn)入AT指令集模式,MCU可以直接將配置字符串 通過(guò)UART端口發(fā)送給HLK-RM04。
質(zhì)監(jiān)模塊中,HLK-RM04的功能是尋找質(zhì)監(jiān)人員手 機(jī)WFi熱點(diǎn)并連接,與手機(jī)建立通信鏈路。這個(gè)過(guò)程可 以分為以下幾部分:
①質(zhì)監(jiān)模塊的HLK-RM04搜素指定名稱(chēng)的WiFi網(wǎng) 絡(luò),并嘗試連接。
②連接完成,說(shuō)明質(zhì)監(jiān)模塊已經(jīng)和質(zhì)監(jiān)人員的手機(jī) 處于同一個(gè)無(wú)線(xiàn)局域網(wǎng)內(nèi)。
③需要使手機(jī)和質(zhì)監(jiān)模塊能夠相互通信,本文中采 用建立TCP連接的方式。
④HLK-RM04作為TCP連接的客戶(hù)端,主動(dòng)向手機(jī) 發(fā)起TCP連接。
⑤手機(jī)端作為TCP服務(wù)端,開(kāi)啟監(jiān)聽(tīng),并采用多線(xiàn) 程的方式同時(shí)與多個(gè)HLK-RM04連接。
由此可見(jiàn),配置字符串的內(nèi)容主要包括WiFi熱點(diǎn)的 用戶(hù)名十密碼、HLK-RM04的IP地址分配、以及TCP連 接相關(guān)信息。HLK-RM04的IP地址分配采用動(dòng)態(tài)分配 方式,即啟動(dòng)DHCP協(xié)議,動(dòng)態(tài)為每個(gè)連接在WFi網(wǎng)絡(luò) 中的HLK-RM04動(dòng)態(tài)分配IP地址,這樣可以避免出現(xiàn)重 復(fù)IP的情況,更加靈活方便。因?yàn)槭謾C(jī)WFi建立的無(wú)線(xiàn) 網(wǎng)段是192. 168. 137. 0,所以手機(jī)的IP地址固定是192. 168. 137. 1,HLK-RM04作為客戶(hù)端只要固定設(shè)置TCP 服務(wù)器地 址為 192.168.137.1 即可 。
配置的子程序略編者注。
3.1.3質(zhì)監(jiān)模塊與電子秤通信
質(zhì)監(jiān)模塊通過(guò)電子秤提供的RS232接口與電子秤進(jìn) 行通信,質(zhì)監(jiān)模塊發(fā)送請(qǐng)求,電子秤將標(biāo)簽信息發(fā)送給質(zhì) 監(jiān)模塊,標(biāo)簽信息是在電子秤中預(yù)先設(shè)置好的一系列數(shù) 據(jù),比如重量、價(jià)格、商家名稱(chēng)、電子秤號(hào)、條形碼等。電子 秤在稱(chēng)重完成后,會(huì)打印出本次稱(chēng)重的標(biāo)簽信息,所以質(zhì) 監(jiān)模塊可以通過(guò)獲取電子秤的標(biāo)簽信息來(lái)提取質(zhì)監(jiān)所需 的有效數(shù)據(jù)。
3.1.4質(zhì)監(jiān)模塊與手機(jī)通信
通信雙方,無(wú)線(xiàn)模塊采用被動(dòng)應(yīng)答的方式,被動(dòng)接收 手機(jī)發(fā)送的指令,并對(duì)指令解析、回復(fù),而手機(jī)采用主動(dòng)發(fā) 送指令的方式。手機(jī)發(fā)送的指令格式如下:
其中IP地址部分采用4字節(jié),指令采用單字節(jié),參數(shù) 個(gè)數(shù)單字節(jié),每個(gè)參數(shù)占用4字節(jié)。指令共包括開(kāi)始、心 跳包、獲取電子秤信息、獲取重量、結(jié)束、保留信息這6種, 因?yàn)椴捎昧?/span> TCP可靠傳輸方式,所以不需要校驗(yàn)。其中 保留信息格式和其余5個(gè)信息格式略有不同,指令功能表 如表1所列。
02指令是心跳包,手機(jī)每隔一段時(shí)間會(huì)發(fā)送一個(gè)心跳 包給質(zhì)監(jiān)模塊,使質(zhì)監(jiān)模塊知道手機(jī)是否正在進(jìn)行質(zhì)檢,如果指定時(shí)間沒(méi)有收到心跳包,無(wú)線(xiàn)模塊默認(rèn)質(zhì)檢已經(jīng)結(jié)束, 就會(huì)回到主程序開(kāi)始處重新執(zhí)行,等待新一輪的質(zhì)檢。
03指令是獲取電子秤的商店編號(hào)和電子秤號(hào),這個(gè) 可以用來(lái)準(zhǔn)確定位每一臺(tái)電子秤,因?yàn)樽詣?dòng)化質(zhì)監(jiān)系統(tǒng)支 持同時(shí)質(zhì)監(jiān)多臺(tái)電子秤,所以要能夠準(zhǔn)確方便的定位每一 臺(tái)連接到熱點(diǎn)的電子秤。
本文中米用商店編號(hào)+電子秤編號(hào)的方式來(lái)定位電 子秤,每個(gè)商店都有唯一的編號(hào),并商店中的電子秤都有 —個(gè)編號(hào),將商店編號(hào)和電子秤編號(hào)做成—個(gè)標(biāo)簽,貼在 電子秤上,并且事先對(duì)電子秤設(shè)置好商店號(hào)和電子秤號(hào), 以供質(zhì)監(jiān)模塊獲取,如圖6所示。
多個(gè)電子秤質(zhì)監(jiān)模塊連接到手機(jī)時(shí),手機(jī)端可以看到 當(dāng)前所有連接至手機(jī)WFi網(wǎng)絡(luò)的電子秤列表,并且顯示 出每臺(tái)電子秤的商店編號(hào)+電子秤編號(hào),與電子秤上的便 簽對(duì)應(yīng),便可方便準(zhǔn)確地定位每一個(gè)電子秤列表項(xiàng)所對(duì)應(yīng) 的電子秤。
該電子秤列表會(huì)顯示在手機(jī)上,供質(zhì)監(jiān)員選擇,比如 質(zhì)監(jiān)員選擇了列表項(xiàng)1(00000012 + 01),該項(xiàng)對(duì)應(yīng)編號(hào)為
00000012的商店中1號(hào)電子秤,放置 個(gè)標(biāo)準(zhǔn)砝碼在該電子秤上,點(diǎn)擊開(kāi)始質(zhì)監(jiān),手機(jī)會(huì)發(fā)送命令給該電子秤,電 子秤嵌入的質(zhì)監(jiān)模塊會(huì)讀出當(dāng)前的數(shù)據(jù),并通過(guò)Wii發(fā) 送至手機(jī),記錄于文件中并顯示給質(zhì)監(jiān)員,表示本次質(zhì)監(jiān) 完成。當(dāng)然質(zhì)監(jiān)員可以對(duì)列表中所有電子秤都放上砝碼, 同時(shí)測(cè)試列表中所有電子秤。
06指令是保留信息,這個(gè)指令是為了傳輸某些比較 復(fù)雜或者協(xié)議設(shè)計(jì)前沒(méi)有考慮到的數(shù)據(jù),是對(duì)前5條指令 的擴(kuò)展,它的格式是IP地址+指令+數(shù)據(jù)長(zhǎng)度+數(shù)據(jù),對(duì) 于該條指令而言,傳輸?shù)臄?shù)據(jù)是沒(méi)有固定格式的,換而言 之該指令可以傳輸任何需要的數(shù)據(jù),而手機(jī)接收了之后可 以將數(shù)據(jù)作進(jìn)一步解析。
3.2手機(jī)端及后續(xù)處理程序
質(zhì)監(jiān)時(shí),質(zhì)監(jiān)員在對(duì)應(yīng)的電子秤上放置標(biāo)準(zhǔn)砝碼,用 手機(jī)接收電子秤質(zhì)監(jiān)模塊發(fā)送的數(shù)據(jù),并將數(shù)據(jù)以固定的 格式存放于文件中,可以根據(jù)需要多測(cè)幾次,至此,現(xiàn)場(chǎng)的 質(zhì)監(jiān)工作完成。
回到質(zhì)監(jiān)局,將手機(jī)連接到質(zhì)監(jiān)局的無(wú)線(xiàn)路由器上, 將數(shù)據(jù)文件發(fā)送至電腦端,并對(duì)各個(gè)質(zhì)監(jiān)員提供的數(shù)據(jù)文 件進(jìn)行匯總,集中處理,并將最終結(jié)果存放于數(shù)據(jù)庫(kù)中,同 時(shí)將匯總后的質(zhì)監(jiān)數(shù)據(jù)備份保存。
4.結(jié)語(yǔ)
本文設(shè)計(jì)的自動(dòng)化質(zhì)監(jiān)系統(tǒng)能夠方便高效地協(xié)助質(zhì) 監(jiān)人員完成任務(wù),只需要對(duì)現(xiàn)在使用的電子秤作改裝,嵌 入一個(gè)質(zhì)監(jiān)模塊,任何一款支持W i R熱點(diǎn)的安卓手機(jī)都 可以充當(dāng)質(zhì)監(jiān)工具。
手機(jī)集質(zhì)監(jiān)無(wú)線(xiàn)網(wǎng)的AP和數(shù)據(jù)采集終端兩大功能 于一身,充分發(fā)揮了智能手機(jī)的能力,實(shí)現(xiàn)了質(zhì)監(jiān)系統(tǒng)最 簡(jiǎn)化,大大降低了硬件的復(fù)雜度,把大部分工作量轉(zhuǎn)移到 軟件方面,能夠降低成本,更符合實(shí)際。