一種基于微控制器的智能家居電能控制系統(tǒng)
3.1 遙控器節(jié)點(diǎn)程序設(shè)計(jì)
遙控器是系統(tǒng)的控制核心,也是用戶與插座之間聯(lián)系的紐帶,因此程序中的并發(fā)模塊多,任務(wù)繁重。考慮到遙控器中采用的ARM處理器可提供對操作系統(tǒng)的全面支持,利用μC/OS-Ⅱ操作系統(tǒng)對該節(jié)點(diǎn)中的多個(gè)任務(wù)進(jìn)行調(diào)度 ,可有效保證系統(tǒng)的實(shí)時(shí)性和穩(wěn)定性,也有利于功能的擴(kuò)展。在進(jìn)行操作系統(tǒng)移植前,需要對任務(wù)進(jìn)行劃分,每個(gè)功能對應(yīng)一個(gè)系統(tǒng)任務(wù),同時(shí)應(yīng)避免劃分過細(xì)而導(dǎo)致頻繁調(diào)度的問題。遙控器節(jié)點(diǎn)的程序流程如圖9所示,其中包含了7個(gè)任務(wù),任務(wù)之間通過信號量、消息隊(duì)列、消息郵箱等方式實(shí)現(xiàn)同步與通信。從用戶的角度來看,這些任務(wù)是并發(fā)執(zhí)行的。
圖9 遙控器節(jié)點(diǎn)程序流程圖
按鍵掃描任務(wù)的優(yōu)先級在所有用戶任務(wù)中最高。通過中斷方式讀取用戶輸人的按鍵值,數(shù)據(jù)存人消息郵箱KeyMbox中,若數(shù)字鍵1-6被按下,則通知射頻發(fā)送任務(wù)處理;若時(shí)鐘設(shè)置按鍵被按下,則進(jìn)行時(shí)鐘調(diào)整或定時(shí)器設(shè)置。時(shí)鐘定時(shí)任務(wù)用于獲得DS1302的時(shí)鐘輸出值,在定時(shí)時(shí)間到達(dá)后,發(fā)送消息通知射頻發(fā)送任務(wù)處理,完成后自動掛起。射頻發(fā)送任務(wù)是根據(jù)其他任務(wù)中獲得的控制碼,以射頻方式對相應(yīng)編號的插座發(fā)送通斷電控制信號,隨后等待插座端返回動作信息。若超時(shí)無反饋則重發(fā)1次,重發(fā)3次后任務(wù)掛起。危險(xiǎn)報(bào)警任務(wù)需經(jīng)過同頻載波檢測,地址匹配確認(rèn)后,才開始接收射頻信號,進(jìn)而將信息送人郵箱,解碼確認(rèn)危險(xiǎn)報(bào)警標(biāo)識后,通過GSM模塊,以短消息的方式通知用戶。短信接收任務(wù)負(fù)責(zé)接收用戶短信,并將其存放在消息郵箱GSMMbox中。通過AT指令“AT+CMGR=I”每次只讀取序號為1的短信息,成功提取控制碼(包含插座ID號和開關(guān)動作碼)后,將該條信息刪除,并向射頻發(fā)送任務(wù)傳遞消息。環(huán)境監(jiān)測任務(wù)負(fù)責(zé)對室內(nèi)溫濕度信息循環(huán)采樣。雖然溫度傳感器的線性度較好,但外界環(huán)境對濕度傳感器的影響較大,需對其輸出電壓值作分段線性化處理。數(shù)據(jù)存放于消息隊(duì)列中,最終結(jié)果為3次測量值的算術(shù)平均值。液晶顯示任務(wù)優(yōu)先級最低,待以上任務(wù)結(jié)束后,負(fù)責(zé)顯示各插座最終的狀態(tài)、時(shí)鐘信息以及室內(nèi)溫濕度測量結(jié)果等。
3.2 插座節(jié)點(diǎn)程序設(shè)計(jì)
插座節(jié)點(diǎn)程序流程如圖10所示,其中最主要的工作是實(shí)現(xiàn)射頻信號的接收與發(fā)送。當(dāng)沒有煙霧報(bào)警時(shí),nRF905進(jìn)入接收模式,同時(shí)偵聽信道;若監(jiān)測到同頻載波且數(shù)據(jù)包地址有效,則啟動接收;當(dāng)CRC校驗(yàn)結(jié)果正確,硬件會自行去除數(shù)據(jù)包的前導(dǎo)碼、校驗(yàn)碼及地址碼 ,并通知MCU數(shù)據(jù)準(zhǔn)備就緒,進(jìn)而MCU通過SPI串行總線讀取接收到的信息。
圖1O 插座節(jié)點(diǎn)程序流程圖
射頻信號發(fā)送本質(zhì)上是接收的逆過程。當(dāng)nRF905進(jìn)入待機(jī)模式后,MCU將地址與數(shù)據(jù)信息傳送至射頻芯片的發(fā)送寄存器,同時(shí)啟動芯片進(jìn)入射頻發(fā)送模式,隨后片內(nèi)硬件自動完成對數(shù)據(jù)的打包、編碼、調(diào)制及發(fā)送任務(wù)。一幀數(shù)據(jù)發(fā)送結(jié)束后,射頻芯片轉(zhuǎn)入待機(jī)模式,等待下一次被激活。射頻電路的每一次接收或發(fā)送過程都伴隨著繼電器的接通或斷開動作。默認(rèn)條件下,煙霧傳感器處于使能狀態(tài),為了防止用戶在室內(nèi)抽煙而導(dǎo)致系統(tǒng)誤判,煙霧檢測功能也可以設(shè)置為失效。
4 測試與分析
在圖11所示住宅中進(jìn)行現(xiàn)場測試,6個(gè)插座和1個(gè)遙控器被放置于A到G這7個(gè)區(qū)域內(nèi)。為了評估系統(tǒng)的抗干擾能力,在各區(qū)域的交界處均放置兩個(gè)干擾源,頻率為432 MHz和434 MHz。改變遙控器所在位置,對6個(gè)插座各遙控200次,并記錄插座端的回饋信號。若返回錯誤信息或不反饋,則作為一次丟包記錄。
圖11 測試現(xiàn)場網(wǎng)絡(luò)節(jié)點(diǎn)分布圖
結(jié)果發(fā)現(xiàn),遙控器在C、E兩個(gè)區(qū)域平均誤碼率略高于其他區(qū)域;當(dāng)遙控器在G區(qū)域時(shí),平均誤碼率最低,效果最好。
5 結(jié)語
本系統(tǒng)實(shí)現(xiàn)了對家用插座的智能無線控制,在不改動原有家電內(nèi)部結(jié)構(gòu)的基礎(chǔ)上,用戶可以通過射頻、短信、定時(shí)等方式,控制插座的通斷電狀態(tài)。當(dāng)室內(nèi)發(fā)生火災(zāi)或可燃?xì)怏w泄漏等情況時(shí),插座能自動斷電。整個(gè)系統(tǒng)對控制對象沒有特殊要求,適應(yīng)性較強(qiáng),不失為一種廉價(jià)的智能家居解決方案。
評論