《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于Raspberry Pi的遠(yuǎn)程監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
基于Raspberry Pi的遠(yuǎn)程監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
2014年微型機(jī)與應(yīng)用第19期
鄭世玨, 徐 虹
華中師范大學(xué) 計(jì)算機(jī)學(xué)院,,湖北 武漢 430079
摘要: 為解決普通計(jì)算機(jī)愛(ài)好者及在校學(xué)生難以入門(mén)物聯(lián)網(wǎng)和嵌入式技術(shù)的問(wèn)題,,介紹了一種基于ARM的簡(jiǎn)單而強(qiáng)大的微型計(jì)算機(jī),并利用該計(jì)算機(jī)平臺(tái)設(shè)計(jì)和實(shí)現(xiàn)了智能監(jiān)控、火警預(yù)警和溫濕度監(jiān)測(cè)。
Abstract:
Key words :

  摘 要: 為解決普通計(jì)算機(jī)愛(ài)好者及在校學(xué)生難以入門(mén)物聯(lián)網(wǎng)和嵌入式技術(shù)的問(wèn)題,介紹了一種基于ARM的簡(jiǎn)單而強(qiáng)大的微型計(jì)算機(jī),,并利用該計(jì)算機(jī)平臺(tái)設(shè)計(jì)和實(shí)現(xiàn)了智能監(jiān)控、火警預(yù)警和溫濕度監(jiān)測(cè),。

  關(guān)鍵詞:ARM;Raspberry Pi;監(jiān)測(cè);智能家居;溫/濕度監(jiān)測(cè);紅外拍照

0 引言

  隨著集成電路技術(shù)的發(fā)展,,計(jì)算機(jī)的體積繼續(xù)縮小,,各方面的性能飛速提高,而價(jià)格卻不斷下跌,,計(jì)算機(jī)逐漸走進(jìn)人們生產(chǎn)生活的各個(gè)領(lǐng)域,。物聯(lián)網(wǎng)和集成電路的快速發(fā)展及人們對(duì)居住環(huán)境舒適、便捷,、安全等要求的不斷提高,,智能設(shè)備及智能家居已經(jīng)呼之欲出[1]。目前,,國(guó)內(nèi)外都對(duì)智能家居進(jìn)行了廣泛而深入的研究及建設(shè),,然而大多數(shù)開(kāi)發(fā)組都是自己設(shè)計(jì)電路、焊接元件,,這就將很多非電子專(zhuān)業(yè)的電腦愛(ài)好者限制在了門(mén)外,。本文介紹了基于Raspberry Pi的監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),大大降低了普通愛(ài)好者及個(gè)人開(kāi)發(fā)智能家居的難度,。

  Raspberry Pi[2]是一款基于ARM的只有一張信用卡大小的單板機(jī)計(jì)算機(jī),。它由英國(guó)的Raspberry Pi基金會(huì)所開(kāi)發(fā),目的是以低價(jià)硬件及自由軟件刺激在學(xué)校的基本的電腦科學(xué)教育,。Raspberry Pi只有信用卡大小,,B板配有基于ARM11的700 MHz處理器,512 MB內(nèi)存,,RJ45以太網(wǎng)接口和GPIO,、UART、I2C,、SPI等接口,。本文利用GPIO(通用輸入/輸出接口)實(shí)現(xiàn)了溫度/濕度監(jiān)測(cè)、火焰警報(bào),,并且紅外配合攝像頭實(shí)現(xiàn)了有人時(shí)才拍照存檔及通過(guò)手機(jī)或電腦查看“MJPG-streamer[3]”實(shí)時(shí)視頻流的一種智能家居解決方案,。

1 系統(tǒng)設(shè)計(jì)

  1.1 系統(tǒng)架構(gòu)

  智能家居采用三層結(jié)構(gòu),用戶可以通過(guò)PC或手機(jī)登錄瀏覽器查看存儲(chǔ)在服務(wù)器上的溫度,、濕度,、照片、火焰異常,。其中照片以時(shí)間為文件名,火焰異常時(shí)記錄時(shí)間,,用戶可以查看指定時(shí)間段的照片或火焰異常,。用戶還可以通過(guò)PC或手機(jī)登錄瀏覽器直接查看終端攝像頭實(shí)時(shí)視頻監(jiān)控。終端將收集到的溫度,、濕度,、照片上傳到CentOS服務(wù)器,,用戶通過(guò)瀏覽器查看終端上傳到服務(wù)器的數(shù)據(jù)[4]。當(dāng)查看實(shí)時(shí)視頻監(jiān)控時(shí)用戶通過(guò)客戶端直接查看終端視頻流,。完整智能家居系統(tǒng)框架如圖1所示,。

001.jpg

  1.2 終端模塊

  終端由Raspberry Pi B板、獲取溫濕度的DHT11傳感器模塊,、人體紅外感應(yīng)模塊,、火焰?zhèn)鞲衅髂K和用于拍照及視頻監(jiān)控的攝像頭模塊組成。其中DHT11[5]溫度測(cè)量范圍為0~50℃,,濕度測(cè)量范圍為20 %RH~90 %RH,,人體紅外感應(yīng)模塊為 HC-SR501,火焰?zhèn)鞲衅髂K基于LM393,,攝像頭模塊為Raspberry Pi Camera模塊,。終端模塊及接口如圖2所示。

002.jpg

2 系統(tǒng)實(shí)現(xiàn)

  2.1 各模塊實(shí)現(xiàn)

  Raspberry Pi終端開(kāi)機(jī)后啟動(dòng)監(jiān)控主程序,,主程序創(chuàng)建3個(gè)進(jìn)程,,分別為溫濕度監(jiān)測(cè)進(jìn)程、火焰預(yù)警進(jìn)程和人體紅外監(jiān)測(cè)進(jìn)程,。系統(tǒng)每隔60 s通過(guò)GPIO激活溫濕度傳感器獲取一次數(shù)據(jù),。火焰預(yù)警進(jìn)程每隔3 s查詢一次火警傳感器狀態(tài)是否正常,,若不正常則發(fā)出預(yù)警并記錄時(shí)間,。人體紅外監(jiān)測(cè)進(jìn)程查詢?nèi)梭w紅外狀態(tài)并進(jìn)行拍照,為了減少拍照數(shù)量且不漏拍重要照片,,本文設(shè)計(jì)了兩種拍照方式:連拍3張和拍1張,。當(dāng)監(jiān)測(cè)區(qū)域內(nèi)之前沒(méi)有人活動(dòng),現(xiàn)在有人進(jìn)入?yún)^(qū)域時(shí)采用第一種連拍3張方式,;當(dāng)監(jiān)測(cè)區(qū)域內(nèi)持續(xù)有人活動(dòng)時(shí)采用第二種拍攝1張方式,。為此,需要設(shè)置兩種狀態(tài):上次查詢狀態(tài)ilstate和本次查詢狀態(tài)iv,,偽代碼如下:

  while(true)

  {

  infr(iv); //獲取本次狀態(tài)

  if(iv==1&&ilstate==0) //有人進(jìn)入?yún)^(qū)域

  {

  拍照3張,,時(shí)間間隔0.5 s;

  }

  else if(iv==1&&ilstate==1)

  {

  拍照1張,;

  ilstate=iv,;

  }

  sleep(3);

  }

  火焰?zhèn)鞲衅骱腿梭w紅外傳感器是狀態(tài)傳感器,,分別有3個(gè)接口:正極,、接地和信號(hào)輸出口,當(dāng)狀態(tài)發(fā)生轉(zhuǎn)變時(shí)信號(hào)輸出電平翻轉(zhuǎn),,Raspberry Pi通過(guò)單個(gè)GPIO接口接收狀態(tài)轉(zhuǎn)變,。本文使用GPIO1作為火焰?zhèn)鞲衅鞯男盘?hào)檢測(cè)接口,,即26個(gè)接口中的12號(hào),GPIO4作為人體紅外傳感器信號(hào)檢測(cè)接口,,即26個(gè)接口中的16號(hào),,GPIO6作為DHT11的通信接口,即26個(gè)接口中的22號(hào),?;鹧?zhèn)鞲衅鞅挥|發(fā)后輸出高電平,當(dāng)GPIO1檢測(cè)到高電平時(shí)則啟動(dòng)預(yù)警,。人體紅外傳感器被觸發(fā)后由輸出低電平轉(zhuǎn)變?yōu)檩敵龈唠娖?,GPIO4檢測(cè)到高電平后根據(jù)兩個(gè)狀態(tài)調(diào)用拍照功能。DHT11采用單個(gè)針腳實(shí)現(xiàn)與Raspberry Pi之間的同步和通信,,一次完整的數(shù)據(jù)傳輸為40 bit,,高位先出,數(shù)據(jù)格式為8 bit濕度整數(shù)數(shù)據(jù),、8 bit濕度小數(shù)數(shù)據(jù),、8 bit溫度整數(shù)數(shù)據(jù)、8 bit溫度小數(shù)數(shù)據(jù),,8 bit校驗(yàn)位,,其時(shí)序如圖3所示。各模塊實(shí)物連接如圖4所示,。

004.jpg

  Raspberry Pi已經(jīng)安裝了Raspberry Pi Camera驅(qū)動(dòng),,使用攝像頭前要進(jìn)行設(shè)置,命令為sudo raspi-config,,然后選擇Enable Camera 確認(rèn)后關(guān)機(jī)就可以連接Raspberry Pi Camera模塊了,。Raspberry Pi用raspistill命令配合參數(shù)拍照。將拍照時(shí)間設(shè)為照片文件名,,方便以后按時(shí)間查看及分類(lèi),,拍照及照片上傳代碼在shoot.sh腳本中,通過(guò)C++程序來(lái)調(diào)用此腳本,。

  MJPG-streamer[6]是基于IP網(wǎng)絡(luò)的命令行應(yīng)用程序,,它從攝像頭獲取JPEG文件流發(fā)送到Firefox、Cambozola,、VLC,、Windows Mobile或者移動(dòng)電話等包含瀏覽器的設(shè)備??梢岳脭z像頭對(duì)JPEG文件進(jìn)行硬件壓縮,,減少服務(wù)器上的CPU周期消耗,這為CPU資源不足的嵌入式設(shè)備或者常規(guī)服務(wù)器提供了一種輕量級(jí)的解決方案。例如,,在一個(gè)200 MHz的路由器上960×720像素的文件流使用的CPU資源小于10% 。

  使用“MJPG-streamer”需要安裝相關(guān)庫(kù)libjpeg8-dev,,源碼下載方法可以使用wget 或者git:wget:https://codeload.github.com/jacksonliam/mjpg-streamer/zip/master,;git pull: https://github.com/jacksonliam/mjpg-streamer.git。

  2.2 代碼編寫(xiě)

  程序?yàn)槊總€(gè)模塊創(chuàng)建了一個(gè)進(jìn)程,,代碼托管在google code,可以使用git克隆或者打包下載,,git下載地址為:https://[email protected]/p/ccnu-smart-house/。進(jìn)行編譯前要先安裝wiringPi庫(kù)和mysqlclient庫(kù),,安裝后make即可編譯鏈接生成運(yùn)行文件main,。

3 系統(tǒng)測(cè)試


005.jpg

  經(jīng)測(cè)試系統(tǒng)基本達(dá)到了預(yù)定目標(biāo),獲得溫度,、濕度數(shù)據(jù)如圖5所示,,數(shù)據(jù)屬性分別為溫度、濕度,、時(shí)間,。可以看到并不是每30 s都產(chǎn)生一組數(shù)據(jù),,這是因?yàn)镈HT11不夠準(zhǔn)確,,通過(guò)校驗(yàn)碼校驗(yàn)刪除傳輸錯(cuò)誤及明顯超過(guò)范圍的數(shù)據(jù)(如溫度大于100℃)后可得到大部分準(zhǔn)確數(shù)據(jù)。

  如圖6所示,人體紅外感應(yīng)模塊探測(cè)到有人活動(dòng)時(shí)輸出高電平,,記錄1,。從圖7可以看到,攝像頭確實(shí)根據(jù)圖6所示紅外探測(cè)情況拍下了照片,?;鹧嫣綔y(cè)模塊探測(cè)到火焰時(shí)輸出低電平,記錄0,,圖8為用火機(jī)測(cè)試情況,,火焰探測(cè)確實(shí)根據(jù)嚴(yán)格的3 s時(shí)間記錄了有火焰時(shí)的時(shí)間。

006.jpg

  遠(yuǎn)程視頻測(cè)試如圖9所示,,當(dāng)畫(huà)面為20幀像素320×240時(shí)占用帶寬約為600 kb/s,,畫(huà)面十分流暢,當(dāng)畫(huà)面為10幀像素320×240時(shí)占用帶寬約為300 kb/s,,畫(huà)面略有卡頓,。

4 結(jié)束語(yǔ)

  本文提出了一種新的智能家居方案,實(shí)現(xiàn)了智能家居遠(yuǎn)程監(jiān)測(cè)系統(tǒng)功能,,整個(gè)系統(tǒng)架構(gòu)簡(jiǎn)單,,功能擴(kuò)展方便,在此系統(tǒng)設(shè)計(jì)上稍加修改即可添加更多功能的傳感器,實(shí)現(xiàn)更加智能的功能,,可結(jié)合ZigBee實(shí)現(xiàn)無(wú)線傳輸,,結(jié)合arduino實(shí)現(xiàn)更方便的管理。

參考文獻(xiàn)

  [1] 朱仲英.傳感網(wǎng)與物聯(lián)網(wǎng)的進(jìn)展與趨勢(shì)[J].微型電腦應(yīng)用,,2010,26(1):1-3.

  [2] Wikipedia. Raspberry_Pi [S/OL]. http://it.wikipedia.org/wiki/Raspberry_Pi.

  [3] 肖兒良,毛海軍,鞠軍平,等.基于開(kāi)源軟件MJPG_ Streamer的智能視頻監(jiān)控系統(tǒng)設(shè)計(jì)[J].微電子學(xué)與計(jì)算機(jī), 2013,30(6):84-87.

  [4] 劉政,袁國(guó)良,王麗芳.基于Cortex-M0 的室內(nèi)溫控系統(tǒng)的設(shè)計(jì)[J].中國(guó)科技信息,,2011(8):165-166.

  [5] D-Robotics UK. DHT11[S/OL].http://www.micro4you.com/files/sensor/DHT11.pdf.

  [6] Jacksonliam. MJPG-streamer [CP/OL].https://github.com/jacksonliam/mjpg-streamer#.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。