新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一種基于STM32的智能家居系統(tǒng)設(shè)計(jì)

一種基于STM32的智能家居系統(tǒng)設(shè)計(jì)

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

  摘要 系統(tǒng)以STM32F103為控制核心,用戶通過(guò)手機(jī)或其它手持設(shè)備經(jīng)發(fā)送數(shù)據(jù)到STM32上,STM32接收到指令處理后經(jīng)發(fā)送到終端設(shè)備上。實(shí)現(xiàn)家居的智能控制,整個(gè)系統(tǒng)具有較強(qiáng)的抗干擾能力及可靠性,可適用于應(yīng)用領(lǐng)域。

本文引用地址:http://butianyuan.cn/article/249136.htm

  關(guān)鍵詞 ;;

  是以住宅為平臺(tái),利用綜合布線、網(wǎng)絡(luò)通信、智能家居系統(tǒng)設(shè)計(jì)方案、安全防范、自動(dòng)控制、音視頻技術(shù)將家居生活有關(guān)的設(shè)施集成,構(gòu)建高效的住宅設(shè)施與家庭日程事務(wù)的管理系統(tǒng),提升家居安全性、便利性、舒適性、藝術(shù)性,并實(shí)現(xiàn)環(huán)保節(jié)能的居住環(huán)境。

  1 智能家居系統(tǒng)硬件平臺(tái)

  STM32的智能家居的系統(tǒng)拓?fù)浣Y(jié)構(gòu)如圖1所示,STM32系列基于專為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計(jì)的ARM Cortex-M3內(nèi)核。該系統(tǒng)采用STM32F103“增強(qiáng)型”系列的STM32芯片,設(shè)計(jì)的總體思路通過(guò)手機(jī)或其它手持設(shè)備的藍(lán)牙通信模塊與STM32上的進(jìn)行通信,接收到的數(shù)據(jù)進(jìn)行處理,再通過(guò)發(fā)送到受控終端上。受控終端接收到紅外指令后執(zhí)行指定的操作,如電視、風(fēng)扇、空調(diào)等電器設(shè)備的開關(guān)等操作。紅外模塊可以學(xué)習(xí)到各種遙控器的指令,通過(guò)學(xué)習(xí)遙控器的指令儲(chǔ)存到QT軟件所編寫的界面中,解決了遙控器過(guò)多的煩惱,從而實(shí)現(xiàn)家居的智能化控制。通過(guò)報(bào)警模塊可以實(shí)現(xiàn)火災(zāi)時(shí)的報(bào)警,保障了家居安全。

  

 

  1.1 藍(lán)牙模塊

  藍(lán)牙HC05是主從一體的藍(lán)牙串口模塊,即當(dāng)藍(lán)牙設(shè)備與藍(lán)牙設(shè)備配對(duì)連接成功后,可以忽視藍(lán)牙內(nèi)部的通信協(xié)議,直接將藍(lán)牙當(dāng)作串口用。當(dāng)建立連接,兩設(shè)備共同使用一通道也就是同一個(gè)串口,一個(gè)設(shè)備發(fā)送數(shù)據(jù)到通道中,另外一個(gè)設(shè)備便可以接收通道中的數(shù)據(jù)。當(dāng)然,對(duì)于建立這種通道連接有一定條件,那就是對(duì)藍(lán)牙設(shè)置好能進(jìn)行配對(duì)連接的AT模式。

  HC05藍(lán)牙模塊與STM32的串口3相連接。HC05的RDX與STM32芯片的第55管腳USART3-TX連接,TXD與第56管腳USART3-RX連接,GND與Vcc連接到相應(yīng)的GND與Vcc上,KEY與第65管腳PC8連接。模塊上電后,通過(guò)KEY接Vcc,使模塊進(jìn)入AT指令,模塊的波特率設(shè)置為38400。

  1.2 紅外模塊

  BC7210芯片由海外知名廠商制造,比高公司擁有版權(quán)的紅外遙控解碼專用芯片。BC7210可以完成目前國(guó)內(nèi)市場(chǎng)上常用的飛利浦RC5和NEC兩種紅外編碼信號(hào)的解碼。BC7210的輸出可以設(shè)置為并行輸出或者串行輸出,串行輸出方式兼容SPI和UART兩種接口,可以輕松完成與各種MCU的接口相連接,完成與MCU的通信。BC7210與STM32連接的硬件設(shè)計(jì)方法如圖2所示。

  

 

  BC7210的串行輸出兼容于“波特率9 600 bit·s-1,1個(gè)起始位,1個(gè)停止位,無(wú)奇偶校驗(yàn)”的USART,只需D7與STM32的87管腳USART2-RX連接。MOD與S/P分別與PB3和PB5相連接。這種接口方式只需占用1根口線,微處理器的數(shù)據(jù)接收可以由硬件完成,占用CPU資源少。

  1.3 報(bào)警模塊

  無(wú)線收發(fā)模組,采用射頻技術(shù),也叫RF433射頻小模塊,采用全數(shù)字科技生產(chǎn)的單IC射頻前段與ATMEL的AVR單片機(jī)組成,可高速傳輸數(shù)據(jù)信號(hào)的微型收發(fā)信機(jī),無(wú)線傳輸?shù)臄?shù)據(jù)進(jìn)行打包、檢錯(cuò)、糾錯(cuò)處理。元器件都采用工業(yè)級(jí)標(biāo)準(zhǔn),工作穩(wěn)定可靠,體積小便于安裝。適用于安全報(bào)警、無(wú)線自動(dòng)抄表、家居及工業(yè)自動(dòng)化、遠(yuǎn)端遙控、無(wú)線數(shù)傳等領(lǐng)域,433報(bào)警模塊與STM32的串口1相連接。

  SM30型433MHz微功率無(wú)線串口通信模塊,是上海上志電子信息技術(shù)有限公司生產(chǎn),可以動(dòng)態(tài)管理無(wú)線通信方式:將STM32和無(wú)線模塊JP1引腳的1(GND),2(Vcc),3(RXD/TTL),4(TXD/TTL),9(RESET)共5個(gè)引腳連接好,1腳接GND,2腳接VCC,3和4兩腳分別接STM32的串口上,通過(guò)串口發(fā)送給模塊設(shè)置命令,設(shè)置完成以后,置SETEN為高電平或與地?cái)嚅_,上電復(fù)位或RST(如果8腳接在用戶STM32的I/O口上)低電平(10 ms)復(fù)位,及可以用新的參數(shù)工作。

  2 軟件系統(tǒng)設(shè)計(jì)

  整個(gè)智能家居系統(tǒng)以STM32微處理器為控制核心,使用C語(yǔ)言編寫。智能家居系統(tǒng)的軟件可分為手機(jī)、STM32系統(tǒng)2個(gè)部分,主要由藍(lán)牙驅(qū)動(dòng)程序、紅外驅(qū)動(dòng)程序和433報(bào)警程序組成。QT的軟件控制流程如圖3所示。當(dāng)一個(gè)特定事件發(fā)生時(shí),一個(gè)信號(hào)被發(fā)射。QT的窗口部件有多種預(yù)定義的信號(hào),但可以通過(guò)繼承來(lái)加入自己的信號(hào)。槽就是一個(gè)可以被調(diào)用處理特定信號(hào)的函數(shù)。信號(hào)與槽是寬松地聯(lián)系在一起:一個(gè)發(fā)射信號(hào)的類無(wú)需已知哪個(gè)槽要接收這個(gè)信號(hào)。QT信號(hào)和槽可以保證如果將一個(gè)信號(hào)與一個(gè)槽連接起來(lái),槽會(huì)在正確的時(shí)間使用信號(hào)的參數(shù)而被調(diào)用。信號(hào)和槽可以使用任何數(shù)量、任何類型的參數(shù)。

  

 

  2.1 手機(jī)軟件設(shè)計(jì)

  通過(guò)調(diào)用Qobject對(duì)象的connect函數(shù)來(lái)將某個(gè)對(duì)象的信號(hào)與另一個(gè)對(duì)象的沐曹函數(shù)相關(guān)聯(lián),這樣當(dāng)發(fā)射者發(fā)射信號(hào)時(shí),接收者的槽函數(shù)將被調(diào)用,該函數(shù)的定義為:

  boolQObjeet::eonnect(eonstQOb—ieet*sender,eonstchar*signal,

  eonstQObjeet*reeeiver,eonstehar*mexnber)

  conneet函數(shù)將sender對(duì)象中的信號(hào)signal與reeeiver中的member槽函數(shù)相關(guān)聯(lián),這里的sender和receiver都是指向QObject類型對(duì)象的指針。QT的宏signal()用于指定信號(hào)signal;宏slot()用于指定槽函數(shù)。

  當(dāng)對(duì)象內(nèi)部發(fā)生某些事件時(shí),它有可能發(fā)出信號(hào)。如果這個(gè)信號(hào)連接到槽,那么相應(yīng)的槽函數(shù)就被執(zhí)行??梢詫⒍鄠€(gè)槽連接到同一個(gè)信號(hào),那么這些槽就將一一被執(zhí)行,其執(zhí)行順序是任意的。

  2.2 STM32系統(tǒng)軟件設(shè)計(jì)

  STM32系統(tǒng)軟件設(shè)計(jì)首先對(duì)STM32系統(tǒng)的初始化,采用Rtthread系統(tǒng)并創(chuàng)建了3個(gè)子進(jìn)程,分別為藍(lán)牙模塊子進(jìn)程、紅外模塊子進(jìn)程、報(bào)警模塊子進(jìn)程,設(shè)定任務(wù)的優(yōu)先級(jí)并初始化各子進(jìn)程。編寫相應(yīng)的初始化及數(shù)據(jù)處理函數(shù)實(shí)現(xiàn)系統(tǒng)的正常運(yùn)行,通過(guò)Rtthread進(jìn)行系統(tǒng)的線程調(diào)度。

紅外遙控器相關(guān)文章:紅外遙控器原理

萬(wàn)能遙控器相關(guān)文章:萬(wàn)能遙控器代碼


c語(yǔ)言相關(guān)文章:c語(yǔ)言教程



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

評(píng)論


相關(guān)推薦

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

關(guān)閉