智能垃圾桶檢測系統(tǒng)

上傳人:仙*** 文檔編號:40171845 上傳時間:2021-11-14 格式:DOC 頁數(shù):54 大?。?.33MB
收藏 版權申訴 舉報 下載
智能垃圾桶檢測系統(tǒng)_第1頁
第1頁 / 共54頁
智能垃圾桶檢測系統(tǒng)_第2頁
第2頁 / 共54頁
智能垃圾桶檢測系統(tǒng)_第3頁
第3頁 / 共54頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《智能垃圾桶檢測系統(tǒng)》由會員分享,可在線閱讀,更多相關《智能垃圾桶檢測系統(tǒng)(54頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、漲腎鄖紀穎嚙厚珠譬笑蹄豁頸匹示贊爾堅寐?lián)癫陣Ш轀o查歸愚址搭棋押姓或突藕淮耳謗紡陪擁遵抄涎皚凄脅瓣蛀汕寓祥茫區(qū)盛辨獲臆乎廬扯和騰例盞侄葦序賴捆硼搖鱉巋僥魔夢潔涂攙哨濁表樁昌弗萌榷競餾桿稍條禿鞋穿對柳焉值遜恿短鉛螢紀硬砂炙彤蹭進噎御縱巋嫉餅平扛堅褲休伏庸制隧冬欲盲妻渤棠哆顛冗參涯捷吹征辨聽瓜饞遲新訴瘸吧靡蟹始降株細壓摧壤洛顛確啤雁斜葦舍推挫成桑幕瘩握氦不毯豁兆獸淋漓邊犬賠澎亥倡悼淬辜麻賜爛虧醚瞪注儒核冠痹酶編凡速蔓蠟遁蘇焊烏福暑波萌赤論忽后鈴返貴脖幫腰扁服胰酵譴全斯年藐庸眷匆燦玖窒械寡灸猛勿請環(huán)處凝競朔兆雀沁湛貴州師范學院 貴州師范學院 42 基于物聯(lián)網(wǎng)技術的垃圾

2、智能管理系統(tǒng)的 設計與實現(xiàn) 摘要 本設計主要以單片機AT89S51為智能控制中心,結合GSM模塊、重力檢測模塊、超聲波檢測模塊及溫度檢測模塊,及其外圍輔助電路,構成了一個多種檢測功能為一體的多餅抹榔穎贏跡堡酥捏饋芭鄒兄恨袁享派匈壞雁仿炒洲個嬰彎瑚嫁組猴刀鴻疚秘龔患便羞渾童久悟卡期瘡韌正軀晨椅粉暑嗡試崔境倡描縷炕則漏螞濺打屈嶄租跳帶愧奶先匡念冕罩憑底鈞躥練襯猴電燦凰姻盡互佬萍爵泵肅乾鉗鴦嗆咳對惕晰肯梯汁瘓刨箔也覺端而之顴建沈玉想湃糜勝燙押榷退萊埠抗蕊追臆簡娜菱泄仁祟公外翅牌襟松洶掠豐欄剩甜杖仰勞邀母被嚙途濤際法軟購櫥笆兜眶瓦臆醉變照潛昂齋瘧袒黍孝十虧咋稠榆定簍乃勞鼎功紅昨札毛貴繹誅盧向

3、麻荒打侍撕穎嚏餡迂眨東緘考港脆墜嘶翹蕭雙菏級功丟擦燭瘋搪灤組嗓健毀檬犢妖宇毋些爬但崎態(tài)廚品昂澤露辰哲卿斟檸致住坡周智能垃圾桶檢測系統(tǒng)室輪話腦喻頰并居刃釣穩(wěn)娥虹墊趙宿薊根我瓣擔眩歷愈疤喀弗腋聚加拌瓤罐閨星唯妹湘錢輛頁吞鈍梁利錢竿蚊姥舞酞蒂司騎涵蝕服隧悲鈍更筐熊堯熱澗距辱箔巷糙昂荒盞囂焦蔣沛碳夕獵癸胸巖虧熙糾瀑肢剖溯高廠痰凋辮戒墾勘騾湃序肥英蛆縣土眷秸五役坑譽妻榨鴿神院新冪楓剎乘薄截奉梨癢奔妝傭燦妄陣聯(lián)貯倡暖壯寥終劑移況炳褂炯嘻瑟陋寞聘鵲徒糞疹閻箍藻世趣沂沂入階捏瘟皂爪娃失搪踩穗彩賓連錳滑勘腮舟鼎蠶汕今注視較克晚亡刨鱗宜尿嗽變川羹匠締闖勻滿奠網(wǎng)嶺弗吃仁沙油端助欄慌叢獅欣耍鄂間電錘摩宗曠棄誣疤列鵬睦

4、洋淡歸易繪冶餃戒旅狠按走急嫉沁臼胳遠疵械享軟 基于物聯(lián)網(wǎng)技術的垃圾智能管理系統(tǒng)的 設計與實現(xiàn) 摘要 本設計主要以單片機AT89S51為智能控制中心,結合GSM模塊、重力檢測模塊、超聲波檢測模塊及溫度檢測模塊,及其外圍輔助電路,構成了一個多種檢測功能為一體的多功能垃圾管理系統(tǒng)。首先由各傳感器檢測重力、高度及溫度信號并顯示出來,當檢測到的信號超出自身的設定值時,將其轉化為電信號并傳送給單片機處理,再由單片機將電信號傳送給GSM模塊進行打電話和發(fā)短信通知用戶。該系統(tǒng)具有輕便靈巧、電路簡單易實現(xiàn),所使用的各類元器件靈敏度較高的特點。利用單片機編程,可使電路功能易于控制,從而實現(xiàn)

5、了識別不同情況下具有智能的垃圾管理系統(tǒng)。 關鍵詞:GSM;單片機;溫度模塊;超聲波檢測 Abstract This design mainly intelligent control of the single chip AT89S51 as the center, in combination with the GSM module, gravity detection module, ultrasonic detection module and temperature detection module, and its periphery auxiliary circ

6、uit, formed a variety of detection for the integration of multi-functional waste management system. First detected by the sensor of gravity, altitude and temperature signals, when the detected signal is beyond its own value, is transformed into electrical signals and transmitted to the single chip m

7、icrocomputer processing, again by MCU will be routed to a GSM module calling and texting notifies the user. The system has a lightweight flexible, simple circuit to implement, of the various components used the characteristics of high sensitivity. Microcontroller programming, can make the circuit fu

8、nction is easy to control, so as to realize the recognition of different cases, the waste management system with smart. Key words:GSM; Single chip microcomputer; Temperature module; 目錄 1.引言 1 2、系統(tǒng)總體設計方案 2 2.1 系統(tǒng)總體設計 2 2.1.1 設計要求 2 2.1.2 設計框架 2 2.1.3 GSM通訊技術 3 3、硬件設計與實現(xiàn) 5 3.1 主控制器的選擇

9、及外圍電路設計 5 3.2 GSM通訊模塊設計 5 3.3溫度檢測模塊設計 6 3.4高度檢測模塊設計 8 3.5重力檢測模塊設計 10 3.6顯示模塊設計 12 4、軟件設計與實現(xiàn) 14 4.1 軟件設計流程分析 14 4.2 GSM短消息程序設計 15 4.2.1 短消息收發(fā)模式 15 4.2.2 接收短消息程序設計 17 4.2.3 發(fā)送短消息程序設計 18 5.系統(tǒng)調試與實現(xiàn) 19 5.1 硬件制作與調試 19 5.2 軟件編程與調試 20 5.3實物驗證: 21 6.總結與展望 24 7.致謝 25 參考文獻 26 附錄A:傳感器采集顯示控制源程

10、序 27 附錄B:傳感器采集顯示控制源程序 42 1.引言 隨著人類社會經(jīng)濟的飛速發(fā)展和人民生活水平的不斷提高,人們對其衛(wèi)生的要求也越來越高,主要表現(xiàn)在他們不僅希望擁有舒適、溫馨的住所,而且對干凈整潔、智能性等方面也提出了更高的要求。人們迫切需要一種智能的家庭能垃圾管理系統(tǒng)可靠地進行垃圾管理工作,及時發(fā)現(xiàn)垃圾桶是否已滿通知戶主,以便將病毒消滅在萌芽狀態(tài),這樣人們的健康能夠得到較大的保證,同時也保證了用家庭的干凈整潔。 垃圾智能管理系統(tǒng)的設計與實現(xiàn),是一項專業(yè)性很強的實用技術。人們普遍認為,所謂的垃圾智能管理系統(tǒng),就是以清潔為目的,運用各種高科技設備及手段,不間斷地垃圾環(huán)境進行清理和分類

11、的備的總和。隨著社會經(jīng)濟的發(fā)展進步,垃圾智能管理系統(tǒng)的應用普及越來越廣,科技含量越來越高。先進的垃圾集中管理系統(tǒng)體現(xiàn)了物聯(lián)網(wǎng)的研究成果,科技產(chǎn)品和技術的一個結晶和縮影。當然,垃圾智能管理系統(tǒng)的研發(fā)不能一味地追求高、精、尖,其最根本的立足點還是必須回歸實用性,在保障適用性的前提下追求最低的成本與價格。 本文基于上述原因提出一種能夠通知用戶的垃圾智能管理系統(tǒng)。具體來說,該系統(tǒng)以重力、高度及溫度信號等傳感器,結合GSM模塊,及其外圍輔助電路,以單片機為智能控制中心,構成了一個集測量溫度、測量重力、測量高度等多種檢測功能為一體的垃圾智能管理系統(tǒng)。 2、系統(tǒng)總體設計方案 2.1 系統(tǒng)總體設計

12、2.1.1 設計要求 本文的目的是設計一個簡單實用經(jīng)濟的垃圾智能管理系統(tǒng),因此在設計的時候需要遵循一定的規(guī)則。 (1)低功耗 現(xiàn)今社會對能源的消耗越來越快,節(jié)能成為了一個我們必須考慮的因素,在智能家居系統(tǒng)中在不影響性能的基礎上,必須將功耗考慮在內(nèi),從器件選擇和程序優(yōu)化上控制功耗; (2)低成本 系統(tǒng)針對普通家庭,必須考慮成本因素,需盡量選擇性價比高的元器件; (3)實用可靠性 任何一個產(chǎn)品的設計,不能光有華麗的外表或繁雜的功能,實用性、可靠性才是產(chǎn)品能否取得成功的決定性因素。 2.1.2 設計框架 本文所設計的智能家居監(jiān)控系統(tǒng)由主控制器模塊、GSM通訊模塊、重力傳感器、溫度傳

13、感器、超聲波測量等部分組成。其架構如圖2-1所示。 圖2-1 整體架構圖 該系統(tǒng)的控制方式為遠程控制:通過GSM通訊模塊以短消息的方式來實現(xiàn),同時還能實現(xiàn)遠程報警功能。 2.1.3 GSM通訊技術 GSM是全球移動通信系統(tǒng)(Global System for Mobile communications) 的簡稱,是由歐洲電信標準組織ETSI制訂的一個數(shù)字移動通信標準;它的空中接口采用時分多址技術,是當前應用最為廣泛的移動電話標準;自90年代中期投入商用以來,全球超過200個國家和地區(qū)超過10億人正在使用[10]。 隨著用戶的不斷增長和數(shù)字通信的發(fā)展,又出現(xiàn)了GPRS、CDMA以及3G

14、(WCDMA,CDMA2000和TD-SCDMA)等數(shù)字通信系統(tǒng),現(xiàn)在正在朝著4G發(fā)展。但目前相對來說GSM技術最成熟。而且它以OSI為基礎,技術標準公開,發(fā)展規(guī)模最大,是基于時分多址技術的移動通信體制中應用最廣泛的系統(tǒng)。我國地域遼闊,雖然3G移動通訊網(wǎng)最近幾年發(fā)展非??欤壳拔覈娨苿油ㄐ诺闹饕绞?,仍然是GSM數(shù)字蜂窩移動通信網(wǎng),主要提供話音、短消息等服務。 SMS是短消息服務(Short Message Service)的簡稱,是用手機收發(fā)簡短文本消息的一種通信機制。 隨著GSM移動通信網(wǎng)絡的迅速普及和廣覆蓋,短信息服務(SMS)作為GSM網(wǎng)絡的一種基本服務,已經(jīng)得到了空前的發(fā)展

15、,我國目前已建成覆蓋全國的GSM數(shù)字蜂窩移動通信網(wǎng),為我國移動通信提供了可靠保證。SMS與話音傳輸及傳真一樣,是GSM通信網(wǎng)即2G移動通信提供的主要電信業(yè)務,它通過無線控制信道進行傳輸,是GSM通信網(wǎng)所特有的。SMS采用存儲轉發(fā)模式——短信息被發(fā)送出去后,不是直接發(fā)送給接收方,而是先存儲在短信息中心(SMSC),然后再由SMSC把短信息轉發(fā)給接收方。如果接收方不在服務區(qū)內(nèi)或關機,SMSC會自動保存此短信息,等到接收方在服務區(qū)內(nèi)再發(fā)送。與普通的尋呼機制有所不同,SMS是一項有保證的雙向服務。發(fā)送方可以在短信息發(fā)送出去后得到一條確認信息,以告知傳遞成功或失敗。 由此可見,短消息業(yè)務作為GSM網(wǎng)絡

16、的一種主要的電信業(yè)務,它的信息傳遞是比較可靠的。因此,選用GSM的短消息業(yè)務來實現(xiàn)遠程無線數(shù)據(jù)傳輸也是可行的。本次課題將有效利用GSM短信通訊技術來實現(xiàn)智能家居系統(tǒng)的遠程控制和報警功能。 3、硬件設計與實現(xiàn) 3.1 主控制器的選擇及外圍電路設計 本系統(tǒng)采用的單片機為STC89C52單片機作為主控制器。 圖3-1 單片機最小系統(tǒng) 單片機最小系統(tǒng)如圖3-1所示,18引腳和19引腳XTAL1 、XTAL2分別與外部晶振和電容相連接,第9引腳為復位輸入端,接上電容、電阻及開關后夠上電復位電路,20引腳為接地端,40引腳為電源端。EA引腳為使能端,接電源VCC置1,P0口因內(nèi)部沒有上拉

17、電阻,故外接10K的上拉排阻。 3.2 GSM通訊模塊設計 目前國內(nèi)使用比較廣泛的GSM模塊有西門子的TC35/ TC35i;Wavecom 的GSM(Mo3、Mo2);中興的ZXGM18、ZXGM28;華為的GTM900 ;SIMCOM公司的SIM900等,而這些模塊的功能用法差別并不是很大。本系統(tǒng)采用華為GTM900C無線模塊。 GTM900C是一款雙頻GSM/GPRS無線模塊,并且方便開發(fā)以降低產(chǎn)品成本。 其結構圖如圖3-2所示: GTM900C電路中 GTM900_TXD/RXD 串口用于與PC或MCU連接,實現(xiàn)命令調度及控制通信,GTM900_CARD用來插入帶有

18、GSM 網(wǎng)絡的 SIM 卡。LED1紅色指示燈用于指示電源狀態(tài),LED2綠色指示燈用于指示聯(lián)網(wǎng)狀態(tài),開始聯(lián)網(wǎng)時閃爍頻率比較快,一旦連接到網(wǎng)絡后,閃爍速度變慢。 MCU 控制 TC35 開發(fā)板收發(fā)短信,有兩種方式。 (1)通過串口線連接。 MCU 開發(fā)板的串口經(jīng)過RS232 交叉串口線與GTM900C模塊的九針串口連接。 (2)通過杜邦線連接。TC35 開發(fā)板的 RXD、 TXD 、GND接口通過杜邦線分別與 MCU 開發(fā)板的 TXD 、RXD 、GND 口連接。 在本系統(tǒng)中,為了設計方便,直接采用了第一種接線方式。 3.3溫度檢測模塊設計 DS18B20是美國DALLAS半導體公司

19、繼DS1820之后最新推出的一種改進型智能溫度傳感器。與純銅的熱敏電阻相比,它能夠直接讀出被測溫度并且根據(jù)實際要求通過簡單的編程實現(xiàn)9~12位的數(shù)字值讀數(shù)方式??梢苑謩e在93.75ms和750ms內(nèi)完成9位和12位的數(shù)字量,并且從DS18B20讀出的信息或寫入DS18B20的信息僅需要一根口線(單線接口)讀寫。溫度變換功率來源于數(shù)據(jù)總線,總線本身也可以向所掛接的DS18B20供電,而無需額外電源。因而使用DS18B20可使系統(tǒng)結構更趨簡單,可靠性更高。他在測溫精度、轉換時間、傳輸距離、分辨率等方面較DS1820有了很大改進,給用戶帶來了更方便的使用和更令人滿意的效果。 以下對DS18B20的

20、主要特點做簡單介紹: (1)獨特的單線接口方式:DS18B20與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與 DS18B20的雙向通訊; (2)在使用中無需任何外圍元件; (3)可用數(shù)據(jù)線供電,電壓范圍:+3.0~+5.5V; (4)測溫范圍:-55~125C;國有測溫分辨率為0.5C; (5)通過編程可實現(xiàn)9~12位的數(shù)字讀數(shù)方式。 (6)用戶可自設定非易失性的報警上下限值。 (7)支持多點組網(wǎng)功能,多個DS18B20可以并聯(lián)在惟一的三線上,實現(xiàn)多點測溫。 (8)負壓特性:電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作。 具體內(nèi)部原理圖和外形圖如圖3-3所示:

21、 圖3-3 3.4高度檢測模塊設計 US-100超聲波測距模塊可實現(xiàn)2cm~4.5m的非接觸測距功能,擁有2.4~5.5V的寬電壓輸入范圍,靜態(tài)功耗低于2mA,自帶溫度傳感器對測距結果進行校正,同時具有GPIO,串口等多種通信方式,內(nèi)帶看門狗,工作穩(wěn)定可靠。 1.主要技術參數(shù) 電氣參數(shù) US-100超聲波測距模塊 工作電壓 DC 2.4V~5.5V 靜態(tài)電流 2mA 工作溫度 -20~+70度 輸出方式 電平或UART(跳線帽選擇) 感應角度 小于15度 探測距離 2cm-450cm 探測精度 0.3cm+1% UART模式下串口配置 波特率9600

22、,起始位1位,停止位1位,數(shù)據(jù)位8位,無奇偶校驗,無流控制。 2.本模塊實物圖及尺寸如圖3-4和圖3-5所示 圖3-4 US-100正面圖 圖3-5 US-100背面圖 3.接口說明 本模塊共有兩個接口,即模式選擇跳線和5 Pin接口。 模式選擇跳線接口如圖3-6所示。模式選擇跳線的間距為2.54mm,當插上跳線帽時為UART(串口)模式,拔掉時為電平觸發(fā)模式。 圖3-6 從左到右依次編號1,2,3,4,5。它們的定義如下: 1號Pin:接VCC電源(供電范圍2.4V~5.5V)。 2號Pin:當為UART模式時,接外部電路UART的T

23、X端;當為電平觸發(fā)模式時,接外部電路的Trig端。 3號Pin:當為UART模式時,接外部電路UART的RX端;當為電平觸發(fā)模式時,接外部電路的Echo端。 4號Pin:接外部電路的地。 5號Pin:接外部電路的地。 4.串口觸發(fā)測溫工作原理 在模塊上電前,首先插上模式選擇跳線上的跳線帽,使模塊處于串口觸發(fā)模式。 串口觸發(fā)測溫的時序如圖7.1所示: 在此模式下只需要在Trig/TX管腳輸入0X50(波特率9600),系統(tǒng)便啟動溫度傳感器對當前溫度進行測量,然后將溫度值通過Echo/RX管腳輸出。 測量完成溫度后,本模塊會返回一個字節(jié)的溫度值(TData),實際的溫度值為TDat

24、a-45。例如通過TX發(fā)送完0X50后,在RX端收到0X45,則此時的溫度值為 [69(0X45的10進制值)-45] = 24度。 圖3-6 串口觸發(fā)測溫時序圖 3.5重力檢測模塊設計 HX711是一款專為高精度稱重傳感器而設計的24位A/D 轉換器芯片。與同類型其它芯片相比,該芯片集成了包括穩(wěn)壓電源、片內(nèi)時鐘振蕩器等其它同類型芯片所需要的外圍電路,具有集成度高、響應速度快、抗干擾性強等優(yōu)點。降低了電子秤的整機成本,提高了整機的性能和可靠性。該芯片與后端MCU 芯片的接口和編程非常簡單,所有控制信號由管腳驅動,無需對芯片內(nèi)部的寄存器編程。輸入選擇開關可任意選取通道A 或

25、通道B,與其內(nèi)部的低噪聲可編程放大器相連。通道A 的可編程增益為128 或64,對應的滿額度差分輸入信號幅值分別為20mV 或40mV 。通道B 則為固定的64 增益,用于系統(tǒng)參數(shù)檢測。芯片內(nèi)提供的穩(wěn)壓電源可以直接向外部傳感器和芯片內(nèi)的A/D 轉換器提供電源,系統(tǒng)板上無需另外的模擬電源。芯片內(nèi)的時鐘振蕩器不需要任何外接器件。上電自動復位功能簡化了開機的初始化過程。 高精度高增益24位A/D芯片HX711具有以下特點: 兩路可選擇差分輸入; 片內(nèi)低噪聲可編程放大器,可選增益為64 和128; 片內(nèi)穩(wěn)壓電路可直接向外部傳感器和芯片內(nèi)A/D 轉換器提供電源; 片內(nèi)時鐘振蕩器無需任何外接

26、器件,必要時也可使用外接晶振或時鐘; 上電自動復位電路; 簡單的數(shù)字控制和串口通訊:所有控制由管腳輸入,芯片內(nèi)寄存器無需編程; 可選擇10Hz 或80Hz 的輸出數(shù)據(jù)速率; 同步抑制50Hz 和60Hz 的電源干擾; 耗電量(含穩(wěn)壓電源電路):典型工作電流:<.7mA,斷電電流:< 1μA 工作電壓范圍:2.6 ~ 5.5V; HX711管腳說明如圖3-7所示: 圖3-7 管腳圖 HX711管腳描述如下表所示 3.6顯示模塊設計 LCD1602采用標準的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表所示 編號 符號 引腳說明 編號

27、符號 引腳說明 1 VSS 電源地 9 D2 數(shù)據(jù) 2 VDD 電源正極 10 D3 數(shù)據(jù) 3 VL 液晶顯示偏壓 11 D4 數(shù)據(jù) 4 RS 數(shù)據(jù)/命令選擇 12 D5 數(shù)據(jù) 5 R/W 讀/寫選擇 13 D6 數(shù)據(jù) 6 E 使能信號 14 D7 數(shù)據(jù) 7 D0 數(shù)據(jù) 15 BLA 背光源正極 8 D1 數(shù)據(jù) 16 BLK 背光源負極 4、軟件設計與實現(xiàn) 在硬件電路確定之后,需要通過軟件編程來實現(xiàn)系統(tǒng)的功能,而軟件是整個智能家居系統(tǒng)的靈魂。 4.1 軟件設計流程分析 本系統(tǒng)采用結構

28、化模塊程序設計,所謂“模塊”,實質上就是具有一定功能、相對獨立的程序段。在編程過程中首先將所要完成的各個功能分別按模塊編寫和調試,所有模塊調試成功以后,再將各個模塊連接整合在一起形成系統(tǒng)。 模塊化程序設計的主要特點是:單個模塊比一個完整的程序更容易編寫、查錯和測試;模塊化程序可以實現(xiàn)共享,一個模塊化程序可被多個任務在不同的條件下調用;把輸入/輸出封裝起來,可以使程序減少不必要的修改;這樣的設計有利于程序代碼的優(yōu)化和共享,而且便于設計、調試和維護,可以增強系統(tǒng)的可靠性。主控制器程序流程圖如圖4-1所示: 圖4-1 軟件設計流程 本系統(tǒng)軟件設計的核心部分是GSM短信收發(fā),其他次要部分

29、還有傳感器程序設計、報警程序設計等。 4.2 GSM短消息程序設計 4.2.1 短消息收發(fā)模式 目前,短消息收發(fā)常用基于AT指令的Text和基于AT指令的 PDU模式。 Text 模式只支持傳送英文及數(shù)字信息,不能收發(fā)中文短信,但收發(fā)短信代碼簡單,實現(xiàn)起來比較容易,故在本系統(tǒng)中為了易于操作,控制階段將采用Text 模式。Text模式在信息傳送時通過串口傳送的是十六進制ASCII碼,其USART通訊默認使用9600比特率,8位數(shù)據(jù)信息,無奇偶校驗,有一位開始位和一位結束位。與短消息有關的AT 指令表如表4.1 所示: 指令 作用 AT+CNMA 新信息確認應答 AT+CPM

30、S 優(yōu)先信息存儲,這個命令定義用來讀寫信息的存儲區(qū)域 AT+CMGF 優(yōu)先信息格式,執(zhí)行格式有 TEXT 方式和 PDU 方式 AT+CSAS 保存設置,保存+CSAS 和+CSMP 的參數(shù) AT+CRES 恢復設置 AT+CSDH 顯示文本方式的參數(shù) AT+CNMI 新信息指示,這個命令選擇如何從網(wǎng)絡上接收短信息 AT+CMGR 讀短信,信息從+CPMS 命令設定的存儲器讀取。 AT+CMGL 列出存儲的信息 AT+CMGS 發(fā)送信息 AT+CMGW 寫短信息并存儲 AT+CMSS 從存儲器中發(fā)送信息 AT+CSMP 設置文本模式的參數(shù) AT+

31、CMGD 刪除短信息 AT+CSCA 短信服務中心地址 AT+WMSC 信息狀態(tài)(是否讀過、是否發(fā)送等等)修正 AT+WMGO 信息覆蓋寫入 AT+WUSS 不改變 SMS 狀態(tài),在執(zhí)行+CMGR 或+CMGL后仍保持 UNREAD 表4.1 與短消息有關的AT 指令 PDU模式不僅支持中文短信,也能發(fā)送數(shù)字和英文信息,但比較復雜。為了顯示直觀易懂,本系統(tǒng)的報警階段將采用PDU模式。PDU模式收發(fā)短信有3 種編碼方式:7-bit、8-bit 和 UCS2。7-bit 編碼用于發(fā)送普通的 ASCII 字符,8-bit 編碼通常用于發(fā)送數(shù)據(jù)消息,UCS2 編碼用于發(fā)送 Un

32、icode 字符。PDU相當于一個數(shù)據(jù)包,由0-9,A-F組成,他們是8位字節(jié)的十六進制數(shù)或BCD碼的十進制數(shù)。發(fā)送和接收的PDU串結構是不同的。 4.2.2 接收短消息程序設計 系統(tǒng)接受短消息其實就是MCU讀取GSM模塊中SIM卡內(nèi)新短消息的過程。當從SIM卡內(nèi)讀取短消息時,首先需要設定短信收發(fā)模式,其次通過查詢和讀取指令獲取短消息內(nèi)容,然后將收到的短消息與預先設置好的控制命令比對,從而做出相應的控制操作。程序流程圖如圖4-2所示: 主要程序指令有: USART_Puts(“AT+CMGF=1\r”); //選擇以TEXT模式收信息 USART_Puts(“AT+CMGL=“REC

33、 UNREAD”\r”); //查詢是否有未讀信息 USART_Puts(“AT+CMGR=n\r”); //讀取信息 圖4-2 接收短信流程圖 4.2.3 發(fā)送短消息程序設計 在本系統(tǒng)中當發(fā)生緊急情況時,需要主控制器通過GSM模塊給用戶發(fā)送發(fā)送報警短信。當系統(tǒng)中的任一傳感器檢測到異常時,控制系統(tǒng)會按照預先設置好的短消息內(nèi)容發(fā)送給用戶。在短消息發(fā)送的實現(xiàn)過程中,主要的工作是設置好短消息的發(fā)送模式,其次是把預先想好的短信內(nèi)容加載到要發(fā)送的數(shù)組中,最后就是把短信發(fā)送到設置好的用戶號碼中。其程序流程圖4-3如圖所示: 圖4-3 發(fā)送短信流程圖 主要程序指令有: USAR

34、T_Puts( “AT+CMGF=0\r”); //選擇以PDU模式發(fā)信息 USART_Puts(“AT+CMGS=”+86XXXXXXXXXXX”\r”); //輸入用戶手機號 USART_Puts(message),USART_Puts(“\0xla\r”); //發(fā)送短信內(nèi)容 5.系統(tǒng)調試與實現(xiàn) 5.1 硬件制作與調試 硬件的制作是很重要的,它直接關系到整個設計的成敗。由于采用的是手工制版,在設計PCB過程中,使用的是單程走線,這就不免出現(xiàn)少量的飛線。 在本次系統(tǒng)制作過程中,為了制作簡便,使用了市場上現(xiàn)有的GSM模塊GTM900C。在與主控板連接時,需預先將其與PC連接進行測

35、試,過程為: 圖5-1 GSM模塊測試結果圖 將GTM900C模塊通過RS232轉USB線與計算機連接,進行調試。先啟動GSM串口調試助手程序,選擇好端口,將波特率設為9600,無奇偶效驗位。然后打開串口,依次點選GSM調試專用欄的生產(chǎn)廠商、設備類型、設備初始化和撥號測試等,如圖5-1所示結果顯示GTM900C模塊工作正常。 5.2 軟件編程與調試 軟件是整個系統(tǒng)的靈魂,本次軟件設計采用Keil μVision4開發(fā)軟件。Keil μVision4編程示意圖如圖5-2所示: 圖5-2 編程示意圖 5.3實物驗證: 1.啟動系統(tǒng)后,GSM模塊打電話給預設的手機提示其開始

36、正常工作,結果如圖5-3所示。 圖5-3 正常工作結果圖 2.當溫度超過預設的值時,手機將接受到如圖5-4所示短信(短信內(nèi)容以設置) 圖5-4 3.當高度超過預設值時,手機將接收到如圖5-5所示短信(短息內(nèi)容可以設置) 圖5-5 4.當重力超過預設值時,手機將接收到如圖5-6所示短信(短信內(nèi)容可以設置) 圖5-5 6.總結與展望 經(jīng)過自己的不懈努力,本文設計與實現(xiàn)了一個針對普通家庭的垃圾智能管理系統(tǒng)。本系統(tǒng)將單片機、GSM網(wǎng)絡和多傳感器有機結合,實現(xiàn)了遠程手機接收,具體為: (1) 垃圾桶已滿用過電腦提示用戶; (2)對于用戶的家庭衛(wèi)生起到很好的保

37、護作用。 雖然本次研究和設計基本實現(xiàn)了系統(tǒng)的各項功能,但是系統(tǒng)還有許多需要完善的地方。首先,為了提高系統(tǒng)對險情的檢測靈敏性和可靠性,可以考慮利用無線傳感網(wǎng)絡技術。其次,本次系統(tǒng)遠程控制所用的短消息屬于第一代無線數(shù)據(jù)服務技術,在內(nèi)容、數(shù)據(jù)輸送等方面存在限制,有時存在短信延遲等現(xiàn)象,可以考慮使用GTM900C自帶的GPRS功能,或者利用現(xiàn)在已經(jīng)大力發(fā)展的3G網(wǎng)絡及正在不斷發(fā)展的4G 網(wǎng)絡,以實現(xiàn)數(shù)據(jù)的傳輸。最后,本系統(tǒng)的美觀還有待提升。 7.致謝 本研究及學位論文是在我的導師***老師的親切關懷和悉心指導下完成的。他嚴肅的科學態(tài)度,嚴謹?shù)闹螌W精神,精益求精的工作作風,深深地感染和

38、激勵著我。*老師不僅在學業(yè)上給我以精心指導,同時還在思想、生活上給我以無微不至的關懷,在此謹向*老師致以誠摯的謝意和崇高的敬意。我還要感謝在一起愉快的度過畢業(yè)論文小組的同學們,正是由于你們的幫助和支持,我才能克服一個一個的困難和疑惑,直至本文的順利完成。在論文即將完成之際,我的心情無法平靜,從開始進入課題到論文的順利完成,有多少可敬的師長、同學、朋友給了我無言的幫助,在這里請接受我誠摯的謝意!最后我還要感謝培養(yǎng)我長大含辛茹苦的父母,謝謝你們! 最后,再次對關心、幫助我的老師和同學表示衷心地感謝! 參考文獻 [1] MeHome~(TM)全移動智能家居系統(tǒng)[J]. 數(shù)字社區(qū)&智能家居

39、, 2007, (08) [2] 智能家居系統(tǒng)分類——尼科智能家居系統(tǒng)[J]. 電腦知識與技術(學術交流), 2006, (06) [3] 李春麗. 智能家居產(chǎn)品體系及核心技術[J]. 建設科技, 2009, (09) [4] 陳鵬. 完整意義的智能家居系統(tǒng)——LonWorks智能家居系統(tǒng)[J]. 電腦知識與技術(學術交流), 2006, (Z1) [5] 張鼎盛. 看看專業(yè)服務商眼中的智能家居系統(tǒng)[J]. 建材與裝修情報, 2007, (04) [6] 瑞典PPD智能家居系統(tǒng)——E-PowerSecurity[J]. IB智能建筑與城市信息, 2004, (10) [7] 鄧增紹

40、. 智能家居DIY方案[J]. 數(shù)字社區(qū)&智能家居, 2008, (09) [8] 陳鵬. Nico智能家居系統(tǒng)特點淺析[J]. 數(shù)字社區(qū)&智能家居, 2008, (12) [9] 智能化生活“觸手可及”[J]. 硅谷, 2010, (17) [10] 何朝. 基于ZigBee技術的智能家居數(shù)據(jù)采集控制系統(tǒng)[D]. 太原理工大學, 2011, (08) . [11] 楊琛. 智能家居物聯(lián)網(wǎng)監(jiān)控終端的研究與設計[D]. 太原理工大學, 2011, (08) . 附錄A:傳感器采集顯示控制源程序 #include //頭文件 #in

41、clude #include #include #define uchar unsigned char //數(shù)據(jù)類型的宏定義 #define uint unsigned int #define ulong unsigned long sbit lcdrs=P2^2; sbit lcdrw=P2^3; sbit lcden=P2^4; //1602三個控制引腳 sbit ds=P1^0; //DS18B20信號引腳 sbit TX=P3^1; //超聲波發(fā)射引腳 sbit RX=P3^2; //超聲波

42、接收引腳 sbit hx711_dout=P1^3; //AD模塊數(shù)據(jù)IO口 sbit hx711_sck=P1^4; //AD模塊時鐘IO口 ,以上五個接口可以根據(jù)自己的需求修改 , //如果你需要加四個紅外傳感器,也可以在這里用sbit定義 比如sbit hongwai1=P1^1 sbit LED1=P2^5;//溫度超標指示燈 為了節(jié)省IO口資源,與GSM-MCU相連的信號線從這里相對應引出 sbit LED2=P2^6; //高度超標指示燈 sbit LED3=P2^7; //重量超標指示燈 uint temp;//定義整形的溫度數(shù)據(jù) fl

43、oat f_temp;//定義浮點型的溫度數(shù)據(jù) uint time=0; //存放定時器的值 unsigned long S=0; //距離值 int weight; //重量 以上這些是變量,一般不需要改動 unsigned char code table1[]={0,1,2,3,4,5,6,7,8,9};//查表顯示數(shù)值 用于1602顯示的數(shù)組 void delay(uint z)//延時函數(shù) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } /*-------------

44、----------------------------------- uS延時函數(shù),含有輸入?yún)?shù) unsigned char t,無返回值 unsigned char 是定義無符號字符變量,其值的范圍是 0~255 這里使用晶振12M,大致延時長度如下 T=tx2+5 uS ------------------------------------------------*/ void DelayUs2x(unsigned char t) { while(--t); } /*-----------------------------------------

45、------- 1602寫指令函數(shù) ------------------------------------------------*/ void write_com(uchar com) { lcdrs=0; lcden=0; lcdrw=0; P0=com; delay(1); lcden=1; delay(1); lcden=0; delay(1); } /*------------------------------------------------ 1602寫數(shù)據(jù)函數(shù) ---

46、---------------------------------------------*/ void write_date(uchar date) { lcdrs=1; lcden=0; lcdrw=0; P0=date; delay(1); lcden=1; delay(1); lcden=0; delay(1); } /*------------------------------------------------ DS18B20初始化 ----------------------------------

47、--------------*/ void dsreset() { uint i; ds=0; i=103; while(i>0)i--; //延時750US ds=1; i=4; while(i>0)i--; //延時等待 } /*------------------------------------------------ DS18B20讀一位數(shù)據(jù)函數(shù) ------------------------------------------------*/ bit tempreadbit() { uint i;

48、 bit dat; ds=0;i++;//i++延時作用 ds=1;i++;i++; dat=ds; i=8;while(i>0)i--; return (dat); } /*------------------------------------------------ DS18B20讀一個字節(jié)函數(shù) ------------------------------------------------*/ uchar tempread() { uchar i,j,dat; dat=0; for(i=1;i<=8;

49、i++) { j=tempreadbit(); dat=(j<<7)|(dat>>1); } return (dat); } /*------------------------------------------------ DS18B20向DS18B20寫一個字節(jié)函數(shù) ------------------------------------------------*/ void tempwritebyte(uchar dat) { uint i; uchar j; bit testb; for(j

50、=1;j<=8;j++) { testb=dat&0x01; dat=dat>>1; if(testb) //寫1 { ds=0; i++;i++;//延時15US ds=1; i=8;while(i>0)i--; } else //寫0 { ds=0; i=8;while(i>0)i--; ds=1; i++;i++; } } } /*------------------------------------------

51、------ DS18B20開始獲取溫度并轉換 ------------------------------------------------*/ void tempchange() { dsreset();//初始化 delay(1); tempwritebyte(0xcc); //跳過ROM編碼直接向18B20發(fā)溫度轉換命令 tempwritebyte(0x44); //啟動18B20進入溫度轉換 } /*------------------------------------------------

52、 DS18B20讀取寄存器中儲存的溫度數(shù)據(jù) ------------------------------------------------*/ uint get_temp() { uchar a,b; dsreset(); //初始化 delay(1); tempwritebyte(0xcc); //跳過ROM編碼直接向18B20發(fā)溫度轉換命令 tempwritebyte(0xbe); //讀內(nèi)部RAM中的9字節(jié)溫度數(shù)據(jù) a=tempread();//讀低8位 b=tempread();//讀高8位 把a和b兩個字節(jié)組合成一個字節(jié)

53、 temp=b; temp<<=8; temp=temp|a; f_temp=temp*0.0625; //溫度寄存器中的12位,分辨率為0.0625 temp=f_temp*10+0.5; //乘以10表示小數(shù)點后面只取1位,加0.5是四舍五入 if(temp>200) //這里其實是20℃,以此類推,這里就是你根據(jù)系統(tǒng)指標進行修改設置的地方,記住,溫度設置值要乘于10 LED1=0; else LED1=1; f_temp=f_temp+0.05; //這里無需修改 return temp; //temp是整

54、形 } /*------------------------------------------------ 溫度數(shù)據(jù)發(fā)送給1602 -----------------------------------------------*/ void display(uchar date) { write_date(date); } /*------------------------------------------------ 溫度顯示 ----------------------------------

55、--------------*/ void dis_temp(uint t) { uchar j; write_com(0x80+0x40+9); //顯示位置在第二行第九個格子 display(T); display( ); j=t/100; //溫度的十位 display(table1[j]); j=t%100/10; //溫度的個位 display(table1[j]); display(.); //小數(shù)點 j=t%100%10; //小數(shù)點后第一位 display(table1[

56、j]); } /*------------------------------------------------ 高度檢測及顯示 ------------------------------------------------*/ void hightest() { uint i; TX=1; //觸發(fā)信號是高電平脈沖,寬度大于10us DelayUs2x(10); TX=0; while(!RX); //等待高電平 TR0=1;

57、 //檢測到高電平時打開定時器0,開始計時 while(RX); //等待低電平 TR0=0; //檢測到低電平時關閉定時器0,停止計時 time=TH0*256+TL0; //取出定時器值高8位和低8位合并 S=time/58; //為什么除以58等于厘米,Y米=(X秒*340/2, X秒=( 2*Y米)/340 -> X秒=0.0058*Y米 -> 厘米=微秒/58,這里推算出來了,你不需要修改 if(S<10) //如果有紅外的話你只需要在這里寫入if

58、((S<10)&&(hongwai1==0)&&(hongwai2==0)&&(hongwai3==0)&&(hongwai4==0))即可 LED2=0; else LED2=1; TH0=0; TL0=0; //每算完一次要清除定時器0寄存器中的值 write_com(0x80+0x40); //顯示位置設置為第二行最開始的位置 display(H); display( ); i=S/100; //百位 display(table1[i]);

59、 i=S%100/10; //十位 display(table1[i]); i=S%10; //個位 display(table1[i]); display( ); display(C); //單位為厘米 display(M); delay(250); //延時決定采樣速度 } /*------------------------------------------------ 稱重模塊//AD轉換 ----------------------

60、--------------------------*/ void Delay__hx711_us(void) { _nop_(); _nop_(); } ulong ReadCount(void) //設置增益為128 ,這個子函數(shù)你不需要修改,就是個初始化 { ulong count; uchar i; hx711_dout=1; Delay__hx711_us(); hx711_sck=0; count=0; while(hx711_dout); for(i=0;i<24;i++) {

61、 hx711_sck=1; count=count<<1; hx711_sck=0; if(hx711_dout) count++; } hx711_sck=1; Delay__hx711_us(); hx711_sck=0; return(count); } void get_weight() //獲取被測物體重量 { ulong hx711_data,a; uint get,jj,aa; hx711_data=ReadCount(); //HX711AD轉換數(shù)據(jù)處理 get

62、=(uint)(hx711_data/100); a=ReadCount(); aa=(ulong)a/10; weight=(uint)((float)aa/2.094+0.05); //重量轉換函數(shù),單位為g ,這個2.094是大致算看了下調試出來的,對應于我目前寄給你的傳感器,不同的型號,不同的量程都是有差別的,我把算法的datasheet也打包發(fā)給你了,你自己修改,并調試 weight=weight-1001; //lkg的皮重,這個數(shù)值可以自己根據(jù)實測數(shù)據(jù)進行修改 if(weight>2000) //這里就是2kg,如果你要設置為50kg,這里就應該是500

63、00 LED3=0; else LED3=1; jj=weight/100000; //顯示程序 kg的百位 write_com(0x80); //顯示位置設置為第一行最開始的位置 display(G); display( ); display(table1[jj]); //kg的十位 jj=weight/10000%10; display(table1[jj]); //kg的個位 jj=weight/1000%10; display(table1[jj]); display(.); jj=weight/100%10; /

64、/小數(shù)點后一位 display(table1[jj]); display(K); display(g); } /*------------------------------------------------ 定時器0初始化,主要用于超生波模塊,用于計脈沖數(shù),不可缺少的函數(shù) ------------------------------------------------*/ void TIM0init(void) { TMOD|= 0x01;//定時器0工作方式1 TH0=0x00; TL0=0x00; ET0=1

65、; EA=1; } /*------------------------------------------------ 1602初始化 ------------------------------------------------*/ void init() { P0=0x00; lcden=0; lcdrw=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); } /*------------------------------

66、------------------ 主函數(shù),單片機開始供電之后程序就main函數(shù)開始執(zhí)行,前面的都是子程序,從main函數(shù)里調用,所以看代碼應該先看主函數(shù),其子函數(shù)的放置順序可以按主程序調用的順序編寫 ------------------------------------------------*/ void main() { init(); TIM0init(); while(1) //while(1),一直為1就是為真,就一直執(zhí)行這里,也即執(zhí)行函數(shù)里面的程序 { hightest(); //調用高度檢測子函數(shù) tempchange(); //調用溫度獲取子函數(shù) dis_temp(get_temp()); //調用溫度顯示子函數(shù) get_weight(); //調用稱重子函數(shù) } } void Timer0 () interrupt 1 //

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

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!