藍(lán)牙模塊智能燈控應(yīng)用方案
當(dāng)今是信息高速發(fā)展的時(shí)代,經(jīng)濟(jì)、文化的流行與傳播都離不開信息。信息的傳遞直接影響著人們生活的方方面面,信息的傳遞方式又各有不同,如有線傳輸、無線傳輸?shù)?;而無線傳輸還可按協(xié)議不同分為:藍(lán)牙、WIFI、zigbee、LoRa等,這其中藍(lán)牙通信技術(shù)憑借著優(yōu)越的性能及安全性,已然在商業(yè)、工業(yè)及個(gè)人生活等得到了廣泛應(yīng)用,今天億佰特為大家介紹下藍(lán)牙模塊智能燈控應(yīng)用方案。
– I –
那么,要使用藍(lán)牙,就必不可少的需要用到藍(lán)牙設(shè)備;在此,讓我們先了解一下E104-BT01這款模塊;并且本文提供一些基于E104-BT01的藍(lán)牙數(shù)據(jù)透傳、IO口控制輸出等功能,所能實(shí)現(xiàn)的一些無線產(chǎn)品方案及思路。
E104-BT01是成都億佰特設(shè)計(jì)生產(chǎn)的一款體積極小的無線藍(lán)牙模塊;模塊采用美國德州儀器(TI)公司原裝進(jìn)口CC2541射頻芯片,自帶高性能PCB板載天線,并適用于BLE協(xié)議。模塊可使用串口收發(fā)藍(lán)牙數(shù)據(jù),降低了藍(lán)牙應(yīng)用的門檻。模塊引出單片機(jī)所有IO口,集成了透傳功能、主從一體,即拿即用,可進(jìn)行多方位的開發(fā)。支持串口指令配置模塊參數(shù)和功能,廣泛應(yīng)用于穿戴設(shè)備、家庭自動化、家庭安防、個(gè)人保健、智能家電、配飾與遙控器、汽車、照明、工業(yè)互聯(lián)網(wǎng)等領(lǐng)域。
– II –
無論是何種基于E104-BT01的產(chǎn)品方案,其前期都離不開藍(lán)牙連接功能。
E104-BT01模塊互連操作:
若開發(fā)的產(chǎn)品的藍(lán)牙連接雙方,都采用的E104-BT01,則上電后作為主機(jī)的E104-BT01會主動去連接,服務(wù)UUID為FFF0的E104-BT01從機(jī)。
但是若此時(shí)處于主機(jī)掃描范圍內(nèi),存在多個(gè)服務(wù)UUID為FFF0的E104-BT01從機(jī),則主機(jī)去連接的從機(jī)可能并不是應(yīng)該連接的從機(jī)。所以這個(gè)時(shí)候,需要向E104-BT01發(fā)送“AT+BONDMAC”指令,綁定需要連接的E104-BT01的MAC地址;這樣,主從機(jī)連接會變得更加穩(wěn)定高效。
手機(jī)連接E104-BT01操作:
若開發(fā)的產(chǎn)品是使用手機(jī)與E104-BT01相連,那么產(chǎn)品開發(fā)者所開發(fā)的配套手機(jī)APP,需要具有一個(gè)選擇藍(lán)牙設(shè)備連接界面。其選擇藍(lán)牙設(shè)備界面可如下圖所示:
圖中名為“E104-BT01”的藍(lán)牙設(shè)備,即為本藍(lán)牙模塊;然后點(diǎn)擊這個(gè)設(shè)備進(jìn)行連接。這些廣播信息,都可通過主控MCU串口發(fā)送(或者手機(jī)發(fā)送空中配置令)“AT+ADVDAT”、“AT+NAME”、“AT+ADVINTV”等指令,對E104-BT01所廣播的數(shù)據(jù)及名字等進(jìn)行修改。當(dāng)然,具體的藍(lán)牙設(shè)備選擇界面,是根據(jù)開發(fā)者設(shè)計(jì)的,此處僅提供一個(gè)參考。
注意:
無論何種產(chǎn)品方案,其藍(lán)牙連接步驟都大同小異;本文以后的方案,都省略講解此處連接操作。
具體的AT指令使用方法,請參考E104-BT01用戶手冊。
單獨(dú)使用E104-BT01的簡單應(yīng)用方案及思路
由于E104-BT01自身集成了兩路I/O輸入采集口(IO0與IO1口),及兩路I/O輸出控制口(IO2與IO3口),可以通過相應(yīng)的AT指令進(jìn)行操作。利用E104-BT01的I/O控制功能,可以做一些小型且簡單的無線設(shè)備。其中,最容易實(shí)現(xiàn)的即為無線燈控設(shè)備。E104-BT01使用者,可以做一個(gè)如下圖的簡單安卓燈控界面;只需在安卓程序中實(shí)現(xiàn):按下界面中的按鍵,手機(jī)即在“CONFIG CHANNEL”通信通道發(fā)送相應(yīng)的AT指令(如“AT+IO2=1”指令),即可控制E104-BT01的IO2端口輸出高電平。該電平信號經(jīng)相應(yīng)的驅(qū)動電路,就可以控制小到3.3V的LED燈,大到220V的節(jié)能燈的亮滅。
– III –
當(dāng)然,燈控的應(yīng)用,做主機(jī)控制的不僅可以是手機(jī),也可以是其他的藍(lán)牙主機(jī)設(shè)備(如某種微型藍(lán)牙遙控器),其原理都別無二致。因此,若使用者準(zhǔn)備開發(fā)的產(chǎn)品,功能比較簡單,則作為從機(jī)的E104-BT01無需再接多余的MCU,這樣既可縮短開發(fā)周期,也節(jié)省了開發(fā)成本。
從上節(jié)可知,僅僅使用E104-BT01做開發(fā),而不使用主控MCU;雖然可以實(shí)現(xiàn)一些功能,但功能過于單一,對E104-BT01的性能造成了一定的浪費(fèi)。要想將E104-BT01物盡其用,則應(yīng)將E104-BT01作為外設(shè),被相連的主控MCU所控制。利用E104-BT01的透傳功能與MCU結(jié)合,可以產(chǎn)生豐富多樣的藍(lán)牙無線產(chǎn)品。此節(jié)中,我們就其透傳功能,介紹一些功能實(shí)際的藍(lán)牙產(chǎn)品的實(shí)現(xiàn)方案及思路。
– I –
舉一個(gè)簡單的小例子,就如上一節(jié)所談的燈控,若是接入一個(gè)具有大量I/O端口的主控MCU,那么可控?zé)舻臄?shù)目就變得十分可觀了。我們可以利用E104-BT01做從機(jī)時(shí)的透傳特性,結(jié)合主控MCU,做成一款“藍(lán)牙燈控處理器”;再用手機(jī)作為藍(lán)牙主機(jī),來發(fā)送自定義的燈控指令,來控制“藍(lán)牙燈控處理器”。這樣,一款家庭燈光藍(lán)牙遙控系統(tǒng)就大概實(shí)現(xiàn)了。
– II –
那么舉一個(gè)簡單的例子,手機(jī)燈控APP可以做成如下操作界面。至于相應(yīng)的程序?qū)崿F(xiàn)思路也并不復(fù)雜。在該燈控產(chǎn)品開發(fā)時(shí),應(yīng)該對每個(gè)燈控端口進(jìn)行編號,如LED0~LED9。那么較簡單的方案思路:在用戶初次使用時(shí),直接在手機(jī)界面上先顯示“LED0”~“LED9”這種默認(rèn)名字,然后由用戶自己去每一個(gè)燈都操作一番。我們只需要再給用戶提供,下圖圖一所示的照明燈分組命名的功能,由用戶自己判斷LED0~LED9對應(yīng)的照明燈即可。
這樣即能形成如下圖二界面,用戶即可在圖二界面中,通過點(diǎn)擊圖標(biāo)來控制各個(gè)房間的燈。
點(diǎn)擊各照明燈圖標(biāo)后,應(yīng)用程序只需要執(zhí)行,發(fā)送固定格式的對應(yīng)藍(lán)牙數(shù)據(jù)包動作,比如:點(diǎn)擊圖二中的“客廳燈”,這個(gè)燈其實(shí)際上是對應(yīng)的LED6端口,只是被用戶重命名了,這時(shí)手機(jī)就會在“MAST CHANNEL”通道發(fā)送“LED6:1”。當(dāng)E104-BT01收到此數(shù)據(jù)包后,會將接收到的數(shù)據(jù)通過串口,發(fā)送給相連的MCU;主控MCU將收到的數(shù)據(jù)包進(jìn)行解析后,將會執(zhí)行LED6端口輸出高電平,此時(shí)“客廳燈”被點(diǎn)亮。
上面這種方案,是采用手機(jī)作為主機(jī),向作為從機(jī)的“E104-BT01+MCU”設(shè)備,發(fā)送相應(yīng)的控制數(shù)據(jù)包。其實(shí),也可以用另一個(gè)“E104-BT01+MCU”設(shè)備,設(shè)置為主機(jī),加上相應(yīng)的各個(gè)按鍵,即做成一個(gè)燈光遙控器,也可方便的控制各LED燈;至于程序的實(shí)現(xiàn)的思路也與方案一相同。但是這種方案,不能讓用戶自由分組和命名,缺少了一點(diǎn)靈活性,操作也不夠直觀,而且用戶還得購買配套的遙控器,增加了用戶的成本。所以,這種方案實(shí)現(xiàn)雖然更加簡單,但并不十分推薦。
– III –
其實(shí),利用E104-BT01的透傳特性,不僅僅只是能控制燈光,對于控制門鎖、遙控可運(yùn)動設(shè)備等都具有很好的控制效果。拿控制門鎖開關(guān)來說,由于藍(lán)牙優(yōu)秀的加密及跳頻特性,可以很好的做到抗干擾,及對加密設(shè)備有效的安全控制。
在這里我們可以淺談一下,利用E104-BT01的透傳特性實(shí)現(xiàn)藍(lán)牙門鎖的方案及思路。還是拿手機(jī)作為主機(jī)為例,用戶手機(jī)首次與藍(lán)牙門鎖連接時(shí),需要在如下圖一的界面中填入設(shè)置的開鎖密碼;在此操作中手機(jī)程序?qū)⑻钊氲拿艽a,按照一定的格式發(fā)送到E104-BT01,數(shù)據(jù)包經(jīng)E104-BT01串口輸入到門鎖主控MCU中,并被保存在MCU的FLASH區(qū)中。
自此,用戶開關(guān)鎖頁面默認(rèn)為下圖界面。用戶每次需要開關(guān)鎖時(shí),只需要打開“藍(lán)牙門鎖APP”,點(diǎn)擊圖二相應(yīng)圖標(biāo)即可開關(guān)鎖。而這個(gè)開關(guān)鎖的過程就牽扯到安全性的問題,那么手機(jī)就不能僅僅發(fā)送“ON”或“OFF”開關(guān)鎖。為了增加安全性,應(yīng)在手機(jī)發(fā)送的數(shù)據(jù)包中添加密碼;比如,密碼若為“123456”,則發(fā)送“123456ON”;這樣,只有同時(shí)密碼正確的指令數(shù)據(jù)包,才是有效的。
如果想繼續(xù)提高加密等級,還可以將密碼“123456”,經(jīng)一套雙方相同的加密算法進(jìn)行再次加密,將新算出的密碼結(jié)合“ON”或“OFF”后再發(fā)送給E104-BT01。藍(lán)牙門鎖的MCU,將從E104-BT01接收的數(shù)據(jù),進(jìn)行解密后再執(zhí)行相關(guān)操作。若想修改原密碼,只需點(diǎn)擊圖二左上角“菜單”圖標(biāo),進(jìn)入圖一的輸入密碼界面。在該界面先后輸入舊新密碼,其手機(jī)也應(yīng)該先后發(fā)送舊新密碼數(shù)據(jù)包,如“123456OLD”、“654321NEW”。前者舊密碼藍(lán)牙數(shù)據(jù)包發(fā)送過去后,是令門鎖MCU開啟密碼權(quán)限,進(jìn)入密碼修改模式;緊接的新密碼藍(lán)牙數(shù)據(jù)包,就可以更新到門鎖MCU的密碼FLASH存儲區(qū)了。若是再將此藍(lán)牙門鎖方案,結(jié)合上一小結(jié)的燈控方案,則可以做到一個(gè)手機(jī)作為多個(gè)藍(lán)牙門鎖的鑰匙,使之藍(lán)牙門鎖系統(tǒng)更為方便且貼合實(shí)際,省去了金屬鑰匙的攜帶煩惱。
– IV –
對于這種藍(lán)牙門鎖的應(yīng)用,并不推薦使用“E104-BT01+MCU”來制作藍(lán)牙鑰匙的方案。因?yàn)椋檬謾C(jī)作為鑰匙,不僅操作更加直觀,其修改密碼也十分方便;更主要的原因是藍(lán)牙電子鑰匙模塊方案,攜帶并不比實(shí)際的金屬鑰匙方便。終上所述,我們更推薦將藍(lán)牙鑰匙開發(fā)成APP,集成到手機(jī)上的方案。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。