吳麗娟 曾石峭 成蓮 陳子凡
?
基于物聯(lián)網(wǎng)平臺的食品實驗室溫度監(jiān)測系統(tǒng)*
吳麗娟 曾石峭 成蓮 陳子凡
(河源市食品檢驗所)
為實現(xiàn)食品實驗室溫度監(jiān)測的自動化和智能化,研究一種基于OneNET物聯(lián)網(wǎng)的溫度監(jiān)測系統(tǒng),采用樹莓派3B和DS18B20溫度檢測器,將采集到的溫度數(shù)據(jù)通過無線網(wǎng)絡,推送到物聯(lián)網(wǎng)平臺,用戶可通過互聯(lián)網(wǎng)或手機APP查看溫度數(shù)據(jù)。實驗結果表明:系統(tǒng)讀取的溫度數(shù)據(jù)誤差在4.5%以內,能夠滿足食品實驗室溫度監(jiān)測使用要求。
溫度監(jiān)測;食品實驗室;物聯(lián)網(wǎng)
中小型食品實驗室一般按照溫度控制操作規(guī)程,由工作人員定時查看溫度計,并記錄溫度數(shù)據(jù)。有些大型實驗室利用自動化溫度監(jiān)測系統(tǒng)實時檢測溫度變化。黃建輝提出使用AT89S52單片機設計實驗室溫度監(jiān)測系統(tǒng),采用LED屏幕輸出溫度,設置報警功能[3]。朱蘭采用基于ZigBee技術的CC2530芯片,構建無線溫度監(jiān)測平臺,利用SQL數(shù)據(jù)庫保存數(shù)據(jù),并將各節(jié)點數(shù)據(jù)上傳保存在平臺主機[4]。茆玉辰等人提出使用樹莓派與LabVIEW智能實驗室系統(tǒng)在局域網(wǎng)內實時連接,對實驗室進行監(jiān)控和管理[5]。
本文提出一種基于物聯(lián)網(wǎng)的樹莓派溫度監(jiān)測系統(tǒng),可以跨平臺查看實時數(shù)據(jù),具有數(shù)據(jù)保存和查詢功能。
樹莓派第三代B型(以下簡稱為樹莓派3B),安裝Debian Linux系統(tǒng),使用16 GB的TF內存卡[6]。檢測程序采用Debian Linux的Python 3.0編寫。
溫度傳感器DS18B20通過GPIO總線連接到樹莓派3B;分布在實驗室4、5層各監(jiān)測點的樹莓派3B通過自帶的WiFi網(wǎng)卡接入無線路由器登錄互聯(lián)網(wǎng);溫度監(jiān)測程序定時向OneNET推送溫度數(shù)據(jù),溫度數(shù)據(jù)以數(shù)據(jù)流的模式存儲于OneNET平臺。工作人員可以通過瀏覽器進入物聯(lián)網(wǎng)平臺,也可以使用手機登錄OneNET平臺App查看數(shù)據(jù)。檢測原理圖如圖1所示。
樹莓派3B為一個裸露的PCB主板,用作調試和演示,直觀方便,但在實驗室的復雜條件下,則需要一個保護外殼,提高穩(wěn)定性和安全性。密閉式的保護外殼只保留電源接口和探頭接口,電源線和數(shù)據(jù)線接合處采用硅膠套進行密封,使樹莓派與實驗室環(huán)境隔絕。樹莓派3B使用mini USB口便于手機充電器供電。溫度探頭連接采用3節(jié)式3.5 mm插頭母座,更換溫度探頭方便,數(shù)據(jù)傳輸穩(wěn)定。
不銹鋼管封裝的DS18B20傳感器有3個引腳接線,地線、供電線和數(shù)據(jù)線。根據(jù)DS18B20的使用說明,分別與樹莓派GPIO總線的Ground、GPIO4和3V3引腳連接,線路圖如圖2所示。由于DS18B20的輸出信號電壓較高,連接在樹莓派GPIO總線上會造成損壞[7],因此在供電線與數(shù)據(jù)線之間接入電壓拉低電阻,阻值為4.7 kΩ。
圖1 檢測原理圖
圖2 DS18B20與樹莓派3B接線圖
大部分的云服務系統(tǒng),在數(shù)據(jù)推送后,由數(shù)據(jù)庫軟件保存和分析數(shù)據(jù)。但由于數(shù)據(jù)庫軟件界面不夠直觀,如果在Web網(wǎng)頁圖形化顯示,還需要額外的Web編程。OneNET平臺的應用編輯模式,提供了簡單實用的界面設計程序,并且可以對坐標軸進行自定義修改,便于觀察溫度變化。
登錄OneNET平臺,新建立一個產品,填入溫度監(jiān)測裝置的信息,并添加溫度監(jiān)測設備,創(chuàng)建數(shù)據(jù)流、定義數(shù)據(jù)流的上傳模式,對每個數(shù)據(jù)流進行命名和分類。完成產品信息模塊填寫后,進入APIkey設置,為推送數(shù)據(jù)的設備注冊一個APIkey,該信息是設備在服務器上的唯一識別號,數(shù)據(jù)流通過APIkey認證上傳至平臺。進入應用編輯器編輯頁面,添加應用曲線圖到編輯區(qū)域,設置關聯(lián)樹莓派設備,選用溫度數(shù)據(jù)流,調整軸顯示的數(shù)據(jù)量為360,其余數(shù)值默認,保存退出。
2.3.1協(xié)議選擇
溫度數(shù)據(jù)上傳模式由物聯(lián)網(wǎng)平臺支持的協(xié)議決定,OneNET平臺支持EDP、MQTT、HTT和TCP等透傳協(xié)議,且溫度監(jiān)測數(shù)據(jù)不需要對數(shù)據(jù)進行反饋操作,本文采用HTTP協(xié)議對數(shù)據(jù)進行封裝傳輸。HTTP協(xié)議可支持上傳整數(shù)型、浮點數(shù)、字符串、JSON格式和二進制共5種數(shù)據(jù)。為方便計算和讀取數(shù)據(jù)精度要求,本文采用浮點數(shù)進行傳輸。
2.3.2溫度讀取程序
在樹莓派3B的TF內存卡安裝最新版的Debian Linux系統(tǒng),啟動系統(tǒng)后,打開WiFi接入互聯(lián)網(wǎng)。在python命令行界面,執(zhí)行系統(tǒng)更新命令:
apt-get update
apt-get upgrade
如果沒有更新有可能會導致命令錯誤。
安裝DS18B20傳感器的驅動模塊,輸入以下命令:
sudo modprobe w1-gpio
sudo modprobe w1-therm
進入系統(tǒng)目錄查看連接的DS18B20是否被識別
cd /sys/bus/w1/devices/
ls
如果安裝成功會出現(xiàn)28-xxxxxxxxxxx的目錄。
在根目錄下,建立一個temp.py文件,根據(jù)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
運行該程序,如果返回溫度數(shù)據(jù),則說明溫度讀取成功。
2.3.3數(shù)據(jù)推送程序
參考設備HTTP協(xié)議上傳數(shù)據(jù)到OneNET接口規(guī)范,下載基本格式模板進行修改,以適合樹莓派上溫度數(shù)據(jù)上傳。新建POST.PY,輸入以下語句:
# -*- coding:utf-8 -*-
import json
import datetime
import urllib2
APIKEY = 'XXXXXXXXXXXX' #語句中的X為網(wǎng)站注冊時提供的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為網(wǎng)站中個人設備的編號,Z為路徑名
values={'datastreams':[{"id":"temp","ZZZZ":[{"at":CurTime.isoformat(),"value":temp}]}]} # ZZZZ為網(wǎng)站中個人設備的路徑
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)
運行該程序,如果最后返回上傳結果數(shù)值25,則數(shù)據(jù)上傳程序成功。
2.3.4環(huán)境設置
利用樹莓派的系統(tǒng)管理員賬號PI登錄系統(tǒng),運行計劃任務程序,輸入語句:
crontab –l
默認使用nano程序打開,進入計劃任務界面,按照文件里說明,編寫自動執(zhí)行語句。
*/5 * * * * /usr/bin/python
/home/pi/POST.py >/dev/null 2>&1
保存后退出nano,重啟樹莓派3B。
使用瀏覽器登錄OneNET,可以看到每隔5 min就有溫度數(shù)據(jù)推送到服務器上,在設置好的曲線圖上生成溫度曲線。6月7日14點至15點間監(jiān)測到的數(shù)據(jù)如圖3所示。
圖3 溫度數(shù)據(jù)曲線圖
將DS18B20溫度傳感器放入樣品保存冰箱,冰箱放有計量合格的玻璃溫度計。每隔30 min讀取溫度監(jiān)測系統(tǒng)和溫度計的溫度,記錄10個測量值進行對比,如表1所示。
表1 溫度測量數(shù)據(jù)對比表
由表1可知:溫度監(jiān)測系統(tǒng)測量值的相對誤差小于4.5%,測量精度符合實驗室10%使用要求。
食品實驗室溫度監(jiān)測系統(tǒng)使用溫度傳感器DS18B20監(jiān)測溫度,監(jiān)測精度滿足使用要求。利用樹莓派3B將數(shù)據(jù)上傳到互聯(lián)網(wǎng)云服務器,可以使用網(wǎng)頁和手機APP查看實時溫度,使得實驗室溫度監(jiān)測工作更加自動化和智能化,節(jié)省大量的人力資源。在后續(xù)開發(fā)過程中,可添加控制功能,連接無線電源開關、空調、抽濕機和加熱器等,達到控制溫度、濕度的需要;在觸發(fā)條件功能上,可連接火焰探測器、煙霧探測器、有毒氣體探測器等,形成檢測報警功能。
[1] 周菁楠.遠程對醫(yī)院實驗室溫度優(yōu)化監(jiān)控仿真[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] 黃建輝.實驗室溫度監(jiān)測系統(tǒng)的設計[J].海峽科學,2017 (2):31-32.
[4] 朱蘭.一種基于CC2530的實驗室設備溫度監(jiān)測系統(tǒng)設計[J].江蘇科技信息,2016(14):72-74.
[5] 茆玉辰,張宸烽,史洪瑋.基于LabVIEW的智慧實驗室的設計與實現(xiàn)[J].電腦知識與技術,2017,13(16):46-48.
[6] 張利民,鄒益民.一種基于樹莓派及Yeelink的溫室控制實驗裝置[J].工業(yè)儀表與自動化裝置,2017(6):108-111,127.
[7] 王寧,張雷,張征.FatFS在離線溫度監(jiān)控系統(tǒng)上的應用[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
廣東省河源市社會發(fā)展科技計劃(河科000847)