基于物联网的智能冰箱设计与实现
图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 读取流程图
评论