基于 STM32 和 RFID 的电子牲畜地磅设计
基于 STM32 和 RFID 的电子牲畜地磅设计
牲畜在生长过程中体重数据的测定,是养殖场养殖过程中重要的环节,同时又是现场养殖人员苦恼的环节。 传统用磅秤对牲畜进行简单测量,这种人工方式测量准确度很难实际反映牲畜实际的生长速度、饲料利用率等性能指标,更无法对牲畜生长状况进行有效的监控和数据统计分析。 为满足牲畜养殖高度智能化和自动化的需求以及牲畜养殖物联网技术的应用,设计了一种基于 STM32 和 RFID 的电子牲畜地磅。 该地磅可以实现生猪的自动称重、电子标签识别和称重信息的自动上传。
1.系统总体架构
本文设计的电子牲畜秤又可称为体重数据采集系统, 为多套固定设备,分别安装于多个牲篷入口处,每个入口处只容许单只牲畜通过。 当牲畜通过此通道,RFID (Radio Frequency I-dentification)读写器识别牲畜身上的卡号 ,地磅上的压力测重传感器对获取的数据进行滤波, 便可获取到该牲畜当次的体重数据,最后通过 STM32 的串口,将获取的数据以一定的帧格式上传至应用服务器保存。 系统设备布置如图 1 所示。
系统主要功能模块构成:处理器平台、RFID 识别设备、测重传感设备。 系统总体架构图如图 2所示。 各模块功能介绍如下:
1.1 处理器平台
采用 STM32F103 系列单片机作为本系统的主控制器, 其丰富的片内资源、外围接口、低功耗、高性能等特点,完全满足本系统的需求。
1.2 RFID 读写设备
RFID 技术作为构建“物联网”的关键技术近年来受到人们的关注。它是一种无线通信技术,可以通过无线电讯号识别特定目标并读写相关数据, 而无需识别系统与特定目标之间建立机械或者光学接触。 本文采用中电海康 HIK-FR528 设备,其具有良好的多标签处理能力以及抗干扰性能,采用 920MHz 超高频工作模式。
1.3 测重传感设备
测重传感设备由四个 100kg 压力传感器组成,分别布置于秤板的四个角,每个传感器经 HX711 高精度 A / D 转换器芯片,组成可承重 400kg 的测重设备。 如图 3 所示。
2.系统硬件
系统的硬件主要以微控制器为中心, 由电源电路为控制器和 RFID 读写设备分别提供 5V 和 12V 直流电源。 压力传感器则通过 HX711,一款专为高精度电子秤而设计的 24 位A / D 转换器芯片。 数据输出部分,则由单片机的串口经PL2303 转换为 USB 接口 与服务器进行数据通信。 各模块电路已技术成熟,得到广泛应用,此处不再详细阐述。 系统硬件如图 4 所示。
3.系统软件关键部分的设计与实现
3.1 RFID 防碰撞处理。
1)问题描述。 该问题包含两部分:根据 RFID 射频技术的工
作原理可知,当一个有效标签进入读写器的识别区,则读写设备
就实时的获取到标签携带的标识信息,这也意味着不断的有消息
重复被识别;根据图 1 系统设备布置图可知,存在多头牲畜位于同一 RFID 读写器识别有效范围,引起不同卡号数据冲突问题。
2)算法实现。 仔细分析本系统的需求,就可以知道,对于一台的 RFID 设备,在一个时间段内,对单张标签只需获取到一次有效的标签信息即可;而由于 RFID 具备卡距离读写器越近、在有效识读区域时间越长, 读卡器获取该标签信息的频率越高的特点,如图 1 中 ABCD 四处,位于 B 处的读写器获取卡号频率为 B>C>D>A,可判断此处 B 卡才是有效卡号。
综合以上两点,系统定义一个结构体包含:卡号、触发时刻、触发次数三个变量。 以此为数据节点,建立一个消息缓存链表。
每当捕获一条新的 RFID 触发信息, 则根据此卡号从链表头开始查找同卡号的节点,若链表中无此卡号,则直接将此条信息插入链表头部;若在链表中找到此卡号,再根据链表中记录的此卡号捕获时刻与当前捕获时刻进行对比, 若当前时刻距离上一次捕获时刻相隔大于一个有效的间隔时间 t,则删除原链表节点后续部分,将此新的节点插入链表头部;若相隔时间小于一个有效的时间间隔 t, 则增加该卡号的计数变量;RFID 过滤流程图如图 5 所示。
3.2 RFID 防碰撞处理。
1)问题描述。 体重数据的测量,看似简单,然而对于一只体形大,爱乱动的牲畜来说,无法轻易获取一个稳定的有效值。 活体牲畜在称重设备上采集的体重数据会剧烈震荡。
2)算法实现。 要想获取获取一个十分精准的体重数值确为难事, 但经过一定的滤波算法来获取一个较接近于真值的稳定值,确实可以办到的。 称重数据修正算法示意图如图 6 所示。
从图 6 可知,虽然体重数据会存在剧烈波动,但是波动范围却大部分位于其峰值线之间,只要能够将这个区间进一步缩小,所需的数据也就进一步精准了。 本系统的体重数据修正算法描述如下:
每当系统采集到一个体重数据, 则记录体重和涨跌趋势两个参数,每当体重参数到达一个波峰或波谷出现拐点,则将此时的体重值和峰谷状态作为一个链表节点, 存入体重数据缓存链表,依次原则记录整个采集过程中的所有数据。
当一个采集过程完成,系统滤除缓存链表中头尾各 20%的体重数据节点,此时根据缓存链表中的数据,分别求出各个峰谷数据的中值,其有效数据波动范围 L1、L2 范围已缩小。系统再对所求中值进行算数平均,该值作为本次采集最终有效数据。 系统工作流程图如图 7 所示。
4.结束语
设计以 STM32 为核, 结合物联网的相应概念, 采用了 RFID 电子标签身份识别技术,结合阈值滤波 、 终止滤波 、 均值滤波等 图 7 体重数据修正算法流程图算法来获取一个最终数据。 它的需求量和潜在市场很大,涉及傻瓜除了材质、工艺等需改善外,仍需根据实际牲畜质量等设计不同用户需求的产品,拓宽计量生物的范围。