基于物联网平台的食品实验室温度监测系统*
2018-08-30吴丽娟曾石峭成莲陈子凡
吴丽娟 曾石峭 成莲 陈子凡
基于物联网平台的食品实验室温度监测系统*
吴丽娟 曾石峭 成莲 陈子凡
(河源市食品检验所)
为实现食品实验室温度监测的自动化和智能化,研究一种基于OneNET物联网的温度监测系统,采用树莓派3B和DS18B20温度检测器,将采集到的温度数据通过无线网络,推送到物联网平台,用户可通过互联网或手机APP查看温度数据。实验结果表明:系统读取的温度数据误差在4.5%以内,能够满足食品实验室温度监测使用要求。
温度监测;食品实验室;物联网
0 引言
中小型食品实验室一般按照温度控制操作规程,由工作人员定时查看温度计,并记录温度数据。有些大型实验室利用自动化温度监测系统实时检测温度变化。黄建辉提出使用AT89S52单片机设计实验室温度监测系统,采用LED屏幕输出温度,设置报警功能[3]。朱兰采用基于ZigBee技术的CC2530芯片,构建无线温度监测平台,利用SQL数据库保存数据,并将各节点数据上传保存在平台主机[4]。茆玉辰等人提出使用树莓派与LabVIEW智能实验室系统在局域网内实时连接,对实验室进行监控和管理[5]。
本文提出一种基于物联网的树莓派温度监测系统,可以跨平台查看实时数据,具有数据保存和查询功能。
1 检测原理
树莓派第三代B型(以下简称为树莓派3B),安装Debian Linux系统,使用16 GB的TF内存卡[6]。检测程序采用Debian Linux的Python 3.0编写。
温度传感器DS18B20通过GPIO总线连接到树莓派3B;分布在实验室4、5层各监测点的树莓派3B通过自带的WiFi网卡接入无线路由器登录互联网;温度监测程序定时向OneNET推送温度数据,温度数据以数据流的模式存储于OneNET平台。工作人员可以通过浏览器进入物联网平台,也可以使用手机登录OneNET平台App查看数据。检测原理图如图1所示。
2 系统设计
2.1 硬件设计
树莓派3B为一个裸露的PCB主板,用作调试和演示,直观方便,但在实验室的复杂条件下,则需要一个保护外壳,提高稳定性和安全性。密闭式的保护外壳只保留电源接口和探头接口,电源线和数据线接合处采用硅胶套进行密封,使树莓派与实验室环境隔绝。树莓派3B使用mini USB口便于手机充电器供电。温度探头连接采用3节式3.5 mm插头母座,更换温度探头方便,数据传输稳定。
不锈钢管封装的DS18B20传感器有3个引脚接线,地线、供电线和数据线。根据DS18B20的使用说明,分别与树莓派GPIO总线的Ground、GPIO4和3V3引脚连接,线路图如图2所示。由于DS18B20的输出信号电压较高,连接在树莓派GPIO总线上会造成损坏[7],因此在供电线与数据线之间接入电压拉低电阻,阻值为4.7 kΩ。
图1 检测原理图
图2 DS18B20与树莓派3B接线图
2.2 OneNET平台配置
大部分的云服务系统,在数据推送后,由数据库软件保存和分析数据。但由于数据库软件界面不够直观,如果在Web网页图形化显示,还需要额外的Web编程。OneNET平台的应用编辑模式,提供了简单实用的界面设计程序,并且可以对坐标轴进行自定义修改,便于观察温度变化。
登录OneNET平台,新建立一个产品,填入温度监测装置的信息,并添加温度监测设备,创建数据流、定义数据流的上传模式,对每个数据流进行命名和分类。完成产品信息模块填写后,进入APIkey设置,为推送数据的设备注册一个APIkey,该信息是设备在服务器上的唯一识别号,数据流通过APIkey认证上传至平台。进入应用编辑器编辑页面,添加应用曲线图到编辑区域,设置关联树莓派设备,选用温度数据流,调整轴显示的数据量为360,其余数值默认,保存退出。
2.3 树莓派温度监测程序编制
2.3.1协议选择
温度数据上传模式由物联网平台支持的协议决定,OneNET平台支持EDP、MQTT、HTT和TCP等透传协议,且温度监测数据不需要对数据进行反馈操作,本文采用HTTP协议对数据进行封装传输。HTTP协议可支持上传整数型、浮点数、字符串、JSON格式和二进制共5种数据。为方便计算和读取数据精度要求,本文采用浮点数进行传输。
2.3.2温度读取程序
在树莓派3B的TF内存卡安装最新版的Debian Linux系统,启动系统后,打开WiFi接入互联网。在python命令行界面,执行系统更新命令:
apt-get update
apt-get upgrade
如果没有更新有可能会导致命令错误。
安装DS18B20传感器的驱动模块,输入以下命令:
sudo modprobe w1-gpio
sudo modprobe w1-therm
进入系统目录查看连接的DS18B20是否被识别
cd /sys/bus/w1/devices/
ls
如果安装成功会出现28-xxxxxxxxxxx的目录。
在根目录下,建立一个temp.py文件,根据DS18B20的说明,编写如下语句读取探头的温度:
tfile = open("/sys/bus/w1/devices/28-xxxxxxxxxxx/w1_slave")
text = tfile.read()
tfile.close()
secondline = text.split(" ")[1]
tempdata = secondline.split(" ")[9]
temp = float(tempdata[2:])
temp = temp / 1000
print "温度: %.1f" %temp
运行该程序,如果返回温度数据,则说明温度读取成功。
2.3.3数据推送程序
参考设备HTTP协议上传数据到OneNET接口规范,下载基本格式模板进行修改,以适合树莓派上温度数据上传。新建POST.PY,输入以下语句:
# -*- coding:utf-8 -*-
import json
import datetime
import urllib2
APIKEY = 'XXXXXXXXXXXX' #语句中的X为网站注册时提供的APIKEY
def get_temp():
temp = 25 #运作成功后,将该段改成温度读取程序的语句
return temp
def http_put():
temp = get_temp()
Cur Time = datetime.datetime.now()
url='http://api.heclouds.com/devices/YYYYYYYY/ZZZZ' # Y为网站中个人设备的编号,Z为路径名
values={'datastreams':[{"id":"temp","ZZZZ":[{"at":CurTime.isoformat(),"value":temp}]}]} # ZZZZ为网站中个人设备的路径
print "时间:%s" %CurTime.isoformat()
print "温度值: %.1f" %temp
jdata = json.dumps(values)
print jdata
request = urllib2.Request(url, jdata)
request.add_header('api-key', APIKEY)
request.get_method = lambda:'POST'
request = urllib2.urlopen(request)
return request.read()
while True:
time.sleep(5)
resp = http_put()
print "上传结果: %s" %resp
time.sleep(5)
运行该程序,如果最后返回上传结果数值25,则数据上传程序成功。
2.3.4环境设置
利用树莓派的系统管理员账号PI登录系统,运行计划任务程序,输入语句:
crontab –l
默认使用nano程序打开,进入计划任务界面,按照文件里说明,编写自动执行语句。
*/5 * * * * /usr/bin/python
/home/pi/POST.py >/dev/null 2>&1
保存后退出nano,重启树莓派3B。
使用浏览器登录OneNET,可以看到每隔5 min就有温度数据推送到服务器上,在设置好的曲线图上生成温度曲线。6月7日14点至15点间监测到的数据如图3所示。
图3 温度数据曲线图
2.4 数据验证
将DS18B20温度传感器放入样品保存冰箱,冰箱放有计量合格的玻璃温度计。每隔30 min读取温度监测系统和温度计的温度,记录10个测量值进行对比,如表1所示。
表1 温度测量数据对比表
由表1可知:温度监测系统测量值的相对误差小于4.5%,测量精度符合实验室10%使用要求。
3 结论
食品实验室温度监测系统使用温度传感器DS18B20监测温度,监测精度满足使用要求。利用树莓派3B将数据上传到互联网云服务器,可以使用网页和手机APP查看实时温度,使得实验室温度监测工作更加自动化和智能化,节省大量的人力资源。在后续开发过程中,可添加控制功能,连接无线电源开关、空调、抽湿机和加热器等,达到控制温度、湿度的需要;在触发条件功能上,可连接火焰探测器、烟雾探测器、有毒气体探测器等,形成检测报警功能。
[1] 周菁楠.远程对医院实验室温度优化监控仿真[J].计算机仿真,2017,34(5):327-330.
[2] 中国合格评定国家认可委员会.CNAS-CL01: 2006检测和校准实验室能力认可准则[EB/OL]. https://www.cnas.org.cn/ rkgf/sysrk/jbzz/2015/06/868982.shtml.
[3] 黄建辉.实验室温度监测系统的设计[J].海峡科学,2017 (2):31-32.
[4] 朱兰.一种基于CC2530的实验室设备温度监测系统设计[J].江苏科技信息,2016(14):72-74.
[5] 茆玉辰,张宸烽,史洪玮.基于LabVIEW的智慧实验室的设计与实现[J].电脑知识与技术,2017,13(16):46-48.
[6] 张利民,邹益民.一种基于树莓派及Yeelink的温室控制实验装置[J].工业仪表与自动化装置,2017(6):108-111,127.
[7] 王宁,张雷,张征.FatFS在离线温度监控系统上的应用[J].电子世界,2014(12):379-380.
Food Laboratory Temperature Monitoring System Based on Internet of Things Platform
Wu Lijuan Zeng Shiqiao Cheng Lian Chen Zifan
(Food Inspection Institute of Heyuan)
In order to achieve automation and intellectualization of temperature monitoring in food laboratories, a temperature monitoring system based on OneNET Internet of things is studied. By using the DS18B20 temperature detector in stainless steel and Raspberry PI 3B, the temperature data was collected and pushed to the Internet of things on the Internet by wireless network, and the users can use web page or mobile phone to check the temperature data. The error of the temperature data read by this system is within 4.5%, it can meet the requirement of temperature monitoring in food laboratory.
Temperature Monitoring; Food Laboratory; Internet of Things
吴丽娟,女,1976年生,大学本科,主要研究方向:食品实验室管理。
陈子凡(通信作者),男,1981 年生,大学本科,高级工程师,主要研究方向:实验室仪器分析。E-mail:chenzifan@21cn.com
广东省河源市社会发展科技计划(河科000847)