本文利用所學51單片機基礎知識結合自動控制技術和藍牙4.0通信技術、nRF24L01無線技術,設計完成一套兩種不同的上位機控制的無線遙控家電開關系統。本設計詳細地講述了51單片機控制原理和單片機編程技術,HC-05藍牙通信技術、nRF24L01無線技術以及自動化控制技術。整個系統以IAP15F2K61S2單片機為核心,單片機實現HC-05藍牙指令的解析與繼電器開關控制指令的發出。藍牙模塊在整個系統中負責藍牙指令的接收和傳輸;家電開關的自動控制部分采用12路繼電器開關來實現,為了使系統設計簡便,操作演示方便,家用電器部分采用12種LED燈來模擬替代,通過繼電器開關上接的LED燈的亮滅來模擬所控制的電器的開啟和關閉,系統LCD12864液晶實時顯示12種家電開關的開啟與關閉狀態。整個系統設計思路清晰,設計成本較低,具有較高的使用和推廣價值。
本系統主要由核心控制模塊、無線模塊、溫度傳感器模塊、顯示模塊、鍵盤模塊、輸出控制模塊、電源模塊組成,下面分別論證這幾個模塊的選擇。
1.1核心控制模塊論證與選擇方案一:采用51系列8位單片機。
51系列單片機價格便宜,編程相對簡單,但I/O口資源緊缺,存儲空間小,響應速度慢,燒寫程序復雜,需專門的下載工具,不支持在線調試。
方案二:采用MSP430系列16位單片機。
MSP430系列單片機功耗低,16位的精簡指令集,8M晶振驅動下125納秒的指令周期,內置JTAG電路,支持Flash在線編程技術,大容量ROM和RAM,能夠存儲大容量程序。當今工業控制向32位處理器ARM發展趨勢日益加快,MSP430 16位處理器相對落后。
方案三:STC15系列單片機,1T STC-Y5 內核,比傳統51系列快6-12倍,并且內部RAM擴大,傳統51為128字節或256字節,它達到了2.25KB,內部高精準可調RC振蕩器,有一個16位自動重載定時器,串口波特率設置更靈活,有片內SPI控制器,速度可達1/4主頻速度,有片內PWM/PCA控制器,可捕獲外部緩沖或者產生PWM,有片內AD,分辨率10位,8通道。
所以綜上方案本系統選擇方案三。
1.2 無線模塊論證與選擇
方案一采用NRF24L01無線射頻方式進行遙控控制,采用此方案進行設計具有設計成本低廉,開發難度低等優點,便于推廣和應用;不足之處是發射終端同樣需要單片機進行控制,遠程控制需要隨時隨地攜帶控制設備,同時由于沒有相應的密碼設置,容易被附近同樣頻段的遙控設備誤操作。
方案二采用GSM移動通信網絡的方式進行遠程控制,系統通過手機遠程發送短信的模式實現家用電器的開啟和關閉采用此方案進行設計具有操作靈活,不用攜帶額外控制器即可遠程控制,同時控制不受距離限制的優點;不足之處是開發難度大,設計成本相對較高,通過手機短信進行控制需要繳納一定的通信費用,在一些低端的住宅場合推廣具有一定的難度。
方案三采用手機藍牙終端進行遙控控制,系統通過手機藍牙實現家用電器開關的遙控開啟和關閉,采用此方案進行設計具有控制方便靈活,不用額外攜帶控制設備即可實現家用電器的開啟關閉的操作,同時藍牙遙控具有密碼匹配在操作安全性上有很好的保證,同時又不需要緝拿相應的通信費用。
通過以上三種方案的比較和分析論證,在當今人們追求生活便利作為主要目的的環境下,方案一雖然成本相對低廉,但是由于受制于安全性和操作的便利性,不過我們介于學習中的狀態完全可以加入我們的設計中,因而在三種設計方案進行對比后,首先選擇方案一。方案二和方案三是目前家電開關無線控制系統最好的兩種方案,兩種方案各有千秋,方案三相比方案二開發難度低,開發周期短,推廣相對容易,方案二由于需要借助于移動通信網絡進行遠程控制,因而需要收取一定的通信資費,同時一單手機停機會造成無法遙控控制的情況。鑒于以上三種方案的對比,本文最終選擇方案一、方案三作為整個系統的設計方案。
1.3溫度傳感器模塊選擇與論證方案一:采用數碼管顯示。
方案三:采用LCD1602顯示,美觀大方,液晶顯示模塊具有體積小、功耗低、顯示內容豐富、超薄輕巧等優點
方案三雖然體積小功耗低,但是方案二都具有方案三的特點,方案二的功能比方案三的功能更強大,所以顯示模塊選擇方案二。
1.5鍵盤模塊論證與選擇圖5 HC-05通信模塊電路圖
如圖5所示,U6為系統藍牙通信模塊HC-05模塊,二極管D5、D6和電阻R10、R11組成電平轉換電路以保證系統可以同時在5V和3.3V的電壓下工作,D7為藍牙模塊工作狀態指示燈,其工作狀態有以下三種:一,在模塊上電的同時把BS-KEY引腳設置為高電平(或接到VCC)此時D7以亮一秒滅一秒的頻率慢閃,模塊進入AT狀態,此時波特率為固定的9600。二,在模塊上電的同時把BS-KEY引腳設置為低電平(或接地),此時D7以一秒閃爍2次的頻率快閃,表示模塊進入可配對狀態,如果此時再將BS-KEY引腳電平置高,模塊會進入AT狀態,但是D7的閃爍頻率不變。三,模塊配對成功,此時D7雙閃,一次閃2下,2秒閃一次。系統有了D7指示燈就能夠很直觀的判斷模塊的當前狀態,方便使用。
2.1.6主機藍牙模塊功能測試藍牙模塊電路設計焊接好后,為了保證模塊能夠正常使用,首先要測試一下藍牙模塊收發功能是否正常,具體測試過程如下所述。
首先HC-05模塊通過usb轉TTL模塊連接到電腦串口,連接方式如圖6所示。
圖6藍牙模塊與TTL模塊接線方式圖
HC-05模塊出廠設置為從模式,所以發送AT+ROLE?得到的返回值為+ROLE:0,發送AT+ROLE=1即可設置模塊為主機、具體操作界面如圖7所示。
圖7藍牙模塊測試界面圖
2.1.7 主機家電控制電路設計與原理系統家電控制電路采用12路繼電器控制實現,12路繼電器分別控制飲水機開關、窗簾開關、冰箱開關、風扇開關、大廳燈開關、睡眠燈開關、臥室燈開關、插座1~插座5開關。繼電器控制電路采用弱電控制強電的工作原理,單片機通過控制繼電器的斷開和吸合來控制外接家電的通斷,具體控制電路如圖8所示。
圖8系統家電控制電路圖
如圖8所示,信號口分別接到單片機的IO口上,當單片機輸出低電平的時候繼電器吸合,外部接家電的開關吸合接通,家電啟動工作;當單片機輸出高電平的時候三極管斷開,繼電器外部開關斷開,外接的家電停止工作。考慮到實際的可操作性,以及能夠直觀的分辨出繼電器開發的接通和斷開,外部家電采用LED燈的亮滅來替代,當對應家電的LED燈點亮代表對應家電電源接通,家電處于工作狀態,當對應的LED燈熄滅代表對應的家電電源開關斷開,家電停止工作。
2.1.8 主機與上位機系統顯示電路設計與原理LCD液晶顯示,采用點陣和帶中文字符型 LCD 液晶顯示,液晶顯示模塊具有體積小、功耗低、顯示內容豐富等特點,現在字符型液晶顯示模塊已經是單片機應用設計中最常用的信息顯示器件,但采用LCD液晶顯示會造成設計成本增加。
考慮到為了提高顯示效果,系統選用LCD12864作為顯示部分。LCD12864液晶顯示電路如圖9所示。
圖9系統顯示器件電路圖
2.1.9上位機按鍵電路設計與原理
按鍵采用輕觸開關當頁面切換按鍵按下時單片機統計按鍵的次數液晶顯示不同的頁面,同時也通過NRF24L01發送一個相應的信號到主機中讓主機與上位機同步顯示。確定按鍵,按下一次則保存選擇按鍵的數據并且發送相應的數據到主機上控制不同的繼電器開關。選擇按鍵有加也有減、按下按鍵選擇不同的開關信號由確定鍵保存和發送,如下圖所示。
圖10 系統顯示器件電路圖
2.2.0上位機DS18B20電路設計與原理
DS18B20數字溫度傳感器是DALLAS公司生產的1—Wire,即單總線器件,具有線路簡單,體積小的特點。因此用它來組成一個測溫系統,在一根通訊線,可以掛很多這樣的樣的數字溫度計,十分方便。 單片機也能直接讀取DS18B20的數據程序也非常簡單。電路如11圖所示。
圖11 DS18B20電路圖
2.2.1接收和發送指示燈電路設計與原理
LED指示燈采用共陰極接法,R5與R10為限流電阻,當NRF24L01上位機進入發送函數時P3^6口得到低電平D2亮,否則滅。當主機接收到信號時P4^5得到低電平D8亮,否則滅
圖12接收和發送指示燈電路圖
3.程序的設計3.1系統軟件編程環境介紹Keil C51 可以完成編輯、編譯、連接、調試、仿真等整個開發流程。開發人員可用IDE 本身或其它編輯器編輯C 或匯編源文件,然后分別有C51 及A51 編輯器編譯連接生成單片機可執行的二進制文件(.HEX),然后通過單片機的燒寫軟件將HEX 文件燒入單片機內。軟件主要三個方面:一是初始化系統;二是數據采集;三是數據處理并進行顯示。這三個方面的操作分別在主程序中來進行。程序采用模塊化的結構,這樣程序結構清楚,易編程和易讀性好,也便于調試和修改。
3.2系統主程序流程圖系統主程序主要包括系統的初始化、藍牙串口通信、 NRF24L01通訊、開關狀態的顯示以及信號的輸出控制等,系統主程序流程圖如圖13所示。
圖13 主機程序流程圖
系統主程序流程如圖13所示,當系統上電后首先完成各個組件的初始化,一個系統的初始化是程序運行必不可少的環節,系統初始化部分主要包括:系統的初始化、藍牙串口通信、 NRF24L01通訊、開關狀態的顯示以及信號的輸出控制初始化等;初始化完成以后系統首先要啟動藍牙串口通信模塊,保證藍牙模塊和手機藍牙控制終端完成匹配。單片機通過串口通信的方式實現和藍牙模塊的通信,單片機對藍牙模塊接收到的指令進行解析然后輸出控制指令到繼電器開關,從而實現對家電開關的控制;LCD液晶對12路家電開關的開啟和關閉狀態進行顯示,便于直觀的測試。
3.3系統藍牙通信模塊子程序系統藍牙通信模塊子程序主要完成手機藍牙指令的接收以及和單片機直接的數據通信等,此部分程序的完成是整個系統軟件設計成功與否的關鍵所在。圖14為系統藍牙通信子程序流程圖。
使用自制好的NRF24L01上位機與安卓APP對主機進行測試因為在編程程序時一邊寫一邊調試所以做出來的硬件和程序都沒有任何問題。
硬件測試:核心板子使用完整的IAP15F開發板作為調試主體,使用面包板搭建繼電器電路通過單片機輸出信號對相應的繼電器做開關信號。
4.2 測試條件與儀器藍牙遙控測試主要完成12路繼電器的開啟和關閉,為了直觀的看出測試結果,每路繼電器輸出開關上接一個LED指示燈,通過觀察對應繼電器輸出的LED燈的亮滅來測試,具體測試過程如下所述。
手機藍牙發送指令“101”一次繼電器1吸合,LED1點亮,再次發送指令“102”繼電器1斷開,LED1熄滅。
手機藍牙發送指令“103”一次繼電器2吸合,LED2點亮,再次發送指令“104”繼電器2斷開,LED2熄滅。
·
·
·
手機藍牙發送指令“122”一次繼電器12吸合,LED12點亮,再次發送指令“123”繼電器12斷開,LED12熄滅。
NRF24L01也是差不多一樣的模式;
4.4有效距離手機藍牙與主機藍牙有效距離: 最佳距離:30米內
24L01上位機與主機24L01有效距離:最佳距離:100米內
5.總結與分析通過這次畢業設計的制作,鞏固了我在大學3年里學過的知識,尤其是單片機和C語言編程方面的知識,同時也提高了單片機編程的能力,獲得了軟件調試的經驗,并且也了解到了其它相關領域的知識,不論是對今后的工作還是學習都有著極大的幫助。
此次設計完成的作品主要有如下功能和特點:
以方便直觀的觀察到控制指令的接收和解析是否正確,便于功能的調試。
的應用和推廣價值。
同時由于時間倉促,自己經驗不足,在理論方面也相應存在缺陷,在整個系統的設計過程中也存在著一些問題,現總結如下:
1、電子電路的設計中對各種影響因素的考慮不夠完全,比如在對系統電源部分的處理不夠完善,早期系統工作不是很穩定。
2、沒有擴展更多電路,如室內環境監測功能,通訊接口電路與上位機(PC機)進行通訊,上位機顯示功能從而將大量的商品數據存于上位機,然后通過串口或并口通訊與系統相連,達到遠距離監控的目的。
3、對各種實用芯片價格了解不夠,在選擇上有欠缺,如所選的顯示終端價格較貴,從而使設計成本有所提高。
通過此次遠程家電開關控制系統的設計和總結對我今后的學習和工作帶來了積極的影響。
NRF24L01上位機原理圖
主機原理圖
歡迎光臨 (http://www.raoushi.com/bbs/) | Powered by Discuz! X3.1 |