单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1932|回复: 5
打印 上一主题 下一主题
收起左侧

Arduino连接HC-05模块蓝牙控制继电器(e4a安卓代码)

[复制链接]
跳转到指定楼层
楼主
夜深了,躺在床上,下床关灯简直就是一件折磨人的事,可是万事难不倒理工男。我可以用手机遥控宿舍的灯。说干就干,我手里有WiFi模块和蓝牙模块,想着仅仅是做一个遥控灯,就用蓝牙模块吧!1:准备工作


HC-05蓝牙模块(右边的是ESP8266WIFI模块,留着下次再用)

Arduino UNO R3电子积木


5V控制220V继电器模块

2:单片机代码编写
  1. int ledPin = 13; // LED is connected to digital pin 13
  2.     char m;  
  3. void setup()   
  4. {   Serial.begin(9600);
  5.          pinMode(ledPin, OUTPUT); // 设置ledPin对应的管脚13为输出
  6. }   
  7.       
  8. void loop()  // run over and over again  
  9. {    if(Serial.available() > 0)
  10.   {
  11.     m=Serial.read();
  12. if (m == '1')
  13. {digitalWrite(ledPin, HIGH); //点亮小灯
  14. Serial.println("LED IS OPENING");}
  15. else if (m == '2')
  16. {digitalWrite(ledPin, LOW); //点亮小灯
  17. Serial.println("LED IS CLOSED");}  
  18. }
  19. }     
  20.    
复制代码

3:蓝牙模块调试



其中TXD连TXD;RXD连RXD。用USB转串口工具连接到电脑上
设置主从动模式,设置蓝牙名称和密码调试结果如上图;

4:将继电器和蓝牙模块连接到单片机上



5:手机APP的开发

用的E4A中文安卓编程,只学了一天就能做些简单的APP了;
下面是代码;
  1.     变量 编辑6 为 逻辑型  
  2.         变量 文本6 为 文本型
  3.         变量 编辑7 为 逻辑型  
  4.         变量 文本7 为 文本型
  5.         变量 编辑8 为 逻辑型  
  6.         变量 文本8 为 文本型
  7.         变量 编辑9 为 逻辑型  
  8.         变量 文本9 为 文本型
  9.         变量 编辑10 为 逻辑型  
  10.         变量 文本10 为 文本型
  11.         变量 编辑11 为 逻辑型  
  12.         变量 文本11 为 文本型
  13.         变量 编辑12 为 逻辑型  
  14.         变量 文本12 为 文本型
  15.         变量 编辑13 为 逻辑型  
  16.         变量 文本13 为 文本型
  17.         变量 编辑14 为 逻辑型  
  18.         变量 文本14 为 文本型
  19.         变量 编辑15 为 逻辑型  
  20.         变量 文本15 为 文本型
  21.         变量 编辑16 为 逻辑型  
  22.         变量 文本16 为 文本型
  23.         变量 编辑17 为 逻辑型  
  24.         变量 文本17 为 文本型
  25.         变量 编辑18 为 逻辑型  
  26.         变量 文本18 为 文本型
  27.         变量 编辑19 为 逻辑型  
  28.         变量 文本19 为 文本型
  29.         变量 编辑20 为 逻辑型  
  30.         变量 文本20 为 文本型
  31.         变量 编辑21 为 逻辑型  
  32.         变量 文本21 为 文本型
  33.         变量 编辑22 为 逻辑型  
  34.         变量 文本22 为 文本型
  35.         变量 编辑23 为 逻辑型
  36.         变量 文本23 为 文本型
  37.         变量 临时文本 为 通用型
  38. 事件 按钮1.被单击()
  39.         高级列表框1.清空项目()
  40.         蓝牙1.搜索设备()
  41. 结束 事件

  42. 事件 蓝牙1.发现设备(名称 为 文本型,地址 为 文本型,是否已配对 为 逻辑型)
  43.         如果 是否已配对 则
  44.                 高级列表框1.添加项目("",名称 & "(已配对)",地址,"","")
  45.         否则
  46.                 高级列表框1.添加项目("",名称,地址,"","")
  47.         结束 如果
  48. 结束 事件

  49. 事件 高级列表框1.表项被单击(项目索引 为 整数型)
  50.         变量 地址 为 文本型
  51.         地址=高级列表框1.取项目信息(项目索引)
  52.         标签1.标题=地址
  53.         蓝牙1.停止搜索()
  54.         蓝牙1.连接设备(地址)
  55. 结束 事件


  56. 事件 按钮2.被单击()
  57.         蓝牙1.断开连接()
  58. 结束 事件

  59. 事件 按钮3.被单击()
  60.   变量 已配对设备 为 文本型(,)'已配对设备(n,0)=名称   已配对设备(n,1)=地址   n >= 0 < 取数组下标(已配对设备,1)
  61.         变量 i 为 整数型
  62.         高级列表框1.清空项目()
  63.         '已配对设备=蓝牙1.取已配对设备()
  64.         i=0
  65.         判断循环首 i<取数组下标(已配对设备,1)
  66.                 高级列表框1.添加项目("",已配对设备(i,0) & "(已配对)",已配对设备(i,1),"","")
  67.                 i=i+1
  68.         判断循环尾
  69. 结束 事件

  70. 事件 按钮4.被单击()
  71.         如果 按钮4.标题="打开蓝牙" 则
  72.                 蓝牙1.开启蓝牙()
  73.                 如果 蓝牙1.是否已开启()=真 则
  74.                         标签1.标题="蓝牙已经开启"
  75.                         按钮4.标题="关闭蓝牙"
  76.                         否则
  77.                 结束 如果
  78.          否则
  79.          蓝牙1.关闭蓝牙()
  80.             如果 蓝牙1.是否已开启()=假 则
  81.                         标签1.标题="蓝牙已经关闭"
  82.                         按钮4.标题="打开蓝牙"
  83.                         否则
  84.                 结束 如果
  85.         结束 如果
  86. 结束 事件
  87. 事件 蓝牙1.收到数据(数据 为 字节型(),设备名称 为 文本型,设备地址 为 文本型)
  88.         标签1.标题 = 字节到文本(数据,"GBK")
  89. 结束 事件
  90. 事件 蓝牙1.连接完毕(连接结果 为 逻辑型,设备名称 为 文本型,设备地址 为 文本型,连接模式 为 整数型)
  91.         如果 连接结果=真 则
  92.     标签1.标题="连接成功"
  93.         否则
  94.         标签1.标题="连接失败"
  95.         结束 如果
  96. 结束 事件

  97. 事件 主窗口.创建完毕()
  98.         编辑6=假
  99.         编辑7=假
  100.         编辑8=假
  101.         编辑9=假
  102.         编辑10=假
  103.         编辑11=假
  104.         编辑12=假
  105.         编辑13=假
  106.         编辑14=假
  107.         编辑15=假
  108.         编辑16=假
  109.         编辑17=假
  110.         编辑18=假
  111.         编辑19=假
  112.         编辑20=假
  113.         编辑21=假
  114.         编辑22=假
  115.         编辑23=假
  116. 结束 事件

  117. 事件 按钮5.被单击()
  118.         如果 编辑6=真 则
  119.                 按钮6.标题=编辑框1.内容
  120.                 文本6=编辑框2.内容
  121.                 编辑6=假
  122.         否则如果 编辑7=真 则
  123.                 按钮7.标题=编辑框1.内容
  124.                 文本7=编辑框2.内容
  125.                 编辑7=假
  126.         否则如果 编辑8=真 则
  127.                 按钮8.标题=编辑框1.内容
  128.                 文本8=编辑框2.内容
  129.                 编辑8=假
  130.         否则如果 编辑9=真 则
  131.                 按钮9.标题=编辑框1.内容
  132.                 文本9=编辑框2.内容
  133.                 编辑9=假
  134.         否则如果 编辑10=真 则
  135.                 按钮10.标题=编辑框1.内容
  136.                 文本10=编辑框2.内容
  137.                 编辑10=假
  138.         否则如果 编辑11=真 则
  139.                 按钮11.标题=编辑框1.内容
  140.                 文本11=编辑框2.内容
  141.                 编辑11=假
  142.         否则如果 编辑12=真 则
  143.                 按钮12.标题=编辑框1.内容
  144.                 文本12=编辑框2.内容
  145.                 编辑12=假
  146.         否则如果 编辑13=真 则
  147.                 按钮13.标题=编辑框1.内容
  148.                 文本13=编辑框2.内容
  149.                 编辑13=假
  150.         否则如果 编辑14=真 则
  151.                 按钮14.标题=编辑框1.内容
  152.                 文本14=编辑框2.内容
  153.                 编辑14=假
  154.         否则如果 编辑15=真 则
  155.                 按钮15.标题=编辑框1.内容
  156.                 文本15=编辑框2.内容
  157.                 编辑15=假
  158.         否则如果 编辑16=真 则
  159.                 按钮16.标题=编辑框1.内容
  160.                 文本16=编辑框2.内容
  161.                 编辑16=假
  162.         否则如果 编辑17=真 则
  163.                 按钮17.标题=编辑框1.内容
  164.                 文本17=编辑框2.内容
  165.                 编辑17=假
  166.         否则如果 编辑18=真 则
  167.                 按钮18.标题=编辑框1.内容
  168.                 文本18=编辑框2.内容
  169.                 编辑18=假
  170.         否则如果 编辑19=真 则
  171.                 按钮19.标题=编辑框1.内容
  172.                 文本19=编辑框2.内容
  173.                 编辑19=假
  174.         否则如果 编辑20=真 则
  175.                 按钮20.标题=编辑框1.内容
  176.                 文本20=编辑框2.内容
  177.                 编辑20=假
  178.         否则如果 编辑21=真 则
  179.                 按钮21.标题=编辑框1.内容
  180.                 文本21=编辑框2.内容
  181.                 编辑21=假
  182.         否则如果 编辑22=真 则
  183.                 按钮22.标题=编辑框1.内容
  184.                 文本22=编辑框2.内容
  185.                 编辑22=假
  186.                 否则如果 编辑23=真 则
  187.                 按钮23.标题=编辑框1.内容
  188.                 文本23=编辑框2.内容
  189.                 编辑23=假
  190.         结束 如果
  191.         编辑框1.内容=""
  192.         编辑框2.内容=""
  193.         标签1.标题=""
  194. 结束 事件

  195. 事件 按钮6.被单击()
  196.         蓝牙1.发送数据(文本到字节(文本6,"GBK"))
  197. 结束 事件
  198. 事件 按钮6.被长按()
  199.     手机1.振动(50)        
  200.         编辑6=真
  201.         标签1.标题="按钮6现在可以被编辑"
  202. 结束 事件
  203. 事件 按钮7.被长按()
  204.         手机1.振动(50)        
  205.         编辑7=真
  206.         标签1.标题="按钮7现在可以被编辑"
  207. 结束 事件
  208. 事件 按钮8.被长按()
  209.         手机1.振动(50)        
  210.         编辑8=真
  211.         标签1.标题="按钮8现在可以被编辑"
  212. 结束 事件
  213. 事件 按钮9.被长按()
  214.         手机1.振动(50)        
  215.         编辑9=真
  216.         标签1.标题="按钮9现在可以被编辑"
  217. 结束 事件
  218. 事件 按钮10.被长按()
  219.         手机1.振动(50)        
  220.         编辑10=真
  221.         标签1.标题="按钮10现在可以被编辑"
  222. 结束 事件
  223. 事件 按钮11.被长按()
  224.         手机1.振动(50)        
  225.         编辑11=真
  226.         标签1.标题="按钮11现在可以被编辑"
  227. 结束 事件
  228. 事件 按钮12.被长按()
  229.         手机1.振动(50)        
  230.         编辑12=真
  231.         标签1.标题="按钮12现在可以被编辑"
  232. 结束 事件
  233. 事件 按钮13.被长按()
  234.         手机1.振动(50)        
  235.         编辑13=真
  236.         标签1.标题="按钮13现在可以被编辑"
  237. 结束 事件
  238. 事件 按钮14.被长按()
  239.         手机1.振动(50)        
  240.         编辑14=真
  241.         标签1.标题="按钮14现在可以被编辑"
  242. 结束 事件
  243. 事件 按钮15.被长按()
  244.         手机1.振动(50)        
  245.         编辑15=真
  246.         标签1.标题="按钮15现在可以被编辑"
  247. 结束 事件
  248. 事件 按钮16.被长按()
  249.         手机1.振动(50)        
  250.         编辑16=真
  251.         标签1.标题="按钮16现在可以被编辑"
  252. 结束 事件
  253. 事件 按钮17.被长按()
  254.         手机1.振动(50)        
  255.         编辑17=真
  256.         标签1.标题="按钮17现在可以被编辑"
  257. 结束 事件
  258. 事件 按钮18.被长按()
  259.         手机1.振动(50)        
  260.         编辑18=真
  261.         标签1.标题="按钮18现在可以被编辑"
  262. 结束 事件
  263. 事件 按钮19.被长按()
  264.         手机1.振动(50)        
  265.         编辑19=真
  266.         标签1.标题="按钮19现在可以被编辑"
  267. 结束 事件
  268. 事件 按钮20.被长按()
  269.     手机1.振动(50)        
  270.         编辑20=真
  271.         标签1.标题="按钮20现在可以被编辑"
  272. 结束 事件
  273. 事件 按钮21.被长按()
  274.         手机1.振动(50)        
  275.         编辑21=真
  276.         标签1.标题="按钮21现在可以被编辑"
  277. 结束 事件
  278. 事件 按钮22.被长按()
  279.         手机1.振动(50)        
  280.         编辑22=真
  281.         标签1.标题="按钮22现在可以被编辑"
  282. 结束 事件
  283. 事件 按钮23.被长按()
  284.         手机1.振动(50)        
  285.         编辑23=真
  286.         标签1.标题="按钮23现在可以被编辑"
  287. 结束 事件

  288. 事件 按钮7.被单击()
  289.         蓝牙1.发送数据(文本到字节(文本7,"GBK"))
  290. 结束 事件
  291. 事件 按钮8.被单击()
  292.         蓝牙1.发送数据(文本到字节(文本8,"GBK"))
  293. 结束 事件
  294. 事件 按钮9.被单击()
  295.         蓝牙1.发送数据(文本到字节(文本9,"GBK"))
  296. 结束 事件
  297. 事件 按钮10.被单击()
  298.         蓝牙1.发送数据(文本到字节(文本10,"GBK"))
  299. 结束 事件
  300. 事件 按钮11.被单击()
  301.         蓝牙1.发送数据(文本到字节(文本11,"GBK"))
  302. 结束 事件
  303. 事件 按钮12.被单击()
  304.         蓝牙1.发送数据(文本到字节(文本12,"GBK"))
  305. 结束 事件
  306. 事件 按钮13.被单击()
  307.         蓝牙1.发送数据(文本到字节(文本13,"GBK"))
  308. 结束 事件
  309. 事件 按钮14.被单击()
  310.         蓝牙1.发送数据(文本到字节(文本14,"GBK"))
  311. 结束 事件
  312. 事件 按钮15.被单击()
  313.         蓝牙1.发送数据(文本到字节(文本15,"GBK"))
  314. 结束 事件
  315. 事件 按钮16.被单击()
  316.         蓝牙1.发送数据(文本到字节(文本16,"GBK"))
  317. 结束 事件
  318. 事件 按钮17.被单击()
  319.         蓝牙1.发送数据(文本到字节(文本17,"GBK"))
  320. 结束 事件
  321. 事件 按钮18.被单击()
  322.         蓝牙1.发送数据(文本到字节(文本18,"GBK"))
  323. 结束 事件
  324. 事件 按钮19.被单击()
  325.         蓝牙1.发送数据(文本到字节(文本19,"GBK"))
  326. 结束 事件
  327. 事件 按钮20.被单击()
  328.         蓝牙1.发送数据(文本到字节(文本20,"GBK"))
  329. 结束 事件
  330. 事件 按钮21.被单击()
  331.         蓝牙1.发送数据(文本到字节(文本21,"GBK"))
  332. 结束 事件
  333. 事件 按钮22.被单击()
  334.         蓝牙1.发送数据(文本到字节(文本22,"GBK"))
  335. 结束 事件
  336. 事件 按钮23.被单击()
  337.         蓝牙1.发送数据(文本到字节(文本23,"GBK"))
  338. 结束 事件
复制代码

6:手机APP控制继电器


按下按钮“开灯”继电器导通(信号灯亮)

按下“关灯”继电器断开(信号灯灭)

最后,将市电220V串联接在继电器常闭接口上,就能实现手机控制灯的开关了。本人亲自测试了一下,蓝牙有效控制距离50米左右,所以家里的所有电路都可以用手机控制了。看到这里,你是不是也想做一个?
可能这个工程里最难的部分要属安卓软件的编写和蓝牙的调试了。不过皇天不负有心人,只要你肯下功夫,你也可以做出来!



全部资料51hei下载地址:
Arduino连接HC-05模块控制继电器.rar (5.56 MB, 下载次数: 77)

评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

沙发
hejianjun 发表于 2019-3-25 17:21 | 只看该作者
你好,我用51单片机,想通过蓝牙将对射式传感器上触发次数传送到手机端显示,我现在搞不懂单片机程序上怎么设置蓝牙模块。非常困惑,如果可以能否指点一下?
无效楼层,该帖已经被删除
无效楼层,该帖已经被删除
5#
s6155555s 发表于 2019-7-11 22:11 | 只看该作者
非常好!太感谢了!!!!
6#
SDLIUYUE 发表于 2019-8-10 08:58 | 只看该作者
好东西,谢谢分享,学习下
7#
zhigao1986 发表于 2019-8-12 14:25 | 只看该作者
运行了,搜索不到设备,怎么回事?
8#
eagler8 发表于 2019-8-12 20:29 | 只看该作者

好东西,谢谢分享,学习下
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

|手机版|小黑屋|单片机论坛 |51Hei单片机16群 联系QQ:125739409;技术交流QQ群7344883

Powered by 单片机教程网

快速回复 返回顶部 返回列表
pc蛋蛋官方网站 pc蛋蛋平台 pc蛋蛋网址 pc蛋蛋平台 pc蛋蛋注册 pc蛋蛋官方网址 pc蛋蛋网址 pc蛋蛋平台 pc蛋蛋平台 pc蛋蛋注册