1.首先是藍(lán)牙APP, 易安卓編寫的,說編寫其實(shí)我只是修改了其中的一些內(nèi)容,主要的部分都是易錦老師視頻里的那個(gè)軟件,不過我已經(jīng)懂得了那些命令,(后面有工程文件,如果不 懂,可以去找易錦老師的視頻來看,如果找不到,我這存的有),兩張界面和代碼截圖,非常簡單,功能也很簡單,程序前后修改了兩次主要地方,主要原因是測試 的時(shí)候發(fā)現(xiàn)第一種程序會出現(xiàn)錯(cuò)誤,在單片機(jī)哪里會仔細(xì)說明!
操作界面,很簡單,打開之后打開藍(lán)牙,然后點(diǎn)擊搜索設(shè)備,找到你的模塊名字,點(diǎn)擊之后就可以連接了,連接之后下面會顯示藍(lán)牙的名稱和地址信息
2.單片機(jī)程序,這個(gè)程序也很簡單,只要學(xué)過一些單片機(jī)程序的人應(yīng)該都知道吧,串口通信,設(shè)置好通信的波特率,初始化工作做好,然后在串口中斷程序里寫上你要做的事情就可 以了,這里雖然說11.0592的晶振定時(shí)器初值為fd,但是如果用12m的晶振也是可以的,差距不多,沒有問題。(說的不怎么專業(yè),我也不是很專業(yè)的 人,所以請大神誤噴,見笑了?。┻@里是修改前后的程序不一樣的地方,前面的程序是單片機(jī)沒接收到數(shù)據(jù)之后讀取前一次的IO狀態(tài),然后改變其狀態(tài),但是測試 的時(shí)候發(fā)現(xiàn)讀取狀態(tài)有錯(cuò)誤,估計(jì)是我的電路有問題,第一個(gè)繼電器可以正常工作,第二個(gè)和第三個(gè)都有問題,當(dāng)?shù)谝粋€(gè)關(guān)閉的時(shí)候可以打開,但是當(dāng)打開的了卻不 能關(guān)閉,只能用關(guān)閉所有的命令來關(guān)閉,(找了一下午也沒發(fā)現(xiàn)問題,元件換了幾個(gè)都沒找到,后來放棄了),后來就換了后面程序,直接發(fā)送狀態(tài)命令,不用判斷 當(dāng)前的狀態(tài)了,我覺得后面這種可能更好!而且實(shí)際測試的時(shí)候也可以,沒有問題。(補(bǔ)充一下,我發(fā)現(xiàn)12M的晶振不能用11.0592M的數(shù)據(jù),原因是定時(shí) 器計(jì)數(shù)產(chǎn)生的波特率與9600差距有點(diǎn)大,誤差到達(dá)了8.5%左右,理論上誤差要小于4%才能正常通信,所以通信有錯(cuò)誤,雖然能通信,但是數(shù)據(jù)不對,后來 我把晶振換回來就可以了,看來要實(shí)踐才知道真理。)
第 一、二張是修改之前的程序,有問題,最后一張是修改之后的,沒有問題,后來仔細(xì)想了一下,后面一種才是正確的,前面一種的改變狀態(tài)可能會出現(xiàn)錯(cuò)誤,就是手 機(jī)上顯示的開關(guān)是關(guān)的,然而實(shí)際電路中的電路是開著的(這也是沒有數(shù)據(jù)回傳的原因吧,現(xiàn)在只是單向的手機(jī)發(fā),模塊接的形式,以后再研究)!,但是后面一種 不會出現(xiàn)這個(gè)問題!
3.實(shí)物電路連接,我也是在測試,所以先用LED 等來代替繼電器輸出,然后才用到繼電器上面。單片機(jī)直接放在我做的最小系統(tǒng)版上面,然后用導(dǎo)線來連接到藍(lán)牙開關(guān)的小板子上,等測試無誤之后再安裝在上面, 不然不好寫程序上去。輸出接的是一個(gè)小電機(jī),用的一個(gè)12v蓄電池代替220V電源,如果要用220V的電源,要注意安全了!提醒一下,絕緣一定要做好, 畢竟不是開玩笑的。簡單說一下電路連接,首先你得需要焊接一個(gè)51單片機(jī)最小系統(tǒng)板,(如果這個(gè)都不會,那你需要先學(xué)習(xí)一下,不然肯定是沒辦法做的)然后是由三極管驅(qū)動(dòng)繼電器的電路,記得加二極管,不然三極管很有幾率被擊穿,最后是藍(lán)牙模塊與單片機(jī)的連接,電源接好,一般藍(lán)牙模塊都是寬電壓的,所以直接接到5V電源上,與單片機(jī)共用電源,不用什么電壓轉(zhuǎn)換,很方便的,把藍(lán)牙模塊的TX與單片機(jī)的RX連接,就是P3.0那個(gè)引腳,RX接單片機(jī)的TX,就是P3.1那個(gè)引腳,至于繼電器哪里你需要接成常開還是常閉的模式就你自己決定了,當(dāng)然還要加一點(diǎn)錄濾波的,因?yàn)槔^電器啟動(dòng)的一瞬間電流很大,擔(dān)心是單片機(jī)死機(jī)!這些就是主要的東西了?。?/p>
前一張是之前測試用的,后面一張是后來直接把單片機(jī)裝上去的,看著沒有那么亂了,可以看到,當(dāng)手機(jī)上的開關(guān)23打開時(shí),電路板上的燈23也是兩的,表明繼電器已經(jīng)被打開了。
4.打完收工,作品完成好 了至此最簡單的藍(lán)牙開關(guān)就做好了,可以躺在床上遙控在遠(yuǎn)處的風(fēng)扇了(好吧你們都用的是空調(diào),當(dāng)我沒說?。?,定時(shí)關(guān)機(jī)(這個(gè)功能沒做,不過原理都一樣,自由 發(fā)揮了),其他神馬的!感興趣的同學(xué)可以試一下,比如說高級一點(diǎn)的外網(wǎng)控制的,把電腦作為服務(wù)器,把藍(lán)牙模塊接好,和控制器連接起來,然后讓手機(jī)與電腦通 過互聯(lián)網(wǎng)通信,用手機(jī)給電腦發(fā)送指令,再通過電腦給藍(lán)牙模塊發(fā)送指令,比如提前開個(gè)空調(diào)什么的(提前開風(fēng)扇沒用,還是開你們的空調(diào)吧),然后其他什么的東 西就自己發(fā)揮了!我想這個(gè)應(yīng)該是屬于傳說中的物聯(lián)網(wǎng)吧,雖然沒有那么高大上,但是原理是一樣的。