浦靈敏, 姜子祥
(蘇州健雄職業技術學院 電氣工程學院, 江蘇 太倉 215411)
傳統超市大多使用紙質標簽來顯示商品的信息,人們在超市的各個貨架上都能看到這些小標簽的存在,它一方面為顧客提供了基礎信息,也為超市管理帶來了一定的便捷。然而每當商品價格產生變化,商品信息標簽也需要被更換掉,由于傳統標簽通常為紙質標簽,大量使用會產生很多的浪費,同時維護管理標簽需要大量的人力,容易出錯和丟失,不適合頻繁修改,這給超市管理部門和顧客的購物體驗帶來了不良影響[1]。
針對存在的問題,本文提出一種基于物聯網技術的智慧超市電子標簽系統,通過ZigBee技術和手機APP實現電子標簽顯示信息的無線修改,僅需要一臺協調器網關就可以控制同一個ZigBee網絡中的所有標簽節點,完成信息的更新,通過OLED低功耗屏幕顯示價格等信息,方便了超市管理人員進行價格等信息的實時維護。理論上,ZigBee最大連接數量為65 000個,這個數量基本滿足超市貨品種類需求。
如圖1所示,超市智慧電子標簽系統分為協調器網關、節點和手機端管理軟件。協調器網關通過建立的ZigBee網絡將數據廣播給各個ZigBee標簽節點,各個節點收到數據后與自己ID號進行對比,核對成功的標簽自動更改商品信息[2]。

圖1 超市智慧電子標簽系統設計框圖
其中,協調器網關是由ZigBee協調器和藍牙串口透傳模塊所構成,管理員通過手機APP將更新信息由藍牙串口透傳模塊轉發進行控制,如圖2所示;電子標簽主要由ZigBee終端節點、33 mm(1.3吋)OLED屏幕、24C02存儲器和鋰電池所構成,如圖3所示。

圖2 協調器網關組成框圖圖3 標簽節點組成框圖
超市智慧電子價格標簽系統的硬件設計主要為ZigBee無線標簽節點的設計[3],相關的硬件核心包括鋰電池接口電路、復位電路、ZigBee核心模塊、下載電路、穩壓電路、OLED屏驅動電路和電壓采集電路等[4],如圖4所示。電池接口為3.7 V鋰電池接口;復位電路可在ZigBee網絡出現問題時進行復位;ZigBee核心模塊為CC2530最小系統電路,通過JTAG口下載標簽節點程序,每個節點下載前都需要在程序中進行ID配置,以免出現標簽重名;穩壓采用662 K穩壓電路;OLED屏驅動電路采用I2C接口。

圖4 超市智慧電子標簽節點硬件框圖
本系統中ZigBee標簽節點采用E18-MS1 ZigBee最小系統模塊[5-6],其最大優點是小巧、貼片封裝,模塊引腳如圖5 所示,核心芯片采用德州儀器(TI)CC2530無線單片機,它是用于2.4-GHzIEEE 802.15.4、ZigBee和RF4CE 應用的一個真正的片上系統(SoC)解決方案,能夠以非常低的總的材料成本建立強大的網絡節點。

圖5 ZigBee核心模塊外接引腳
電源電路包括了穩壓電路和電壓采集電路兩部分。由于ZigBee的工作電壓為3.3 V,而普通鋰電池一般具有3.7~4.2 V電壓,本設計中通過低壓差芯片662 K穩壓成3.3 V供ZigBee使用[14-15]。圖6所示為無線標簽節點穩壓電路,它具有高紋波抑制率、低功耗、低壓差,具有過流和短路保護的CMOS降壓穩壓功能。它能在輸入、輸出電壓差極小的情況下提供250 mA的輸出電流,并且仍能保持良好的調整率。在壓差0.2 V時可輸出90 mA的電流,在壓差0.4 V時可輸出200 mA左右的電流。由于ZigBee終端節點與OLED屏功耗較低且考慮到體積大小問題,故該輸出電流滿足設計要求。鋰電池選型為常用200 mA·h鋰電池,容量適中,體積較小。通過電壓采集電路和CC2530 的P0_0口進行AD轉換,實時監測電池容量,如圖7所示。

圖6 無線標簽節點穩壓電路圖7 電壓采集電路
本系統中選用OLED屏幕作為商品標簽信息的顯示,顯示模塊如圖8所示。OLED是一種不需要背光源的顯示屏幕,它由有機電激發光二極管所構成,具有對比度高、厚度薄、視角廣、反應速度快、可用于撓曲性面板、使用溫度范圍廣、構造及制程較簡單等優異的特性。OLED顯示屏有2種工作模式,即IIC通信和SPI通信,考慮節省標簽節點I/O口資源,在本系統中采用IIC通信協議,OLED電子標簽顯示接口驅動電路如圖9所示。

圖8 電子標簽OLED顯示模塊

圖9 OLED電子標簽顯示接口驅動電路
系統軟件部分的設計包括了ZigBee協議棧程序和手機端APP程序的設計,手機端通過藍牙與ZigBee協調器網關建立連接后,進行相關的數據通信,協調器協議棧將數據進行廣播發送給網絡中的所有標簽節點[7-10]。
超市智慧無線標簽ZigBee軟件分為協調器協議棧程序和終端節點協議棧程序。協調器配合藍牙透傳模塊工作,管理員手機連接上藍牙網關并且經過密碼認證后,在手機APP上發送相關修改信息,協調器通過藍牙串口透傳接收數據,并將數據發送給相對應的節點。ZigBee標簽節點在初始化后驅動OLED屏幕,并將上一次存入的商品信息讀出并顯示,若管理員沒有進行修改,則顯示內容不變,否則,ZigBee節點會將收到最新數據存入24C02存儲器中,然后刷新OLED 標簽顯示信息。
超市智慧無線標簽節點的程序流程如圖10所示,節點上電后對ZigBee系統初始化,在初始化中會自動搜尋ZigBee網絡并連接上,系統初始化后,進行OLED顯示和存儲器的初始化;ZigBee標簽節點在存儲器中讀取商品的價格并顯示在OLED屏幕上,當收到ZigBee網絡中協調器發送的信息后主動進行核對,如果信息中的ID號與節點的ID號一致,會將該信息重新覆蓋寫入到存儲器中,并實現OLED顯示信息的更新。

圖10 標簽節點程序流程圖
超市智慧無線標簽協調器的程序流程如圖11所示,協調器上電后會對ZigBee系統初始化,建立一個ZigBee網絡,隨后初始化藍牙模塊。藍牙模塊收到匹配好的手機端數據,將判斷信息格式是否是正確的協議格式,若是則廣播給各個超市智慧無線標簽節點,否則就繼續等待正確消息。

圖11 標簽協調器程序流程圖
智慧超市無線標簽節點接收到協調器數據后與自身ID號對比,匹配成功后將接收到的數據存入存儲數組中,顯示在OLED屏幕上,通過ZigBee模塊的TTL串口也可以看到接收到的數據。標簽節點協議棧接收函數中主要的處理程序如下:
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)//如果不是主機,則接收到數據后打印出來。
{
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; } 將相關程序下載到超市智慧無線電子標簽節點各模塊中,實現效果如圖12所示。 系統手機端管理軟件基于安卓平臺開發,其通過手機端藍牙與超市無線標簽中協調器的藍牙網關進行無線數據傳輸,管理員僅需在APP中填入對應標簽號與需要修改的信息,點擊修改按鈕即可完成任務。 超市商品價格修改手機端程序工作流程如圖13所示。手機打開藍牙并匹配到藍牙模塊后, APP初始化藍牙協議,若管理員輸入相關信息并點擊發送,數據會通過手機藍牙發送給協調器藍牙網關。若手機沒打開藍牙或匹配成功,APP則會打開不成功,以提示用戶開啟藍牙并匹配藍牙透傳模塊[11-13]。 圖13 手機端管理程序工作流程 手機端管理程序APP界面如圖14所示,Public void onResume()是APP程序中藍牙初始化的核心函數,在用戶打開藍牙功能并打開APP后,程序會通過device.createRfcommSocketToServiceRecord(MY_UUID)方法與超市無線標簽中協調器藍牙模塊的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和藍牙等物聯網技術的智慧電子價格標簽系統,通過手機端APP將信息發送給ZigBee協調器網關,協調器利用ZigBee網絡將數據轉發給標簽節點從而實現數據的修改,這種設計既節省了資源,又節省了人力,在與超市后臺結算數據庫對接后,將極大的提高超市貨架商品價格標簽的管理效率。 [1] 堵成蕾,李相朋. 電子價簽系統設計與實現[J].通信電源技術,2016,33(2):103-105. [2] 浦靈敏. 基于物聯網技術的智能家居實訓教學平臺的設計[J].信息技術,2016(5):84-90. [3] 馬旭平,馬金舟. 超市快速智能結算系統的實現[J].電腦知識與技術,2016,12(14):151-181. [4] 胡宏梅. 基于ZigBee技術的超市貨架商品標簽系統的設計與實現[J].電子技術,2017(3):40-42. [5] 劉火良,楊 森. STM32庫開發實戰指南[M].北京:機械工業出版社,2014. [6] 童立鑫,樊孝明. 基于ZigBee的電子標簽交互系統的設計[J].大眾科技,2014,16(178):28-30. [7] 郭振軍,孫應飛. 基于標簽分組的RFID系統防碰撞算法[J].電子與信息學報,2017,39(1):250-254. [8] 張朝暉,劉 悅. 基于標簽ID的RFID系統密鑰無線生成算法[J].計算機應用研究,2017,34(1):261-269. [9] 郭振軍,孫應飛. UHF RFID讀寫器系統的設計與實現[J].中國科學院大學學報,2017,34(1):124-127. [10] 丁 磊,劉清華. 基于ESLS的顧客定位系統的設計與實現[J].計算機工程與應用,2017,網絡出版. [11] 黃錐良,陳劍雄.基于電子標簽的訂單分區揀選系統設計與實現[J].電子技術應用,2016,42(10):85-91. [12] 包先雨,陳枝楠. 電子標簽與商品條碼的數據轉換模型研究[J].合肥工業大學學報(自然科學版),2015,38(6):783-787. [13] 孔令榮.一種雙頻電子標簽芯片及電源管理電路[J].電子技術應用,2017,43(7):40-46. [14] 廖海波,王 彬.低功耗超高頻電子標簽數字基帶電路設計[J].微電子學,2015,45(5):573-576. [15] 南敬昌,包曉偉.基于低頻觸發的高精度RFID定位系統的設計與實現[J].工程設計學報,2017,24(3):225-231.
3.2 手機端標簽管理APP的設計


4 結 語