吳麗娟 曾石峭 成蓮 陳子凡
?
基于物聯網平臺的食品實驗室溫度監測系統*
吳麗娟 曾石峭 成蓮 陳子凡
(河源市食品檢驗所)
為實現食品實驗室溫度監測的自動化和智能化,研究一種基于OneNET物聯網的溫度監測系統,采用樹莓派3B和DS18B20溫度檢測器,將采集到的溫度數據通過無線網絡,推送到物聯網平臺,用戶可通過互聯網或手機APP查看溫度數據。實驗結果表明:系統讀取的溫度數據誤差在4.5%以內,能夠滿足食品實驗室溫度監測使用要求。
溫度監測;食品實驗室;物聯網
中小型食品實驗室一般按照溫度控制操作規程,由工作人員定時查看溫度計,并記錄溫度數據。有些大型實驗室利用自動化溫度監測系統實時檢測溫度變化。黃建輝提出使用AT89S52單片機設計實驗室溫度監測系統,采用LED屏幕輸出溫度,設置報警功能[3]。朱蘭采用基于ZigBee技術的CC2530芯片,構建無線溫度監測平臺,利用SQL數據庫保存數據,并將各節點數據上傳保存在平臺主機[4]。茆玉辰等人提出使用樹莓派與LabVIEW智能實驗室系統在局域網內實時連接,對實驗室進行監控和管理[5]。
本文提出一種基于物聯網的樹莓派溫度監測系統,可以跨平臺查看實時數據,具有數據保存和查詢功能。
樹莓派第三代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所示。
樹莓派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接線圖
大部分的云服務系統,在數據推送后,由數據庫軟件保存和分析數據。但由于數據庫軟件界面不夠直觀,如果在Web網頁圖形化顯示,還需要額外的Web編程。OneNET平臺的應用編輯模式,提供了簡單實用的界面設計程序,并且可以對坐標軸進行自定義修改,便于觀察溫度變化。
登錄OneNET平臺,新建立一個產品,填入溫度監測裝置的信息,并添加溫度監測設備,創建數據流、定義數據流的上傳模式,對每個數據流進行命名和分類。完成產品信息模塊填寫后,進入APIkey設置,為推送數據的設備注冊一個APIkey,該信息是設備在服務器上的唯一識別號,數據流通過APIkey認證上傳至平臺。進入應用編輯器編輯頁面,添加應用曲線圖到編輯區域,設置關聯樹莓派設備,選用溫度數據流,調整軸顯示的數據量為360,其余數值默認,保存退出。
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 溫度數據曲線圖
將DS18B20溫度傳感器放入樣品保存冰箱,冰箱放有計量合格的玻璃溫度計。每隔30 min讀取溫度監測系統和溫度計的溫度,記錄10個測量值進行對比,如表1所示。

表1 溫度測量數據對比表
由表1可知:溫度監測系統測量值的相對誤差小于4.5%,測量精度符合實驗室10%使用要求。
食品實驗室溫度監測系統使用溫度傳感器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)