一、項目概述
1.1 引言
21世紀是信息化的世紀,各種信息新技術推動著人類文明的進步。本文介紹的基于以太網和DTMF編解碼的遠程家居控制器可以使得人們可以通過手機或電話在任何時候、任意地點對家中的電器進行遠程控制;也可以在下班途中,通過手機預先將家中的空調打開、讓熱水器提前燒好熱水……;而這一切的實現都僅僅是打一個簡單的電話。此外,該系統還提供以太網遠程控制,用戶登錄特定的網站就可以了解家電的工作情況以及進行相應控制。如果不幸出現某種險情,此控制器還可以自動撥打電話通知你,你就可以在第一時間獲得通知以便進一步采取行動。當你回到家時,你還可以運用遙控器來控制家電工作。舒適、時尚的家居生活是社會進步的標志,對家里的電器、燈光、電源、家庭環境進行方便地控制,使人們盡享高科技帶來的簡便而時尚的現代生活。
1.2選題動機
如今,我國正在快速發展智能家居行業,特別是基于GSM網絡的居多,然而,因為價格的昂貴至今還未進入平常百姓家。本系統針對此情況,設計一款成本低廉,面向普通家庭,集本地控制和遠程控制于一體的智能家居控制器。眾所周知,電話網絡已經遍及我國各地,電腦也已經基本普及。我們利用電話網開發基于DTMF編解碼的電話遠程控制系統 ,其外圍電路成本低于30元人民幣;利用現有發達的internet,我們開發出基于以太網的遠程控制系統,用戶可以隨時隨地通過電話或PC機瀏覽器遠程控制家用電器和監控家庭安全隱患。同時,在家用戶可以通過遙控器無線遙控家用電器和實時監控家庭安全隱患。
二、需求分析
2.1 功能要求
本著“環保與創新”的主題,此系統集本地家電控制和監控模塊,DTMF編解碼的電話遠程控制和監控模塊以及以太網web server的遠程家居控制和監控系統模塊三大模塊為一體,實現智能家居控制。電話遠程控制和以太網遠程控制,不需進行專門的布線,不占用無線電頻率資源,避免了電磁污染。且可以通過以太網實時監控家用電器,避免了沒必要的電力資源浪費。
一、本地家電控制和監控模塊
此模塊能夠實時檢測溫濕度、一氧化碳、煙霧等的數值或者濃度,并在1602液晶上顯示相關參數。當超過一定的警戒線,它還會發出警報以及通知主系統(AVR 32)出現何種警情,讓主系統進行相關處理。
二、DTMF編解碼的電話遠程控制和監控模塊
此模塊能夠受手機控制,通過手機撥打家里電話來遠程控制家里的電器的開閉,以及當家里出現盜賊或者出現險情(包括火災、煤氣泄漏等)時固定電話能及時自動撥打電話通知用戶。
三、以太網web server的遠程家居控制和監控系統模塊
此模塊通過網線接入以太網后,用戶可以通過手機或PC機打開相應瀏覽器來遠程控制家里的電器的開閉,以及監控家里的溫濕度,煤氣傳感器和煙霧傳感器的數據。
2.2 性能要求
一、本地家電控制和監控模塊
此模塊性能要求傳感器采集數據要實時,而且要快速,采集出來的數據經過相應轉換后得到的數值與實際數值相差不能超過5%,溫度的精度為0.1℃,濕度的精度為0.5%RH。
二、DTMF編解碼的電話遠程控制和監控模塊
此模塊性能要求能響應速度快,即有人撥打電話時,此模塊能夠在1S內檢測到有電話打入,并記錄下撥打人輸入的按鍵信息。此外,當要實現自動撥打電話時,要求此模塊模擬按下的電話號碼要準確無誤,確保準確性。
此模塊要求接入互聯網,當用戶瀏覽網頁時,家用電器信息和傳感器數據每隔幾秒刷新一次,確保數據傳輸的快速性和準確性。
三、方案設計
3.1 系統功能實現原理(除圖片外需有文字介紹)
本系統功能的實現由三大模塊實現:
(1)本地家電控制和監控模塊;
(2)DTMF編解碼的電話遠程控制和監控模塊;
(3)以太網web server的遠程家居控制和監控系統模塊。
一。本地家電控制和監控模塊
1.模塊概要
傳感器是用來監測家庭的險情情況的,所以要求監測速度快,效率高。為了提高整個系統的整體性能,我們把無線遙控模塊和各傳感器以及ATMEGA 16單片機作為主機(AVR 32)的一個子系統,子系統作為一個獨立的模塊可以單獨工作但又從屬于主機,突出了容易操作以及執行效率高的優點。整體的硬件框圖如下圖3.1—1所示:
傳感器子系統模塊包括:人體紅外感應傳感器模塊;一氧化碳傳感器;煙霧傳感器;溫濕度傳感器。它們采集出來的數據在液晶1602上顯示。而ATMEGA 16單片機與主系統之間的通信是通過RS485總線來進行通信的。
圖3.1—1 傳感器子系統模塊
2.單元功能模塊介紹
2.1人體紅外感應傳感器
外形如下圖所示:
一般來說,人體會發出波長為10um 左右的紅外線,在本次設計中采用PIR熱釋電傳感器,其低功耗、靜態功耗50uA,寬電壓范圍,電源可為5V電源。使用簡單,總共有3個引腳,一個為+5V電源引腳,一個為GND引腳,一個為感應輸出電平引腳,沒人時輸出低電平,感應距離最大為7米。當有人進入感應范圍,此傳感器的感應輸出電平引腳輸出有效高電平,單片機可以通過讀取此引腳來判斷是否有人進入。當有人進入時,單片機通過自動撥打電話通知用戶,并室內響鈴。
2.2 溫濕度傳感器
本設計采用數字溫濕度傳感器DHT11。此傳感器包括一個電阻式測濕元件和一個NTC測溫元件。它為單線制串行輸出接口,單總線結構輸出有效地節省用戶控制器的I/O口資源。40bit二進制數據輸出,其中濕度整數部分占1Byte,小數部分1Byte,溫度整數部分1Byte,小數部分1Byte。濕度為高16位。最后1Byte為校驗和。具體見下表:
計算方法為:
Humi(濕度)=bite 4.bite 3
Temp(溫度)=bite 2. bite 1
Jiaoyan( 校驗)=bite4+bite 3+bite 2+bite 1
DHT11的外形以及引腳排列如下圖所示:
DHT11的供電電壓為3.5~5.5V。傳感器上電后,要等待1s以越過不穩定狀態在此期間不要發送任何指令。電源引腳之間可增加一個瓷片電容用以去耦濾波。
DHT11與單片機的連接如下圖所示:
2.3 一氧化碳傳感器
本設計采用MQ9一氧化碳傳感器。其主要特點是對一氧化碳、甲烷、液化石油氣具有很高的靈敏度和良好的選擇性,具有長期的使用壽命和可靠的穩定性。
半導體可燃氣體傳感器MQ-9所使用的氣敏材料是在清潔空氣中電導率較低的二氧化錫(SnO2)。采用高低溫循環檢測方式低溫(1.5V加熱)檢測一氧化碳,傳感器的電導率隨空氣中一氧化碳氣體濃度增加而增大,高溫(5.0V加熱)檢測可燃氣體甲烷、丙烷并清洗低溫時吸附的雜散氣體。使用簡單的電路即可將電導率的變化,轉換為與該氣體濃度相對應的輸出信號。
2.4煙霧傳感器
本設計采用MQ—2煙霧傳感器。MQ-2傳感器成本低,靈敏性能很好。它所使用的氣敏材料是在清潔空氣中電導率較低的二氧化錫,當室內有煙霧時,MQ-2的電導率隨空氣中煙霧氣體的濃度增大而增大,使用簡單的電路即可將電導率的變化轉換為與該濃度相對應的輸出信號。
其外形如下圖所示:
2.5 1602液晶顯示模塊
本設計采用1602液晶顯示模塊,不可顯示漢字,可以顯示字母以及數字和一些特定字符,滿足本設計不要求很高的顯示相關的溫濕度參數以及百分比參數。電源為+5V即可。顯示顏色為黃綠色,與MCU數據接口為8位并行連接。
此模塊外形尺寸圖如下圖所示:
此模塊的引腳定義如下圖所示:
2.6無線遙控模塊
本設計采用PT2262/PT2272通用編/解碼無線遙控模塊。在通常使用中,我們一般采用8位地址碼和4位數據碼,這時編碼電路PT2262和解碼PT2272的第1~8腳為地址設定腳,有三種狀態可供選擇:懸空、接正電源、接地三種狀態,3的8次方為6561,所以地址編碼不重復度為6561組,只有發射端PT2262和接收端PT2272的地址編碼完全相同,才能配對使用。當兩者地址編碼完全一致時,編碼芯片PT2262發出的編碼信號由:地址碼、數據碼、同步碼組成一個完整的碼字,解碼芯片PT2272接收到信號后,其地址碼經過兩次比較核對后,VT腳才輸出高電平,與此同時相應的數據腳也輸出高電平,如果發送端一直按住按鍵,編碼芯片也會連續發射。
我們采用的遙控器如下圖3所示:
圖3 編碼發射模塊實物圖與原理框圖
2.7 RS485串口總線
RS-485串行總線接口標準以差分平衡方式傳輸信號,具有很強的抗共模干擾的能力,允許一對雙絞線上一個發送器驅動多個負載設備。本設計采用MAX485芯片作為RS485總線的接口芯片。我們可以用RS232接口連接兩塊單片機,但是,當你需要在一個更長的距離上或者比RS232更快的速度下進行傳輸的時候,RS485就是一個解決的方法。RS485與RS232相比有很多優點:1. 成本低,驅動器和接收器價格便宜,并且只需要單一的一個+5V(或者更低)的電源來產生差動輸出需要的最小1.5V的壓差。與之相對應,RS-232的最小+5V與-5V輸出需要雙電源或者一個價格昂貴的接口芯片,這個接口芯片可以生成這些電源;2.網絡能力好,RS-485是一個多引出線接口,這個接口可以有多個驅動器和接受器,而不是限制為兩臺設備。利用高阻抗接受器,一個RS-485連接可以最多有256個接點;3.長距離連接,其距離最長可以達到一千多米;4.快速,比特率可以高達10Mbps。電纜長度和比特率是有關的,較低的比特率允許較長的電纜。
MAX485芯片的引腳如下圖所示:
引腳說明如下表2—2所示:
MAX485引腳說明
二.DTMF編解碼的電話遠程控制和監控模塊:
1.模塊概要
該模塊控制器由解碼芯片MT8870接收遠端發送來的DTMF信號并對其進行解碼,解碼后的信號由MCU采集處理,同時當出現警情時,MCU發送信號到HT9200B,通過HT9200B來撥打用戶的電話號碼,以便用戶及時了解情況。由為了方便用戶使用,系統設計了語音提示電路。電話遠程控制系統一般工作在無人值守環境,所以應具有自動離線、上線、復位功能。本系統采用AVR 32作為中央處理器。同時,電話遠程控制系統正常工作還需電源供電電路、驅動電路等輔助電路。系統組成框圖如圖3.2-—0所示。由圖可知,此模塊主要由振鈴檢測電路、模擬摘掛機電路、DTMF音頻解碼電路、語音提示電路、MCU(AVR 32)、控制電路、電源電路以及DTMF編碼電話電路組成。
圖3.2—0 DTMF控制模塊硬件結構框圖
控制器并聯于電話機的兩端,不會影響電話機的正常使用。用戶通過異地電話撥通控制器所連接的固定電話的電話號碼,通過程控交換機向電話機發出振鈴信號。控制器檢測到若干次振鈴后,即若干次響鈴后無人接聽時電話自動摘機,進入密碼檢測階段,輸入正確密碼后選擇被控電器進行相應控制。
2.單元功能模塊電路
2.1振鈴檢測電路
振鈴檢測電路如圖3.2-1所示,圖中二極管有組成全波整流電路,其作用有兩個:
(1)將不確定的線路供電正負變為固定的正負輸出;
(2)將交流的振鈴信號變為脈動直流以供檢測。
當沒有振鈴信號時,線路上的供電電壓為50V左右(部分交換機為70V左右),經四個二極管構成的全橋整流后,不足以使62V穩壓管導通,振鈴信號輸出端電壓接近0V,當振鈴信號到來時,線路上的90V交流振鈴信號經全橋整流變化后變為90V的脈動直流電,其峰值足以擊穿穩壓值為75V穩壓管,經電阻R1給光電耦合器U1(4N25)提供電壓,從光電耦合器輸出的波形是時通時斷的方波信號,可以直接輸出到單片機的中斷輸入口,單片機可以根據振鈴信號光電轉換后的高低電平檢測有無振鈴。R1取為5K左右。
電路中光電耦合器U1隔離了振鈴信號和單片機的直接連接,光電耦合器以及光電轉換原理傳輸信息,它不僅使信息發出端與信息接收端是絕緣的,從而對地電位差干擾有很強的抑制能力,而且有很強的抑制電磁干擾能力。保護單片機也提高了穩定性。
2.2自動摘掛機電路
設計主要思路:
根據國家標準規定:不論任何電話機,摘機狀態的直流電阻應小于等于300歐姆,有“R”鍵的電子電話機的摘機狀態直流電阻應小于等于350歐姆。當用戶摘機時,電話機通過叉簧接上約250歐姆的負載,使整個電話線回路流過約30mA的電流。交換機檢測到該電流后便停止鈴流發送,并將線路電壓變為十幾伏的直流,完成接續。
模擬摘掛機電路如圖3.2-2所示。平時電話掛機時,兩條電話線處于開路狀態。當撥打電話號碼時,來自電話線的高壓振鈴信號經振鈴檢測電路,通過光電耦合器在其二次側形成方波脈沖信號送到單片機進行振鈴脈沖進行計數,當振鈴次數達到設定次數時,由單片機內部軟件程序控制,控制摘掛機口輸出一個低電平,然后電平送到三極管PNP1的基極,使三極管飽和。此時,+5V電源經三極管,再通過繼電器線圈接地,繼電器線圈得電,使繼電器的常開觸點閉合,150歐姆電阻接入電路當中,電話接通。當用戶輸入密碼錯誤,或者是操作結束后,系統由軟件控制PNP1截止,繼電器線圈失電,常開觸點斷開,電話線又處于開路狀態,從而實現模擬掛機。
2.3 DTMF解碼電路
DTMF雙音頻信號解碼電路是目前在按鍵電話(固定電話、移動電話)、程控交換機以及無線通信設備中廣泛應用的集成電路。它包括DTMF發送器與DTMF接收器,前者主要應用于按鍵電話作雙音頻信號發送器,發送一組雙音多頻信號,從而實現音頻撥號。電話鍵盤按鍵與雙音頻信號以及對應編碼的對應關系如下表所示:
表1 電話鍵盤與DTMF頻率以及對應編碼關系
本系統的雙音多頻DTMF信號解碼電路由MT8870主要承擔。MT8870的連線如下圖3.2-3所示,VCC接+5V,2、3腳接收來自電話機的雙音多頻脈沖信號。該雙音多頻信號經過MT8870解碼后在其數據輸出端(Q1~Q4)輸出相對應的8421碼。MT8870的數據輸出端Q4~Q1連到單片機,單片機識別4位代碼。電話按鍵與相應譯碼輸出。為了使單片機及時獲取有效數據,MT8870的StD端接到單片機的中斷腳。當MT8870獲取有效雙音多頻信號后,通過中斷來提示輸入口接收有效二進制代碼。而無效的雙音頻信號(電話線路雜音、人們的語音信號等)是不會引起MT8870的StD變化的。
圖3.2-3 MT8870雙音頻解碼電路
2.4 DTMF編碼電路
HT9200B的DTMF信號編碼電路如下圖3.2—4所示:
需要在X1和X2兩腳接上3.579545MHZ的晶體振蕩器,HT9200B是一種高品質的DTMF信號發生器,可產生高質量、高穩定、高精度的DTMF信號,低功耗、總諧波失真低,在單片機的控制下可從DTMF引腳發出16個雙音及8個單音。HT9200B提供了可選擇的串行及并行模式以供用戶與各種應用設備連接。本設計中選用了并行模式。
圖3.2—4 DTMF信號編碼電路
在并行模式下,HT9200B提供四位數據輸入D0~D3以產生相應的DTMF信號,/SP引腳接至高電平時選擇并行工作模式,之后輸入數據,最后將CE端下拉為低電平以傳送DTMF信號。從CE下降至有DTMF信號輸出的間隔時間約為6mS,其并行數據代碼與輸出音頻的對應關系如下表2所示:
表2 HT9200B并行數據與輸出音頻的對應關系
2.5 語音提示電路
由于我們團隊手上有一塊凌陽語音單片機模塊,以及考慮到團隊經費問題,我們團隊一致同意采用凌陽語音單片機SPCE061A作為語音提示模塊。由于SPCE061A具有良好的語音功能,所以可以把它作為EVK1100的語音模塊從機使用,通過AVR 32作為主機來控制SPCE061A單片機發出相應的語音提示,為了做到良好隔離的作用,我們采用光電耦合器作為中間媒介,主機通過控制光電耦合器的通斷來向從機傳送相應的數據。從機通過讀取光電耦合器形成的不同信號來輸出不同的語音提示。控制圖如下圖3.2-5所示:
圖3.2—5 語音提示電路控制模塊
2.6 家用電器控制電路
由于單片機輸出的電平為弱電電平,而家用電器需要的是220V交流強電,所以就只能通過弱電來控制強電。本家用電器控制電路如圖3.2—5所示:為了隔離弱點和強電并且可以控制電器的開關,我們采用MOC3021光電耦合器來隔離強弱電平,同時采用BTA06雙向可控硅來作為一個開關,此開關受MOC3021控制。當單片機引腳輸出低電平時,MOC3021的1腳和2腳之間的發光二極管發光,4腳和6腳就導通,有電壓加到BTA06的控制端,BTA06導通,家用電器的供電回路形成就可以開始工作。
當需要關閉電器時,單片機引腳輸出高電平,MOC3021的1腳和2腳之間的發光二極管不發光,4腳和6腳不導通,沒有電壓加到BTA06的控制端,BTA06截止,家用電器供電回路無法形成,不能工作。
圖3.2—6 家用電器控制電路
三.以太網web server的遠程家居控制和監控模塊
1.模塊概要
本模塊采用EVK1100開發板+傳感器模塊,通過移植精簡的tcp/ip協議,開發出一控制家用電器和監控家庭安全隱患的web 服務器控制端,將家中的實時信息和家用電器等裝置,通過無線方式連接到此控制器中,此控制器直接通過RJ45連接到以太網,實現嵌入式的internet。通過avr32開發web server,這樣就可以通過遠程pc機或手機通過瀏覽器遠程通訊,控制家電設備和監控家庭安全隱患。
以太網硬件結構組成框圖如下圖3.3—1所示:
圖 3.3—1 以太網硬件結構圖
2.單元功能模塊電路
2.1 PHY芯片DP83848I的自適應以太網通信接口設計
DP83848I是工業溫度單端口的10/100 Mb / s以太網物理層收發器,25MHz時鐘輸出,智能降功耗模式。可為系統提供穩定可靠的優質網絡解決方案,為工廠企業及其他惡劣的操作環境下,支持實時傳輸的以太網,符合IEEE 802.3u的技術標準
以太網接口設計如下:
圖 3.3—2 DP83848I以太網接口設計
2.3 TCP/IP協議棧
由于該嵌入式 Web 服務器硬件結構簡單,硬件資源,特別是系統程序存儲空間容量有限,所以我們在該系統中采用了精簡 TCP/IP 協議棧,系統在應用層實現了HTTP 超文本傳輸協議,在傳輸層采用 TCP 協議,在網絡層實現 IP 協議,同時還實現能報告數據傳送差錯等情況的 ICMP 協議。以太網數據的傳輸采用 MAC 地址來識別,而ARP協議提供 IP 地址和數據鏈路層使用的MAC地址之間的轉換功能,為了保證系統在以太網的通信,實現了ARP協議。
本設計中的精簡 TCP/IP 協議具有同 TCP/IP 協議一樣的四層結構,各層實現的功能如下:
①鏈路層。設計中通過以太網接入到 Internet,因此物理層和數據鏈路層要符合以太網的 IEEE802.3 標準。ENC28J60向上層軟件提供與硬件無關的接口,最終完成了數據在以太網中的接收和發送。因此,設計中物理層與數據鏈路層的設計是通過 ENC28J60硬件和驅動程序共同實現的。
②網絡層實現了 ARP協議、ICMP協議和 IP協議。ARP是地址解析協議,具體處理過程是當接收到 ARP數據包,處理器就查看 IP地址是請求還是響應。如果是響應,則將響應中的網卡地址存到 ARP 高速緩存表中;如果是請求,處理器將返回自己的網卡物理地址給對方。ICMP 是調試響應 PING 的請求,檢測網路是否通順。依照系統實際應用的要求,IP協議只需實現對數據報傳送和接收,無須實現路由選擇算法和差錯控制,同時也不需支持IP數據報的分片和重組。
③傳輸層實現 TCP 協議。TCP 協議是面向連接的、端對端的可靠通信協議。設計中采取了 TCP 連接的建立與關閉機制、超時重傳機制、數據包確認機制、流量控制機制來保證
它的可靠性。在超時重傳機制中,如果超時重傳定時器溢出后還沒有收到確認,則重傳該數據包,并復位重傳定時器。為簡單起見,程序里每次只發送一個 TCP 數據包,然后等待它的確認,只有收到確認后才會繼續發送下面的 TCP 數據包。在本設計,程序重傳的間隔時間是固定的,沒有采用 TCP 協議中的標準算法,當達到一定的次數后,發送方還沒有收到確認,則會放棄該包的發送并關閉 TCP 連接。TCP 的流量控制是為了協調通信雙方的收發速率不均衡而設計的。設計中考慮到系統在使用 TCP協議時,只設置了一個中等 IP包大小接收緩存,因此接收窗口恒定設為 1024。這樣遠端主機就會以較慢的傳輸速率與本端的 Web服務器進行通信,不會導致死機。
④應用層實現了 HTTP 協議。HTTP 是在 Web 服務器和瀏覽器之間通信的協議。為了簡化,設計中采用固定的 HTTP報文頭封裝 HTTP應答數據報文。在響應 HTTP 請求時,由于以太網數據包的數據部分不能超過 1500 字節,因此當發送數據超過 1500 字節,需要分組發送。
FreeRTOS是一款可移植的、開放源代碼的微型實時內核 ,它免費下載、免版稅,并可用于商業應用。為多種不同的處理器架構和開發工具提供移植包。 每個官方移植包都包含一個配置好的應用范例,用來展示內核特性,加快學習進程,并允許“開箱即用(out of the box)”式的開發。活躍的用戶社區能夠提供免費技術支持。而商業支持則隨全面的開發服務一起提供。
1. freeRTOS的特性
FreeRTOS是一種專為小型嵌入式系統設計的,可擴展的實時內核。亮點在于:
(1)免費RTOS內核- 占先式、協作式和混合式配置選項。
(2)SafeRTOS衍生產品,高信任度的代碼完整性。
(3)設計遵循 小型,簡單,易用。
(4)易于移植的代碼結構,絕大部分使用C語言編寫。
(5)同時支持 任務(tasks)和協程(co-routines)。
(6)強大的 運行跟蹤(execution trace) 功能。
(7)堆棧溢出檢測 選項。
(8)軟件不限制可創建任務數量。
(9)軟件不限制可用優先級數量。
(10)優先級分配無限制 – 多個任務可指定為同一優先級。
(11)隊列,二進制信號量,計數信號量,遞歸信號量和互斥量,用于任務之間、或任務和中斷之間的通信和同步。
(12)Mutexes with priority inheritance.
(13)自由的開發工具 (Cortex-M3, ARM7, MSP430, H8/S, AMD, AVR, x86 和8051 移植包)。
(14)免費的嵌入式軟件源碼。
(15)免版稅。
(16)Cross development from a standard Windows host.
(17)針對所選目標板,提供配置好的演示應用,可以“開箱即用”和加速學習。
(18)Compile time configuration allows a ROM footprint print 低至 4.3KB 在 ARM7 (Thumb mode)上使用GCC (third party figures, requires specific GCC command line options)。
2. 為什么選擇freeRTOS
選擇freeRTOS的理由:
(1)針對眾多不同的體系結構和開發工具,提供一種解決方案。
(2)眾所周知的可靠性,信心源自其姊妹項目SafeRTOS.
(3)仍在持續開發中。
(4)具有最低限度的ROM, RAM和處理器開銷。
(5)它非常簡單-內核僅由 3個C語言文件組成。大部分文件包含在.zip文件中,只需下載眾多示范應用即可。
(6)商業應用,真正免費 (詳情參閱許可協議)。
(7)提供移植包,平臺開發,或必要的應用開發服務。
(8)發展良好,擁有龐大且不斷增長的用戶群。
(9)每個移植包均包含一個設置好的范例。無須懂得如何設置項目 – 只需下載,編譯!
(10)擁有一個優秀、活躍的免費支持論壇。
(11)商業支持有保證。
(12)提供豐富的文檔。
(13)擴展性強,簡潔,易于使用。
3.2 硬件平臺選用及資源配置
1. 硬件平臺: EVK1100開發板
2. 資源配置如下:
EVK1100開發板 :AT32UC3A
1)傳感器(光照,溫度,電位器)
2)4*20藍色lcd
3)SPI, SD和MMC讀卡器
外圍器件:
1)傳感器模塊: 濕度傳感器DHT11;人體紅外傳感器;MQ-9一氧化碳傳感器 ;MQ-2煙霧傳感器 ;無線遙控模塊;
2)DTMF編解碼模塊:MT8870解碼芯片;HT9200B編碼芯片;5V繼電器;光電耦合器以及一系列電阻電容等等;
3.3系統軟件架構
系統軟件架構包括兩部分:
主單片機(AVR32)的軟件架構;
本地控制模塊從單片機(ATMEGLA 16L)的軟件架構。
3.4 系統軟件流程(除圖片外需有文字介紹)
1.傳感器模塊流程圖如下圖所示:
1.1溫濕度傳感器,煙霧傳感器,一氧化碳傳感器采集數據流程圖如下圖所示:
本設計中傳感器部分作為一個子系統,由ATMELA 16L來作為MCU,獨立子系統的好處就在于采集數據快,靈敏度高,能夠實時監控家庭隱患情況。如流程所示,溫濕度傳感器,煙霧傳感器,一氧化碳傳感器初始化后,就進行采集數據,MCU就讀取各個數據進行處理,并在液晶上顯示相關參數。然后,MCU判斷溫度(濕度,煙霧,一氧化碳)值是否異常,出現異常則報警,報警包括兩部分,稍后介紹,沒異常則回到采集數據,重復執行。
人體紅外感應模塊采集數據程序流程圖如下圖所示:
本設計中紅外線的記監測采用外部中斷的方式,此方式響應速度快。人體紅外感應模塊的信號輸出腳接到MCU的外部中斷腳。當紅外模塊檢測到有人時,其信號輸出腳由低電平變為有效高電平,觸發中斷。在中斷中調用報警子程序完成報警。沒有人就繼續循環檢測。報警子程序稍后介紹。
1.3 無線遙控模塊子程序流程圖
本地控制模塊采用無線遙控來控制,其流程圖如下圖所示:
當無線發射模塊有按鍵按下時,無線接收模塊輸出的信號觸發中斷,單片機讀取無線接收模塊輸出引腳的信號,通知讀取到的信號來判斷擁護按下什么按鍵,進而執行按鍵對應的控制命令。
1.4 報警子程序流程圖
本設計報警包括家庭報警以及發送信號讓主機自動電話報警,程序流程圖如下圖所示:
當出現警情時,ATMELA 16L從機首先向主機(EVK1100)發送信號,通知主機要進行自動電話報警,告知用戶。當收到主機發回來的確認信號時,從機啟動蜂鳴報警,如果危險仍未解除,就持續蜂鳴報警。直到危險解除,程序結束。
2.DTMF程序流程圖
2.1遠程控制程序流程圖如下圖所示:
當有電話打入時,振鈴檢測電路檢測到有振鈴信號,通過單片機來對振鈴信號進行計數。系統判斷振鈴的次數,達到預設的100次仍沒有摘機,單片機就控制模擬摘掛機電路進行自動摘機。同時單片機控制語音提示模塊播放語音提示用戶輸入密碼,密碼正確就可以進行相應的電器控制,密碼不正確就直接掛機。當操作完成后,單片機控制摘掛機電路實行電話掛機,通話結束。若在這100次振鈴過程中,主人接通了電話,則控制器不起作用。
DTMF遠程控制程序運行流程圖
2.2 遠程報警程序流程圖如下圖所示:
當有警情發生時,傳感器給單片機外部中斷信號,系統進入報警中斷子程序,首先電話模擬摘機,系統與電話線接通。調用撥號子程序發送電話號碼,同時監聽電話線上信號,判斷對方是否摘機。如果第一個電話沒有撥通就發送第二個電話號碼,循環撥號,直到撥通號碼。然后語音播放出現何種險情,程序結束。
3.以太網web server的遠程家居控制和監控系統
3.1 以太網web server的遠程家居控制和監控系統程序流程圖
首先,客戶可以通過手機或PC機與服務器建立連接,再通過偵聽端口80,判斷是否有客戶請求到達,若有則將調用應用程序http進行相應處理,否則,繼續偵聽。Http是用于處理HTTP請求的應用程序,在應用軟件上實現簡單WEB服務器功能,其主要由三個模塊構成:一是用戶登陸模塊;二是家電監控模塊;三是家庭安全隱患實時監控模塊。用戶登陸模塊需要解決用戶的合法性檢查,即接收用戶輸入的用戶名和密碼,進行校驗,合法則進入web server總控制頁面,非法則發出警告頁面。家電監控模塊針對各家電的硬件情況,收集信息家電的狀態碼,并通過網頁形式顯示;家庭安全隱患監控模塊收集各個傳感器模塊的實時數據,而且若超過警戒值,會有相應的警戒網頁形式提醒
3.2 TCP/IP協議棧管理程序
由于TCP/IP協議分布在鏈路層、網絡層、傳輸層和應用層上是分層實現的,每一層只負責處理通信過程中的一部分問題,其它不能實現其功能,我們進行 TCP/IP 協議棧程序設計時,根據協議分層的思路采用模塊化的程序設計方法,為了在接收數據包后能根據數據包的類型 (ICMP TCP UDP 等)作出相應的處理,我們設計了協議棧管理程序,當接收到正確的以太網幀后,根據以太網幀數據類型將接收的數據送至相應的模塊程序進一步處理。
3.4 web服務和CGI處理框圖
web 服務
監聽端口80來自遠程測控端的請求,建立TCP連接,查詢與TCP連接相關聯的本地套接字,根據遠程測控端的 HTTP請求作相應的處理(讀取 ram中的網頁數據、調用 CGI 處理函數),并將生成的網頁數據通過本地套接字發送至遠程測控端,通訊完后關閉套接字,斷開本次TCP連接。
CGI處理
本系統采用了 CGI(公用網關接口) 來實現動態Web技術,Web服務器通過調用 CGI 程序實現和瀏覽器的交互,也就是CGI 程序接受瀏覽器發送給Web服務器的信息,進行相應處理,并將響應結果回送給Web 服務器及瀏覽器。
3.5 系統預計實現結果
當用戶撥打該電話號碼時,語音模塊提示用戶輸入密碼(密碼是存儲在EEPROM中)。只有當用戶所輸入的密碼和存儲的密碼相同時,用戶才能進行接下來的電器(風扇、電燈)控制,否則固定電話直接掛掉用戶的電話。對于電器的控制,系統是通過語音來提示用戶操作,例如:“打開風扇請按1,關閉風扇請按2”,用戶就可以按照語音提示來按下按鍵1來打開風扇,按下按鍵2來關閉風扇。操作完后語音提示是否用戶操作結束,用戶根據語音來繼續進行相應的操作。
當用戶通過手機或PC機瀏覽器,進入登錄界面,網頁首先顯示提醒用戶輸入密碼,當用戶輸入密碼正確時,進入控制和監控界面,接下來用戶就可以控制家用電器和查看傳感器的有關數據。
當有警情發生時,傳感器給單片機外部中斷信號,系統進入報警中斷子程序,首先電話模擬摘機,系統與電話線接通。調用撥號子程序發送電話號碼,同時監聽電話線上信號,判斷對方是否摘機。如果第一個電話沒有撥通就發送第二個電話號碼,循環撥號,直到撥通號碼或者定時溢出,該子程序還調用語音子程序現場報警,對進入的人產生威嚇作用。從而實現現場報警和遠程報警兩種功能。
評論