已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
本科畢業(yè)論文(設(shè)計(jì)) 題 目 物聯(lián)網(wǎng)的家庭傳感器網(wǎng)絡(luò)組網(wǎng)設(shè)計(jì) 學(xué)生姓名 專業(yè)名稱 電氣工程及其自動(dòng)化 指導(dǎo)教師 年 月 日 教學(xué)單位 學(xué)生學(xué)號(hào) 200995014013 編 號(hào) II 物聯(lián)網(wǎng)的家庭傳感器網(wǎng)絡(luò)組網(wǎng)設(shè)計(jì) 摘要 本系統(tǒng)在正常工作時(shí),用戶通過手機(jī)發(fā)送指令,指令被 GSM 模塊接受并將指令傳送給單片機(jī),單片機(jī)處理信號(hào)發(fā)出控制指令通過繼電器等控制電路的通斷、電動(dòng)機(jī)的正轉(zhuǎn)反轉(zhuǎn)等達(dá)到控制家用電器設(shè)備的效果。 本系統(tǒng)是基于全球移動(dòng)通信系統(tǒng)進(jìn)行設(shè)計(jì)的。系統(tǒng)采用 GSM模塊進(jìn)行短信收發(fā),以 STC89C52RC 單片機(jī)系統(tǒng)為控制核心,進(jìn)行信息的反饋和遠(yuǎn)程控制,從而實(shí)現(xiàn)遠(yuǎn)程報(bào)警、遠(yuǎn)程控制等功能。 關(guān)鍵詞 :GSM模塊 單片機(jī) III The networking design of home sensor based on the Internet of things Abstracts When this system works in good condition, the users could send messages through cell phone or telephone .the GSM module accept the instructions and send it to the microcontroller. The SCM processes signals, send the orders out and control the on-off switch or the forward/reversal of the electromotor to control household appliances. This system is designed on the basis of the global mobile communication system. The system, which with the core of STC89C52RC SMS,sends and receives messages by using GSM module. It can realize the functions of remote alarm, remote control through giving information feedback and controlling appliances remotely. Key words: GSM module singlechip IV 目 錄 1.前言 . V 2.系統(tǒng)的總體設(shè)計(jì)方案與主要功能 . VI 2.1系統(tǒng)的總體設(shè)計(jì)方案 . VI 2.2系統(tǒng)主要功能 . VII 3.1傳感器單元硬件設(shè)計(jì)方案 . VIII 3.2控制系統(tǒng)單元硬件設(shè)計(jì)方案 . IX 3.3 GSM 模塊 方案 . IX 3.4電源模塊方案 . X 4 硬件電路設(shè)計(jì) . XI 4.1 GSM與單片機(jī)硬件連接 . XI 4.2執(zhí)行機(jī)構(gòu)電路 . XI 5 系統(tǒng)軟件設(shè)計(jì) . XIII 5.1系統(tǒng)流程圖 . XIII 5.2 AT 指令 . XIV 6.各模塊核心程序 . XV 6.1GSM 模塊收發(fā)程序 . XV 6.2 煙霧傳感器模塊核心代碼: . XXII 6.3 DS18B20 核心代碼: . XXIII 6.4 ADC0809 功能核心代碼 . XXVII 結(jié)論 . XXX 參考文獻(xiàn) . XXXI 謝 辭 . XXXII V 1.前言 隨著經(jīng)濟(jì)的快速增長(zhǎng) ,快節(jié)奏的生活狀態(tài)得人們?cè)絹碓阶⒅厣畹馁|(zhì)量和品位,人們對(duì)舒適,方便,高效的生活環(huán)境的渴望愈來愈強(qiáng)烈。如何建立一個(gè)高效率、低成本的智能家居系統(tǒng)已經(jīng)成為當(dāng)今世界的一個(gè)熱點(diǎn)問題。目前國(guó)內(nèi)外各種類型的智能家居產(chǎn)品越來越多,但其中大部分是基于電話網(wǎng)的安防控制系統(tǒng),并且只是應(yīng)用于高檔住宅。一般的普通民眾都無(wú)法接受其高昂的價(jià)格。并且目前國(guó)內(nèi)固定電話的用戶正在急劇減少,手機(jī)用戶的數(shù)量在飛速增長(zhǎng)。所以一種價(jià)格低廉且功能齊全的基于 GSM 模塊的的家居智能控制系統(tǒng)就將應(yīng)運(yùn)而生。 本系統(tǒng)介紹的家居智能控制系統(tǒng)采用 GSM 模塊進(jìn)行短 信收發(fā),以 STC89C2RC芯片為控制核心,實(shí)現(xiàn)遠(yuǎn)程控制、信號(hào)采集、遠(yuǎn)程報(bào)警等功能。 VI 2.系統(tǒng)的總體設(shè)計(jì)方案與主要功能 2.1 系統(tǒng)的總體設(shè)計(jì)方案 G S M 模 塊短 信 收 發(fā)紅 外 傳 感器外 部 驅(qū) 動(dòng)電 路各 類 家 用電 器單 片 機(jī) 控 制系 統(tǒng)煙 霧 傳 感器溫 度 傳 感器R S 2 3 2 串 口 圖 1 系統(tǒng)總體結(jié)構(gòu)框圖 系統(tǒng)的總體結(jié)構(gòu)框圖如圖 1所示。當(dāng)用戶家里有盜賊出入或者門窗沒有關(guān)好,發(fā)生火災(zāi)或者煤氣泄漏,溫度低于或者高于預(yù)設(shè)溫度時(shí)相應(yīng)的傳感器發(fā)出信號(hào),此時(shí)數(shù)據(jù)采集模塊將傳感器發(fā)出的信號(hào)轉(zhuǎn)換成數(shù)字量,然后送給單片機(jī)控制系統(tǒng)進(jìn)行計(jì)算和分析后,通過 RS232串口將數(shù)據(jù)傳 送給 GSM 模塊將家里即時(shí)信息發(fā)送到用戶手機(jī)上,同時(shí)單片機(jī)控制系統(tǒng)將控制啟動(dòng)相應(yīng)的執(zhí)行機(jī)構(gòu),如打開啟動(dòng)報(bào)警器,打開照明燈,打開電磁閥,打開空調(diào)等等。當(dāng) GSM 模塊接受到用戶短信指令后,將其轉(zhuǎn)換成數(shù)字量,通過串口送給單片機(jī)系統(tǒng)分析指令的意思,然后開啟相應(yīng)的家電設(shè)備,比如提前打開燈,電視,熱水器,或者空調(diào),實(shí)現(xiàn)遠(yuǎn)程控制功能。 智能家居系統(tǒng)各單元的組成與功能簡(jiǎn)介: 1. 傳感器單元:傳感器單元主要包括有紅外傳感器、煙霧傳感器、溫度傳感器等,主要是對(duì)家中各指標(biāo)進(jìn)行檢測(cè),例如煙霧濃度,溫度高低等,并將這些離散量裝換成數(shù)字量送給 控制系統(tǒng)單元。 2. 控制系統(tǒng)單元:控制系統(tǒng)單元主要有 STC89C52芯片和外部必要的復(fù)位、電源電路等構(gòu)成。主要是對(duì)傳感器單元和 GSM 模塊傳送過來的數(shù)據(jù)進(jìn)行分析和 VII 計(jì)算,從而發(fā)出正確的指令。 3. GSM模塊單元: GSM全稱為全球移動(dòng)通訊系統(tǒng)。是用戶與系統(tǒng)通訊連接的最重要的單元。 4. 電源模塊:采用 UPS供電,保證系統(tǒng)能在斷電的情況下能正常運(yùn)行。 2.2 系統(tǒng)主要功能 1. 遠(yuǎn)程 控制功能: 該系統(tǒng)能 接收 并識(shí)別 用戶發(fā)送來的控制命令并由單片機(jī) 處理,來實(shí)現(xiàn)不同家電工作及停止功能。 2. 遠(yuǎn)程報(bào)警功能:在用戶住宅出現(xiàn)異常情況時(shí),比如 火災(zāi) 、盜賊入侵、門窗未關(guān)好等,系統(tǒng) 會(huì)自動(dòng)發(fā)送報(bào)警短信給預(yù)先設(shè)定手機(jī)號(hào)碼的用戶 ,同時(shí)啟動(dòng)現(xiàn)在相關(guān)的執(zhí)行機(jī)構(gòu),如啟動(dòng)報(bào)警器等 。 3. 永不斷電功能:系統(tǒng)采用 UPS電源供電, 在斷電時(shí)可繼續(xù)工作 , 可以 在斷電情況下監(jiān)控家里安全信息, 克服了停電時(shí)不能報(bào)警等缺點(diǎn)。 VIII 3.硬件技術(shù)方案 硬件的技術(shù)方案包括傳感器單元硬件設(shè)計(jì)方案,控制系統(tǒng)單元硬件設(shè)計(jì)方案, GSM 模塊單元硬件選擇方案,電源模塊硬件選擇方案。 3.1 傳感器單元硬件設(shè)計(jì)方案 本系統(tǒng)傳感器單元包括紅外傳感器、煙霧傳感器、溫度 傳感器和 A/D 轉(zhuǎn)換模塊。 1. 紅外傳感器采用主動(dòng)紅外探測(cè)器,主動(dòng)紅外探測(cè)器由紅外發(fā)射機(jī),紅外接收機(jī)和報(bào)警控制器組成。紅外發(fā)送端和接收端之間有一道紅外光束,當(dāng)人體穿越此光束時(shí),必將部分或全部遮擋紅外光束,接收端輸出電信號(hào)的強(qiáng)度會(huì)發(fā)生變化從而啟動(dòng)報(bào)警控制器發(fā)出報(bào)警信號(hào),同時(shí)發(fā)報(bào)警短信信息給用戶。 2. 煙霧傳感器采用 MQ-2,它是一種電阻控制型的氣敏器件,其阻值隨被測(cè)氣體的濃度(成分)而變化。氣敏器件又是一種“氣 電”傳感器件,它將被測(cè)氣體的濃度(成分)信號(hào)轉(zhuǎn)換成相應(yīng)的電信號(hào)。其響應(yīng)時(shí)間 5s,恢復(fù)時(shí)間 30s。探測(cè)液化 氣的濃度在 300ppm-5000ppm。足以滿足本系統(tǒng)設(shè)計(jì)要求。 DS18b201 2 3GNDDQVDD 4. A/D轉(zhuǎn)換模塊,主要采用 ADC0809芯片,其主要是將各傳感器采集回來的數(shù)據(jù)轉(zhuǎn) 換成數(shù)字量送給 STC89C52RC單片機(jī)進(jìn)行計(jì)算和分析。 0809具有 8路模擬輸入端口,地址線( 23-25腳)可決定對(duì)哪一路模擬輸入作 A/D 轉(zhuǎn)換, 22腳為地址鎖存控制,當(dāng)輸入為高電平時(shí),對(duì)地址信號(hào)進(jìn)行鎖存。 6腳為 AD 轉(zhuǎn)換啟動(dòng)控制,當(dāng)輸入電平由低到高再到低后 A,就開始 A/D 轉(zhuǎn)換。 7腳為 A/D 轉(zhuǎn)換 結(jié)束標(biāo)志,3. 溫度傳感器采用 DS18B20,它是一種可編程的溫度傳感器,其內(nèi)置 EPROM,限溫報(bào)警功能,最高分辨率 12位,檢測(cè)溫度為 -55 +125,在 -10 +85時(shí)精度為 0.5。其外觀圖 2所示。 1號(hào)引腳接地, 2號(hào)數(shù)據(jù)輸入 /輸出引腳, 3號(hào)引腳當(dāng)工作在寄生電源時(shí),改引腳接地。由于 DS18B20可以由數(shù)據(jù)線本身提供電源,因此與單片機(jī)連接是需要一根數(shù)據(jù)線和一根地址線。( 鄭峰 .51單片機(jī)應(yīng)用系統(tǒng)典型模塊開發(fā)大全 P369) 圖 2 3 引腳T0-92DS18B20 IX 當(dāng) A/D 轉(zhuǎn)換結(jié)束時(shí), 7腳輸出高電平。 9腳為 A/D 轉(zhuǎn)換數(shù)據(jù)輸出允許控制,當(dāng)OE 腳為高電平時(shí), A/D 轉(zhuǎn)換數(shù)據(jù)從端口輸出。 3.2 控制系統(tǒng)單元硬件設(shè)計(jì)方案 控制系統(tǒng)單元主要由 STC89C52RC 芯片及其復(fù)位和電源電路組成。 8位STC89C52RC單片機(jī)是 STC公式開發(fā)的一款增強(qiáng)型的 51單片機(jī)芯片。具有低功耗,運(yùn)行穩(wěn)定,存儲(chǔ)空間大等特點(diǎn)。用戶應(yīng)用程序空間為 8KB。片上集成 512字節(jié) RAM,具有 ISP/IAP 功能,無(wú)需專用編程其,可直接通過串口下載用戶程序,數(shù)秒即可完成。節(jié)約購(gòu)買專用編程器的資金。具有 3個(gè) 16位定時(shí) /計(jì)數(shù)器。最主要的是該芯片與 51芯片兼容,給使用者帶來極大的便利。 3.3 GSM 模塊 方案 本系統(tǒng)設(shè)計(jì)使用的 GSM 模塊是 Siemens 公司的 TC35I。 TC35I 是西門子公式最新推出的無(wú)線模塊。,該模塊集射頻電路和基帶于一體,向用戶提供標(biāo)準(zhǔn)的 AT 命令接口,為數(shù)據(jù)、語(yǔ)音、短消息和傳真提供快速、可靠、安全的傳輸,方便用戶的應(yīng)用開發(fā)與設(shè)計(jì), TC35I 的組成如圖 3所示。 TC35I 模塊主要由 GSM基帶處理器、 GSM 射頻模塊、供電模塊、閃存、 ZIF 連接器、天線接口 6部分組成。作為 TC35I 的核心,基 帶處理器主要處理 GSM 終端的語(yǔ)音、數(shù)據(jù)信號(hào),并涵蓋了蜂窩射頻設(shè)備的所有的模擬和數(shù)字功能。在不需要額外硬件電路的前提下,可支持 FR、 HR 和 EFR 語(yǔ)音信道編碼。( 鄭峰 .51單片機(jī)應(yīng)用系統(tǒng)典型模塊開發(fā)大全 P559) R F 模 塊G S M 基 帶處 理 器F L A S H 存 儲(chǔ) 器天 線 連 接 器電 源 模 塊芯片連接器ZIFZ 40 圖 3 TC35I 的組成框圖 X 3.4 電源模塊方案 本系統(tǒng)采用 UPS 進(jìn)行供電,以保證在掉電情況下防盜報(bào)警功能依然能正常運(yùn)行。不間斷電源( UPS)是當(dāng)交流輸入電源(俗稱市電)發(fā)生異常或斷電時(shí),還能繼續(xù)向負(fù)載供電,并能保證供電質(zhì)量,是負(fù)載供電不受影 響的裝置。其基本結(jié)構(gòu)原理圖如圖 4所示 整 流器逆 變 器蓄電池市 電負(fù) 載 圖 4 UPS 基本結(jié)構(gòu)框圖 當(dāng)市電正常時(shí)通過整流器將交流電整流成直流點(diǎn)給蓄電池充電,同時(shí)通過逆變器又變換成交流電供給負(fù)載。當(dāng)市電斷電后,則蓄電池放出直流電通過逆變器逆變成交流電后,繼續(xù)給負(fù)載供電。這樣在有市電時(shí)供給負(fù)載的同時(shí)給蓄電池充電,當(dāng)市電斷電時(shí),蓄電池則充當(dāng)電源通過逆變給負(fù)載繼續(xù)供電,實(shí)現(xiàn)不間斷供電。 XI 4 硬件電路設(shè)計(jì) 本系統(tǒng)的硬件電路主要包括 GSM模塊與 STC89C52RC芯片的連接 電路和執(zhí)行機(jī)構(gòu)電路。 4.1 GSM 與單片機(jī)硬件連接 GSM與 STC89C52RC 的硬件連接圖如圖 5所示。 T C 8 9 C 5 2R C 芯 片T X DR X D R X DT X DM A X 2 3 2芯 片G S M 模 塊 圖 5 GSM 與單片連接原理圖 單片機(jī)與 GSM 模塊的硬件連接 TC35I的數(shù)據(jù)接口采用串行異步收發(fā), 數(shù)據(jù)接口配置為 8 位數(shù)據(jù)位、 1 位停止位、無(wú)校驗(yàn)位,可以在 300-115103 bps 的波特率下運(yùn)行。 由于數(shù)據(jù)通信電路中 TC35I 數(shù)據(jù)接口工作在 CMOS 電平,而STC89C52RC芯片工作在 TTL點(diǎn)電平,所以 在 STC89C52RC芯片 和 TC35I 之間加入 TI公式的 電平轉(zhuǎn)換 芯片 MAX232。實(shí)現(xiàn)串口通訊的功能。 4.2 執(zhí)行機(jī)構(gòu)電路 執(zhí)行機(jī)構(gòu)部分電路如圖 6所示。 XII 圖 6 執(zhí)行機(jī)構(gòu)部分電路圖 本系統(tǒng)共有八路通過繼電器通斷實(shí)現(xiàn)對(duì)電器控制的執(zhí)行機(jī)構(gòu)電路。單片機(jī)管腳通過 10K限流電 阻與三極管基極相連,當(dāng)相應(yīng)的管腳呈高電平時(shí),那么相對(duì)應(yīng)的三極管就會(huì)導(dǎo)通,信號(hào)繼電器線圈也就會(huì)通電吸合,從而實(shí)現(xiàn)家用電器的開關(guān)。當(dāng)單片機(jī)管腳輸出為低電平時(shí),三極管失去導(dǎo)通電壓關(guān)斷,由于繼電器線圈并聯(lián)了一個(gè)續(xù)流二極管,此時(shí)繼電器線圈產(chǎn)生的巨大的感應(yīng)電流會(huì)通過續(xù)流二極管與線圈形成通路,最后電能將全部在線圈上消耗,從而感應(yīng)電流就不會(huì)沖向三極管,保證了電路的穩(wěn)定性和可靠性。 XIII 5 系統(tǒng)軟件設(shè)計(jì) 5.1 系統(tǒng)流程圖 開 始初 始 化是 否 接 受到 短 信 指 令啟 動(dòng) 相 應(yīng) 電器Y E SNO檢 測(cè) 傳 感器 開 關(guān)G S M 發(fā) 送 操作 成 功 信 息進(jìn) 入 中 斷服 務(wù) 程 序N OYES關(guān) 中 斷紅 外 報(bào) 警煙 霧 報(bào) 警溫 度 報(bào) 警啟 動(dòng) 報(bào) 警 器G S M 發(fā) 送 防盜 報(bào) 警啟 動(dòng) 報(bào) 警 器并 禁 止 空 調(diào)開 啟G S M 發(fā) 送 火災(zāi) 報(bào) 警啟 動(dòng) 空 調(diào)G S M 發(fā) 送 高溫 報(bào) 警中 斷 返回Y E SY E SNONOYES中 斷 服 務(wù)子 程 序結(jié) 束圖 7 系統(tǒng)流程圖 本系統(tǒng)的軟件部分由 C語(yǔ)言編寫, C語(yǔ) 言有較好的可閱讀行和移植性,大大的方便了程序的編寫。系統(tǒng)流程圖如圖 7 所示。首先對(duì)系統(tǒng)進(jìn)行初始化,初始化包括串行通訊口的初始化,中斷初始化, TC35I的初始化。然后單片機(jī)對(duì)是否接受到短信指令和與傳感器連接的 I/O 進(jìn)行循環(huán)檢測(cè)。當(dāng) GSM 接收到短信指令時(shí),通過單片機(jī)的分析計(jì)算啟動(dòng)相應(yīng)的電器,同時(shí)給用戶發(fā)送操作成功的短消息,然后繼續(xù)對(duì)傳感器進(jìn)行檢測(cè),如果沒有傳感器沒有信號(hào),則又返回繼續(xù)對(duì) GSM是否接收到短信指令進(jìn)行檢測(cè),就這樣循環(huán)進(jìn)行檢測(cè)。當(dāng)家里發(fā)生險(xiǎn)情或溫度過高時(shí),軟件進(jìn)入中斷服務(wù)程序,對(duì)三個(gè)傳感器分別進(jìn)行判斷, 然后進(jìn)行相應(yīng)的處理同時(shí)完成對(duì)報(bào)警信息的發(fā)送。 XIV 5.2 AT 指令 AT指令是以 AT 作首 , 字符結(jié)束的字符串, AT指令的響應(yīng)數(shù)據(jù)包在 中。每個(gè)指令執(zhí)行成功與否都有相應(yīng)的返回。 對(duì) TC35I 的操作均采用 AT 指令,它包含了 GSM 語(yǔ)音和短信息的控制。 其指令格式為“ AT+XXXX”, 根據(jù) AT 指令的GSM07.05 標(biāo)準(zhǔn),發(fā)送和接收中文或中 /英文混合的短信息必須采用 PDU 模式,Text 模式只支持傳送英文及數(shù)字信息。 根據(jù)本系統(tǒng)的要求采用 Text 模式。系統(tǒng)所用基本命令如下: a) 設(shè)置短消息發(fā)送格式( 0-PDU, 1-文本 ) AT+CMGF=1; b) 發(fā)送短消息 (短消息內(nèi)容為 “ OK”)AT+CMGS=1 5173236799(用戶電話 )OKz( z 表示 OK+z); c) 本地中心號(hào)碼設(shè)置 AT+CSCA=+8613800732500(湘潭) ; d) 讀取短信息內(nèi)容 AT+CMGR=1; e) GSM網(wǎng)絡(luò)狀態(tài)查詢“ AT+CREG?”; f) 刪除短息防止溢出 AT+CMGD=1; XV 6.各模塊核心程序 6.1GSM 模塊收發(fā)程序 單片機(jī)實(shí)現(xiàn)短信自動(dòng)發(fā)送 進(jìn)行短信發(fā)送的前提是短信內(nèi)容的正確編碼。經(jīng)過以上對(duì)短信發(fā)送過程的分析,可以 通過單片機(jī)對(duì)其進(jìn)行實(shí)現(xiàn)。下面是實(shí)現(xiàn)程序例程: /*- 函數(shù)名: PDU_SMS() 功能 :發(fā)送短信 參數(shù)說明: SMS_Center 為短信中心號(hào)碼 11位 SMS_Telenum為短信接收方的號(hào)碼 11位 SMS_Context為短信的內(nèi)容 -*/ int PDU_SMS(char *SMS_Center, char *SMS_Telenum, char *SMS_Context,char is_GB) int i,j; unsigned char len,time; char lens3; time=0; for(i=0;i300;i+) PDU_Codei=PDU_ti; /*-設(shè)置短信中心號(hào)碼 -*/ for (i = 0, j = 0; i strlen(SMS_Center) / 2; i+) PDU_Code6+(j+) = SMS_Center2 *i + 1; PDU_Code6+(j+) = SMS_Center2 *i; XVI PDU_Code6+j+ = F; /在最后補(bǔ)上的 F PDU_Code6+j = SMS_Centerstrlen(SMS_Center) - 1; /*-*/ /*-設(shè)置接收號(hào)碼 -*/ for (i = 0, j = 0; i 4) 9 ? (len 4) + 55: (len 4) + 48; PDU_Code45 = (len &0x0f) 9 ? (len &0x0f) + 55: (len &0x0f) + 48; /*-*/ /*-編碼短信內(nèi)容 -*/ if(is_GB=0)/如果不是 GB 碼,短信內(nèi)容為 ascii 碼字符串 for (i = 0,j=0; istrlen(SMS_Context);i+) szzh16(SMS_Contextj+,lens); PDU_Code46+i*4 = 0; PDU_Code46+i*4+1 = 0; XVII PDU_Code46+i*4+2 = lens0; PDU_Code46+i*4+3 = lens1; PDU_Code46+i*4 = 0x1a; PDU_Code46+i*4+1 = 0xff; else /短信內(nèi)容為 GB 碼,如果要使手機(jī)能夠顯示,改到 UNICODE 編碼 for (i = 0,j=0; istrlen(SMS_Context);i+) szzh16(int)SMS_Contextj+,lens); PDU_Code46+i*2 = lens0; PDU_Code46+i*2+1 = lens1; PDU_Code46+i*2 = 0x1a; PDU_Code46+i*2+1 = 0xff; /*-*/ if(PDU_HandShake() do PDU_EnablePDU(); if(is_GB=0) PDU_SetLength(Strlen(SMS_Context)*2); else PDU_SetLength(Strlen(SMS_Context); PDU_Send(PDU_Code); for(i=0;i25;i+) XVIII delay(20000); sbufcounter=0; counter=0; time+; /判斷是否發(fā)送成功,如果不成功繼續(xù)發(fā)送,最多 4次,如仍不成功,返回 0 while(strpos(sbuf+strlen(sbuf)-20,G)=-1&time4); if(strpos(sbuf+strlen(sbuf)-20,G)=-1) return 0; else return 1; /成功的話返回 0 else sbufcounter=0; counter=0; return 0; 以上程序成功實(shí)現(xiàn)短信的發(fā)送。 單片機(jī)對(duì)短信的讀取與解碼 單片機(jī)可以通過 AT 指令對(duì)短信貓中的短信進(jìn)行讀取,并對(duì)讀入的短信數(shù)據(jù)進(jìn)行分析與解碼。 讀出的短信格式與發(fā)送時(shí)的短信編碼大致是相同的 , 下面給出相應(yīng)的程序例程 。 讀取某一條短信,并將其進(jìn)行顯示 : /*- 函數(shù)名: LAD_SMS()(short for Load And Display the Short MessageS) 功能 :用戶函數(shù),讀取第 n 條短信,并在 LCD 的 (x,y)位置顯示出來 -*/ XIX unsigned char LAD_SMS(unsigned char n,unsigned char x,unsigned char y) unsigned char i,len,t; char temp5; char temp13; /IN_Draw_BlankorBlackRect(0,20,30,72,0); szzh10(n,temp1); /將 n 轉(zhuǎn)為相應(yīng)的字符串,如 n=21,則字符串為 21,用以與 AT 指令拼接。 t=85; clear_sbuf(); counter=0; send_s(AT+CMGR=);/AT+CMGR 為讀取短信的 AT 指令 send_s(temp1);/上面所得的字符串 send(0x0d); send(0x0a); for(i=0;i10;i+) delay(10000); /等待讀取完畢 sbufcounter=0; /在收到的數(shù)據(jù)末尾附加 0 temp0=sbuf23; temp1=sbuf24; temp2=sbuf25; temp3=0; if(sbuf25!=0x0d) t+; for(i=0;i短信空 ); delay(50000); return 0; XX len-=20; if(len90) /LCD_PutEng(5,96,MTL); /LCD_PutChn(x,y,短信太長(zhǎng) ); delay(50000); return 0; for(i=0;ilen;i+) temp0=sbuft+2*i; temp1=sbuft+2*i+1; temp2=0; sbufi=_hex_(temp); /收到的短信內(nèi)容是內(nèi)存方式的顯示表示,轉(zhuǎn)為十六進(jìn)制數(shù) sbufi=0; Analysis_Pro();/解碼后的內(nèi)容在 sbuf 中,此函數(shù)對(duì)其進(jìn)行顯示輸出 delay(50000); clear_sbuf(); counter=0; return 1; 檢測(cè)新短信 : /*- XXI 函數(shù)名: Check_New() 功能 :用戶函數(shù),檢測(cè)有無(wú) 新的短信,如果有返回 1,否則返回 0 -*/ unsigned char Check_New() int i; send_s(AT+CMGL=0); /AT+CMGL=0為讀取新短信的 AT 指令 send(0x0d); send(0x0a); /發(fā)送回車 delay(10000); /等待接收完畢 if(sbuf12=O) return 0xff; if(sbuf12=+) for(i=18;i23;i+) if(sbufi=,) sbufi=0; return atoi(sbuf+19); /返回新短信的位置 刪除某條短信 : /*- 函數(shù)名: Delete() 功能 :用戶函數(shù),刪除第 n 條短信 -*/ unsigned char Delete(unsigned char n) char t10; char t15; strcpy(t,AT+CMGD=); /AT+CMGD 為刪除短信的 AT 指令 szzh10(n,t1); strcpy(t+8,t1); XXII while(Send_AT_CMD(t)!=1); delay(60000); return 1; 6.2 煙霧傳感器模塊核心代碼: uint AD_Conver(uchar port) uchar i; uint AD= 0; CLOCK = 0; CS= 0; EOC=1; port = 4; for (i = 0; i 12; i+) /注意 :在 12 個(gè)時(shí)鐘周期的下降沿產(chǎn)生了數(shù)據(jù)輸出 /在前 4 個(gè)時(shí)鐘周期內(nèi) ,TLC2543 已經(jīng)知道下一次將 if (DOUT)AD |= 0x01; /哪個(gè)通道做轉(zhuǎn)換 ,在后 8 個(gè)時(shí)鐘內(nèi)就一直對(duì)此通道 DIN = (bit)(port & 0x80); /進(jìn)行采樣 ,并保持到第 12個(gè)時(shí)鐘周 期結(jié)束 ,此后才 CLOCK = 1; /開始進(jìn)行 A/D轉(zhuǎn)換 ,轉(zhuǎn)換時(shí)間需要10us. _nop_(); _nop_(); _nop_(); /在第 4-8 個(gè)時(shí)鐘周期內(nèi)輸入的是 XXIII 命令控制字 CLOCK= 0; _nop_(); _nop_(); _nop_(); /可根據(jù)需要輸入 port = 1; AD =1; return AD; #endif 6.3 DS18B20 核心代碼: void delay(uint z) /延時(shí)函數(shù) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-); void dsreset(void) /DS18B20 復(fù)位,初始化函數(shù) uint i; ds=0; i=103; while(i0)i-; ds=1; i=4; XXIV while(i0)i-; bit tempreadbit(void) /讀一位數(shù)據(jù)函數(shù) uint i; bit dat; ds=0;i+; /i+起延時(shí)作用 ds=1;i+;i+; dat=ds; i=8;while(i0)i-; return (dat); uchar tempread(void) /讀一個(gè)字節(jié)數(shù)據(jù)函數(shù) uchar i,j,dat; dat=0; for(i=1;i=8;i+) j=tempreadbit(); dat=(j1); /讀出的數(shù)據(jù)最低位在最前面,這樣剛好一個(gè)字節(jié)在dat 里 return (dat); void tempwritebyte(uchar dat) /向 DS18B20 寫一個(gè)字節(jié)數(shù)據(jù)函數(shù) uint i; uchar j; bit testb; for(j=1;j1; if(testb) /寫 1 ds=0; XXV i+;i+; ds=1; i=8;while(i0)i-; else ds=0; /寫 0 i=8;while(i0)i-; ds=1; i+;i+; void tempchange(void) /DS18B20 開始獲取溫度并轉(zhuǎn)換 dsreset(); delay(1); tempwritebyte(0xcc); /寫跳過讀 ROM 指令 tempwritebyte(0x44); /寫溫度轉(zhuǎn)換指令 uint get_temp() /讀寄存器中存儲(chǔ)的溫度數(shù)據(jù) uchar a,b; dsreset(); delay(1); tempwritebyte(0xcc); tempwritebyte(0xbe); a=tempread(); /讀低 8 位 b=tempread(); /讀高 8 位 temp=b; temp0;i-) dis_temp(get_temp(); /獲取溫度并顯示 deal(temp); /進(jìn)行溫度處理 sprintf(buff,%f,f_temp); /將浮點(diǎn)型溫度格式化為字符型 for (i=10;i0;i-) dis_temp(get_temp(); /溫度顯示 comm(buff); /串口發(fā)送數(shù)據(jù) for(i=10;i0;i-) dis_temp(get_temp(); /溫度顯示 XXVII 6.4 ADC0809 功能核心代碼 void control(uchar num1,uchar num2) uint i; uchar s,j; s=num1; for(i=6;i0;i-) p17=0; p15=s%2; s=s/2; p17=1; j=num2; for(i=8;i0;i-) p17=0; p15=j%2; j=j/2; p17=1; p16=1; p16=0; void init() /產(chǎn)生 500khz 信號(hào) TMOD=0x01; TH0=(65536-1)/256; XXVIII TL0=(65536-1)%256;/取余 EA=1; TR0=1; ET0=1; void main() /uchar temp; uchar a1,a2,a3,adval; init(); start=0; oe=0; /P2=0xff; while(1) start=0; start=1; start=0; /w
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《合伙人合同協(xié)議書補(bǔ)充協(xié)議》
- 雙方調(diào)解協(xié)議模板大全
- 公司股份合作協(xié)議書范本10篇
- 全國(guó)賽課一等獎(jiǎng)初中統(tǒng)編版七年級(jí)道德與法治上冊(cè)《樹立正確的人生目標(biāo)》課件
- (2024)商業(yè)街建設(shè)項(xiàng)目可行性研究報(bào)告建議書(一)
- 2023年胺類項(xiàng)目融資計(jì)劃書
- 《基本透視原理》課件
- 山東省棗莊市薛城區(qū)2022-2023學(xué)年八年級(jí)上學(xué)期期末考試數(shù)學(xué)試卷(含答案)
- 養(yǎng)老院老人生活設(shè)施維護(hù)制度
- 養(yǎng)老院老人財(cái)務(wù)管理制度
- 無(wú)痛病房建設(shè)流程及核心
- 臨床試驗(yàn)監(jiān)查計(jì)劃
- CT引導(dǎo)下125I放射性粒子植入治療肺癌及肺轉(zhuǎn)移課件
- 宋小寶小品《碰瓷》完整臺(tái)詞
- 部編版七年級(jí)歷史上冊(cè)《第11課西漢建立和“文景之治”》教案及教學(xué)反思
- 國(guó)開大學(xué)2023年01月23793《交流變頻調(diào)速應(yīng)用技術(shù)》期末考試答案
- 阿米巴經(jīng)營(yíng)管理培訓(xùn)課件
- 中建八局模板技術(shù)交底
- 中國(guó)現(xiàn)代史智慧樹知到答案章節(jié)測(cè)試2023年西安文理學(xué)院
- 電力公司三集五大體系建設(shè)完善提升實(shí)施方案
- 萬(wàn)能中國(guó)地圖模板(可修改)課件
評(píng)論
0/150
提交評(píng)論