劉佳玲
摘要:隨著物聯(lián)網(wǎng)和無(wú)線通信技術(shù)的發(fā)展, 人們對(duì)生活智能化的要求越來(lái)越高。家庭照明目前主要是利用墻面開(kāi)關(guān)和遙控器控制電燈,存在位置固定、移動(dòng)性差、控制距離短等問(wèn)題。本設(shè)計(jì)通過(guò)對(duì)無(wú)線通信技術(shù)、手機(jī)APP制作、單片機(jī)控制等方面的研究,利用App Inventor開(kāi)發(fā)軟件開(kāi)發(fā)一款手機(jī)APP,實(shí)現(xiàn)以手機(jī)為用戶終端通過(guò)藍(lán)牙無(wú)線通信技術(shù)控制Arduino開(kāi)發(fā)板上連接的電燈。
關(guān)鍵詞:物聯(lián)網(wǎng);藍(lán)牙;Arduino;App Inventor;電燈
中圖分類號(hào):TN709 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)07-0070-03
Abstract:With the development of the Internet of things and wireless communication technology, people's demand for intelligent life is becoming more and more high. At present, family lighting mainly uses wall switch and remote control the electric lamp, which has the problems of fixed position, poor mobility and short control distance. Through the research of wireless communication technology、APP and MCU control, the development of a APP based on App Inventor software to realize mobile phone user terminal connected via Bluetooth wireless communication technology to control development board Arduino lamp.
Key words:IOT; bluetooth; Arduino; App Inventor; lamp
1 概述
藍(lán)牙技術(shù)是當(dāng)前應(yīng)用最廣泛的無(wú)線通信技術(shù)之一,工作在全球通用的2.4GHz的ISM頻段。藍(lán)牙的工作距離約為100米[1],具有一定的穿透性,沒(méi)有方向限制。具有低成本、抗干擾能力強(qiáng)、傳輸質(zhì)量高、低功耗等特點(diǎn)。藍(lán)牙技術(shù)組網(wǎng)比較簡(jiǎn)單,無(wú)需額外設(shè)置,只要兩個(gè)藍(lán)牙設(shè)備進(jìn)入連接范圍內(nèi),藍(lán)牙就會(huì)自動(dòng)搜索,實(shí)現(xiàn)配對(duì)連接,進(jìn)行點(diǎn)對(duì)點(diǎn)信息傳輸[2]。目前個(gè)人電腦、手機(jī)等終端設(shè)備都具有藍(lán)牙通信功能,可以利用手機(jī)藍(lán)牙對(duì)其他的藍(lán)牙設(shè)備發(fā)送控制信號(hào)進(jìn)行無(wú)線控制。
2 藍(lán)牙燈的總體設(shè)計(jì)
普通的照明燈泡沒(méi)有藍(lán)牙模塊,沒(méi)有辦法接收藍(lán)牙信號(hào),所以本設(shè)計(jì)就是通過(guò)對(duì)普通燈泡的改造,讓燈泡能接收藍(lán)牙信號(hào)并被控制。藍(lán)牙燈設(shè)計(jì)基本思路:手機(jī)與控制板通過(guò)藍(lán)牙模塊建立點(diǎn)對(duì)點(diǎn)的連接,然后手發(fā)送指令,控制板上的藍(lán)牙模塊接收到指令,最后操控連接在控制板上的燈泡。
藍(lán)牙燈的總體結(jié)構(gòu)分為手機(jī)終端APP、藍(lán)牙通信、MCU控制3個(gè)部分。手機(jī)終端APP部分實(shí)現(xiàn)用戶對(duì)燈泡的遠(yuǎn)程操作指令的發(fā)送;藍(lán)牙通信部分實(shí)現(xiàn)接收操作指令并傳送到MCU控制器;MCU控制部分實(shí)現(xiàn)對(duì)接收到的操作指令進(jìn)行處理。藍(lán)牙燈總體設(shè)計(jì)結(jié)構(gòu)如圖1所示:
3 藍(lán)牙燈的硬件設(shè)計(jì)
3.1 MCU控制
MCU控制部門(mén)選用Arduino作為主控板。Arduino是一款便捷靈活、方便上手的開(kāi)放源代碼的軟硬件平臺(tái)[3]。硬件具有豐富的接口,有3.3V和5V電源供電、數(shù)字口、模擬口,同時(shí)支持串口通信。軟件編程語(yǔ)言沒(méi)有復(fù)雜的單片機(jī)底層代碼,直接調(diào)用簡(jiǎn)單實(shí)用的函數(shù)就能實(shí)現(xiàn)功能。以下設(shè)計(jì)以Arduino Uno主控板為例。
3.2 藍(lán)牙通信
藍(lán)牙模塊分為主模塊和從模塊,主模塊既能接收信號(hào),也能發(fā)送信號(hào),而從模塊只能接收信號(hào),而不能發(fā)送信號(hào)。本設(shè)計(jì)中燈泡只需要接收控制信號(hào),選用HC-06藍(lán)牙從模塊來(lái)接收控制信號(hào)。HC-06模塊有四個(gè)引腳:VCC(3.3V)、GND(接地)、TXD(發(fā)送端)、RXD(接收端)。藍(lán)牙模塊與Arduino通過(guò)串口通信。Arduino的數(shù)字端口0、1是開(kāi)發(fā)板串口的RX(接收端)和TX(發(fā)送端),分別與HC-06的TXD、RXD相連,如圖2所示:
3.3 燈泡
燈泡屬于大電流和高電壓設(shè)備,無(wú)法直接用Arduino的數(shù)字端口進(jìn)行驅(qū)動(dòng),所以選用繼電器控制電燈的開(kāi)和關(guān)。繼電器是利用弱電信號(hào)控制繼電器的吸起和落下,實(shí)現(xiàn)電路的閉合和斷開(kāi)。從而實(shí)現(xiàn)Arduino用弱信號(hào)控制大電流、高電壓通斷,間接控制燈泡回路中的電流通和斷、燈泡的亮和滅的目的[3]。
我國(guó)照明采用三相四線制供電系統(tǒng),要求中線(零線)上不允許安裝開(kāi)關(guān)和保險(xiǎn)(熔斷器),繼電器實(shí)際就是一個(gè)開(kāi)關(guān),所以將燈泡的電源正極的連線從中間斷開(kāi),分別連接繼電器的公共端和常開(kāi)端。
Arduino判斷接收到的信號(hào)如果是“開(kāi)燈”,相應(yīng)的將數(shù)字端口(本文選用數(shù)字端口8)賦高電平(1),高電平送到繼電器S端,繼電器常開(kāi)開(kāi)關(guān)閉合,燈泡點(diǎn)亮;判斷接收到的信號(hào)如果是“關(guān)燈”,相應(yīng)的將數(shù)字口8賦值底電平(0),底電平送到繼電器S端,繼電器常開(kāi)開(kāi)關(guān)復(fù)位,燈泡熄滅。藍(lán)牙燈具體硬件連接和程序如圖2、3所示:
3.4 藍(lán)牙燈硬件測(cè)試結(jié)果
使用手機(jī)藍(lán)牙串口調(diào)試助手,監(jiān)控串口數(shù)據(jù)。根據(jù)Arduino藍(lán)牙燈程序中的編寫(xiě),在手機(jī)藍(lán)牙串口調(diào)試助手窗口中輸入1時(shí),收到“dengliang”字符串,繼電器吸合,燈泡亮;輸入0時(shí),收到“dengmie”字符串,繼電器復(fù)位,燈泡滅。檢測(cè)結(jié)果說(shuō)明藍(lán)牙燈硬件能實(shí)現(xiàn)接收信號(hào)、處理信號(hào)的功能。
4 藍(lán)牙燈手機(jī)APP的設(shè)計(jì)
手機(jī)終端APP部分實(shí)現(xiàn)用戶對(duì)燈泡的藍(lán)牙遠(yuǎn)程操作。本設(shè)計(jì)采用Google公司專門(mén)開(kāi)發(fā)了一款圖形化手機(jī)編程軟件App Inventor。這款軟件不需要具備一定專業(yè)知識(shí)也可以使用,軟件已經(jīng)事先將按鈕、文字輸入輸出等軟件代碼編寫(xiě)成不同的模塊,用戶只需根據(jù)自己的需求拼裝就可以。
手機(jī)終端APP部分需要具有搜索藍(lán)牙設(shè)備、連接藍(lán)牙設(shè)備、斷開(kāi)藍(lán)牙設(shè)備、燈泡的亮滅功能。手機(jī)終端APP部分設(shè)計(jì)結(jié)構(gòu)示意圖如4所示:
圖4 藍(lán)牙燈手機(jī)APP結(jié)構(gòu)圖
藍(lán)牙燈APP整體代碼模塊如圖5所示:
編寫(xiě)的Android程序,將生成APK文件,通過(guò)掃描二維碼下載或者手機(jī)數(shù)據(jù)線下載到手機(jī)上。安裝后,會(huì)在手機(jī)桌面形成藍(lán)牙燈APP圖標(biāo)。打開(kāi)圖標(biāo)進(jìn)入到APP界面。APP界面如圖6所示:
5 藍(lán)牙燈的調(diào)試
藍(lán)牙燈APP對(duì)燈泡硬件的完全控制,還需要兩部分合起來(lái)進(jìn)一步的調(diào)試。需要注意APP中“開(kāi)”和“關(guān)”按鈕操作所代表的數(shù)值是“1”和“0”,而藍(lán)牙燈控制部分Arduino程序中,也要對(duì)“1”和“0”做出判斷。整體實(shí)物圖如圖6所示:
首先,打開(kāi)手機(jī)的藍(lán)牙功能,讓手機(jī)與HC-06配對(duì),輸入配對(duì)秘密“1234”,配對(duì)成功。其次,打開(kāi)手機(jī)安裝好的App,點(diǎn)擊“搜索藍(lán)牙”按鈕,連接藍(lán)牙,提示APP已連接上HC-06藍(lán)牙模塊。最后,點(diǎn)擊燈泡滅圖片,燈泡亮;點(diǎn)擊燈泡亮圖片,燈泡滅。通過(guò)調(diào)試最終實(shí)現(xiàn)了手機(jī)App對(duì)藍(lán)牙燈遠(yuǎn)程控制。
6 結(jié)論
本文設(shè)計(jì)的藍(lán)牙燈在原有的電燈上設(shè)計(jì)和改造,并通過(guò)了實(shí)物改造進(jìn)行了驗(yàn)證,證明了藍(lán)牙燈的可靠性。為物聯(lián)網(wǎng)和Arduino的初學(xué)者提供了學(xué)習(xí)案例。本設(shè)計(jì)中只對(duì)電燈的亮滅進(jìn)行了控制,還可以擴(kuò)展更多的功能,比如可以調(diào)節(jié)明暗度,墻面開(kāi)關(guān)和手機(jī)App開(kāi)關(guān)協(xié)同操作等。
參考文獻(xiàn):
[1] 董健.物聯(lián)網(wǎng)與短距離無(wú)線通信技術(shù)[M].北京:電子工業(yè)出版社,2014: 43-58.
[2] 趙紅偉,嚴(yán)正國(guó).藍(lán)牙燈控開(kāi)關(guān)的設(shè)計(jì)與應(yīng)用[J].電腦知識(shí)與技術(shù),2015,1(32): 219-220.
[3] 趙志.Arduino開(kāi)發(fā)實(shí)戰(zhàn)指南(智能家具卷)[M].北京:機(jī)械工業(yè)出版社,2015:1-23.
[4] 胡越,周騰鶴,梁東升.基于藍(lán)牙的安卓平臺(tái)智能燈控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].物聯(lián)網(wǎng)技術(shù),2016(5):14-16.
[5] 殳佳輝. 基于藍(lán)牙的家庭智能照明系統(tǒng)設(shè)計(jì)[J].電子科技,2014(22):7-8.
[6] 陳呂洲.Aduino程序設(shè)計(jì)基礎(chǔ) [M].北京:北京航空航天大學(xué)出版社,2015.
[7] 趙英杰.完美圖解Arduino互動(dòng)設(shè)計(jì)入門(mén)[M].北京:科學(xué)出版社,2017.
[8] 趙英杰.超圖解物聯(lián)網(wǎng)IOT實(shí)作入門(mén)[M].臺(tái)灣:旗標(biāo)出版股份有限公司,2016.
[9] 王向輝.可視化開(kāi)發(fā)Android應(yīng)用程序—拼圖開(kāi)發(fā)模式App Inventor 2[M].北京:清華大學(xué)出版社,2015.