0 导言
跟着人民日子水平的飞速开展, 日子节奏不断加速,冰箱在家庭中起的效果也越来越大,但收拾起来费事, 一起也常常弄不清楚食物是否用完或许忘记某些食物在冰箱而构成各种日子费事。
本规划选用射频辨认(RFID,Radio Frequency Identification)技能,并结合互联网和信息处理技能,树立智能冰箱食物监管体系,完结对冰箱内的食物记载。那么冰箱内食物能够经过查询数据库在冰箱的液晶屏上显现,也能够经过手机发短信到冰箱查询家里的食物,并且经过手机购买冰箱食物,满意未来智能家居的需求。
跟着物联网的开展, 物联网方向智能家居的投入正在敏捷扩展,RFID 标签的制品也不断地下降, 将来或许替代条形码成为食物外包, 并且RFID 标签以其经用、耐久、免保护着称。跟着大多数人的家庭已达到小康水平的条件,渴望着更为便利、省劲得家用电器。而本体系尽管仅仅雏形,但价格适中,并且选用较为前沿的技能,比传统的冰箱更为省劲,为都市人群繁忙的日子供给了快捷,处理很多日子琐碎作业,推向市场将为大部分人所承受。
1 体系整体方案规划
1.1 体系整体方案
依据智能冰箱终端的功用与技能要求状况, 决议选用硬件+软件的体系结构来规划智能冰箱终端,应用层在OS 的基础上依据项目的不同需求来编写,各部分扼要介绍如下:
体系选用依据选用Intel Xscale PXA270 的硬件开发渠道,该渠道是以Intel XScale 架构的ARM 处理器。
嵌入式操作体系选用Windows CE 5.0.Windows CE 是高度模块化的嵌入式操作体系, 用户能够依据自己的设备需求经过Platform Builder 东西进行定制和削减。
应用程序结构:qt-embedded-wince-opensource4.6具有丰厚的规范库,动态引擎,具有Widget 样式表,强壮的图形布画和多线程功用; 在Windows CE 上完结高性能、占位小等特色。
本体系是作为一个家居电器, 经过网络可随时对食物进行查询和上网, 用户能够经过短信了解到冰箱食物信息, 决议是否网上购买。体系整体方案图1 如下。
图1 体系框图
1.2 体系模块
依据规划方案, 咱们将整个体系划分为三个首要模块,如图2 所示。
图2 体系模块图
1.3 模块功用详细描述
(1)食物状况模块。
表1
(2)网上购物模块。
表2
(3)菜谱模块。
表3
2.硬件规划
图3 体系硬件框图
2.1 RFID 读写器、天线模块
ISO18000-6C I 系列读写器是深圳市先施科技股份有限公司自主开发的新一代远距离电子标签读写器,读写器所支撑的标签首要是遵照ISO18000-6C (以下简称6C) 协议的无源电子标签。用户能够运用本读写器对6C 电子标签进行读、写、确定等功用操作。该读写器有主从、守时和触发三种读电子标签的作业办法,衔接主机和操控器的通讯接口有RS-232、RS-485 和Wiegand 接口。能够直接与具有规范韦根W26 或W34接口的操控设备衔接, 也能够经过规范通讯接口与操控器或PC 相连,进行数据通讯与交流;别的还有四路触发信号输入接口。当压力传感器检测冰箱内压力发生改变时, 触发相应的函数使读写器扫描冰箱内的食物标签。一起,该模块供给一次读写多个标签,合适本项目规划。
2.2 GPRS/GSM 模块
该模块选用鸿鹏电子有限公司DU600, 它支撑多种衔接办法,能够完结手机通讯的根本功用。智能冰箱的GPRS 模块只需求短信收发并且解译收到的短信信息,只需求DU600 挑选唤醒办法等候接纳短信并且能够经过解译短信后得到的指令发送操控指令到PXA270完结购买功用和查询功用。
图4 读写器和电子标签的作业示意图
2.3 压力传感器模块
经过89C51 单片机,集成了LCD 模块、串口模块、24 位ADC 模块。该模块首要担任感应压力的改变,经过串口传送中止信号到中控渠道。
压力传感器HX711 选用了海芯科技%&&&&&%专利技能,是一款专为高精度电子秤而规划的24 位A/D转化器芯片。当压力传感器传来改变时分才会发送信号到中心板阐明冰箱内有改变并敞开RFID 扫描。
2.4 控温模块
本模块是依据单片机的制冷操控体系, 实时温度显现,制冷温度可调,最低可达零下10 度。
本模块的温度传感器选用DS18B20.依据DS18B20的通讯协议,主机(单片机)操控DS18B20 完结温度转化有必要经过三个进程:每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM 指令,最终发送RAM 指令, 这样才干对DS18B20 进行预订的操作。复位要求主CPU 将数据线下拉500 微秒,然后开释,当DS18B20 收到信号后等候16~60 微秒左右,后宣布60~240 微秒的存在低脉冲, 主CPU 收到此信号表明复位成功。一起,本模块选用了半导体制冷片,完结模仿冰箱保鲜功用。
图5 控温模块部分原理图
3 软件规划
3.1 体系软件框图
依据Windows CE 5.0 的智能冰箱的软件框图如图6 所示。
图6 软件框图
3.2 应用程序开发
(1)RFID 完结进程。
运用RFID 的API 函数中ReadID 读取在冰箱内的RFID 卡,接连屡次读取RFID 卡。读取期间运用防磕碰算法将读取到的相同的RFID 卡信息扫除,然后将得到的RFID 卡信息保存在数据结构内,以便今后用数据结构跟数据库材料核对。完结读取后,断开RFID 衔接并且开端跟数据库比照材料。
这儿咱们选用了现在广泛的二进制树防磕碰算法。读写器与应答器之间进行数据交流时,往往要传输序列号的部分或许全部位,此刻的传输次序界说为:先发送低位,再发送高位。在读写器或许应答器内部,对数据进行比较时,遵从这样的准则,即按位顺次比较,先比较低位,再比较高位,约好01,依据这个比较次序,在判别巨细时,低位数据优先,即两数A,B 相比较,从低位开端的第一个不持平位的巨细决议了两数的巨细,只有当两个数的全部位均持平时,两数才持平。二进制树算法履行进程中, 读写器会屡次发送把应答器分红两组并且屡次分组后得到仅有的一个应答器指令给应答器, 并且在这个分组进程中指令参数以节点的办法存储起来成一个数据的分叉树,然后构成二进制树.智能冰箱的二进制树防磕碰算法在应答器内进行比较,因为读写器能够有多个,而最终读写器读到的数据发送给应答器, 因而挑选应答器作为防磕碰算法的烧录当地, 这样能够在应答器承受了读写器读到的标签扫除相同后传输标签数据到主控渠道PXA270。
图7 RFID 读取流程图
(2)GPRS 完结进程
当收到数据库比照后恳%&&&&&%物的清单,经过QT 运转以C++代码编写的GPRS 程序。首先从QT 里得到需求发送到客户的信息数据, 然后用OnBnClickedBtnOpen () 装备RS-232 串口衔接装备GPRS, 等候GPRS 衔接成功。
当衔接成功后GPRS 会回来AT+OPENAT=MODE:3# 数据承认衔接成功。然后经过OnBnClicked -BtnSend (string) 这个函数发送信息到GPRS, 然后GPRS 会依据信息内容发送到客户的手机内。发送成功后GPRS 会待机5 分钟等候客户发送回复承认购买。
假使5 分钟内客户没有回复承认购买, 则会主动撤销这次食物的购买并且断开与GPRS 衔接; 若5 分钟内客户回复承认购买, 则程序会回来一个承认购买的信息并且断开GPRS 衔接。
图8 GPRS 算法流程图
(3)压力传感器完结进程当冰箱翻开的时分,PXA270 对压力传感器通电。压力传感器第一次作业时会记载初始时分重力。当冰箱封闭时分, 丈量压力传感器的重力并比照初始时分重力,是否改变,若未改变过则封闭压力传感器并断开压力传感ID 读写器。
图9 压力传感器算法流程图
(4)控温完结进程
因为PXA270 外接插口问题, 温度传感器依据单片机操作,不需求嵌入PAX270 开发板上。温度传感器会伴跟着冰箱的发动而发动。当温度传感器测到的数据发送给单片机时, 单片时机先将冰箱内的温度与设置的冰箱的温度比照, 若高于冰箱的温度则敞开制冷设备。制冷期间也不断丈量先冰箱的温度并且比较设定的冰箱温度值;若小于等于冰箱的设定的温度值则封闭制冷设备。单片机持续承受从温度传感器传来的冰箱的温度并且比较设定的冰箱温度值以预备随时敞开制冷坚持冰箱的温度。当冰箱断电时分单片机才会中止运转直接冰箱通电后再次敞开并从头初始化单片机。
图10 控温算法流程图
(5)网上购物进程
在这一进程中, 咱们指定了冰箱能够直接拜访的物联网超市网站,然后进行对接。因而,咱们本项目中,自己搭建了一个购物网站(ASP),为的便是与该类产品进行交互。经过调用体系自带的头文件wininet.h>中函数HINTERNET InternetOpenUrl()来翻开一个完好的FTP、Gopher 或HTTP 网址的资源, 然后能够获取产品相关信息。
别的,用户需求登录购物网站才干完结下单操作,这儿, 咱们默许每台智能冰箱都配有一个专用的账号来绑定登录,经过POST 办法提交页面。当冰箱登录成功后,能够完结购买产品并下单。
(6)数据库完结
经过SQLite, 冰箱保存着食物的各种材料以便于查找。
表4 NowTab1
NowTab1 保存着上一次冰箱的食物表格, 便利于与这次RFID 读取到得数据比对其间的改变,并且恰当删去或许增加NowTab1 数据以便下一次的比照, 也能够显现呈现冰箱内有的食物。
表5 HistoryTab3
HistoryTab3 保存着从冰箱从前存放过的食物,以便于客户能够查找从前买过的食物。
表6 SureTab2
SureTab2 保存着冰箱根本需求的食物表。这表是为了承认假如NowTab1 表的食物短少一定量时跟SureTab2 比照,某食物短少了超越界限时,就会发动购物程序并且购买短少的食物避免冰箱食物短少。
表7 NameTab4
NameTab4 保存着与编号相对应的称号。NameTab4是为了便利从RFID 读到的信息中得出此食物的称号。
若查到不到称号, 则能够经过编号网上查找到称号并且增加到AddrTab5 表中以便今后查找之用。
表8 AddrTab5
AddrTab5 能够依据地址编号得出地址名。AddrTab5是为了便利从RFID 读到的信息中得出此食物的出产地址。若查到不到地址,则能够经过地址编号网上查找到地址并且增加到AddrTab5 表中以便今后查找之用。
表9 Cookbook5
能够依据Cookbook5 先列出冰箱能够烹饪的食材跟菜谱。Cookbook5 是数据库存储的菜谱,便利从冰箱现有食材中查找到能够烹饪的菜谱。Cookbook5 能够经过网上下载菜谱保存到数据库中。
表10 RDCookbook6
能够经过RDCookbook6 得到引荐的食谱。RDCookbook6是冰箱现有食材依据Cookbook5 的菜谱得呈现在最有或许烹饪的的菜谱罗列出来。
(7)GUI 界面规划
本体系GUI 选用QTE 完结。
①扼要规划概述在主界面的左面入放置了一个groupBox 控件,里边加入了四个pushBotton,它们别离代表:主界面、食物状况、网上购物和食谱引荐。主界面的右边放置的是stackedWidget 控件, 总共增加了五个页面来完结对不同功用模块的显现。经过信号和槽衔接按钮完结相应功用界面的跳转。
②首要规划完结办法。
●躲藏标题栏。
his->setWindowFlags(Qt::FramelessWindowHint);
this->setWindowModality(Qt::ApplicationModal);
●日历的显现。
//显现日期
curFile=QDateTime::currentDateTime()。toString(dd);
ui->label_9->setStyleSheet(font-size:30px);
ui->label_9->setText(curFile);
//显现年月
curFileyear=QDateTime::currentDateTime()。toString(2011-MM);
ui->label_8->setStyleSheet(font-size:18px);
ui->label_8->setText(curFileyear);
●动态更新时刻。
QTimer *timer=new QTimer();
connect(timer,SIGNAL(timeout()),this,SLOT(timerUpDate()));
timer->start(1000);
void icebox::timerUpDate()
{
curFiletime=QDateTime::currentDateTime()。toString(hh:mm:ss);
ui->label_7->setText(curFiletime);
}
4 结语
RFID 冰箱能够发挥射频辨认技能的长处,为现代家庭的健康日子供给保证,减少了社会资源糟蹋,契合今世社会绿色环保的理念,能够应用于智能家居。可是现在,超市的产品还没运用RFID 标签,所以每相同食物都需求加贴标签,将会是一个繁琐的进程,并且标签费用也或许会超越食物自身, 这是智能冰箱投入有用遇到的难题。可是跟着超市物流RFID 技能的遍及,标签价格的进一步下降,智能冰箱必然会走进每个家庭,成为智能家居的主角。