浦靈敏, 姜子祥
(蘇州健雄職業(yè)技術學院 電氣工程學院, 江蘇 太倉 215411)
傳統(tǒng)超市大多使用紙質標簽來顯示商品的信息,人們在超市的各個貨架上都能看到這些小標簽的存在,它一方面為顧客提供了基礎信息,也為超市管理帶來了一定的便捷。然而每當商品價格產生變化,商品信息標簽也需要被更換掉,由于傳統(tǒng)標簽通常為紙質標簽,大量使用會產生很多的浪費,同時維護管理標簽需要大量的人力,容易出錯和丟失,不適合頻繁修改,這給超市管理部門和顧客的購物體驗帶來了不良影響[1]。
針對存在的問題,本文提出一種基于物聯(lián)網技術的智慧超市電子標簽系統(tǒng),通過ZigBee技術和手機APP實現(xiàn)電子標簽顯示信息的無線修改,僅需要一臺協(xié)調器網關就可以控制同一個ZigBee網絡中的所有標簽節(jié)點,完成信息的更新,通過OLED低功耗屏幕顯示價格等信息,方便了超市管理人員進行價格等信息的實時維護。理論上,ZigBee最大連接數(shù)量為65 000個,這個數(shù)量基本滿足超市貨品種類需求。
如圖1所示,超市智慧電子標簽系統(tǒng)分為協(xié)調器網關、節(jié)點和手機端管理軟件。協(xié)調器網關通過建立的ZigBee網絡將數(shù)據(jù)廣播給各個ZigBee標簽節(jié)點,各個節(jié)點收到數(shù)據(jù)后與自己ID號進行對比,核對成功的標簽自動更改商品信息[2]。
圖1 超市智慧電子標簽系統(tǒng)設計框圖
其中,協(xié)調器網關是由ZigBee協(xié)調器和藍牙串口透傳模塊所構成,管理員通過手機APP將更新信息由藍牙串口透傳模塊轉發(fā)進行控制,如圖2所示;電子標簽主要由ZigBee終端節(jié)點、33 mm(1.3吋)OLED屏幕、24C02存儲器和鋰電池所構成,如圖3所示。
圖2 協(xié)調器網關組成框圖圖3 標簽節(jié)點組成框圖
超市智慧電子價格標簽系統(tǒng)的硬件設計主要為ZigBee無線標簽節(jié)點的設計[3],相關的硬件核心包括鋰電池接口電路、復位電路、ZigBee核心模塊、下載電路、穩(wěn)壓電路、OLED屏驅動電路和電壓采集電路等[4],如圖4所示。電池接口為3.7 V鋰電池接口;復位電路可在ZigBee網絡出現(xiàn)問題時進行復位;ZigBee核心模塊為CC2530最小系統(tǒng)電路,通過JTAG口下載標簽節(jié)點程序,每個節(jié)點下載前都需要在程序中進行ID配置,以免出現(xiàn)標簽重名;穩(wěn)壓采用662 K穩(wěn)壓電路;OLED屏驅動電路采用I2C接口。
圖4 超市智慧電子標簽節(jié)點硬件框圖
本系統(tǒng)中ZigBee標簽節(jié)點采用E18-MS1 ZigBee最小系統(tǒng)模塊[5-6],其最大優(yōu)點是小巧、貼片封裝,模塊引腳如圖5 所示,核心芯片采用德州儀器(TI)CC2530無線單片機,它是用于2.4-GHzIEEE 802.15.4、ZigBee和RF4CE 應用的一個真正的片上系統(tǒng)(SoC)解決方案,能夠以非常低的總的材料成本建立強大的網絡節(jié)點。
圖5 ZigBee核心模塊外接引腳
電源電路包括了穩(wěn)壓電路和電壓采集電路兩部分。由于ZigBee的工作電壓為3.3 V,而普通鋰電池一般具有3.7~4.2 V電壓,本設計中通過低壓差芯片662 K穩(wěn)壓成3.3 V供ZigBee使用[14-15]。圖6所示為無線標簽節(jié)點穩(wěn)壓電路,它具有高紋波抑制率、低功耗、低壓差,具有過流和短路保護的CMOS降壓穩(wěn)壓功能。它能在輸入、輸出電壓差極小的情況下提供250 mA的輸出電流,并且仍能保持良好的調整率。在壓差0.2 V時可輸出90 mA的電流,在壓差0.4 V時可輸出200 mA左右的電流。由于ZigBee終端節(jié)點與OLED屏功耗較低且考慮到體積大小問題,故該輸出電流滿足設計要求。鋰電池選型為常用200 mA·h鋰電池,容量適中,體積較小。通過電壓采集電路和CC2530 的P0_0口進行AD轉換,實時監(jiān)測電池容量,如圖7所示。
圖6 無線標簽節(jié)點穩(wěn)壓電路圖7 電壓采集電路
本系統(tǒng)中選用OLED屏幕作為商品標簽信息的顯示,顯示模塊如圖8所示。OLED是一種不需要背光源的顯示屏幕,它由有機電激發(fā)光二極管所構成,具有對比度高、厚度薄、視角廣、反應速度快、可用于撓曲性面板、使用溫度范圍廣、構造及制程較簡單等優(yōu)異的特性。OLED顯示屏有2種工作模式,即IIC通信和SPI通信,考慮節(jié)省標簽節(jié)點I/O口資源,在本系統(tǒng)中采用IIC通信協(xié)議,OLED電子標簽顯示接口驅動電路如圖9所示。
圖8 電子標簽OLED顯示模塊
圖9 OLED電子標簽顯示接口驅動電路
系統(tǒng)軟件部分的設計包括了ZigBee協(xié)議棧程序和手機端APP程序的設計,手機端通過藍牙與ZigBee協(xié)調器網關建立連接后,進行相關的數(shù)據(jù)通信,協(xié)調器協(xié)議棧將數(shù)據(jù)進行廣播發(fā)送給網絡中的所有標簽節(jié)點[7-10]。
超市智慧無線標簽ZigBee軟件分為協(xié)調器協(xié)議棧程序和終端節(jié)點協(xié)議棧程序。協(xié)調器配合藍牙透傳模塊工作,管理員手機連接上藍牙網關并且經過密碼認證后,在手機APP上發(fā)送相關修改信息,協(xié)調器通過藍牙串口透傳接收數(shù)據(jù),并將數(shù)據(jù)發(fā)送給相對應的節(jié)點。ZigBee標簽節(jié)點在初始化后驅動OLED屏幕,并將上一次存入的商品信息讀出并顯示,若管理員沒有進行修改,則顯示內容不變,否則,ZigBee節(jié)點會將收到最新數(shù)據(jù)存入24C02存儲器中,然后刷新OLED 標簽顯示信息。
超市智慧無線標簽節(jié)點的程序流程如圖10所示,節(jié)點上電后對ZigBee系統(tǒng)初始化,在初始化中會自動搜尋ZigBee網絡并連接上,系統(tǒng)初始化后,進行OLED顯示和存儲器的初始化;ZigBee標簽節(jié)點在存儲器中讀取商品的價格并顯示在OLED屏幕上,當收到ZigBee網絡中協(xié)調器發(fā)送的信息后主動進行核對,如果信息中的ID號與節(jié)點的ID號一致,會將該信息重新覆蓋寫入到存儲器中,并實現(xiàn)OLED顯示信息的更新。
圖10 標簽節(jié)點程序流程圖
超市智慧無線標簽協(xié)調器的程序流程如圖11所示,協(xié)調器上電后會對ZigBee系統(tǒng)初始化,建立一個ZigBee網絡,隨后初始化藍牙模塊。藍牙模塊收到匹配好的手機端數(shù)據(jù),將判斷信息格式是否是正確的協(xié)議格式,若是則廣播給各個超市智慧無線標簽節(jié)點,否則就繼續(xù)等待正確消息。
圖11 標簽協(xié)調器程序流程圖
智慧超市無線標簽節(jié)點接收到協(xié)調器數(shù)據(jù)后與自身ID號對比,匹配成功后將接收到的數(shù)據(jù)存入存儲數(shù)組中,顯示在OLED屏幕上,通過ZigBee模塊的TTL串口也可以看到接收到的數(shù)據(jù)。標簽節(jié)點協(xié)議棧接收函數(shù)中主要的處理程序如下:
voidSampleApp_MessageMSGCB(afIncomingMSGPacket_t *pkt)
{
switch (pkt->clusterId)
case SAMPLEAPP_COM_CLUSTERID://判斷串口透傳CLUSTERID
len = pkt->cmd.Data[0];
Label_Read =pkt->cmd.Data[1]-'0';
if(Label_Read ==Label_ID)//如果不是主機,則接收到數(shù)據(jù)后打印出來。
{
for(i=0;i HalUARTWrite(0,&pkt->cmd.Data[i+1],1); HalUARTWrite(0,"
",1); for(i=0;i<7;i++) price_money[i]=' '; z=len-2; for(i=6,j=len;z>0;i--,j--,z--) { price_money[i]=pkt->cmd.Data[j]-'0'; } display(Label_ID); } if(pkt->cmd.Data[1]=='0'&&pkt->cmd.Data[2]=='0' if(pkt->cmd.Data[1]=='1'&&pkt->cmd.Data[2]=='1' break; } 將相關程序下載到超市智慧無線電子標簽節(jié)點各模塊中,實現(xiàn)效果如圖12所示。 系統(tǒng)手機端管理軟件基于安卓平臺開發(fā),其通過手機端藍牙與超市無線標簽中協(xié)調器的藍牙網關進行無線數(shù)據(jù)傳輸,管理員僅需在APP中填入對應標簽號與需要修改的信息,點擊修改按鈕即可完成任務。 超市商品價格修改手機端程序工作流程如圖13所示。手機打開藍牙并匹配到藍牙模塊后, APP初始化藍牙協(xié)議,若管理員輸入相關信息并點擊發(fā)送,數(shù)據(jù)會通過手機藍牙發(fā)送給協(xié)調器藍牙網關。若手機沒打開藍牙或匹配成功,APP則會打開不成功,以提示用戶開啟藍牙并匹配藍牙透傳模塊[11-13]。 圖13 手機端管理程序工作流程 手機端管理程序APP界面如圖14所示,Public void onResume()是APP程序中藍牙初始化的核心函數(shù),在用戶打開藍牙功能并打開APP后,程序會通過device.createRfcommSocketToServiceRecord(MY_UUID)方法與超市無線標簽中協(xié)調器藍牙模塊的ID地址相匹配,在匹配成功后會提示用戶“藍牙已經連接”,否則就會自動關閉藍牙套接字功能,相關主要代碼如下: 圖14 手機端管理程序界面 @Override public void onResume() { super.onResume(); BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(address); try { btSocket = device.createRfcommSocketToServiceRecord(MY_UUID); } catch (IOException e) { } mBluetoothAdapter.cancelDiscovery(); try { btSocket.connect(); Toast.makeText(MainActivity.this, "藍牙已連接", Toast.LENGTH_SHORT).show(); } catch (IOException e) { try { btSocket.close(); } catch (IOException e2) { } } } 本文針對目前超市在商品貨架標簽管理中存在的問題,提出了一種基于ZigBee和藍牙等物聯(lián)網技術的智慧電子價格標簽系統(tǒng),通過手機端APP將信息發(fā)送給ZigBee協(xié)調器網關,協(xié)調器利用ZigBee網絡將數(shù)據(jù)轉發(fā)給標簽節(jié)點從而實現(xiàn)數(shù)據(jù)的修改,這種設計既節(jié)省了資源,又節(jié)省了人力,在與超市后臺結算數(shù)據(jù)庫對接后,將極大的提高超市貨架商品價格標簽的管理效率。 [1] 堵成蕾,李相朋. 電子價簽系統(tǒng)設計與實現(xiàn)[J].通信電源技術,2016,33(2):103-105. [2] 浦靈敏. 基于物聯(lián)網技術的智能家居實訓教學平臺的設計[J].信息技術,2016(5):84-90. [3] 馬旭平,馬金舟. 超市快速智能結算系統(tǒng)的實現(xiàn)[J].電腦知識與技術,2016,12(14):151-181. [4] 胡宏梅. 基于ZigBee技術的超市貨架商品標簽系統(tǒng)的設計與實現(xiàn)[J].電子技術,2017(3):40-42. [5] 劉火良,楊 森. STM32庫開發(fā)實戰(zhàn)指南[M].北京:機械工業(yè)出版社,2014. [6] 童立鑫,樊孝明. 基于ZigBee的電子標簽交互系統(tǒng)的設計[J].大眾科技,2014,16(178):28-30. [7] 郭振軍,孫應飛. 基于標簽分組的RFID系統(tǒng)防碰撞算法[J].電子與信息學報,2017,39(1):250-254. [8] 張朝暉,劉 悅. 基于標簽ID的RFID系統(tǒng)密鑰無線生成算法[J].計算機應用研究,2017,34(1):261-269. [9] 郭振軍,孫應飛. UHF RFID讀寫器系統(tǒng)的設計與實現(xiàn)[J].中國科學院大學學報,2017,34(1):124-127. [10] 丁 磊,劉清華. 基于ESLS的顧客定位系統(tǒng)的設計與實現(xiàn)[J].計算機工程與應用,2017,網絡出版. [11] 黃錐良,陳劍雄.基于電子標簽的訂單分區(qū)揀選系統(tǒng)設計與實現(xiàn)[J].電子技術應用,2016,42(10):85-91. [12] 包先雨,陳枝楠. 電子標簽與商品條碼的數(shù)據(jù)轉換模型研究[J].合肥工業(yè)大學學報(自然科學版),2015,38(6):783-787. [13] 孔令榮.一種雙頻電子標簽芯片及電源管理電路[J].電子技術應用,2017,43(7):40-46. [14] 廖海波,王 彬.低功耗超高頻電子標簽數(shù)字基帶電路設計[J].微電子學,2015,45(5):573-576. [15] 南敬昌,包曉偉.基于低頻觸發(fā)的高精度RFID定位系統(tǒng)的設計與實現(xiàn)[J].工程設計學報,2017,24(3):225-231.3.2 手機端標簽管理APP的設計
4 結 語