林敏
摘 要:隨著科技的進(jìn)步,家用電器逐步走向智能化,網(wǎng)絡(luò)化。市場(chǎng)上有很多現(xiàn)成的智能家居方案,功能各有不同,但是大多成本較高,一定程度上影響了大面積推廣應(yīng)用。本項(xiàng)目主要利用arduino結(jié)合藍(lán)牙模塊以及相關(guān)的繼電器等器件,實(shí)現(xiàn)通過(guò)手機(jī)客戶端控制電燈、插座等家用電器。
關(guān)鍵詞:arduino 藍(lán)牙 家用電器
中圖分類號(hào):TP274 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2017)09(b)-0001-02
智能家居(英文:smart home, home automation)是以住宅為平臺(tái),利用綜合布線技術(shù)、網(wǎng)絡(luò)通信技術(shù)、安全防范技術(shù)、自動(dòng)控制技術(shù)、音視頻技術(shù)將家居生活有關(guān)的設(shè)施集成,構(gòu)建高效的住宅設(shè)施與家庭日程事務(wù)的管理系統(tǒng),提升家居安全性、便利性、舒適性、藝術(shù)性,并實(shí)現(xiàn)環(huán)保節(jié)能的居住環(huán)境。目前市場(chǎng)上的智能家居產(chǎn)品很多,功能各有特點(diǎn),但是大多成本較高,一定程度上影響了大面積推廣應(yīng)用。
本項(xiàng)目利用現(xiàn)在非常流行的開源硬件arduino,結(jié)合藍(lán)牙模塊等外部設(shè)備,實(shí)現(xiàn)簡(jiǎn)單的智能家居遙控,具有體積小巧,可靠性高,成本低廉,擴(kuò)展改造性強(qiáng)等特點(diǎn)。
1 Arduino簡(jiǎn)介
Arduino是一款便捷靈活、方便上手的開源電子原型平臺(tái),包含硬件(各種型號(hào)的Arduino板)和軟件(arduino IDE)。它適用于藝術(shù)家、設(shè)計(jì)師、愛好者和對(duì)于“互動(dòng)”有興趣的朋友們。Arduino能通過(guò)各種各樣的傳感器來(lái)感知環(huán)境,通過(guò)控制燈光、馬達(dá)和其他的裝置來(lái)反饋、影響環(huán)境。
2 項(xiàng)目目標(biāo)
本項(xiàng)目設(shè)想通過(guò)Arduino來(lái)控制兩只電燈、一個(gè)插座來(lái)模擬簡(jiǎn)單的家用電器場(chǎng)景,在手機(jī)上安裝客戶端,通過(guò)藍(lán)牙和Arduino建立連接,然后就可以在手機(jī)端通過(guò)點(diǎn)擊不同的按鈕來(lái)實(shí)現(xiàn)對(duì)電燈、插座等的遙控,并在手機(jī)端實(shí)時(shí)反應(yīng)出來(lái)。
3 項(xiàng)目設(shè)計(jì)方案
3.1 硬件電路設(shè)計(jì)
本項(xiàng)目的電路原理圖如圖1所示,電源模塊將220V市電轉(zhuǎn)換為5V直流電源輸出給Arduino uno控制器供電,Arduino通過(guò)HC-05主從機(jī)一體藍(lán)牙模塊和手機(jī)進(jìn)行通信,D3-D5這3個(gè)數(shù)字輸出口分別控制KA1,KA2,KA3繼電器的線圈,繼電器的觸電又控制相應(yīng)的電燈和插座,這樣,Arduino控制器的D3-D5這3個(gè)數(shù)字輸出口的狀態(tài)就直接控制了電燈及插座的工作狀態(tài)。
3.2 軟件設(shè)計(jì)
本項(xiàng)目的軟件包括兩部分:Arduino uno控制器的控制程序,手機(jī)端控制程序,下面分別介紹。
(1)Arduino uno控制器控制程序。
控制程序如下所示:
long val;int l1=3;int l2=4;int k1=5;
void setup()
{ Serial.begin(9600);pinMode( l1 , OUTPUT);pinMode( l2 , OUTPUT);pinMode( k1 , OUTPUT);}
void loop()
{ val=Serial.read();if(val=='1'){digitalWrite( l1 , 1 );}else if(val=='2'){digitalWrite( l1 , 0 );}else if(val=='3'){digitalWrite( l2 , 1 ); }else if(val=='4'){digitalWrite( l2 , 0 ); }else if(val=='5'){digitalWrite( k1 , 1 ); } else if(val=='6'){digitalWrite( k1 , 0 ); }}
簡(jiǎn)要說(shuō)明:本控制程序中int l1=3;int l2=4;int k1=5;這段是將Arduino控制器上D3——D5端口聲明為整形變量l1、l2、k1;Serial.begin(9600)是打開Arduino控制器的串口并設(shè)置波特率為9600;pinMode( l1 ,OUTPUT);
pinMode( l2 , OUTPUT);pinMode( k1 , OUTPUT);這段是把D3——D5端口設(shè)置為輸出模式;val=Serial.read()這句是將通過(guò)藍(lán)牙模塊接收到的手機(jī)端發(fā)送的信息賦值給val;然后開始判斷,如果收到的信息為“1“(if(val=='1'))則將D3口輸出高電平(digitalWrite( l1 , 1 ) );如果收到的信息為“2“(if(val=='2'))則將D3口輸出低電平(digitalWrite( l1 , 0 ) )。D4、D5端口的控制類似。
(2)手機(jī)端控制軟件
手機(jī)端的控制軟件,采用谷歌開源的安卓開發(fā)工具App Inventor來(lái)開發(fā),App Inventor 原是Google實(shí)驗(yàn)室的一個(gè)子計(jì)劃,由一群Google工程師勇于挑戰(zhàn)的Google使用者共同參與。App Inventor是一個(gè)完全在線開發(fā)的Android編程環(huán)境,拋棄復(fù)雜的程序代碼而使用積木式的堆疊法來(lái)完成您的Android程式。對(duì)于Android初學(xué)者或是簡(jiǎn)單應(yīng)用開發(fā)者來(lái)說(shuō)是一大福音。因?yàn)樗麄儾淮笮枰A麗的界面,只要使用基本元件例如按鈕、文字輸入輸出即可。App Inventor非常適合這類開發(fā)。
4 總結(jié)
經(jīng)過(guò)調(diào)試和實(shí)際測(cè)試,手機(jī)端可以在20米范圍內(nèi)連接成功并實(shí)現(xiàn)對(duì)相應(yīng)終端的控制,連接穩(wěn)定,控制反應(yīng)迅速,體積小巧,功耗較低,經(jīng)測(cè)試可以24小時(shí)不間斷運(yùn)行,本項(xiàng)目做為南京機(jī)電職業(yè)技術(shù)學(xué)院2017年度三創(chuàng)大賽參賽作品,目前在后期改進(jìn)工作中,下一步主要改進(jìn)方向是:1、增加控制對(duì)象數(shù)量;2、改進(jìn)控制軟件,增加控制功能,比如延時(shí)打開或關(guān)閉,預(yù)約定時(shí)打開或關(guān)閉等等。
參考文獻(xiàn)
[1] simon monk ,創(chuàng)客電子電子制作DIY指南,人民郵電出版社,2014
[2] simon monk ,arduino編程從零開始,科學(xué)出版社,2013.
[3] 陳呂洲,arduino程序設(shè)計(jì)基礎(chǔ),北京航空航天大學(xué)出版社,2015.endprint