<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 設(shè)計應(yīng)用 > 一種基于射頻網(wǎng)絡(luò)的智能家居電能控制系統(tǒng)

          一種基于射頻網(wǎng)絡(luò)的智能家居電能控制系統(tǒng)

          作者: 時間:2017-06-03 來源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/201706/347608.htm

          近年來,物聯(lián)網(wǎng)技術(shù)發(fā)展迅速,全社會的信息化水平不斷提升。智能家居是物聯(lián)網(wǎng)的主要應(yīng)用之一,已成為當前的熱門研究領(lǐng) 域,也是未來家居生活的發(fā)展方向 。它能夠為用戶提供舒適、便利的生活環(huán)境。但由于市場上的相關(guān)產(chǎn)品大多價格昂貴,普及率依然較低。以往的探索與開發(fā)往往停留在對電器設(shè)備本身的改造上,這 種嘗試使智能家居產(chǎn)品一度成為奢侈品。本文介紹了一種電能控制系統(tǒng),作為智能家居的重要組成部分,它在不改動原有電器設(shè)備的基礎(chǔ)上實現(xiàn)了遠程自動控制功能。

          1 系統(tǒng)結(jié)構(gòu)

          該電能控制系統(tǒng)由遙控器和插座節(jié)點組成,其工作原理如圖1所示。當用戶 在家時,通過遙控器以射頻方式對插座進行控制。插座節(jié)點收到信號后,由微控制器進行解碼,并根據(jù)得出的結(jié)果,對特定編號的插座做通斷電處理,從而使與其連 接的用電器被啟動或者關(guān)閉。當用戶離住所較遠時,可通過向遙控器發(fā)送手機短信 ,微控制器讀取信息后,通過射頻芯片,將信息傳遞到室內(nèi)的無線網(wǎng)絡(luò)中,進而使相應(yīng)地址上的插座受到控制。由此可見,遙控器在整個智能家居系統(tǒng)中屬于網(wǎng)關(guān)節(jié) 點 ,一方面,它與插座節(jié)點組成了室內(nèi)射頻局域網(wǎng),另一方面,它又與相連,延展了遙控距離。遙控器的內(nèi)部結(jié)構(gòu)如圖2所示,包括、時鐘 模塊、nRF905射頻收發(fā)模塊、GSM模塊等功能電路,這些模塊均與控制核心相連。該微控制器采用ARM Coaex-M3架構(gòu),由于依托高密度的Thumb-2指令集,內(nèi)存開銷大大降低,操作系統(tǒng)的移植也更加方便。


          圖1 遙控插座工作原理


          圖2 遙控器結(jié)構(gòu)框圖

          插 座節(jié)點主要實現(xiàn)與遙控器的射頻通信以及繼電器的通斷控制,其結(jié)構(gòu)框圖如圖3所示。插座中的煙霧傳感器用于預(yù)防火災(zāi)危險。一旦檢測到煙霧或可燃性氣體,插座 上對應(yīng)的繼電器將斷開,并通過射頻收發(fā)模塊向遙控器匯報,遙控器收到信息后,再通過GSM模塊的短信功能及時提醒用戶采取相應(yīng)的措施,防止危險的發(fā)生或財 產(chǎn)損失的進一步擴大。由于插座端工作量較少,從成本和性能兩方面考慮,本系統(tǒng)采用STC12C5620AD微控制器作為插座端的主控芯片。


          圖3 插座節(jié)點結(jié)構(gòu)框圖

          2 硬件電路設(shè)計

          2.1

          本系統(tǒng)采用溫度傳感器LM35和濕度測量模塊CHM-02進行環(huán)境監(jiān)測。LM35的電壓輸出與攝氏溫度呈線性關(guān)系,無需校準就可在常溫環(huán)境下達±l/4℃ 的測量精度。CHM-02模塊可在0~70 ℃的溫度下對20~95%RH范圍內(nèi)的濕度進行檢測,室溫下的測量精度為5%RH。溫濕度傳感器與MCU的接口示意圖如圖4所示。由于兩種傳感器輸出的模 擬信號在MCU片內(nèi)A/D采樣電路的檢測范圍內(nèi),所以直接將兩者的輸出端與MCU的兩個ADC引腳連接。模擬式傳感器的使用不但充分利用了控制器的片上資 源,而且提高了子程序的利用率。


          圖4 溫濕度傳感器與MCU的接口示意圖

          2.2 煙霧檢測電路

          煙 霧傳感器MQ一2基于SnO:的電化學(xué)特性,對可燃性氣體及煙塵有良好的檢測靈敏度。煙霧檢測電路原理圖如圖5所示。MQ.2在正常工作前需要對內(nèi)部加熱 絲的H.h兩極通電預(yù)熱 ,為了防止加熱電流過大而導(dǎo)致內(nèi)部信號線溫度過高,此處將加熱絲與100 Q電阻串聯(lián)。當環(huán)境中的煙霧或可燃氣體超過警戒閾值時,傳感器A.B兩極間的電導(dǎo)率迅速增加,與其串聯(lián)的負載電阻m所獲得的電壓也相應(yīng)增加,該電壓信號經(jīng) 低功耗運放TLC27M2放大后,得到與煙霧或可燃氣濃度相對應(yīng)的模擬量輸出,最終接人控制器的ADC模塊進行量化。


          圖5 煙霧檢測電路原理圖

          2.3 時鐘模塊

          時 鐘模塊除了顯示系統(tǒng)時間以外,還可對單個插座進行通斷電定時。時鐘電路原理圖如圖6所示,DS1302通過串行方式與MCU通信,為保證信號傳輸?shù)姆€(wěn)定 性,接口已做上拉處理。芯片采用雙電源供電,主電源正常工作時可以對備用電源進行涓細電流充電;在掉電情況下啟動備用電源,避免因突然停電而造成時鐘停滯 ??紤]到使用的便捷性,遙控器由鋰電池供電。DS1302的主電源引腳VCC2連接到集成穩(wěn)壓器的3.3 V輸出,而備用電源引腳VCC1與4700 μF的電容串接,兩個電源引腳之間通過二極管隔離。由于芯片耗電量很低,在更換電池的過程中,電容的放電作用可以暫時維持芯片運行。


          圖6 時鐘電路原理圖

          2.4 射頻收發(fā)模塊nRF905

          射 頻收發(fā)模塊是連接插座與遙控器的橋梁。nRF905集成收發(fā)器能在3個ISM頻段配置使用,且功耗很低。本系統(tǒng)中的所有節(jié)點均設(shè)置在433 MHz頻段工作嘲,射頻收發(fā)電路原理圖如圖7所示,其中的SMA接口用來連接特性阻抗為5O Ω的單端天線,有利于信號的全向輻射。單端天線又被稱為非平衡天線,其主要參考點為信號地,而nRF905的天線接口(引腳ANT1和ANT2)為差分射 頻輸出端口。為了維持信號平衡,保證兩個端口的阻抗匹配,此處在兩者之間增加了balun(平衡月乍平衡)電路,對芯片輸出端的特性進行調(diào)節(jié)。


          圖7 射頻收發(fā)電路

          2.5 GSM通信模塊

          將短距與GSM技術(shù)相結(jié)合,既發(fā)揮了短距配置靈活的特點,又發(fā)揮了GSM技術(shù)在通信距離上的優(yōu)勢。GSM通信電路的核心是SIM300模塊,其外圍電路如圖8所示。


          圖8 GSM通信電路原理圖

          原 理圖SIM300通過串口與MCU通信,模塊與SIM卡之間串聯(lián)的22 Ω電阻用于阻抗匹配。為保證信號的傳輸質(zhì)量,SIM卡數(shù)據(jù)線作了上拉處理,與引腳并聯(lián)的SMF05C型靜電抑制器用于靜電防護。電源與地之間并聯(lián)的100 μF鉭電容和1 μF陶瓷電容用于去除低頻毛刺,并在一定程度上兼顧了高頻特性。按下按鍵S1,使PWRKEY引腳的電位拉低約2 s左右,可以完成模塊的上電與掉電,當前狀態(tài)由串聯(lián)在VDD_EXT引腳上的發(fā)光二極管指示。為了便于程序控制,在原有按鍵的基礎(chǔ)上增加了一種三極管開關(guān) 電路,當模塊工作異常時,可以通過軟件改寫PWR端口的狀態(tài)來實現(xiàn)SIM300的自動復(fù)位。

          3 軟件設(shè)計

          遙控器和插座對于整個射頻無線網(wǎng)絡(luò)而言都是其中的節(jié)點,但硬件結(jié)構(gòu)上的差異決定了兩者功能與地位上的不同,也使得兩者在軟件設(shè)計的方式上有所差別。

          3.1 遙控器節(jié)點程序設(shè)計

          遙 控器是系統(tǒng)的控制核心,也是用戶與插座之間聯(lián)系的紐帶,因此程序中的并發(fā)模塊多,任務(wù)繁重??紤]到遙控器中采用的ARM處理器可提供對操作系統(tǒng)的全面支 持,利用μC/OS-Ⅱ操作系統(tǒng)對該節(jié)點中的多個任務(wù)進行調(diào)度 ,可有效保證系統(tǒng)的實時性和穩(wěn)定性,也有利于功能的擴展。在進行操作系統(tǒng)移植前,需要對任務(wù)進行劃分,每個功能對應(yīng)一個系統(tǒng)任務(wù),同時應(yīng)避免劃分過細而導(dǎo) 致頻繁調(diào)度的問題。遙控器節(jié)點的程序流程如圖9所示,其中包含了7個任務(wù),任務(wù)之間通過信號量、消息隊列、消息郵箱等方式實現(xiàn)同步與通信。從用戶的角度來 看,這些任務(wù)是并發(fā)執(zhí)行的。


          圖9 遙控器節(jié)點程序流程圖

          按 鍵掃描任務(wù)的優(yōu)先級在所有用戶任務(wù)中最高。通過中斷方式讀取用戶輸人的按鍵值,數(shù)據(jù)存人消息郵箱KeyMbox中,若數(shù)字鍵1-6被按下,則通知射頻發(fā)送 任務(wù)處理;若時鐘設(shè)置按鍵被按下,則進行時鐘調(diào)整或定時器設(shè)置。時鐘定時任務(wù)用于獲得DS1302的時鐘輸出值,在定時時間到達后,發(fā)送消息通知射頻發(fā)送 任務(wù)處理,完成后自動掛起。射頻發(fā)送任務(wù)是根據(jù)其他任務(wù)中獲得的控制碼,以射頻方式對相應(yīng)編號的插座發(fā)送通斷電控制信號,隨后等待插座端返回動作信息。若 超時無反饋則重發(fā)1次,重發(fā)3次后任務(wù)掛起。危險報警任務(wù)需經(jīng)過同頻載波檢測,地址匹配確認后,才開始接收射頻信號,進而將信息送人郵箱,解碼確認危險報 警標識后,通過GSM模塊,以短消息的方式通知用戶。短信接收任務(wù)負責接收用戶短信,并將其存放在消息郵箱GSMMbox中。通過AT指令 “AT+CMGR=I”每次只讀取序號為1的短信息,成功提取控制碼(包含插座ID號和開關(guān)動作碼)后,將該條信息刪除,并向射頻發(fā)送任務(wù)傳遞消息。環(huán)境 監(jiān)測任務(wù)負責對室內(nèi)溫濕度信息循環(huán)采樣。雖然溫度傳感器的線性度較好,但外界環(huán)境對濕度傳感器的影響較大,需對其輸出電壓值作分段線性化處理。數(shù)據(jù)存放于 消息隊列中,最終結(jié)果為3次測量值的算術(shù)平均值。液晶顯示任務(wù)優(yōu)先級最低,待以上任務(wù)結(jié)束后,負責顯示各插座最終的狀態(tài)、時鐘信息以及室內(nèi)溫濕度測量結(jié)果等。

          3.2 插座節(jié)點程序設(shè)計

          插座節(jié)點程序流程如圖10所示,其 中最主要的工作是實現(xiàn)射頻信號的接收與發(fā)送。當沒有煙霧報警時,nRF905進入接收模式,同時偵聽信道;若監(jiān)測到同頻載波且數(shù)據(jù)包地址有效,則啟動接 收;當CRC校驗結(jié)果正確,硬件會自行去除數(shù)據(jù)包的前導(dǎo)碼、校驗碼及地址碼 ,并通知MCU數(shù)據(jù)準備就緒,進而MCU通過SPI串行總線讀取接收到的信息。


          圖1O 插座節(jié)點程序流程圖

          射 頻信號發(fā)送本質(zhì)上是接收的逆過程。當nRF905進入待機模式后,MCU將地址與數(shù)據(jù)信息傳送至射頻芯片的發(fā)送寄存器,同時啟動芯片進入射頻發(fā)送模式,隨 后片內(nèi)硬件自動完成對數(shù)據(jù)的打包、編碼、調(diào)制及發(fā)送任務(wù)。一幀數(shù)據(jù)發(fā)送結(jié)束后,射頻芯片轉(zhuǎn)入待機模式,等待下一次被激活。射頻電路的每一次接收或發(fā)送過程 都伴隨著繼電器的接通或斷開動作。默認條件下,煙霧傳感器處于使能狀態(tài),為了防止用戶在室內(nèi)抽煙而導(dǎo)致系統(tǒng)誤判,煙霧檢測功能也可以設(shè)置為失效。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();