国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

城 市 霧 霾 天 氣 監(jiān) 測(cè) 系 統(tǒng) 設(shè) 計(jì)

2019-11-26 07:29
實(shí)驗(yàn)室研究與探索 2019年10期
關(guān)鍵詞:開(kāi)發(fā)板內(nèi)核溫濕度

王 小 輝

(1.西安郵電大學(xué) 人文與外國(guó)語(yǔ)學(xué)院,西安 710121; 2.陜西師范大學(xué) 地理科學(xué)與旅游學(xué)院,西安 710119)

0 引 言

隨著當(dāng)今社會(huì)的高速發(fā)展,環(huán)境保護(hù)已成為本世紀(jì)內(nèi)人類必須面對(duì)的重大問(wèn)題[1-2]。在過(guò)去的霧霾檢測(cè)中,大多數(shù)都是通過(guò)人為攜帶大型設(shè)備去采集環(huán)境的數(shù)據(jù),雖然技術(shù)簡(jiǎn)單,但設(shè)備精度不夠高,難以實(shí)時(shí)檢測(cè)[3]。隨著科技不斷發(fā)展,嵌入式系統(tǒng)與ARM處理器的結(jié)合可以完成大多數(shù)數(shù)據(jù)采集與傳輸。

本文基于ARM處理器與Linux操作系統(tǒng)的城市霧霾天氣監(jiān)測(cè)系統(tǒng)具有很好的應(yīng)用價(jià)值[4-6],可以廣泛應(yīng)用于商場(chǎng)、醫(yī)院、電影院等人流密集區(qū)域。

1 嵌入式系統(tǒng)架構(gòu)

1.1 環(huán)境監(jiān)測(cè)系統(tǒng)結(jié)構(gòu)

實(shí)驗(yàn)系統(tǒng)基于ARM11微處理器S3C6410芯片,連接所需傳感器與WiFi接口。使之搭載嵌入式Linux系統(tǒng),通過(guò)交叉編譯添加需要的傳感器驅(qū)動(dòng)程序,并且生成相對(duì)應(yīng)的Linux內(nèi)核[7],最后將內(nèi)核導(dǎo)入Tiny6410中。利用傳感器采集周圍環(huán)境的數(shù)據(jù),通過(guò)Socket網(wǎng)絡(luò)通信完成數(shù)據(jù)傳輸[8-10]。整體系統(tǒng)示意圖如圖1所示。

圖1 環(huán)境監(jiān)測(cè)系統(tǒng)

1.2 開(kāi)發(fā)系統(tǒng)

系統(tǒng)采用HU-10S作為溫濕度傳感器,采用GP2Y10 10AU0F作為PM2.5傳感器,HU-10S通過(guò)I/O口進(jìn)行數(shù)據(jù)傳輸,PM2.5傳感器經(jīng)過(guò)GPIO口與I/O口完成數(shù)據(jù)傳輸[11],如圖2所示。

圖2 系統(tǒng)硬件結(jié)構(gòu)圖

采用嵌入式Linux系統(tǒng)為基礎(chǔ)平臺(tái),根據(jù)設(shè)計(jì)的需求對(duì)Linux系統(tǒng)的U-boot、Linux內(nèi)核、文件系統(tǒng)進(jìn)行適當(dāng)?shù)募訙p與定制,方便了對(duì)系統(tǒng)的開(kāi)發(fā)。增加了對(duì)wireless USB WiFi驅(qū)動(dòng)、溫濕度傳感器與PM2.5傳感器驅(qū)動(dòng),將寫好的編譯內(nèi)核模塊通過(guò)交叉編譯的方式增加到Linux內(nèi)核中去,同時(shí)減少設(shè)計(jì)所用不到的驅(qū)動(dòng),完成系統(tǒng)的最小化。通過(guò)Socket網(wǎng)絡(luò)通信技術(shù)與讀取傳感器接收到數(shù)據(jù),編寫程序完成對(duì)系統(tǒng)內(nèi)數(shù)據(jù)的調(diào)出,實(shí)現(xiàn)了對(duì)監(jiān)測(cè)環(huán)境的信息采集與傳輸[12]。

實(shí)驗(yàn)設(shè)計(jì)利用HU-10S作為溫濕度傳感器并采用型號(hào)為GP2Y1010AU0F的傳感器采集PM2.5的數(shù)據(jù)。HU-10S溫濕度模塊通過(guò)傳感器接收到的非線性電阻信號(hào)由芯片LM2902轉(zhuǎn)換為電壓形式的電信號(hào)。GP2Y1010AU0F是由SHARP公司所研發(fā)的一個(gè)通過(guò)感器內(nèi)部所組成的相對(duì)分布的紅外發(fā)光二級(jí)管和光電結(jié)晶管的光學(xué)灰塵濃度檢測(cè)傳感器,其原理是利用光敏電阻的光敏特性檢測(cè)微小顆粒物的數(shù)量,從而根據(jù)輸出電壓的大小來(lái)判斷顆粒濃度[13-14]。

2 嵌入式Linux系統(tǒng)的調(diào)試與移植

Linux系統(tǒng)主要由U-Boot、Linux內(nèi)核、文件系統(tǒng)和用戶程序組成[15]。其中系統(tǒng)內(nèi)置的U-Boot代碼與Bootloader程序用于引導(dǎo)系統(tǒng)啟動(dòng),Linux內(nèi)核需要根據(jù)實(shí)際需求定制好相應(yīng)的代碼,文件系統(tǒng)主要包含文件系統(tǒng)與其他的系統(tǒng)命令,此處使用rootfs_qtopia_qt4.img作為rootfs。應(yīng)用程序包括必須的驅(qū)動(dòng)程序與交互界面等,即為Qtopia2.2的系統(tǒng)桌面。

2.1 嵌入式開(kāi)發(fā)環(huán)境的搭建

主機(jī)安裝的Linux版本是Ubuntu14.0(64bit),安裝并設(shè)置完后開(kāi)啟虛擬機(jī),即可開(kāi)始使用Linux系統(tǒng),并且之后進(jìn)行編譯前的配置。

(1) 建立交叉編譯環(huán)境。在嵌入式開(kāi)發(fā)過(guò)程中,為了將一些復(fù)雜無(wú)法編譯的程序在內(nèi)存有限的目標(biāo)機(jī)中運(yùn)行,必須通過(guò)資源豐富的主機(jī)編譯生成可執(zhí)行文件,編譯完成后通過(guò)宿主機(jī)與開(kāi)發(fā)板的連接,將所寫程序的.c文件移植到開(kāi)發(fā)板中運(yùn)行,從而完成目標(biāo)機(jī)中程序的正常運(yùn)行。

本文使用的是arm-linux-gcc-4.5.1,通過(guò)更改交叉編譯版本以及配置文件可以成功建立交叉編譯。

(2) U_Boot。U-Boot(Universal Boot Loader)具有GPL款項(xiàng)的開(kāi)放源碼項(xiàng)目[16]。系統(tǒng)引導(dǎo)是U-Boot的主要作用。大多數(shù)U-Boot源代碼是根據(jù)Linux內(nèi)核源代碼經(jīng)過(guò)精簡(jiǎn)和演變而形成。U-Boot的工作流程主要由Stage 1和Stage 2組成,具體流程如圖3所示。

圖3 U-Boot工作流程

使用CPU系統(tǒng)結(jié)構(gòu)的部分大多在Stage 1通過(guò)匯編語(yǔ)言來(lái)完成,Stage 2用C語(yǔ)言完成,具有較好的可讀性和移植性。U-Boot啟動(dòng)中的第1步是定義入口,由于起始點(diǎn)必須是唯一,故定義起始點(diǎn)在0x0處;第2步是設(shè)置異常向量,并調(diào)整處理器的實(shí)時(shí)時(shí)鐘、控制中斷等寄存器,并且調(diào)整內(nèi)存控制寄存器的參數(shù);第3步是將ROM跳轉(zhuǎn)到RAM中并且繼續(xù)運(yùn)行。然后轉(zhuǎn)入U(xiǎn)-Boot的Stage 2。

2.2 嵌入式Linux內(nèi)核的移植

(1) 配置和編譯busybox。實(shí)際開(kāi)發(fā)中,各開(kāi)發(fā)板資源不同,因此,busybox源代碼應(yīng)根據(jù)所需重新配置,然后使用缺省的配置文件:peizhi.config。Tiny6410使用此配置文件編譯出的busybox可滿足多方面的要求。進(jìn)入busybox源代碼目錄,輸入命令#cp peizhi.config .config拷貝此文件到相應(yīng)文件夾,然后輸入make進(jìn)行編譯。編譯完成后生成busybox文件。它和開(kāi)發(fā)板有同樣的安裝放法,并且busybox一般是不用更新的。

(2) 制作yaffs2文件系統(tǒng)映像。進(jìn)入Linux系統(tǒng)目錄后執(zhí)行命令:#mkyaffs2image-128 MB rootfs_qtopia_qt4 rootfs_qtopia_qt4.img,將rootfs_qtopia _qt4目錄壓制為yaffs2格式的rootfs_qtopia_qt4.img系統(tǒng)映像文件,它適用于塊頁(yè)組織結(jié)構(gòu)為“1 Page=2 Kbyte,1 Block=128 K”的SLC Nand Flash(如K9F2G08,K9K8G08等),下一步通過(guò)SD卡或者 USB下載可以把它燒寫到Nand Flash中。

(3) 移植嵌入式Linux系統(tǒng)?;赟D卡中的ini索引文件,修改安裝Linux系統(tǒng)所需的主要定義語(yǔ)句,配置部分如表1所示。表中,LCD共用同一個(gè)zImage,此系統(tǒng)所用的Superboot 會(huì)自動(dòng)檢測(cè) LCD 型號(hào),Kernel源碼:arch/arm/mach-s3c64xx/mini6410-lcds.c會(huì)在 Command Line 中追加LED型號(hào)參數(shù)。撥動(dòng)Tiny6410的“S2”開(kāi)關(guān)為“SDBOOT”,并插入SD卡,伴隨著有序的“滴”聲音,Tiny6410開(kāi)發(fā)板上的4盞綠燈開(kāi)始閃爍,最后蜂鳴器響2聲,LED全部亮起,系統(tǒng)已經(jīng)完成了燒寫。執(zhí)行完畢后。重啟開(kāi)發(fā)板就是Qtopia2.2.0系統(tǒng)了,如圖4所示。Qtopia是基于Qt開(kāi)發(fā)的一個(gè)軟件平臺(tái),主要用于嵌入式Linux系統(tǒng)或移動(dòng)電話,Qtopia具有完善的窗口操作系統(tǒng)、游戲和多媒體等輔助應(yīng)用,可以縮短軟件的開(kāi)發(fā)周期。

圖4 Qtopia2.2.0系統(tǒng)

3 系統(tǒng)軟件架構(gòu)設(shè)計(jì)

3.1 Linux設(shè)備驅(qū)動(dòng)

在Linux系統(tǒng)中,傳感器大多數(shù)被認(rèn)為是一種特別的外置裝置,Linux系統(tǒng)通過(guò)系統(tǒng)的讀取來(lái)進(jìn)行驅(qū)動(dòng)和控制各種傳感器。而在嵌入式Linux系統(tǒng)中,傳感器的操控是通過(guò)將相應(yīng)的硬件驅(qū)動(dòng)加入相應(yīng)位置得以實(shí)現(xiàn)的,之后硬件傳感器就使用打開(kāi),讀寫等程序函數(shù)代碼對(duì)硬件設(shè)備進(jìn)行配置與命令,這樣就可以通過(guò)嵌入式Linux直接對(duì)設(shè)備進(jìn)行訪問(wèn)。其中,硬件設(shè)備具體功能有初始化設(shè)備、啟動(dòng)或者停止設(shè)備、將硬件設(shè)備上的數(shù)據(jù)發(fā)送到用戶程序上,并且將用戶程序的指令發(fā)送到硬件設(shè)備里,實(shí)現(xiàn)數(shù)據(jù)互通。

3.2 溫濕度傳感器的程序設(shè)計(jì)

溫濕度傳感器的程序設(shè)計(jì)主要分為兩個(gè)階段,① 在內(nèi)核里面運(yùn)行,叫做內(nèi)核驅(qū)動(dòng)程序;② 在用戶程序里運(yùn)行。這兩部分通過(guò)用戶程序里的文件操作函數(shù)完成數(shù)據(jù)的傳輸,具體的工作流程如圖5所示。

圖5 濕度測(cè)量的過(guò)程

首先啟動(dòng)傳感器讀取相關(guān)引腳信息,根據(jù)時(shí)序控制經(jīng)過(guò)ADC采樣的方法完成采集信息的讀取。在用戶程序中,寫好了傳感器測(cè)量程序,其中就包括了ADC采樣與溫度,濕度對(duì)應(yīng)的函數(shù)值,此時(shí)可以輸出相應(yīng)的溫濕度數(shù)據(jù)。

3.3 PM2.5傳感器的程序設(shè)計(jì)

PM2.5傳感器使用的是ADC信號(hào)的輸出方法。本文使用的Tiny6410開(kāi)發(fā)板提供了一路GPIO口和一路I/O口,如果要收集檢測(cè)的數(shù)值,則必須通過(guò)GPIO向傳感器發(fā)送脈沖,通過(guò)發(fā)送1次脈沖,ADC即可采樣到1次數(shù)據(jù),這樣就得到了此刻周圍環(huán)境PM2.5的濃度。具體流程見(jiàn)圖6。

圖6 PM2.5傳感器工作流程

在上述流程中,驅(qū)動(dòng)部分首先將ADC通道的對(duì)應(yīng)引腳設(shè)置為輸入,之后將GPIO的數(shù)值拉低,隨后開(kāi)始ADC轉(zhuǎn)換,轉(zhuǎn)換完成后,將采樣的數(shù)據(jù)發(fā)送至用戶程序,最后拉高GPIO值,完成一次測(cè)量。而用戶程序收到了采樣數(shù)據(jù)之后,經(jīng)過(guò)計(jì)算輸出相應(yīng)的數(shù)值。

3.4 用戶程序的設(shè)計(jì)與實(shí)現(xiàn)

實(shí)驗(yàn)用戶程序的設(shè)計(jì)主要用以實(shí)現(xiàn)Socket網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)墓δ?,在嵌入式Linux中,Socket網(wǎng)絡(luò)通信是用戶訪問(wèn)系統(tǒng)的主要途徑。通過(guò)編寫網(wǎng)絡(luò)連接與數(shù)據(jù)交換的函數(shù),實(shí)現(xiàn)了應(yīng)用程序?qū)鞲衅鞯淖x取,具體流程見(jiàn)圖7。

圖7 用戶程序的Socket通信

首先創(chuàng)建一個(gè)Server,并設(shè)置好待連接的端口。由PC機(jī)向目標(biāo)發(fā)起連接,如果Server發(fā)現(xiàn)連接信號(hào),則接受連接請(qǐng)求,完成Socket的網(wǎng)絡(luò)連接。 然后打開(kāi)設(shè)備文件,在/dev/gpio讀取ADC的采樣數(shù)據(jù),通過(guò)收發(fā)文件函數(shù)完成連接。之后通過(guò)html的格式發(fā)送到客戶端。通信完成后,等待停止指令結(jié)束循環(huán)。

4 實(shí)測(cè)結(jié)果與分析

本文設(shè)計(jì)了一套基于Tiny6410開(kāi)發(fā)板的環(huán)境檢測(cè)系統(tǒng),實(shí)物如圖8所示,通過(guò)使用溫度計(jì)、濕度計(jì)以及天氣預(yù)報(bào)進(jìn)行數(shù)據(jù)對(duì)比,從而驗(yàn)證本系統(tǒng)的設(shè)計(jì)精度。

為了驗(yàn)證測(cè)試效果,實(shí)驗(yàn)選定學(xué)校操場(chǎng)、地鐵口、醫(yī)院、工廠以及室外為5個(gè)待測(cè)地點(diǎn)進(jìn)行實(shí)際測(cè)試,測(cè)試結(jié)果如圖9所示。圖中:左邊是手機(jī)收到的實(shí)時(shí)氣象信息,右邊是系統(tǒng)實(shí)際測(cè)試的結(jié)果。在戶外和大學(xué)操場(chǎng)上人流量較少實(shí)測(cè)數(shù)據(jù)偏低;在地鐵口、醫(yī)院人流密集的地方PM2.5的數(shù)據(jù)超過(guò)當(dāng)天預(yù)報(bào)值,在廠房由于工廠的廢氣排放超標(biāo),也可以導(dǎo)致該區(qū)域顆粒物數(shù)量陡增。由此可見(jiàn),本系統(tǒng)的對(duì)PM2.5的測(cè)試數(shù)據(jù)較為穩(wěn)定,可以作為實(shí)際測(cè)試的數(shù)據(jù)來(lái)源。

通過(guò)以上多個(gè)地點(diǎn)的不同實(shí)驗(yàn),基于Tiny6410的城市霧霾檢測(cè)系統(tǒng)與實(shí)際的環(huán)境數(shù)據(jù)很接近,可以作為實(shí)際測(cè)試的相關(guān)需求。

5 結(jié) 語(yǔ)

將HU-10S和GP2Y1010AU0F傳感器根據(jù)其電氣特性及傳輸方法與Tiny6410開(kāi)發(fā)板連接起來(lái)。通過(guò)嵌入式Linux系統(tǒng)的配置并且將配置好的內(nèi)核進(jìn)行移植。根據(jù)Tiny6410開(kāi)發(fā)板和傳感器特性,以Socket網(wǎng)絡(luò)通信為基礎(chǔ)加入讀取傳感器采集的數(shù)據(jù),可以完成本文的預(yù)定目標(biāo)。通過(guò)實(shí)際測(cè)量可見(jiàn),本文設(shè)計(jì)的城市霧霾檢測(cè)系統(tǒng)運(yùn)行良好,實(shí)際測(cè)出的溫濕度以及PM2.5濃度與氣象預(yù)報(bào)相差不多,可以更好地滿足人們對(duì)環(huán)境參數(shù)實(shí)時(shí)測(cè)試的更高的需求。

猜你喜歡
開(kāi)發(fā)板內(nèi)核溫濕度
多內(nèi)核操作系統(tǒng)綜述①
強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
活化非遺文化 承啟設(shè)計(jì)內(nèi)核
基于AT89C51的數(shù)字型蠶用溫濕度計(jì)的設(shè)計(jì)
基于STM32H7的FDCAN通信系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)?
基于DSP的多路溫濕度監(jiān)測(cè)系統(tǒng)
Linux內(nèi)核mmap保護(hù)機(jī)制研究
基于溫濕度控制的天氣預(yù)測(cè)裝置
基于DSP和μcos的溫濕度檢測(cè)系統(tǒng)的設(shè)計(jì)
淺析單片機(jī)開(kāi)發(fā)板的設(shè)計(jì)與制作
云南省| 乳源| 舟山市| 苍溪县| 三门县| 黄陵县| 黑龙江省| 阆中市| 高平市| 瓦房店市| 江城| 西乌珠穆沁旗| 博罗县| 荥经县| 水城县| 麦盖提县| 河津市| 来安县| 平度市| 如东县| 霍城县| 仲巴县| 白水县| 德钦县| 蓝山县| 天镇县| 武强县| 广安市| 龙井市| 曲松县| 万荣县| 芒康县| 宁城县| 济宁市| 赤壁市| 平果县| 乌鲁木齐县| 宿州市| 盐山县| 中西区| 锡林浩特市|