夜深了,躺在床上,下床關燈簡直就是一件折磨人的事,可是萬事難不倒理工男。我可以用手機遙控宿舍的燈。說干就干,我手里有WiFi模塊和藍牙模塊,想著僅僅是做一個遙控燈,就用藍牙模塊吧!1:準備工作
HC-05藍牙模塊(右邊的是ESP8266WIFI模塊,留著下次再用)
Arduino UNO R3電子積木
5V控制220V繼電器模塊
2:單片機代碼編寫
- int ledPin = 13; // LED is connected to digital pin 13
- char m;
- void setup()
- { Serial.begin(9600);
- pinMode(ledPin, OUTPUT); // 設置ledPin對應的管腳13為輸出
- }
-
- void loop() // run over and over again
- { if(Serial.available() > 0)
- {
- m=Serial.read();
- if (m == '1')
- {digitalWrite(ledPin, HIGH); //點亮小燈
- Serial.println("LED IS OPENING");}
- else if (m == '2')
- {digitalWrite(ledPin, LOW); //點亮小燈
- Serial.println("LED IS CLOSED");}
- }
- }
-
復制代碼
3:藍牙模塊調試
其中TXD連TXD;RXD連RXD。用USB轉串口工具連接到電腦上
設置主從動模式,設置藍牙名稱和密碼調試結果如上圖;
4:將繼電器和藍牙模塊連接到單片機上
5:手機APP的開發(fā)
用的E4A中文安卓編程,只學了一天就能做些簡單的APP了;
下面是代碼;
- 變量 編輯6 為 邏輯型
- 變量 文本6 為 文本型
- 變量 編輯7 為 邏輯型
- 變量 文本7 為 文本型
- 變量 編輯8 為 邏輯型
- 變量 文本8 為 文本型
- 變量 編輯9 為 邏輯型
- 變量 文本9 為 文本型
- 變量 編輯10 為 邏輯型
- 變量 文本10 為 文本型
- 變量 編輯11 為 邏輯型
- 變量 文本11 為 文本型
- 變量 編輯12 為 邏輯型
- 變量 文本12 為 文本型
- 變量 編輯13 為 邏輯型
- 變量 文本13 為 文本型
- 變量 編輯14 為 邏輯型
- 變量 文本14 為 文本型
- 變量 編輯15 為 邏輯型
- 變量 文本15 為 文本型
- 變量 編輯16 為 邏輯型
- 變量 文本16 為 文本型
- 變量 編輯17 為 邏輯型
- 變量 文本17 為 文本型
- 變量 編輯18 為 邏輯型
- 變量 文本18 為 文本型
- 變量 編輯19 為 邏輯型
- 變量 文本19 為 文本型
- 變量 編輯20 為 邏輯型
- 變量 文本20 為 文本型
- 變量 編輯21 為 邏輯型
- 變量 文本21 為 文本型
- 變量 編輯22 為 邏輯型
- 變量 文本22 為 文本型
- 變量 編輯23 為 邏輯型
- 變量 文本23 為 文本型
- 變量 臨時文本 為 通用型
- 事件 按鈕1.被單擊()
- 高級列表框1.清空項目()
- 藍牙1.搜索設備()
- 結束 事件
- 事件 藍牙1.發(fā)現(xiàn)設備(名稱 為 文本型,地址 為 文本型,是否已配對 為 邏輯型)
- 如果 是否已配對 則
- 高級列表框1.添加項目("",名稱 & "(已配對)",地址,"","")
- 否則
- 高級列表框1.添加項目("",名稱,地址,"","")
- 結束 如果
- 結束 事件
- 事件 高級列表框1.表項被單擊(項目索引 為 整數(shù)型)
- 變量 地址 為 文本型
- 地址=高級列表框1.取項目信息(項目索引)
- 標簽1.標題=地址
- 藍牙1.停止搜索()
- 藍牙1.連接設備(地址)
- 結束 事件
- 事件 按鈕2.被單擊()
- 藍牙1.斷開連接()
- 結束 事件
- 事件 按鈕3.被單擊()
- 變量 已配對設備 為 文本型(,)'已配對設備(n,0)=名稱 已配對設備(n,1)=地址 n >= 0 < 取數(shù)組下標(已配對設備,1)
- 變量 i 為 整數(shù)型
- 高級列表框1.清空項目()
- '已配對設備=藍牙1.取已配對設備()
- i=0
- 判斷循環(huán)首 i<取數(shù)組下標(已配對設備,1)
- 高級列表框1.添加項目("",已配對設備(i,0) & "(已配對)",已配對設備(i,1),"","")
- i=i+1
- 判斷循環(huán)尾
- 結束 事件
- 事件 按鈕4.被單擊()
- 如果 按鈕4.標題="打開藍牙" 則
- 藍牙1.開啟藍牙()
- 如果 藍牙1.是否已開啟()=真 則
- 標簽1.標題="藍牙已經(jīng)開啟"
- 按鈕4.標題="關閉藍牙"
- 否則
- 結束 如果
- 否則
- 藍牙1.關閉藍牙()
- 如果 藍牙1.是否已開啟()=假 則
- 標簽1.標題="藍牙已經(jīng)關閉"
- 按鈕4.標題="打開藍牙"
- 否則
- 結束 如果
- 結束 如果
- 結束 事件
- 事件 藍牙1.收到數(shù)據(jù)(數(shù)據(jù) 為 字節(jié)型(),設備名稱 為 文本型,設備地址 為 文本型)
- 標簽1.標題 = 字節(jié)到文本(數(shù)據(jù),"GBK")
- 結束 事件
- 事件 藍牙1.連接完畢(連接結果 為 邏輯型,設備名稱 為 文本型,設備地址 為 文本型,連接模式 為 整數(shù)型)
- 如果 連接結果=真 則
- 標簽1.標題="連接成功"
- 否則
- 標簽1.標題="連接失敗"
- 結束 如果
- 結束 事件
- 事件 主窗口.創(chuàng)建完畢()
- 編輯6=假
- 編輯7=假
- 編輯8=假
- 編輯9=假
- 編輯10=假
- 編輯11=假
- 編輯12=假
- 編輯13=假
- 編輯14=假
- 編輯15=假
- 編輯16=假
- 編輯17=假
- 編輯18=假
- 編輯19=假
- 編輯20=假
- 編輯21=假
- 編輯22=假
- 編輯23=假
- 結束 事件
- 事件 按鈕5.被單擊()
- 如果 編輯6=真 則
- 按鈕6.標題=編輯框1.內(nèi)容
- 文本6=編輯框2.內(nèi)容
- 編輯6=假
- 否則如果 編輯7=真 則
- 按鈕7.標題=編輯框1.內(nèi)容
- 文本7=編輯框2.內(nèi)容
- 編輯7=假
- 否則如果 編輯8=真 則
- 按鈕8.標題=編輯框1.內(nèi)容
- 文本8=編輯框2.內(nèi)容
- 編輯8=假
- 否則如果 編輯9=真 則
- 按鈕9.標題=編輯框1.內(nèi)容
- 文本9=編輯框2.內(nèi)容
- 編輯9=假
- 否則如果 編輯10=真 則
- 按鈕10.標題=編輯框1.內(nèi)容
- 文本10=編輯框2.內(nèi)容
- 編輯10=假
- 否則如果 編輯11=真 則
- 按鈕11.標題=編輯框1.內(nèi)容
- 文本11=編輯框2.內(nèi)容
- 編輯11=假
- 否則如果 編輯12=真 則
- 按鈕12.標題=編輯框1.內(nèi)容
- 文本12=編輯框2.內(nèi)容
- 編輯12=假
- 否則如果 編輯13=真 則
- 按鈕13.標題=編輯框1.內(nèi)容
- 文本13=編輯框2.內(nèi)容
- 編輯13=假
- 否則如果 編輯14=真 則
- 按鈕14.標題=編輯框1.內(nèi)容
- 文本14=編輯框2.內(nèi)容
- 編輯14=假
- 否則如果 編輯15=真 則
- 按鈕15.標題=編輯框1.內(nèi)容
- 文本15=編輯框2.內(nèi)容
- 編輯15=假
- 否則如果 編輯16=真 則
- 按鈕16.標題=編輯框1.內(nèi)容
- 文本16=編輯框2.內(nèi)容
- 編輯16=假
- 否則如果 編輯17=真 則
- 按鈕17.標題=編輯框1.內(nèi)容
- 文本17=編輯框2.內(nèi)容
- 編輯17=假
- 否則如果 編輯18=真 則
- 按鈕18.標題=編輯框1.內(nèi)容
- 文本18=編輯框2.內(nèi)容
- 編輯18=假
- 否則如果 編輯19=真 則
- 按鈕19.標題=編輯框1.內(nèi)容
- 文本19=編輯框2.內(nèi)容
- 編輯19=假
- 否則如果 編輯20=真 則
- 按鈕20.標題=編輯框1.內(nèi)容
- 文本20=編輯框2.內(nèi)容
- 編輯20=假
- 否則如果 編輯21=真 則
- 按鈕21.標題=編輯框1.內(nèi)容
- 文本21=編輯框2.內(nèi)容
- 編輯21=假
- 否則如果 編輯22=真 則
- 按鈕22.標題=編輯框1.內(nèi)容
- 文本22=編輯框2.內(nèi)容
- 編輯22=假
- 否則如果 編輯23=真 則
- 按鈕23.標題=編輯框1.內(nèi)容
- 文本23=編輯框2.內(nèi)容
- 編輯23=假
- 結束 如果
- 編輯框1.內(nèi)容=""
- 編輯框2.內(nèi)容=""
- 標簽1.標題=""
- 結束 事件
- 事件 按鈕6.被單擊()
- 藍牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)(文本6,"GBK"))
- 結束 事件
- 事件 按鈕6.被長按()
- 手機1.振動(50)
- 編輯6=真
- 標簽1.標題="按鈕6現(xiàn)在可以被編輯"
- 結束 事件
- 事件 按鈕7.被長按()
- 手機1.振動(50)
- 編輯7=真
- 標簽1.標題="按鈕7現(xiàn)在可以被編輯"
- 結束 事件
- 事件 按鈕8.被長按()
- 手機1.振動(50)
- 編輯8=真
- 標簽1.標題="按鈕8現(xiàn)在可以被編輯"
- 結束 事件
- 事件 按鈕9.被長按()
- 手機1.振動(50)
- 編輯9=真
- 標簽1.標題="按鈕9現(xiàn)在可以被編輯"
- 結束 事件
- 事件 按鈕10.被長按()
- 手機1.振動(50)
- 編輯10=真
- 標簽1.標題="按鈕10現(xiàn)在可以被編輯"
- 結束 事件
- 事件 按鈕11.被長按()
- 手機1.振動(50)
- 編輯11=真
- 標簽1.標題="按鈕11現(xiàn)在可以被編輯"
- 結束 事件
- 事件 按鈕12.被長按()
- 手機1.振動(50)
- 編輯12=真
- 標簽1.標題="按鈕12現(xiàn)在可以被編輯"
- 結束 事件
- 事件 按鈕13.被長按()
- 手機1.振動(50)
- 編輯13=真
- 標簽1.標題="按鈕13現(xiàn)在可以被編輯"
- 結束 事件
- 事件 按鈕14.被長按()
- 手機1.振動(50)
- 編輯14=真
- 標簽1.標題="按鈕14現(xiàn)在可以被編輯"
- 結束 事件
- 事件 按鈕15.被長按()
- 手機1.振動(50)
- 編輯15=真
- 標簽1.標題="按鈕15現(xiàn)在可以被編輯"
- 結束 事件
- 事件 按鈕16.被長按()
- 手機1.振動(50)
- 編輯16=真
- 標簽1.標題="按鈕16現(xiàn)在可以被編輯"
- 結束 事件
- 事件 按鈕17.被長按()
- 手機1.振動(50)
- 編輯17=真
- 標簽1.標題="按鈕17現(xiàn)在可以被編輯"
- 結束 事件
- 事件 按鈕18.被長按()
- 手機1.振動(50)
- 編輯18=真
- 標簽1.標題="按鈕18現(xiàn)在可以被編輯"
- 結束 事件
- 事件 按鈕19.被長按()
- 手機1.振動(50)
- 編輯19=真
- 標簽1.標題="按鈕19現(xiàn)在可以被編輯"
- 結束 事件
- 事件 按鈕20.被長按()
- 手機1.振動(50)
- 編輯20=真
- 標簽1.標題="按鈕20現(xiàn)在可以被編輯"
- 結束 事件
- 事件 按鈕21.被長按()
- 手機1.振動(50)
- 編輯21=真
- 標簽1.標題="按鈕21現(xiàn)在可以被編輯"
- 結束 事件
- 事件 按鈕22.被長按()
- 手機1.振動(50)
- 編輯22=真
- 標簽1.標題="按鈕22現(xiàn)在可以被編輯"
- 結束 事件
- 事件 按鈕23.被長按()
- 手機1.振動(50)
- 編輯23=真
- 標簽1.標題="按鈕23現(xiàn)在可以被編輯"
- 結束 事件
- 事件 按鈕7.被單擊()
- 藍牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)(文本7,"GBK"))
- 結束 事件
- 事件 按鈕8.被單擊()
- 藍牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)(文本8,"GBK"))
- 結束 事件
- 事件 按鈕9.被單擊()
- 藍牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)(文本9,"GBK"))
- 結束 事件
- 事件 按鈕10.被單擊()
- 藍牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)(文本10,"GBK"))
- 結束 事件
- 事件 按鈕11.被單擊()
- 藍牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)(文本11,"GBK"))
- 結束 事件
- 事件 按鈕12.被單擊()
- 藍牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)(文本12,"GBK"))
- 結束 事件
- 事件 按鈕13.被單擊()
- 藍牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)(文本13,"GBK"))
- 結束 事件
- 事件 按鈕14.被單擊()
- 藍牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)(文本14,"GBK"))
- 結束 事件
- 事件 按鈕15.被單擊()
- 藍牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)(文本15,"GBK"))
- 結束 事件
- 事件 按鈕16.被單擊()
- 藍牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)(文本16,"GBK"))
- 結束 事件
- 事件 按鈕17.被單擊()
- 藍牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)(文本17,"GBK"))
- 結束 事件
- 事件 按鈕18.被單擊()
- 藍牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)(文本18,"GBK"))
- 結束 事件
- 事件 按鈕19.被單擊()
- 藍牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)(文本19,"GBK"))
- 結束 事件
- 事件 按鈕20.被單擊()
- 藍牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)(文本20,"GBK"))
- 結束 事件
- 事件 按鈕21.被單擊()
- 藍牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)(文本21,"GBK"))
- 結束 事件
- 事件 按鈕22.被單擊()
- 藍牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)(文本22,"GBK"))
- 結束 事件
- 事件 按鈕23.被單擊()
- 藍牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)(文本23,"GBK"))
- 結束 事件
復制代碼
6:手機APP控制繼電器
按下按鈕“開燈”繼電器導通(信號燈亮)
按下“關燈”繼電器斷開(信號燈滅)
最后,將市電220V串聯(lián)接在繼電器常閉接口上,就能實現(xiàn)手機控制燈的開關了。本人親自測試了一下,藍牙有效控制距離50米左右,所以家里的所有電路都可以用手機控制了?吹竭@里,你是不是也想做一個?
可能這個工程里最難的部分要屬安卓軟件的編寫和藍牙的調試了。不過皇天不負有心人,只要你肯下功夫,你也可以做出來!
全部資料51hei下載地址:
Arduino連接HC-05模塊控制繼電器.rar
(5.56 MB, 下載次數(shù): 326)
2019-3-15 20:31 上傳
點擊文件名下載附件
|