




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、西南科技大學(xué)畢業(yè)設(shè)計(jì) 題目:基于arduino的智能家居設(shè)計(jì)與實(shí)現(xiàn)學(xué)習(xí)形式: 成人高等教育 專 業(yè): 機(jī)械設(shè)計(jì)制造及其自動(dòng)化 層 次: 本 科 姓 名: 學(xué) 號(hào): 指導(dǎo)老師: 【摘 要】基于arduino的智能家居控制系統(tǒng),以arduino 為核心,通過結(jié)合wifi轉(zhuǎn)串口模塊搭建本地tcp/ip服務(wù)器。arduino 進(jìn)行數(shù)據(jù)采集,發(fā)送,接受和處理。然后通過wifi轉(zhuǎn)串口模塊和遠(yuǎn)端安卓客戶端通信,實(shí)現(xiàn)家居環(huán)境信息的智能采集和控制。本文拋磚引玉,實(shí)現(xiàn)安卓客戶端燈光亮度調(diào)節(jié),舵機(jī)角度控制,以及家居溫度和光照度采集顯示在安卓客戶端。本設(shè)計(jì)采用arduino為核心,arduino具有外圍電路簡(jiǎn)單,程序
2、開源,擴(kuò)展模塊豐富等優(yōu)點(diǎn),設(shè)計(jì)難度在于程序中數(shù)值的處理,以及客戶端軟件的編寫。【關(guān)鍵詞】arduino;智能家居;wifi轉(zhuǎn)串口模塊;服務(wù)器;客戶端。目錄1、概述41.1課題研究背景41.2 本課題的研究的內(nèi)容及目的41.4系統(tǒng)的控制思路與流程52、軟件、硬件介紹62.1客戶端軟件62.2 arduino介紹72.2.1 arduino 研發(fā)過程72.2.2 arduino 編程軟件82.2.3 arduino硬件82.2.4 arduino 編程語言簡(jiǎn)介92.3 wifi模塊介紹123、硬件連接133.1 溫度傳感器133.2光線傳感器163.3伺服舵機(jī)163.4燈光控制184、通訊194.
3、1串行通訊194.2異步通訊194.3 arduino與wifi模塊連接204.4 通訊協(xié)議205、成品展示22參考文獻(xiàn)23致謝24附錄24 西南科技大學(xué)成人教育學(xué)院 自動(dòng)化專業(yè) 姓名:羅永勇 學(xué)號(hào):146850310006 1、概述1.1課題研究背景近年來隨著現(xiàn)代互聯(lián)網(wǎng)技術(shù)的發(fā)展,智能生活的理念深入人心,物聯(lián)網(wǎng)和智能家居真正開始走向人們的視野。隨著現(xiàn)代電力電子技術(shù)和電子元件制造工藝的發(fā)展,物聯(lián)網(wǎng)設(shè)備的自動(dòng)化程度和穩(wěn)定性得到很大的提高,物聯(lián)網(wǎng)設(shè)備也逐步向輕量化、自動(dòng)化和智能化發(fā)展,還有高可靠性、高可控性、高效率等特點(diǎn),功能不斷增強(qiáng)和完善,這推動(dòng)了智能家居技術(shù)的迅速發(fā)展,相繼出現(xiàn)了多種多樣的智能
4、家居設(shè)備,如next恒溫器,空氣凈化器等,但國(guó)內(nèi)外對(duì)本課題的研究尚存在待解決的問題: (1) 家居智能化水平較低; (2) 使用的平臺(tái)不統(tǒng)一,功能單一且不完善; (3) 價(jià)格相對(duì)昂貴,普及的難度比較大。1.2 本課題的研究的內(nèi)容及目的本系統(tǒng)以arduino uno為核心,聯(lián)合hlk-rm04 wifi轉(zhuǎn)串口模塊,通過安卓客戶端使用tcp/ip協(xié)議連接外圍電路及各類傳感器,實(shí)現(xiàn)室內(nèi)家居的遠(yuǎn)程監(jiān)控及智能控制。 研究目的基于家居生活的便捷高效的方向出發(fā),主要是為了改進(jìn)當(dāng)下傳統(tǒng)家居的控制方式落后及使用不方便等缺點(diǎn),本設(shè)計(jì)的智能遠(yuǎn)程控制代替了傳統(tǒng)家居設(shè)備手動(dòng)機(jī)械控制,不僅效率高、成本低、使用方便、可控性
5、強(qiáng),更能提升家居便利性、舒適性、藝術(shù)性,并實(shí)現(xiàn)環(huán)保節(jié)能的居住環(huán)境。1.3 系統(tǒng)結(jié)構(gòu)分析系統(tǒng)由七部分組成(如圖一):安卓app客戶端、燈光控制、arduino 以及wifi模塊、光敏電阻、舵機(jī)、溫度傳感器、外圍電路。各部分組成如下:(1)app客戶端為易安卓軟件用易語言編寫的安卓客戶端;(2)燈光亮度控制采用pwm調(diào)節(jié) (3)核心模塊通過arduinouno單片機(jī)連接 wifi轉(zhuǎn)串口模塊組成,核心模塊不僅是本系統(tǒng)的中央處理器,而且通過連接無線路由器搭建了本地的tcp/ip服務(wù)器;(4)溫度傳感器采用單總線ds18b02集成溫度傳感器,該傳感器可以在一個(gè)io上并接多個(gè)ds18b02,大大的節(jié)約了c
6、pu的硬件資源。(5)光線的測(cè)量采用光敏電阻;(6)伺服舵機(jī);(7)外圍電路由簡(jiǎn)單的發(fā)光二極管及各類元器件組(圖一)1.4系統(tǒng)的控制思路與流程app客戶端使用tcp/ip協(xié)議,遠(yuǎn)程無線連接上工作在服務(wù)器模式的wifi模塊,wifi模塊連接上家庭路由器,需要注意的是家庭網(wǎng)絡(luò)要處于公網(wǎng)模式,在app客戶端發(fā)送控制命令,wifi模塊接受命令轉(zhuǎn)成串口數(shù)據(jù)輸出,arduino讀取串口數(shù)據(jù)實(shí)現(xiàn)led燈光亮度智能調(diào)節(jié),舵機(jī)角度控制,同時(shí)arduino模塊讀取溫度傳感器數(shù)值,采樣光敏電阻電壓轉(zhuǎn)換為光照度,然后arduino把數(shù)據(jù)通過串口傳給wifi模塊,wifi模塊發(fā)送數(shù)據(jù),客戶端接收數(shù)據(jù)然后顯示在安卓手機(jī)上
7、;控制流程如圖二; (圖二)控制流程圖2、軟件、硬件介紹2.1客戶端軟件采用安卓智能手機(jī)作為命令發(fā)送和接受端,通過因特網(wǎng)傳輸數(shù)據(jù),實(shí)現(xiàn)家居的智能監(jiān)控和遠(yuǎn)程操控,操作簡(jiǎn)單,使用方便??蛻舳塑浖捎弥形陌娴陌沧烤帉戃浖疚闹饕獙W⒂谡w框架的實(shí)現(xiàn),在此就不再對(duì)開發(fā)軟件進(jìn)行詳細(xì)介紹,對(duì)軟件界面的美觀性和舒適性未做過多的修飾。如有不足之處,請(qǐng)指教!客戶端軟件界面如圖三:(圖三)2.2 arduino介紹2.2.1 arduino 研發(fā)過程massimo banzi之前是意大利ivrea一家高科技設(shè)計(jì)學(xué)校的老師。他的學(xué)生們經(jīng)常抱怨找不到便宜好用的微控制器。 2005年冬天, massimo banzi
8、跟david cuartielles討論了這個(gè)問題。 david cuartielles是一個(gè)西班牙籍晶片工程師,當(dāng)時(shí)在這所學(xué)校做訪問學(xué)者。兩人決定設(shè)計(jì)自己的電路板,并引入了banzi的學(xué)生david mellis為電路板設(shè)計(jì)編程語言。兩天以后,david mellis就寫出了程式碼。又過了三天,電路板就完工了。這塊電路板被命名為arduino。2.2.2 arduino 編程軟件arduino ide基于processing ide開發(fā)的。對(duì)于初學(xué)者來說,極易掌握,同時(shí)有著足夠的靈活性。arduino語言基于wiring語言開發(fā),是對(duì) avrgcc庫(kù)的二次封裝,不需要太多的單片機(jī)基礎(chǔ)、編程基
9、礎(chǔ),簡(jiǎn)單學(xué)習(xí)后,你也可以快速的進(jìn)行開發(fā)。(圖四)arduino 編程軟件界面2.2.3 arduino硬件arduino發(fā)展至今,出現(xiàn)了適應(yīng)各種環(huán)境的硬件版本,如arduino uno、arduino nano、arduino nano、arduino lilypad,arduino mega 2560。本文采用arduino uno為主控器, arduinouno是arduinousb接口系列的最新版本,作為arduino平臺(tái)的參考標(biāo)準(zhǔn)模板。uno的處理器核心是atmega328,同時(shí)具有14路數(shù)字輸入/輸出口(其中6路可作為pwm輸出),6路模擬輸入,一個(gè)16mhz晶體振蕩器,一個(gè)usb口
10、,一個(gè)電源插座,一個(gè)icspheader和一個(gè)復(fù)位按鈕。uno已經(jīng)發(fā)布到第三版,與前兩版相比有以下新的特點(diǎn):1、 在aref處增加了兩個(gè)管腳sda和scl,支持i2c接口;2、 增加ioref和一個(gè)預(yù)留管腳,將來擴(kuò)展板將能兼容5v和3.3v核心板。3、 改進(jìn)了復(fù)位電路設(shè)計(jì),usb接口芯片由atmega16u2替代了atmega8u2,如圖五為改進(jìn)后的arduinouno。(圖五)arduino uno 硬件圖2.2.4 arduino 編程語言簡(jiǎn)介arduino語言是建立在c/c+基礎(chǔ)上的,其實(shí)也就是基礎(chǔ)的c語言,arduino語言只不過把a(bǔ)vr單片機(jī)(微控制器)相關(guān)的一些參數(shù)設(shè)置都函數(shù)化,不
11、用我們?nèi)チ私馑牡讓樱屛覀儾涣私鈇vr單片機(jī)(微控制器)的朋友也能輕松上手。關(guān)鍵字: if if.else for switch case while do. while break continue return goto語法符號(hào):; / 數(shù)據(jù)類型: boolean 布爾類型 char 字符類型 unsigned int 無符號(hào)整數(shù)類型 long 長(zhǎng)整數(shù)類型unsigned long 無符號(hào)長(zhǎng)整數(shù)類型float 浮點(diǎn)類型double 雙精度浮點(diǎn)類型 string 字符數(shù)組型array 數(shù)組類型void 無類型數(shù)據(jù)類型轉(zhuǎn)換:char() byte() int() long() float()
12、常量: high | low :表示數(shù)字io口的電平,high 表示高電平(1),low 表示低電平(0)。 input | output:表示數(shù)字io口的方向,input 表示輸入(高阻態(tài)),output : 表示輸出(avr能提供5v電壓 40ma電流)。 true | false : true 表示真(1),false表示假(0)。 程序結(jié)構(gòu):聲明變量及接口名稱(例如:int val;int ledpin=13;)。 void setup() 函數(shù)在程序開始時(shí)使用,初始化變量,管腳模式,調(diào)用庫(kù)函數(shù)等(例如:pinmode(ledpin,outupt);)。 void loop() 在se
13、tup()函數(shù)之后,即初始化之后,loop() 讓你的程序循環(huán)地被執(zhí)行。使用它來運(yùn)轉(zhuǎn)arduino。數(shù)字i/o:pinmode(pin,mode):數(shù)字io口輸入輸出模式定義函數(shù),pin表示為013,mode表示input或output。digitalwrite(pin,value):數(shù)字io口輸出電平定義函數(shù),pin表示為013,value表示為high或low。必須先定義為輸入或輸出模式digitalwrite才能生效。intdigitalread(pin):數(shù)字io口讀輸入電平函數(shù),pin表示為013,value表示為high或low。比如可以讀數(shù)字傳感器。模擬i/o:intanalog
14、read(pin):模擬io口讀函數(shù),pin表示為05(arduinodiecimila為05,arduinonano為07)。比如可以讀模擬傳感器(10位ad,05v表示為01023)。analogwrite(pin,value)pwm :數(shù)字io口pwm輸出函數(shù),arduino數(shù)字io口標(biāo)注了pwm的io口可使用該函數(shù),pin表示3,5,6,9,10,11,value表示為0255。比如可用于電機(jī)pwm調(diào)速或音樂播放。時(shí)間函數(shù):unsigned long millis(): 返回時(shí)間函數(shù)(單位ms),該函數(shù)是指,當(dāng)程序運(yùn)行就開始計(jì)時(shí)并返回記錄的參數(shù),該參數(shù)溢出大概需要50天。delay(m
15、s): 延時(shí)函數(shù)(單位ms)。delaymicroseconds(us): 延時(shí)函數(shù)(單位us)。串口收發(fā)函數(shù):serial.begin(speed): 串口定義波特率函數(shù),speed表示波特率(串行每秒傳輸數(shù)據(jù)的速率),如9600,19200等。 int serial.available():判斷緩沖器狀態(tài)。int serial.read():讀串口并返回收到參數(shù)。serial.flush(): 清空緩沖器。serial.print(data):串口輸出數(shù)據(jù)。serial.print:(數(shù)據(jù),數(shù)據(jù)的進(jìn)制) 默認(rèn)為十進(jìn)制(dec) serial.println(data):串口輸出數(shù)據(jù)并帶回車
16、符。以上為arduino使用過程中常用的函數(shù)和語法,其他的函數(shù)和庫(kù)可以參考說明書;2.3 wifi模塊介紹(圖六)wifi串口模塊本設(shè)計(jì)所使用的wifi模塊(圖六)是海凌科電子新推出的低成本嵌入式uart-eth-wifi(串口-以太網(wǎng)-無線網(wǎng))模塊。內(nèi)置tcp/ip 協(xié)議棧,能夠?qū)崿F(xiàn)用戶串口、以太網(wǎng)、無線網(wǎng)(wifi)3 個(gè)接口之間的轉(zhuǎn)換。通過hlk-rm04 模塊,傳統(tǒng)的串口設(shè)備在不需要更改任何配置的情況下,即可通過internet 網(wǎng)絡(luò)傳輸自己的數(shù)據(jù)。為用戶的串口設(shè)備通過網(wǎng)絡(luò)傳輸數(shù)據(jù)提供完整快速的解決方案。(圖七)hlk-rm04功能結(jié)構(gòu)圖 hlk-rm04 模塊在使用之前需要做些相應(yīng)的
17、配置,模塊提供兩種配置方式: 1.web 頁面;2.串口at 指令;訪問web配置界面需要確認(rèn)模塊的ip地址,以及web認(rèn)證的用戶名密碼。通過串口at指令配置參數(shù)需要先讓模塊進(jìn)入at 指令模式,hlk-rm04_config串口配置工具即通過at 指令方式提供簡(jiǎn)單方便的配置過程。在此就不再做過多的介紹,詳細(xì)可以參考說明書;3、硬件連接3.1 溫度傳感器溫度的測(cè)量方式有很多種,本文采用單總線數(shù)字式的溫度傳感器ds18b20,ds18b20是dallas公司生產(chǎn)的一線式數(shù)字溫度傳感器,具有3引腳to92小體積封裝形式(圖八);溫度測(cè)量范圍為55125,可編程為9位12位a/d轉(zhuǎn)換精度,測(cè)溫分辨率可
18、達(dá)0.0625,被測(cè)溫度用符號(hào)擴(kuò)展的16位數(shù)字量方式串行輸出;其工作電源既可在遠(yuǎn)端引入,也可采用寄生電源方式產(chǎn)生;多個(gè)ds18b20可以并聯(lián)到3根或2根線上,cpu只需一根端口線就能與諸多ds18b20通信,占用微處理器的端口較少, 可節(jié)省大量的引線和邏輯電路。以上特點(diǎn)使ds18b20非常適用于遠(yuǎn)距離多點(diǎn)溫度檢測(cè)系統(tǒng)。(圖八) ds18b02封裝ds18b20內(nèi)部結(jié)構(gòu)如(圖九)所示,主要由4部分組成:64位rom、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器th和tl、配置寄存器。dq為數(shù)字信號(hào)輸入輸出端(如圖);gnd為電源地;vdd為外接供電電源輸入端。 rom中的64位序列號(hào)是出廠前被激光刻好的,
19、它可以看作是該ds18b20的地址序列碼,每個(gè)ds18b20的64位序列號(hào)均不相同。這樣就可以實(shí)現(xiàn)一根總線上掛接多個(gè)ds18b20的目的。(圖九)ds18b20內(nèi)部結(jié)構(gòu)框圖ds18b02供電方式有兩種,分別為寄生電源供電方式(圖十)和外部電源供電方式(圖十一);(圖十)ds18b02寄生電源供電方式(圖十一)外部電源供電方式獨(dú)特的寄生電源方式有三個(gè)好處:1)進(jìn)行遠(yuǎn)距離測(cè)溫時(shí),無需本地電源2)可以在沒有常規(guī)電源的條件下讀取rom3)電路更加簡(jiǎn)潔,僅用一根i/o口實(shí)現(xiàn)測(cè)溫要想使ds18b20進(jìn)行精確的溫度轉(zhuǎn)換,i/o線必須保證在溫度轉(zhuǎn)換期間提供足夠的能量,由于每個(gè)ds18b20在溫度轉(zhuǎn)換期間工作電
20、流達(dá)到1ma,當(dāng)幾個(gè)溫度傳感器掛在同一根i/o線上進(jìn)行多點(diǎn)測(cè)溫時(shí),只靠4.7k上拉電阻就無法提供足夠的能量,會(huì)造成無法轉(zhuǎn)換溫度或溫度誤差極大。因此近寄生電源供電方式只適應(yīng)于單一溫度傳感器測(cè)溫情況下使用,不適宜采用電池供電系統(tǒng)中。并且工作電源vcc必須保證在5v,當(dāng)電源電壓下降時(shí),寄生電源能夠汲取的能量也降低,會(huì)使溫度誤差變大。因此必須采用獨(dú)立電源供電方式,本設(shè)計(jì)及采用外部電源供電方式;3.2光線傳感器光線測(cè)量采用光敏電阻(圖十二),光敏電阻,是一種特殊的電阻,簡(jiǎn)稱光電阻,又名光導(dǎo)管。它的電阻和光線的強(qiáng)弱有直接關(guān)系。光強(qiáng)度增加,則電阻減??;光強(qiáng)度減小,則電阻增大。這是由于光照產(chǎn)生的載流子都參與導(dǎo)
21、電,在外加電場(chǎng)的作用下作漂移運(yùn)動(dòng),電子奔向電源的正極,空穴奔向電源的負(fù)極,從而使光敏電阻器的阻值迅速下降。(圖十二)光敏電阻實(shí)物圖光敏電阻接入arduino 的電路圖如下: (圖十三)光敏電阻接線圖3.3伺服舵機(jī)舵機(jī)(英文叫servo)(圖十四):它由直流電機(jī)、減速齒輪組、傳感器和控制電路組成的一套自動(dòng)控制系統(tǒng)。通過發(fā)送信號(hào),指定輸出軸旋轉(zhuǎn)角度。舵機(jī)一般而言都有最大旋轉(zhuǎn)角度(比如180度。)與普通直流電機(jī)的區(qū)別主要在,直流電機(jī)是一圈圈轉(zhuǎn)動(dòng)的,舵機(jī)只能在一定角度內(nèi)轉(zhuǎn)動(dòng),不能一圈圈轉(zhuǎn)(數(shù)字舵機(jī)可以在舵機(jī)模式和電機(jī)模式中切換,沒有這個(gè)問題)。普通直流電機(jī)無法反饋轉(zhuǎn)動(dòng)的角度信息,而舵機(jī)可以。用途也不同
22、,普通直流電機(jī)一般是整圈轉(zhuǎn)動(dòng)做動(dòng)力用,舵機(jī)是控制某物體轉(zhuǎn)動(dòng)一定角度用(比如機(jī)器人的關(guān)節(jié))。(圖十四)舵機(jī)實(shí)物圖舵機(jī)的伺服系統(tǒng)由可變寬度的脈沖來進(jìn)行控制,控制線是用來傳送脈沖的。脈沖的參數(shù)有最小值,最大值,和頻率。一般而言,舵機(jī)的基準(zhǔn)信號(hào)都是周期為20ms,寬度為1.5ms。這個(gè)基準(zhǔn)信號(hào)定義的位置為中間位置。舵機(jī)有最大轉(zhuǎn)動(dòng)角度,中間位置的定義就是從這個(gè)位置到最大角度與最小角度的量完全一樣。最重要的一點(diǎn)是,不同舵機(jī)的最大轉(zhuǎn)動(dòng)角度可能不相同,但是其中間位置的脈沖寬度是一定的,那就是1.5ms。如圖十五:(圖十五)角度是由來自控制線的持續(xù)的脈沖所產(chǎn)生。這種控制方法叫做脈沖調(diào)制。脈沖的長(zhǎng)短決定舵機(jī)轉(zhuǎn)動(dòng)多
23、大角度。例如:1.5毫秒脈沖會(huì)到轉(zhuǎn)動(dòng)到中間位置(對(duì)于180舵機(jī)來說,就是90位置)。當(dāng)控制系統(tǒng)發(fā)出指令,讓舵機(jī)移動(dòng)到某一位置,并讓他保持這個(gè)角度,這時(shí)外力的影響不會(huì)讓他角度產(chǎn)生變化,但是這個(gè)是由上限的,上限就是他的最大扭力。除非控制系統(tǒng)不停的發(fā)出脈沖穩(wěn)定舵機(jī)的角度,舵機(jī)的角度不會(huì)一直不變。當(dāng)舵機(jī)接收到一個(gè)小于1.5ms的脈沖,輸出軸會(huì)以中間位置為標(biāo)準(zhǔn),逆時(shí)針旋轉(zhuǎn)一定角度。接收到的脈沖大于1.5ms情況相反。不同品牌,甚至同一品牌的不同舵機(jī),都會(huì)有不同的最大值和最小值。一般而言,最小脈沖為1ms,最大脈沖為2ms。如下圖:(圖十六)伺服舵機(jī)接線圖如下:(圖十七)舵機(jī)控制電路圖3.4燈光控制對(duì)于控
24、制燈光由暗到亮或由亮到暗,采用的是脈寬pwm法。脈沖寬度調(diào)制(pwm),是英文“pulse width modulation”的縮寫,簡(jiǎn)稱脈寬調(diào)制,是利用微處理器的數(shù)字輸出來對(duì)模擬電路進(jìn)行控制的一種非常有效的技術(shù),本文燈光亮度控制通過arduino輸出不同占空比(占空比是指脈沖信號(hào)的通電時(shí)間與通電周期之比)的方波,然后用去觸發(fā)固態(tài)繼電器,達(dá)到控制燈光亮度的功能;原理圖如下:(圖十八)燈光亮度控制電路4、通訊4.1串行通訊串行通信是指使用一條數(shù)據(jù)線,將數(shù)據(jù)一位一位地依次傳輸,每一位數(shù)據(jù)占據(jù)一個(gè)固定的時(shí)間長(zhǎng)度。其只需要少數(shù)幾條線就可以在系統(tǒng)間交換信息,特別使用于計(jì)算機(jī)與計(jì)算機(jī)、計(jì)算機(jī)與外設(shè)之間的遠(yuǎn)
25、距離通信。串行接口是一種可以將接受來自cpu的并行數(shù)據(jù)字符轉(zhuǎn)換為連續(xù)的串行數(shù)據(jù)流發(fā)送出去,同時(shí)可將接受的串行數(shù)據(jù)流轉(zhuǎn)換為并行的數(shù)據(jù)字符供給cpu的器件。由于wifi模塊內(nèi)部自帶tcp/ip協(xié)議,能夠把網(wǎng)絡(luò)數(shù)據(jù)通過串口轉(zhuǎn)發(fā)出來,所以我們只需考慮如何接收和發(fā)送串口數(shù)據(jù),大大的降低了開發(fā)的難度。4.2異步通訊異步方式通信async(asynchronous data communication),又稱起止式異步通信,是計(jì)算機(jī)通信中最常用的數(shù)據(jù)信息傳輸方式。它是以字符為單位進(jìn)行傳輸?shù)?,字符之間沒有固定的時(shí)間間隔要求,而每個(gè)字符中的各位則以固定的時(shí)間傳送。收、發(fā)雙方取得同步的方法是采用在字符格式中設(shè)置起
26、始位和停止位。在一個(gè)有效字符正式發(fā)送前,發(fā)送器先發(fā)送一個(gè)起始位,然后發(fā)送有效字符位,在字符結(jié)束時(shí)再發(fā)送一個(gè)停止位,起始位至停止位構(gòu)成一幀。串行異步傳輸時(shí)的數(shù)據(jù)格式: 起始位:起始位必須是持續(xù)一個(gè)比特時(shí)間的邏輯0電平,標(biāo)志傳送一個(gè)字符的開始。數(shù)據(jù)位:數(shù)據(jù)位為5-8位,它緊跟在起始位之后,是被傳送字符的有效數(shù)據(jù)位。傳送時(shí)先傳送字符的低位,后傳送字符的高位。數(shù)據(jù)位究竟是幾位,可由硬件或軟件來設(shè)定。 奇偶位:奇偶校驗(yàn)位僅占一位,用于進(jìn)行奇校驗(yàn)或偶校驗(yàn),也可以不設(shè)奇偶位。 停止位:停止位為1位、1.5位或2位,可有軟件設(shè)定。它一定是邏輯1電平,標(biāo)志著傳送一個(gè)字符的結(jié)束。 空閑位:空閑位表示線路處于空閑狀
27、態(tài),此時(shí)線路上為邏輯1電平??臻e位可以沒有,此時(shí)異步傳送的效率為最高。4.3 arduino與wifi模塊連接(圖十九)通訊連接4.4 通訊協(xié)議由于數(shù)據(jù)在傳輸過程中容易受到干擾和一些錯(cuò)誤,造成接收到的數(shù)據(jù)丟失和不完整,為保證數(shù)據(jù)的完整性,必須用一種指定的算法對(duì)原始數(shù)據(jù)計(jì)算出的一個(gè)校驗(yàn)值。接收方用同樣的算法計(jì)算一次校驗(yàn)值,如果和隨數(shù)據(jù)提供的校驗(yàn)值一樣,說明數(shù)據(jù)是完整的,方可利用獲取的數(shù)據(jù)進(jìn)行運(yùn)算和控制。本設(shè)計(jì)采用的串口設(shè)置為:波特率9600,8個(gè)數(shù)據(jù)位,1個(gè)停止位,無奇偶校驗(yàn);為保證數(shù)據(jù)的完整、正常,采用的通訊協(xié)議如下:arduino端發(fā)送的數(shù)據(jù)協(xié)議包頭溫度數(shù)據(jù)1溫度數(shù)據(jù)2光線數(shù)據(jù)1光線數(shù)據(jù)2異
28、或校驗(yàn)包尾0xffarduino讀取溫度值的千位和百位arduino讀取的溫度值的十位和個(gè)位arduino讀取的光線值的千位和百位arduino讀取的光線值的十位和個(gè)位溫度數(shù)據(jù)1、2和光線數(shù)據(jù)1、2的異或校驗(yàn)0xfe注:由于arduino的模擬量端為10位的精度;最大值為1024,但是串口一個(gè)數(shù)據(jù)為8位;所以把采集到的數(shù)據(jù)拆分后再組合;手機(jī)客戶端發(fā)送的數(shù)據(jù)協(xié)議包頭控制器件編號(hào)舵機(jī)角度數(shù)據(jù)燈光亮度數(shù)據(jù)異或校驗(yàn)包尾0xff0xaa或0xee控制數(shù)據(jù)1控制數(shù)據(jù)2控制器件和舵機(jī)角度以及燈光亮度數(shù)據(jù)的異或校驗(yàn)0xfe注:控制器件的編號(hào)規(guī)則:舵機(jī)控制界面為0xaa,燈光控制界面為0xee;arduino通
29、過這個(gè)數(shù)據(jù)值來判別當(dāng)前手機(jī)客戶端處于哪個(gè)器件的控制界面;5、成品展示參考文獻(xiàn)1 網(wǎng)絡(luò)上查找資料2 班茲愛上arduino人民郵電出版社20113 程晨arduino開發(fā)實(shí)戰(zhàn)指南機(jī)械工業(yè)出版社2012 致 謝對(duì)于這次畢業(yè)論文的撰寫,最需要感謝的是余訓(xùn)鋒老師。他在整個(gè)過程中都給予了我充分的幫助與支持。余訓(xùn)鋒老師不僅耐心地為我指出論文中的不足之處,對(duì)論文的改進(jìn)提出寶貴的建議,而且還在我遇到困難時(shí)盡心地進(jìn)行指點(diǎn)與解答。在此借論文完成之際,表示由衷的感謝與敬意。 附錄:#include / 調(diào)取單總線庫(kù)函數(shù)#include /舵機(jī)庫(kù)函數(shù)#include #include #define one_wire_bus 2/ 初始連接在單總線上的單總線設(shè)備servo myservo; onewire onewire(one_wire_bus);dallastemperature sensors(&onewire);unsigned int rpotpin =0; / 設(shè)定模擬輸入引腳unsigned int val = 0; /定義一個(gè)變量 unsigned char servo = 0; /定義一個(gè)變量unsigned char diandeng = 0; /定義一個(gè)變量unsigned char object = 0; /定義一個(gè)變量unsigned int wendu=0;byte
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公寓租房續(xù)租合同范本
- 上饒勞動(dòng)合同范本
- 動(dòng)力配電安裝合同范本
- 公司勞務(wù)用工合同范本
- 買混凝土廠房合同范本
- 乳山養(yǎng)殖承包轉(zhuǎn)讓合同范本
- 代加工酵素合同范本
- 個(gè)人轉(zhuǎn)包土地合同范本
- 供銷衣服合同范本
- 勞務(wù)植筋合同范本
- SF-T0095-2021人身損害與疾病因果關(guān)系判定指南
- 2024并網(wǎng)光伏逆變器技術(shù)規(guī)范
- 文言文多文本閱讀:叔向見韓宣子(附答案解析與譯文)
- 工程招投標(biāo)模擬實(shí)訓(xùn)報(bào)告范文2024年
- 系統(tǒng)脫敏治療的長(zhǎng)期療效跟蹤評(píng)估
- 二手儀器收購(gòu)協(xié)議書范本
- 香港(2024年-2025年小學(xué)二年級(jí)語文)人教版期末考試試卷(含答案)
- 浙江省臺(tái)州市2024年中考語文模擬試題及答案6
- 山水情懷 課件-2024-2025學(xué)年高中美術(shù)人教版 (2019) 選擇性必修2 中國(guó)書畫
- GA 2139-2024警用防暴臂盾
- 辦公軟件題庫(kù)(173道)
評(píng)論
0/150
提交評(píng)論