基于ARM的實(shí)時(shí)溫度監(jiān)控系統(tǒng)-畢業(yè)論文_第1頁
基于ARM的實(shí)時(shí)溫度監(jiān)控系統(tǒng)-畢業(yè)論文_第2頁
基于ARM的實(shí)時(shí)溫度監(jiān)控系統(tǒng)-畢業(yè)論文_第3頁
基于ARM的實(shí)時(shí)溫度監(jiān)控系統(tǒng)-畢業(yè)論文_第4頁
基于ARM的實(shí)時(shí)溫度監(jiān)控系統(tǒng)-畢業(yè)論文_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

頁1前言溫度是環(huán)境的一種最基本的參數(shù),對我們?nèi)祟惗?,這不僅僅是一個(gè)物理參數(shù)的反映,而是與我們的生活息息相關(guān)。不論是工業(yè)生產(chǎn)中需要實(shí)時(shí)監(jiān)控溫度的變化,還是農(nóng)業(yè)生產(chǎn)中也離不開對溫度的測量。隨著這些需要的不斷提高,我們的先輩發(fā)明溫度傳感器。溫度傳感器是最早開發(fā),應(yīng)用最廣的一類傳感器。從17世紀(jì)初伽利略發(fā)明溫度計(jì)開始,人們開始利用溫度進(jìn)行測量。真正把溫度變成電信號的傳感器是1821年由德國物理學(xué)家賽貝發(fā)明的,這就是后來的熱電偶傳感器。溫度監(jiān)控是生產(chǎn)中的一個(gè)重要環(huán)節(jié),尤其在環(huán)境及其惡劣和復(fù)雜的工業(yè)現(xiàn)場,溫度監(jiān)控更是起著不可替代的作用。因此,研究溫度測量的方法和裝置具有重要的意義。而測量溫度的關(guān)鍵是溫度傳感器。通過溫度傳感器實(shí)時(shí)采集環(huán)境的實(shí)時(shí)溫度,對采集到的數(shù)據(jù)進(jìn)行處理,發(fā)出相應(yīng)的動(dòng)作,已達(dá)到我們的需求。本系統(tǒng)的溫度測量端采用Nationalsemiconductor公司的lm75芯片,該芯片是一種含9位ADC、溫度分辨率為0.5℃的數(shù)字溫度傳感器,測量范圍是-55℃~125℃。它提供兩條支持I2C總線協(xié)議的接口來監(jiān)測溫度,并具備自校準(zhǔn)功能。上位機(jī)可以隨時(shí)要求lm75讀取溫度,當(dāng)溫度超過設(shè)定的溫度時(shí),芯片系統(tǒng)會自動(dòng)輸出一個(gè)超溫報(bào)警信號。對環(huán)境溫度進(jìn)行數(shù)據(jù)的采集和存儲。該系統(tǒng)具有讀取數(shù)據(jù)方便、測溫范圍廣、測溫準(zhǔn)確等優(yōu)點(diǎn)。該溫度監(jiān)控系統(tǒng)由四個(gè)基本組件組成,分別由lm75溫度傳感器、LED燈、蜂鳴器、GSM模塊組成,其中由LED燈、蜂鳴器組成聲光報(bào)警系統(tǒng)。該溫度監(jiān)控系統(tǒng)由lm75溫度傳感器實(shí)時(shí)采集當(dāng)前環(huán)境溫度,當(dāng)環(huán)境溫度超過用戶設(shè)定的溫度值時(shí),將觸發(fā)聲光報(bào)警系統(tǒng),使LED燈閃爍、蜂鳴器發(fā)出警告,并有GSM發(fā)出短信通知用戶。2監(jiān)控系統(tǒng)主要元器件介紹2.1基于Cortex-A8的FS_S5PC100的開發(fā)板FS_S5PC100開發(fā)平臺用三星公司先進(jìn)的基于Cortex-A8內(nèi)核的S5PC100處理器設(shè)計(jì)而成。S5PC100處理器采用了64/32位的內(nèi)部總線結(jié)構(gòu),最大833M赫茲的運(yùn)算速度。包括強(qiáng)大的硬件加速器,如:動(dòng)態(tài)視頻處理,顯示控制和縮放。支持多種格式的硬件編解碼如MPEF-1/2/4、H263/H264等。其視頻解碼能力很強(qiáng)大并且省電,編解碼能力達(dá)到1280x720,支持電視輸出(NTSC/PAL/HDMI)。支持2D/3D加速。本處理器廣泛應(yīng)用于智能手機(jī)、平板電腦等產(chǎn)品。2.1.1FS_S5PC100開發(fā)板FS_S5PC100擁有豐富的硬件資源,開發(fā)板實(shí)物圖如圖1所示。存儲器:256MByte的NANDFlash,256MByte的DDR2內(nèi)存,2M的NorFlash;顯示輸出接口:LCD接口、VGA接口、TVout接口、HDMI接口;視頻輸入接口:Camera接口;串口:2路5線串口、1路3線串口;紅外通訊接口:1路紅外收發(fā);存儲卡接口:SD卡接口;SPI:SPI的E2PROM(用于SPI實(shí)驗(yàn));I2C:I2C的溫度傳感器(用于I2C實(shí)驗(yàn));A/D:變阻器(用于A/D實(shí)驗(yàn));USB:USB2.0-OTG接口、4路USBHost接口;PWM:蜂鳴器(用于PWM實(shí)驗(yàn));網(wǎng)絡(luò)接口:DM9000AE以太網(wǎng)控制器,實(shí)現(xiàn)10M/100M自適應(yīng)以太網(wǎng) 通信;外擴(kuò)接口:藍(lán)牙、wifi等;音頻接口:WM9714;圖1FS_S5PC100開發(fā)板2.2LM75溫度傳感器LM75溫度傳感器包含一個(gè)Δ-Σ模/數(shù)轉(zhuǎn)換器和一個(gè)數(shù)字過熱檢測器。主機(jī)可通過器件的I2C接口隨時(shí)查詢LM75,讀取溫度數(shù)據(jù)。當(dāng)溫度超過可編程溫度門限時(shí),漏極開路過熱報(bào)警輸出(OS)將吸入電流。OS輸出具有2種工作模式:比較器模式或中斷模式。主機(jī)控制報(bào)警觸發(fā)門限(TOS)和滯回溫度(THYST),溫度低于滯回門限時(shí)解除報(bào)警條件。另外,主機(jī)還可以讀取LM75的Tos和THYST寄存器。LM75的地址有三個(gè)引腳設(shè)置,允許多個(gè)器件工作在同一個(gè)總線。器件上電時(shí)進(jìn)入比較器模式,默認(rèn)條件下Tos=+80oC且THYST=+75攝氏度。3.0V至5.5V供電電壓范圍、低電源電流以及I2C接口使得LM75成為需要熱管理和保護(hù)應(yīng)用的理想選擇。2.2.1LM75功能特性LM75芯片如圖2所示。SO(SOP)和uMAX(uSOP)封裝;I2C總線接口;獨(dú)立的漏極開路OS輸出作為中斷或比較器、溫度調(diào)節(jié)器輸入;寄存器回讀功能;上電默認(rèn)狀態(tài)允許獨(dú)立工作在溫度調(diào)節(jié)狀態(tài);3.0V至5.5V供電電壓;較低的工作電流:250uA(典型值)、1mA(最大值);4uA(典型值)關(guān)斷模式有效降低功耗;同一總線可最多掛接8個(gè)LM75;引腳和寄存器兼容Maxim升級版?zhèn)鞲衅?,例如:MAX7500、MAX6625。圖2LM75芯片2.2.2LM75引腳配置LM75引腳配置如圖3所示。圖3LM75引腳配置2.2.3LM75在本開發(fā)平臺的電路原理圖LM75在本開發(fā)平臺的電路原理圖如圖4所示。圖4LM75在開發(fā)板的原理圖2.3WISMO218模塊芯片WISMO218模塊芯片如圖5所示。圖5WISMO218模塊芯片2.3.1WISMO218模塊特性WISMO218GSM/GPRS無線通訊模塊。它具有體積小,易用性強(qiáng),品質(zhì)優(yōu)良等特性。以極具競爭力的價(jià)格,推向M2M行業(yè)。頻段:GSM900/1800MHz,CSD,SMS,FAX,GPRSclass10,順從3GPP.信號靈敏度:-108dbm.全球認(rèn)證:CE,GCF,ChinaRTE,R&TTE,FCC,PTCRB,AT&T.語音編碼:HR,FR,EFR,AMR溫度范圍:-30-75度 工作電壓:3.2-4.8V功耗:36uA(off)/1.6mA(Idle)/205mA(connected)硬件接口:46PIN郵票口封裝,1個(gè)語音,1個(gè)SPI,1個(gè)ADC,1個(gè)RTC,1個(gè)BUZZER,1個(gè)串口,3個(gè)GPIO,3個(gè)PWM.SIM卡接口:1.8和3V尺寸:25x25x2.8mm2.3.2AT指令介紹AT即Attention,AT指令一般應(yīng)用于終端設(shè)備與PC應(yīng)用之間的連接與通信。AT指令集是從終端設(shè)備(TerminalEquipment,TE)或數(shù)據(jù)終端設(shè)備(DataTerminalEquipment,DTE)向終端適配器(TerminalAdapter,TA)或數(shù)據(jù)電路終端設(shè)備(DataCircuitTerminalEquipment,DCE)發(fā)送。其對所傳輸?shù)臄?shù)據(jù)包大小有定義:即對于AT指令的發(fā)送,除AT兩個(gè)字符外,最多可以接收1056個(gè)字符的長度(包括最后的空字符)。每個(gè)AT命令行中只能包含一條AT指令;對于由終端設(shè)備主動(dòng)向PC端報(bào)告的URC指示或者response響應(yīng),也要求一行最多有一個(gè),不允許上報(bào)的一行中有多條指示或者響應(yīng)。AT指令以回車作為結(jié)尾,響應(yīng)或上報(bào)以回車換行為結(jié)尾。2.3.3AT指令的基本用法AT指令是以AT作首,字符結(jié)束的字符串,AT指令的響應(yīng)數(shù)據(jù)包在中。每個(gè)指令執(zhí)行成功與否都有相應(yīng)的返回。其他的一些非預(yù)期的信息(如有人撥號進(jìn)來、線路無信號等),模塊將有對應(yīng)的一些信息提示,接收端可做相應(yīng)的處理。大概分為測試指令、讀取指令和執(zhí)行指令。

1)測試命令(TestCommand)在AT指令后面加上“=?”即構(gòu)成測試命令。例如“AT+CSCS=?”會列舉出所有支持的字符集;

2)讀取命令(ReadCommand)在AT指令后面加上“?”即構(gòu)成讀取命令。例如“AT+CSCS?”會列舉出當(dāng)前設(shè)置;

3)執(zhí)行命令(ExecuteCommand)一般而言在AT指令后加上“=”及命令參數(shù)即可。有些命令例如AT+CMGR命令沒有參數(shù),直接就可以執(zhí)行。

注:并不是所有的AT指令都支持1和2;2.3.4AT指令的常用命令A(yù)T測試連接是否正確ATE0關(guān)閉回顯。程序初始化AT部分首先關(guān)閉回顯。ATE1打開回顯。使用超級終端測試命令時(shí)打開。AT+CGMI得到廠商信息AT+CGMR得到手機(jī)版本號AT+CGSN得到手機(jī)序列號(IMEI)AT+CIMI得到手機(jī)IMSI號碼AT+CSCS獲取、設(shè)置手機(jī)當(dāng)前字符集??稍O(shè)置為GSM或UCS2AT+CBC獲取手機(jī)電量AT+CCLK獲取設(shè)置手機(jī)時(shí)鐘AT+CSQ當(dāng)前信號AT+COPS網(wǎng)絡(luò)營運(yùn)商AT+CSCA短信中心號碼AT+CPMS選擇短信儲存地點(diǎn)??蛇x擇ME(SIM卡)和MT(機(jī)身)AT+CMGL列出指定狀態(tài)的短信息的PDU代碼AT+CMGR列出指定序號的短信息PDU代碼AT+CMGS發(fā)送短信AT+CMGD刪除指定的短信AT+CMGF短信格式。分為Text模式和PDU模式AT+CNMI設(shè)置新短消息通知電腦端2.4PWM驅(qū)動(dòng)蜂鳴器2.4.1PWM概述PWM脈寬調(diào)制,是靠改變脈沖寬度來控制輸出電壓,通過改變周期來控制其輸出頻率。而輸出頻率的變化可通過改變此脈沖的調(diào)制周期來實(shí)現(xiàn)。這樣,使調(diào)壓和調(diào)頻兩個(gè)作用配合一致,且于中間直流環(huán)節(jié)無關(guān),因而加快了調(diào)節(jié)速度,改善了動(dòng)態(tài)性能。由于輸出等幅脈沖只需恒定直流電源供電,可用不可控整流器取代相控整流器,使電網(wǎng)側(cè)的功率因數(shù)大大改善。利用PWM逆變器能夠抑制或消除低次諧波。加上使用自關(guān)斷器件,開關(guān)頻率大幅度提高,輸出波形可以非常接近正弦波。在本開發(fā)平臺S5PC100的內(nèi)部有5個(gè)32位的定時(shí)器,這些定時(shí)器能產(chǎn)生內(nèi)部中斷到ARM子系統(tǒng)。并且定時(shí)器0,1,和2具有產(chǎn)生PWM的能力來驅(qū)動(dòng)外部I/O信號。定時(shí)器3,4是一個(gè)沒有輸出引腳的內(nèi)部定時(shí)器,定時(shí)器0有一個(gè)用于大電流設(shè)備的死區(qū)生成器。在S5PC100中PWM定時(shí)器如圖6所示。圖6PWM定時(shí)器2.4.2蜂鳴器概述蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)、報(bào)警器、電子玩具、汽車電子設(shè)備、電話機(jī)、定時(shí)器等電子產(chǎn)品中作發(fā)聲器件。;蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。蜂鳴器在電路中用字母“H”或“HA”(舊標(biāo)準(zhǔn)用“FM”、“LB”、“JD”等)表示。2.4.3PWM驅(qū)動(dòng)蜂鳴器PWM輸出口直接驅(qū)動(dòng)是利用PWM輸出口本身可以輸出一定的方波來直接驅(qū)動(dòng)蜂鳴器。通過設(shè)置幾個(gè)系統(tǒng)寄存器是用來設(shè)置PWM口的輸出的,可以設(shè)置占空比、周期等等,通過設(shè)置這些寄存器產(chǎn)生符合蜂鳴器要求的頻率的波形之后,只要打開PWM輸出,PWM輸出口就能輸出該頻率的方波,這個(gè)時(shí)候利用這個(gè)波形就可以驅(qū)動(dòng)蜂鳴器了。比如頻率為2000Hz的蜂鳴器的驅(qū)動(dòng),可以知道周期為500μs,這樣只需要把PWM的周期設(shè)置為500μs,占空比電平設(shè)置為250μs,就能產(chǎn)生一個(gè)頻率為2000Hz的方波,通過這個(gè)方波再利用三極管就可以去驅(qū)動(dòng)這個(gè)蜂鳴器了。2.4.4PWM驅(qū)動(dòng)蜂鳴器在本開發(fā)平臺的電路原理圖PWM驅(qū)動(dòng)蜂鳴器在本開發(fā)平臺的電路原理圖如圖7所示。圖7蜂鳴器電路原理圖3監(jiān)控系統(tǒng)各個(gè)模塊功能實(shí)現(xiàn)3.1PWM驅(qū)動(dòng)蜂鳴器3.1.1蜂鳴器硬件原理圖蜂鳴器硬件原理圖如圖8所示。圖8蜂鳴器硬件原理圖3.1.2蜂鳴器驅(qū)動(dòng)程序設(shè)計(jì)由于這個(gè)蜂鳴器是無源的,所以要想使其產(chǎn)生聲音必須給他提供一個(gè)有一定頻率的高低電平。所以這里我們采用S5PC100的PWM定時(shí)器來使蜂鳴器發(fā)出聲音。在S5PC100中,有兩個(gè)寄存器,TCNTB1、TCMPB1,TCNTB1表示計(jì)數(shù)器從TCNTB1對應(yīng)的值開始遞減,當(dāng)其遞減到TCMPB1時(shí),電平翻轉(zhuǎn)。當(dāng)逆變器未使能時(shí),從TCNTB1減到TCMPB1時(shí)候TOUT輸出高電平,而從TCMPB1到0時(shí)輸出低電平。由此可知,當(dāng)TCMPB1相同時(shí),TCNTB1值越大聲音越低,反之越尖。實(shí)現(xiàn):關(guān)鍵步驟:1)分別設(shè)置定時(shí)器1的預(yù)分頻器值和時(shí)鐘分頻值,以供定時(shí)器1的比較緩存寄存器和計(jì)數(shù)緩存寄存器用;2)設(shè)置比較緩存寄存器TCMPB1和計(jì)數(shù)緩存寄存器TCNTB1的初始值(即定時(shí)器0的輸出時(shí)鐘頻率);3)關(guān)閉定時(shí)器1的死區(qū)生成器(設(shè)置TCON的第4位);4)開啟定時(shí)器1的自動(dòng)重載(設(shè)置TCON的第3位);5)關(guān)閉定時(shí)器1的反相器(設(shè)置TCON的第2位);6)開啟定時(shí)器1的手動(dòng)更新TCNTB1&TCMPB1功能(設(shè)置TCON的第1位);7)啟動(dòng)定時(shí)器1(設(shè)置TCON的第0位);8)清除定時(shí)器1的手動(dòng)更新TCNTB1&TCMPB1功能(設(shè)置TCON的第1位)。由此可以看到,PWM的輸出頻率跟比較緩存寄存器和計(jì)數(shù)緩存寄存器的取值有關(guān),而比較緩存寄存器和計(jì)數(shù)緩存寄存器的值又跟預(yù)分頻器和時(shí)鐘分頻器的值有關(guān);要使用PWM功能其實(shí)也就是對定時(shí)器的相關(guān)寄存器進(jìn)行操作。手冊上也有一個(gè)公式:定時(shí)器輸出頻率=PCLK/{預(yù)分頻器值+1}/時(shí)鐘分頻值。下面我們來通過一個(gè)蜂鳴器的實(shí)例來說明PWM功能的使用。關(guān)鍵代碼://初始化staticvoidbeep_init(void){ writel((readl(S5PC100_GPD_BASE)&(~0xF<<4))|(0x2<<4), S5PC100_GPD_BASE); writel((readl(S3C2410_TCFG0)&(~0xFF)),S3C2410_TCFG0); writel((readl(S3C2410_TCFG1)&(~0xF<<4)|(0x1<<4)),S3C2410_TCFG1); writel(tcntb1,S3C2410_TCNTB(1)); writel(tcntb1/2,S3C2410_TCMPB(1)); writel(readl(S3C2410_TCON)&(~0xF<<8)|(0xA<<8),S3C2410_TCON);}//打開蜂鳴器staticvoidbeep_on(void){ writel(readl(S3C2410_TCON)&(~0xF<<8)|(0x9<<8),S3C2410_TCON);}//關(guān)閉蜂鳴器staticvoidbeep_off(void){ writel(readl(S3C2410_TCON)&(~0xf<<8),S3C2410_TCON);}//設(shè)置相關(guān)參數(shù)staticvoidset_cnt(unsignedlongarg){ writel(arg,S3C2410_TCNTB(1)); writel(arg/2,S3C2410_TCMPB(1));}staticvoidset_pre(unsignedlongarg){ writel((readl(S3C2410_TCFG0)&~0xff)|(arg&0xff),S3C2410_TCFG0);}3.1.3蜂鳴器應(yīng)用程序設(shè)計(jì)(1)voidbeep_start(void); 函數(shù)功能:打開蜂鳴器;(2)voidbeep_stop(void); 函數(shù)功能:關(guān)閉蜂鳴器;3.2LED報(bào)警燈3.2.1LED報(bào)警燈的原理圖LED報(bào)警燈的原理圖如圖9所示。圖9LED報(bào)警燈的原理圖3.2.2LED報(bào)警燈驅(qū)動(dòng)程序設(shè)計(jì)在裸板程序開發(fā)中,對LED的操作很方便,只需要直接對LED的相應(yīng)的寄存器寫1就可以把燈點(diǎn)亮。在本次開發(fā)中,把LED寫成一個(gè)簡單的字符設(shè)備驅(qū)動(dòng)。關(guān)鍵步驟:由于GPG3IO口是一個(gè)復(fù)合端口,需要把GPG3口置為output狀態(tài)如圖10所示;圖10GPG3IO口2)向?qū)?yīng)的數(shù)據(jù)寄存器寫1;關(guān)鍵代碼://初始化把GPG3置為輸出狀態(tài);staticvoidled_init(void){ writel((readl(S5PC100_GPG3_BASE)&(~0XFFFF))|(0X1111),S5PC100_GPG3_BASE);}//打開led燈,flag表示是哪盞燈;staticvoidled_on(charflag){ switch(flag){ case0: writel((readl(S5PC100_GPG3_BASE+0x4)&(~0x1))|(0x1),S5PC100_GPG3_BASE+0x4); break; }}//關(guān)閉led燈,flag表示是哪盞燈;staticvoidled_off(charflag){ switch(flag){ case0: writel((readl(S5PC100_GPG3_BASE+0x4))&(~0x1),S5PC100_GPG3_BASE+0x4); break; }}3.2.3蜂鳴器應(yīng)用程序設(shè)計(jì)(1)voidled_off(constint);函數(shù)功能:關(guān)閉led燈;(2)voidled_off(constint);函數(shù)功能:打開led燈;3.3GSM通信模塊本次設(shè)計(jì)的GPRS模塊主要需要完成的功能為:通過ARM開發(fā)板的串口,控制GPRS短信息模塊,實(shí)現(xiàn)短信息的即時(shí)收發(fā),實(shí)時(shí)了解庫房溫度。3.3.1GSM通信模塊設(shè)計(jì)流程圖1)數(shù)據(jù)流流程圖如圖11所示。AT指令串口GPRS模塊GPRS返回字符串圖11數(shù)據(jù)流流程程序設(shè)計(jì)流程圖如圖12所示。圖12程序設(shè)計(jì)流程3.3.2串口的初始化及讀寫為了串口能正常通信處理,必須做一些相應(yīng)配置,最后將以下配置步驟合為一個(gè)初始化函數(shù)serial_init(char*COM),文件描述符保存在全局變量中。1)打開串:intopen(constchar*pathname,intoflag,.../*mode_tmode*/);2)串口初始化配置包括以下這些參數(shù)設(shè)置:1.設(shè)置波特率(一般為115200)2.輸入波特率intcfsetospeed(structtermios*termptr,speed_tspeed);3.輸出波特率speed_tcfgetospeed(conststructtermios*termptr);4.設(shè)置校驗(yàn)位staticintset_parity(intfd,charparity)5.設(shè)置數(shù)據(jù)位staticintset_databits(intfd,intdatabits)6.設(shè)置停止位staticintset_stopbits(intfd,intstopbits)7.設(shè)置最大等待時(shí)間newflag.c_cc[VTIME]=time8.設(shè)置最小接收字符數(shù)newflag.c_cc[VMIN]=min;9.設(shè)置未接收的字符tcflush(serial_fd,TCIFLUSH);3)激活配置inttcsetattr(intfd,intoptional_actions,conststructtermios*termios_p);4)串口的讀寫封裝的函數(shù)分別為serial_write(char*str);和serial_read(char *str);3.3.3GPRS模塊初始化1)測試與GPRS連接狀況,向串口寫命令,serial_write("at\r");如果返回\n\nOK\n\n或at\n\nOK\n\n則連接成功;2)關(guān)閉回顯,向串口寫命令,serial_write("ATE0\r");如果返回\n\nOK\n\n則關(guān)閉成功3)設(shè)置波特率,向串口寫命令,serial_write("at+ipr=B115200\r")返回\n\nOK\n\n則設(shè)置成功4)保存設(shè)置,serial_write("at&w\r");返回\n\nOK\n\n則設(shè)置成功3.3.4短信的發(fā)送短信的發(fā)送本質(zhì)上就是向串口寫數(shù)據(jù)。短信發(fā)送是以中文格式發(fā)送的,故有固定發(fā)送格式要求。發(fā)送中文短信有四個(gè)步驟:切換發(fā)送模式為中文格式,即serial_write("at+cmgf=0\r");向GPRS模塊指明發(fā)送的字符數(shù),即serial_write("at+cmgs=xx\r");其中xx是指發(fā)送短信總長度/2-1;向GPRS模塊發(fā)送要發(fā)的短信內(nèi)容,即serial_write("0011000D916xx0008A0bbcc");其中xx是電話號碼,bb是發(fā)送的中文數(shù)*2,cc是中文內(nèi)容的Unicode碼4)向GPRS模塊發(fā)送短信結(jié)束標(biāo)記,即serial_write("\r\x1a\r");如果GPRS模塊返回"\n\n+CMGS=xx\n\n"時(shí),表明短信發(fā)送成功,其中xx表示總的發(fā)送短信成功條數(shù)。短信內(nèi)容:發(fā)送當(dāng)前環(huán)境溫度,收到的短信內(nèi)容為:當(dāng)前溫度:xxx℃.,xxx是溫度值;3.3.5經(jīng)過封裝后向外部提供的函數(shù)接口1)gsm_init(char*COM)該函數(shù)做的工作:打開串口,并初始化,如果出錯(cuò)返回-1;初始化GPRS模塊,如果出錯(cuò)返回-2;創(chuàng)建線程,監(jiān)聽串口,如果出錯(cuò)返回-3;2)intsend_message(intcmd,inttemperature,char*ph_num); 向目的號碼發(fā)送短信。3.4LM75溫度傳感模塊3.4.1LM75溫度傳感模塊介紹Lm75內(nèi)部有五個(gè)寄存器,其中四個(gè)寄存器命令指針寄存器進(jìn)行選擇,lm75上電默認(rèn)為00;及選擇溫度寄存器(Temperatureregister),這個(gè)寄存器中保存了當(dāng)前采集的溫度,如果I2C發(fā)出了讀命令,lm75會返回該寄存器中的溫度值(16位),相關(guān)寄存器介紹如下:命令/指針寄存器:(8位只讀)主要用于選擇溫度寄存器、配置寄存器、超閥值寄存器、超閥值溫度關(guān)閉寄存器,如圖13所示。圖13Lm75內(nèi)部寄存器溫度寄存器:如圖14所示。圖14LM75溫度寄存器MSB:符號位(正、負(fù)溫度)D8~D14:溫度數(shù)據(jù)位LSB:小數(shù)位(0.5℃)THYSTANDTOSREGISTER,如圖15所示。 圖15THYSTANDTOSREGISTERD0–D6:未定義D7–D15:報(bào)警溫度和滯后溫度.上電默認(rèn)TOS=80°C,THYST=75°C.3.4.2LM75溫度傳感模塊硬件原理圖LM75溫度傳感模塊硬件原理圖如圖16所示。圖16LM75溫度傳感模塊硬件原理圖3.4.3LM75驅(qū)動(dòng)程序設(shè)計(jì)注冊為字符設(shè)備,設(shè)備名稱為lm75,設(shè)備號自動(dòng)分配,防止和其他程序員設(shè)置的設(shè)備號沖突,自動(dòng)在dev目錄創(chuàng)建設(shè)備節(jié)點(diǎn),掛接到I2C總線上。系統(tǒng)待用接口有:打開(lm75_open):staticintlm75_open(structinode*inode,structfile*file)關(guān)閉(lm75_release):staticintlm75_release(structinode*inode,structfile*file)讀(lm_75read):staticssize_tlm75_read(structfile*file,char__user*buff,size_tcount,loff_t*offset)IO控制(lm75_ioctl)(定義CMD碼,控制寫哪個(gè)寄存器,用于設(shè)定溫度的超閥值)staticintlm75_ioctl(structinode*inode,structfile*filp,unsignedintcmd,unsignedlongarg){ switch(cmd){ caseSET_OS: lm75_write_value(new_client,LM75_REG_TEMP[1],(u16)((arg*2)<<7)); break; caseSET_HYST: lm75_write_value(new_client,LM75_REG_TEMP[2],(u16)((arg*2)<<7)); break; }}CMD碼:#defineSET_OS _IOR('a',1,int)#defineSET_HYST _IOW('a',2,int)3.4.4LM75運(yùn)用程序接口設(shè)計(jì)(1)intset_temper(intHighpoint,intLowpoint);函數(shù)功能:設(shè)置報(bào)警溫度(2)doubleget_current_tempe(void)函數(shù)功能:獲取當(dāng)前溫度intget_high_tempe(void)函數(shù)功能:獲取超限溫度(4)intget_low_tempe(void)函數(shù)功能:獲取遲滯溫度(5)temperature_init()函數(shù)功能:初始化溫度模塊控制系統(tǒng)軟件設(shè)計(jì)4.1主程序主程序的主要功能是按照需求設(shè)計(jì),合理組織各個(gè)功能模塊,完成既定的功能。即通過LM75溫度傳感模塊,實(shí)時(shí)采集溫度,當(dāng)溫度超過預(yù)設(shè)的溫度上限時(shí),LED燈被點(diǎn)亮,蜂鳴器發(fā)出警告聲,GSM模塊發(fā)出短信通知相應(yīng)人員。流程圖如圖17所示。LM75實(shí)時(shí)采集溫度LM75實(shí)時(shí)采集溫度溫度上限LED燈閃爍蜂鳴器報(bào)警GSM發(fā)出短信NY圖17主程序?qū)崿F(xiàn)流程代碼實(shí)現(xiàn):intmain(intargc,char**argv){ intgsm_flag=0; floattemperature_temp=0; charphone_no[]=argv[1];//接收信息人的電話號碼 printf("Therecipient'stelephonenumber=[%s]\n",phone_no); temperature_init();//初始化溫度模塊 set_temper(31,25);//設(shè)置超限溫度和遲滯溫度 printf("high_tempe=[%d]\n",get_high_tempe()); printf("low_tempe=[%d]\n",get_low_tempe()); printf("current_temperature=[%.1f]\n",get_current_tempe()); while(1) { temperature_temp=get_current_tempe(); if(temperature_temp>=get_high_tempe()) { //溫度超限后LED燈閃爍,蜂鳴器報(bào)警gsm_flag++; if(gsm_flag==1) {//在溫度超限回到正常前,只發(fā)送一次短信 gsm_func_((int)get_current_tempe(),phone_no); } if(temperature_temp!=get_current_tempe()) { printf("current_temperature=[%.1f]\n",get_current_tempe()); }//LED燈的控制 led_on(4); led_off(4);//蜂鳴器控制 beep_start(); beep_stop(); }else{//s溫度正常 if(temperature_temp!=get_current_tempe()) { printf("current_temperature=[%.1f]\n",get_current_tempe()); } led_off(4); beep_stop(); gsm_flag=0; } } return0;}5結(jié)論本文詳細(xì)論述了新型數(shù)字溫度傳感器LM75和S5PC100為核心的溫度監(jiān)控系統(tǒng)的設(shè)計(jì)方案。其硬件和軟件簡單,安裝方便,價(jià)廉,可以根據(jù)用戶的需要設(shè)置溫度監(jiān)控范圍,提高整套系統(tǒng)的使用的靈活性。該系統(tǒng)嚴(yán)格按照計(jì)量產(chǎn)品的標(biāo)定規(guī)范進(jìn)行,對測量數(shù)據(jù)進(jìn)行了分析處理,以及對誤差進(jìn)行了修正,使用精度達(dá)到了0.5級。通過實(shí)驗(yàn)證明,該系統(tǒng)設(shè)計(jì)可以實(shí)現(xiàn)對工業(yè)現(xiàn)場多點(diǎn)溫度的監(jiān)控,并且具有成本低、功能多、可靠性高的和精度高的特點(diǎn)。通過這次畢業(yè)論文完成的過程中,學(xué)到了很多,也加強(qiáng)了很多大學(xué)學(xué)習(xí)的基本技能,是理論與實(shí)際得到很好的結(jié)合,在這個(gè)過程中,也和同學(xué)進(jìn)行了很多溝通,交流,體會到了團(tuán)隊(duì)合作的樂趣,經(jīng)過最后的調(diào)試,系統(tǒng)成功的實(shí)現(xiàn)了設(shè)計(jì)功能,由于時(shí)間有限和本身知識水平的欠缺,我們認(rèn)為本系統(tǒng)可能還有需要改進(jìn)和提高的地方。參考文獻(xiàn):宋寶華.Linux設(shè)備驅(qū)動(dòng)開發(fā)詳解[M].北京:人民郵電出版社出版,2012,11徐科軍.傳感器與檢測技術(shù)[M].北京:電子工業(yè)出版社,2008,2沙占友.智能化集成溫度傳感器原理及應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2002譚浩強(qiáng).C程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2005,7康華光.電子技術(shù)基礎(chǔ)數(shù)字部分[M].北京:高等教育出版社,2005,7韋東山.嵌入式Linux應(yīng)用開發(fā)完全手冊[M].北京:人民郵電出版社出版發(fā)行,2008,8李肇慶,韓濤.串口端口技術(shù)[M].北京:國防工業(yè)出版社,2004,1仵浩,齊燕杰,宋文超.VisualBasic串行通信工程開發(fā)實(shí)例導(dǎo)航[M].北京:人民郵電出版社,2003,1徐波.PeterVanDerLinden.C專家編程[M].北京:人民郵電出版社出版發(fā)行,2002,12KurtWall.GNU/Linux.張輝[M].北京:清華大學(xué)出版社,2002,6楊曉云,王建橋,楊濤,高文雅.NeilMatthew,RichardStones.Linux程序設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社2002,1致謝首先,我要衷心感謝一直以來給予我無私幫助和關(guān)愛的老師們,特別是我的指導(dǎo)老師趙海軍老師,趙老師學(xué)識淵博,溫文爾雅的氣度,治學(xué)嚴(yán)謹(jǐn)?shù)慕虒W(xué)態(tài)度,對事情要求也是精益求精,對我們進(jìn)行了十分細(xì)致的指導(dǎo),從畢業(yè)設(shè)計(jì)的選題到最后的截稿?!笆谌艘贼~不如授人以漁”,置身其間,耳濡目染,潛移默化,使我接受了全新的思想觀念,領(lǐng)會了基本的思考方式,對我以后的人生來說也是一筆寶貴的精神財(cái)富。從老師、還有同學(xué)身上,我不僅得到很多幫助,更學(xué)習(xí)到很多,學(xué)習(xí)到他們所具有的品質(zhì),這對我的人生是很有幫助的??梢哉f這次的畢業(yè)設(shè)計(jì)并不是我一個(gè)人的成果,而是屬于我的老師和幫助過我的同學(xué)們還有我所共有的!總之,此次我收獲了很多,在自己動(dòng)手操作的過程中也遇到了好些問題,最終都被完滿的解決,既讓我懂得了工作的艱辛,也讓我體會到了解決難題后的快樂,最重要的是在這個(gè)過程中我學(xué)會了解決問提的辦法既為大學(xué)四年劃上了一個(gè)完美的句號,也為將來進(jìn)入社會做了一個(gè)很好的鋪墊。再次感謝我的大學(xué)和所有幫助過我并給我鼓勵(lì)的老師,同學(xué)和朋友,衷心的祝愿你們工作順利,身體健康!基于C8051F單片機(jī)直流電動(dòng)機(jī)反饋控制系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的嵌入式Web服務(wù)器的研究MOTOROLA單片機(jī)MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對良率的影響研究基于模糊控制的電阻釬焊單片機(jī)溫度控制系統(tǒng)的研制基于MCS-51系列單片機(jī)的通用控制模塊的研究基于單片機(jī)實(shí)現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機(jī)控制的二級倒立擺系統(tǒng)的研究基于增強(qiáng)型51系列單片機(jī)的TCP/IP協(xié)議棧的實(shí)現(xiàn)基于單片機(jī)的蓄電池自動(dòng)監(jiān)測系統(tǒng)基于32位嵌入式單片機(jī)系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機(jī)的作物營養(yǎng)診斷專家系統(tǒng)的研究基于單片機(jī)的交流伺服電機(jī)運(yùn)動(dòng)控制系統(tǒng)研究與開發(fā)基于單片機(jī)的泵管內(nèi)壁硬度測試儀的研制基于單片機(jī)的自動(dòng)找平控制系統(tǒng)研究基于C8051F040單片機(jī)的嵌入式系統(tǒng)開發(fā)基于單片機(jī)的液壓動(dòng)力系統(tǒng)狀態(tài)監(jiān)測儀開發(fā)模糊Smith智能控制方法的研究及其單片機(jī)實(shí)現(xiàn)一種基于單片機(jī)的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機(jī)沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機(jī)的在線間歇式濁度儀的研制基于單片機(jī)的噴油泵試驗(yàn)臺控制器的研制基于單片機(jī)的軟起動(dòng)器的研究和設(shè)計(jì)基于單片機(jī)控制的高速快走絲電火花線切割機(jī)床短循環(huán)走絲方式研究基于單片機(jī)的機(jī)電產(chǎn)品控制系統(tǒng)開發(fā)基于PIC單片機(jī)的智能手機(jī)充電器基于單片機(jī)的實(shí)時(shí)內(nèi)核設(shè)計(jì)及其應(yīng)用研究基于單片機(jī)的遠(yuǎn)程抄表系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的煙氣二氧化硫濃度檢測儀的研制基于微型光譜儀的單片機(jī)系統(tǒng)單片機(jī)系統(tǒng)軟件構(gòu)件開發(fā)的技術(shù)研究基于單片機(jī)的液體點(diǎn)滴速度自動(dòng)檢測儀的研制基于單片機(jī)系統(tǒng)的多功能溫度測量儀的研制基于PIC單片機(jī)的電能采集終端的設(shè)計(jì)和應(yīng)用基于單片機(jī)的光纖光柵解調(diào)儀的研制氣壓式線性摩擦焊機(jī)單片機(jī)控制系統(tǒng)的研制基于單片機(jī)的數(shù)字磁通門傳感器基于單片機(jī)的旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器的研究基于單片機(jī)的光纖Bragg光柵解調(diào)系統(tǒng)的研究單片機(jī)控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機(jī)的多生理信號檢測儀基于單片機(jī)的電機(jī)運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)Pico專用單片機(jī)核的可測性設(shè)計(jì)研究基于MCS-51單片機(jī)的熱量計(jì)基于雙單片機(jī)的智能遙測微型氣象站MCS-51單片機(jī)構(gòu)建機(jī)器人的實(shí)踐研究基于單片機(jī)的輪軌力檢測基于單片機(jī)的GPS定位儀的研究與實(shí)現(xiàn)基于單片機(jī)的電液伺服控制系統(tǒng)用于單片機(jī)系統(tǒng)的MMC卡文件系統(tǒng)研制基于單片機(jī)的時(shí)控和計(jì)數(shù)系統(tǒng)性能優(yōu)化的研究基于單片機(jī)和CPLD的粗光柵位移測量系統(tǒng)研究單片機(jī)控制的后備式方波UPS提升高職學(xué)生單片機(jī)應(yīng)用能力的探究基于單片機(jī)控制的自動(dòng)低頻減載裝置研究基于單片機(jī)控制的水下焊接電源的研究基于單片機(jī)的多通道數(shù)據(jù)采集系統(tǒng)基于uPSD3234單片機(jī)的氚表面污染測量儀的研制基于單片機(jī)的紅外測油儀的研究96系列單片機(jī)仿真器研究與設(shè)計(jì)基于單片機(jī)的單晶金剛石刀具刃磨設(shè)備的數(shù)控改造基于單片機(jī)的溫度智能控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)基于MSP430單片機(jī)的電梯門機(jī)控制器的研制基于單片機(jī)的氣體測漏儀的研究基于三菱M16C/6N系列單片機(jī)的CAN/USB協(xié)議轉(zhuǎn)換器基于單片機(jī)和DSP的變壓器油色譜在線監(jiān)測技術(shù)研究基于單片機(jī)的膛壁溫度報(bào)警系統(tǒng)設(shè)計(jì)基于AVR單片機(jī)的低壓無功補(bǔ)償控制器的設(shè)計(jì)基于單片機(jī)船舶電力推進(jìn)電機(jī)監(jiān)測系統(tǒng)基于單片機(jī)網(wǎng)絡(luò)的振動(dòng)信號的采集系統(tǒng)基于單片機(jī)的大容量數(shù)據(jù)存儲技術(shù)的應(yīng)用研究基于單片機(jī)的疊圖機(jī)研究與教學(xué)方法實(shí)踐基于單片機(jī)嵌入式Web服務(wù)器技術(shù)的研究及實(shí)現(xiàn)基于AT89S52單片機(jī)的通用數(shù)據(jù)采集系統(tǒng)基于單片機(jī)的多道脈沖幅度分析儀研究機(jī)器人旋轉(zhuǎn)電弧傳感角焊縫跟蹤單片機(jī)控制系統(tǒng)基于單片機(jī)的控制系統(tǒng)在PLC虛擬教學(xué)實(shí)驗(yàn)中的應(yīng)用研究基于單片機(jī)系統(tǒng)的網(wǎng)絡(luò)通信研究與應(yīng)用基于PIC16F877單片機(jī)的莫爾斯碼自動(dòng)譯碼系統(tǒng)設(shè)計(jì)與研究基于單片機(jī)的模糊控制器在工業(yè)電阻爐上的應(yīng)用研究基于雙單片機(jī)沖床數(shù)控系統(tǒng)的研究與開發(fā)基于Cygnal單片機(jī)的μC/OS-Ⅱ的研究基于單片機(jī)的一體化智能差示掃描量熱儀系統(tǒng)研究基于TCP/IP協(xié)議的單片機(jī)與Internet互聯(lián)的研究與實(shí)現(xiàn)變頻調(diào)速液壓電梯單片機(jī)控制器的研究基于單片機(jī)γ-免疫計(jì)數(shù)器自動(dòng)換樣功能的研究與實(shí)現(xiàn)基于單片機(jī)的倒立擺控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論