<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 一種基于微控制器的智能家居電能控制系統

一種基于微控制器的智能家居電能控制系統

作者: 時(shí)間:2016-12-02 來(lái)源:網(wǎng)絡(luò ) 收藏

3.1 遙控器節點(diǎn)程序設計

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

圖9 遙控器節點(diǎn)程序流程圖

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

3.2 插座節點(diǎn)程序設計

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

圖1O 插座節點(diǎn)程序流程圖

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

4 測試與分析

在圖11所示住宅中進(jìn)行現場(chǎng)測試,6個(gè)插座和1個(gè)遙控器被放置于A(yíng)到G這7個(gè)區域內。為了評估系統的抗干擾能力,在各區域的交界處均放置兩個(gè)干擾源,頻率為432 MHz和434 MHz。改變遙控器所在位置,對6個(gè)插座各遙控200次,并記錄插座端的回饋信號。若返回錯誤信息或不反饋,則作為一次丟包記錄。

圖11 測試現場(chǎng)網(wǎng)絡(luò )節點(diǎn)分布圖

結果發(fā)現,遙控器在C、E兩個(gè)區域平均誤碼率略高于其他區域;當遙控器在G區域時(shí),平均誤碼率最低,效果最好。

5 結語(yǔ)

本系統實(shí)現了對家用插座的智能無(wú)線(xiàn)控制,在不改動(dòng)原有家電內部結構的基礎上,用戶(hù)可以通過(guò)射頻、短信、定時(shí)等方式,控制插座的通斷電狀態(tài)。當室內發(fā)生火災或可燃氣體泄漏等情況時(shí),插座能自動(dòng)斷電。整個(gè)系統對控制對象沒(méi)有特殊要求,適應性較強,不失為一種廉價(jià)的智能家居解決方案。


上一頁(yè) 1 2 3 下一頁(yè)

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>