吳友蘭 王琳娜 胡冬琴
摘 要:該文設計了基于嵌入式樹莓派為核心控制器的遠程溫度監(jiān)測系統(tǒng),并通過溫度傳感器DS18B20獲得數(shù)據(jù)加以融合以及模糊算法對其進行處理,用戶可在手機或電腦客戶終端上了解到居室溫度變化情況。該系統(tǒng)可以被廣泛地用于生產(chǎn)中的各領域,特別適合于人體無法接近的高溫或危險場所的溫度控制。
關鍵詞:樹莓派 DS18B20 網(wǎng)絡監(jiān)控 單總線協(xié)議
中圖分類號:TP274.4 文獻標識碼:A 文章編號:1672-3791(2017)07(a)-0006-02
Abstract: The designs is a remote temperature monitoring system based on embedded controllers raspberry pie, And use the temperature sensor DS18B20 to get data and fuzzy algorithm to deal with it, The user can know the room temperatures change by the mobile phone or computer client terminal. The system can be widely used in various fields of production. Especially suitable for the people can not be close to the high temperature or dangerous places of temperature control.
Key Words: Raspberry pie; DS18B20; Network monitoring; 1-wire protocol
在日常生活中溫度在我們身邊無時不在,溫度的控制和應用在各個領域都有重要的作用。目前市場上的大多數(shù)溫室測控系統(tǒng)大多采用有線布網(wǎng)、人工測量,導致現(xiàn)場安裝困難,工作效率偏低,測量精度差,這不僅大大增加了電氣工程施工費用,也導致施工等工作困難;此外,系統(tǒng)中的每個監(jiān)控點沒有自組織功能和自愈能力,維護工作量大,也不利十系統(tǒng)升級。因此,開發(fā)和研制一種新型的遠程溫室環(huán)境測控系統(tǒng)是十分必要的。
傳統(tǒng)的利用單片機來檢測控制溫度的案例有很多,但是用單片機來實現(xiàn)遠程無線通信比較復雜,涉及到編寫WiFi模塊的驅動程序和無線數(shù)據(jù)通信程序。如果我們把主控制器換成樹莓派,實現(xiàn)遠程監(jiān)控就會變得簡單很多。樹莓派(Raspberry PI)是英國一個小型慈善組織開發(fā)的一款基于Linux的開放式嵌入式系統(tǒng),通過裝載相應的Linux系統(tǒng)和相應的應用程序,可以實現(xiàn)強大的能力,還具有廉價、體積小等優(yōu)點。該次設計開發(fā)就是以硬件開源的嵌入式系統(tǒng)樹莓派作為應用開發(fā)平臺,加上現(xiàn)在特別流行的數(shù)字型溫度傳感器ds18b20作為采集數(shù)據(jù)的終端。利用創(chuàng)業(yè)公司Yeelink公司開發(fā)的Yeelink作為云存儲平臺來實現(xiàn)遠程的溫度數(shù)據(jù)的監(jiān)測和控制。
1 系統(tǒng)結構設計
該系統(tǒng)設計分為以下幾個模塊:主控模塊、待測模塊、顯示模塊、控制模塊、遠程交互模塊。
(1)主控模塊我們采用嵌入式樹莓派作為該系統(tǒng)的主控器。
(2)待測模塊采用的單總線結構的數(shù)字型溫度傳感器ds18b20。
(3)控制模塊采用的報警發(fā)聲模塊。
(4)輸出模塊采用四位數(shù)碼管顯示所測得溫度值。
(5)主控模塊通過WiFi連接internet,用于實現(xiàn)遠程的數(shù)據(jù)交互。
2 環(huán)境搭建
主控器我們采用的是樹莓派,它是只有信用卡大小的卡片式電腦。Raspberry Pi是一款以SD卡為內(nèi)存硬盤,操作系統(tǒng)采用開源的Linux系統(tǒng)。通過裝載相應的Linux系統(tǒng)和相應的應用程序,樹莓派可以實現(xiàn)強大的應用功能,為我們提供了一個理想的嵌入式開發(fā)平臺。樹莓派預搭載的編程開發(fā)環(huán)境是Python語言,Python是一種面向對象、直譯式計算機編程語言,包含了一組完善而且容易理解的標準庫,能夠輕松完成很多常見的任務。
就像每一個計算機那樣,樹莓派需要一個操作系統(tǒng),我們選擇Linux。選擇Linux是因為它免費,而且可支持ARM處理器。
系統(tǒng)安裝過程如下:
制作可引導的SD卡。
(1)一個帶讀卡器的PC。
(2)從官方下載頁下載Debian映像文件。
下載地址:http://downloads.raspberrypi.org/images/raspbian/2013-02-09-wheezy-raspbian/2013-02-09-wheezy-raspbian.zip
下載完成后,PC上將有2013-02-09-wheezy-raspbian.zip文件。
(3)用專門的工具將映像文件寫入到SD卡。
Windows用戶可以使用Win32DiskImager軟件,Unix用戶使用dd工具。
在Windows下可以使用Win32Disk Imager進行鏡像恢復,非常方便,也是樹莓派官方推薦的方法。官方下載地址:http://sourceforge.net/projects/win32diskimager/。
(4)樹莓派實現(xiàn)WiFi上網(wǎng)。
給樹莓派添加wifi模塊,實際上就是一個usb無線網(wǎng)卡。我使用的是EOUP的usb無線網(wǎng)卡,經(jīng)測試樹莓派可以直接識別,不需要額外配置驅動,即可實現(xiàn)樹莓派的無線上網(wǎng)功能。
3 硬件電路設計
設計中我們采用的樹莓派的擴展板對樹莓派的外圍電路進行擴展,擴展板上已經(jīng)設計引出DS18B20的引腳,我們只需要把DS18B20插在擴展板上即可實現(xiàn)硬件的設計和開發(fā)。
4 軟件電路設計
4.1 ds18b20驅動的安裝和使用
樹莓派支持多種串行總線,包括SPI和I2C,卻沒有提供1-Wire接口。溫度傳感器DS18B20就是個1-Wire接口的器件,為了使用這款溫度傳感器,我們必須使用軟件來模擬1-Wire接口時序,從DS18B20中讀取我們需要的溫度。在樹莓派的操作系統(tǒng)Debian中,包含這部分驅動,我們可以直接使用它。
具體方式,進入命令行(通過ssh或者直接連顯示器)。
輸入如下命令:
sudo wget http://www.frank-buss.de/raspberrypi/kernel-rpi-w1.tgz
sudo tar -xzf kernel-rpi-w1.tgz
sudo rm -f kernel-rpi-w1.tgz
sudo cd /lib/modules
sudo wget http://www.frank-buss.de/raspberrypi/modules-rpi-w1.tgz
sudo tar -xzf modules-rpi-w1.tgz
sudo rm -f modules-rpi-w1.tgz
sudo sync
sudo reboot
然后等待機器重啟重新加載1-wire設備的驅動,也就是給18b20的驅動。
接下來,在命令行輸入:
sudo modprobe w1-gpio
sudo modprobe w1-therm
在打開的界面上,其中28開頭的就是28b20設備了,如果接多個DS18B20,將會看到多個28-xxxx的文件,分別對應各個DS18B20。程序中我們只要調(diào)用驅動程序w1_slave中的提供的獲得溫度數(shù)據(jù)函數(shù),進行處理即可得到DS18B20傳感器監(jiān)測的溫度值。
4.2 溫度獲取程序
下面是利用python實現(xiàn)獲得溫度值程序模塊。
import os
import glob
import time
os.system(‘modprobe w1-gpio)
os.system(‘modprobe w1-therm)
base_dir=/sys/bus/w1/devices/
device_folder=glob.glob(base_dir+28*)[0]
device_file=device_folder+/w1_slave
def read_temp_raw():
f=open(device_file,r)
lines=f.readlines()
f.close()
return lines
def read_temp():
lines=read_temp_raw()
while lines[0].strip()[-3:]!=YES:
time.sleep(0.2)
lines=read_temp_raw()
equals_pos=lines[1].find(‘t=)
if equals_pos!=-1:
temp_string=lines[1][equals_pos+2:]
temp_c=float(temp_string)/1000.0
return temp_c
4.3 遠程交互
Yeelink獨有設計的高并發(fā)接入服務器和云存儲方案,能夠同時完成海量的傳感器數(shù)據(jù)接入和存儲任務,確保您的數(shù)據(jù)能夠安全的保存在互聯(lián)網(wǎng)上,先進的鑒權系統(tǒng)和安全機制,能夠確保數(shù)據(jù)只在您允許的范圍內(nèi)共享。
此次設計中我們就利用互聯(lián)網(wǎng)云平臺yeelink將采集的溫度數(shù)據(jù)進行收集并顯示出來,Yeelink是一個開源的硬件數(shù)據(jù)平臺,我們把它定義為一個物聯(lián)網(wǎng)云平臺,因為它給我們提供了API接口,我們可以把數(shù)據(jù)發(fā)送到云平臺保存起來,也可以隨時隨地查看。
5 結語
該文介紹了基于樹莓派檢測溫度控制系統(tǒng)的工作原理, 測溫系統(tǒng)采用了樹莓派為核心微處理器,通過傳感器DS18B20實現(xiàn)對溫度測量,并進行存儲和遠程顯示。用戶可以遠程監(jiān)測溫度,并顯示溫度變化曲線圖。我們在此基礎上,還可以擴展其他信號,如濕度,PM2.5等,來實現(xiàn)遠程環(huán)境的監(jiān)測。
參考文獻
[1] 劉繼忠,邱于兵,黃翔.基于ARM的遠程溫濕度監(jiān)測系統(tǒng)的設計[J].儀表技術與傳感器,2012(8):90-92.
[2] 張文普,牟宇飛,基于ARM的遠程無線瓦斯監(jiān)控系統(tǒng)[J].儀表技術與傳感器,2012(1):68-70.
[3] 衷衛(wèi)聲,施忠華.嵌入式Web Server在遠程數(shù)據(jù)采集系統(tǒng)中的應用[J].儀表技術與傳感器,2012(9):103-104,110.