浦灵敏, 姜子祥
(苏州健雄职业技术学院 电气工程学院, 江苏 太仓 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 结 语