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