找回密码
 立即注册

QQ登录

只需一步,快速开始

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

可用的E4A蓝牙模块与手机通讯APP源代码及51单片机程序

  [复制链接]
跳转到指定楼层
楼主
在51hei论坛里看见有好几个用E4A做蓝牙模块与手机通讯的,下载看看,连蓝牙都搜索不到,为此某为此特意献上一款可用的E4A源码以及51单片机源码,特以此供诸位检查及参考,制作多有随意,还请诸位君不要见怪为是!

小车做得有点随意,诸位君可不要介意



前言:此款蓝牙APP为自己在别人的基础上改进而来,主要特点是数据双向传输,单片机端可实现手机控制PWM占空比大小,从而实现无极调速,前后左右等等操作,可以回传单片机端的信号到手机上,只不过偶尔会丢字节,会易安卓的可以多多琢磨。至于说单片机的硬件怎么连接这个就不再多说,可以参考代码来实现硬件的连接!

蓝牙设备显示,搜索到自己的蓝牙后,点击即可连接。
有两种模式切换,超声波模式或蓝牙模式,当然无非就是单片机端怎么编程了!其实每一个按钮都发送一串唯一的数据,在此不累赘!
蓝牙模块可以回传数据到App上,
只不过偶尔会丢字节,这个不知为何,
若有大神,还请赐教!

//==========E4AAPK蓝牙代===============================================================//
变量 分割数据 为 文本型
变量 启动时间 为 长整数型
    变量 模式 为 整数型
    变量 前灯 为 整数型
事件 按钮6.被单击()
        判断 按钮6.标题
        分支 "搜索设备"
            列表框1.清空项目()
            蓝牙1.搜索设备() '搜索设备
            弹出提示("正在搜索")   
        分支 "断开连接"
        蓝牙1.断开连接() '退出处理,释放资源,结束内部处理线程
        丰富文本框1.内容=""
        编辑框1.内容=""
        编辑框2.内容=""
        速度调节.位置=50
        按钮6.标题="搜索设备"
    结束 判断
        
结束 事件

事件 主窗口.按下某键(键代码 为 整数型,传址 屏蔽 为 逻辑型)
        如果 键代码 = 返回键 则
        如果 取启动时间() - 启动时间 >2000 则
            弹出提示("再按一次退出程序")
            启动时间 = 取启动时间()
        否则
            结束程序()
        结束 如果
    结束 如果
结束 事件

事件 主窗口.创建完毕()
    列表框1.字体大小 = 6
    标签1.背景颜色=无色   
    列表框1.背景颜色=绿色
    模式=0   
    前灯=0
    蓝牙1.是否存在()
    判断 蓝牙1.是否存在()
        分支 假
            弹出提示("没有检测到蓝牙设备,程序将关闭")
            结束程序()
        分支 真
            判断 蓝牙1.是否已开启()
                分支 假
                    蓝牙1.开启蓝牙()
            结束 判断
            
    结束 判断
    保存窗口("主窗口",本对象) '本对象是当前窗口
                    
    保存窗口("窗口1",创建 窗口1)   
结束 事件

事件 蓝牙1.发现设备(设备名称 为 文本型,设备地址 为 文本型,是否已配对 为 逻辑型)
    列表框1.添加项目(设备名称 & "/" & 设备地址 & "/" & 是否已配对)   
结束 事件

事件 列表框1.表项被单击(项目索引 为 整数型)
    变量 设备信息 为 文本型
    变量 文本数组 为 文本型()
    变量 设备地址 为 文本型
    设备信息 = 列表框1.取项目内容(项目索引)
    文本数组 = 分割文本(设备信息,"/")
    设备地址 = 文本数组(1)
    弹出提示(设备地址)
    蓝牙1.连接设备(设备地址)         '连接设备 我看了有些例程是没有的   
    弹出提示("正在连接")

    蓝牙1.停止搜索()
   
结束 事件

事件 蓝牙1.连接完毕(连接结果 为 逻辑型,设备名称 为 文本型,设备地址 为 文本型,连接模式 为 整数型)
    变量 设备信息 为 文本型
    变量 文本数组 为 文本型()
    如果 连接结果 = 真 则
        标签1.标题 = "已连接:" & 设备名称 & "-" & 设备地址
        按钮6.标题="断开连接"   
        弹出提示("连接成功")
    否则
        弹出提示("连接失败")
        标签1.标题 = "已断开"
        按钮6.标题="搜索设备"
    结束 如果   
结束 事件

事件 蓝牙1.蓝牙设置完毕(设置结果 为 整数型)
    判断 设置结果
        分支 1 '开启蓝牙
            弹出提示("蓝牙已开启")
            蓝牙1.置可被发现() '置可被发现
        分支 2    '不开启蓝牙
            信息框("信息","蓝牙未被开启,程序将退出!","确定")
            结束程序()
        分支 3    '置可被发现
            弹出提示("蓝牙已设置为可被发现")
            蓝牙1.置工作模式(2) '蓝牙聊天模式
        分支 4    '不置可被发现
            信息框("信息","蓝牙未被设置为可被发现,程序将退出!","确定")
            结束程序()
    结束 判断   
结束 事件

事件 按钮1.被按下(横坐标 为 整数型,纵坐标 为 整数型)
        蓝牙1.发送数据(文本到字节("@lefth","GBK"))
结束 事件
事件 按钮1.被弹起(横坐标 为 整数型,纵坐标 为 整数型)
    蓝牙1.发送数据(文本到字节("@stoph","GBK"))
结束 事件

事件 按钮2.被按下(横坐标 为 整数型,纵坐标 为 整数型)
        蓝牙1.发送数据(文本到字节("@ahead","GBK"))
结束 事件
事件 按钮2.被弹起(横坐标 为 整数型,纵坐标 为 整数型)
    蓝牙1.发送数据(文本到字节("@stoph","GBK"))
结束 事件

事件 按钮3.被按下(横坐标 为 整数型,纵坐标 为 整数型)
        蓝牙1.发送数据(文本到字节("@right","GBK"))
结束 事件
事件 按钮3.被弹起(横坐标 为 整数型,纵坐标 为 整数型)
    蓝牙1.发送数据(文本到字节("@stoph","GBK"))
结束 事件

事件 按钮4.被按下(横坐标 为 整数型,纵坐标 为 整数型)
        蓝牙1.发送数据(文本到字节("@backh","GBK"))
结束 事件
事件 按钮4.被弹起(横坐标 为 整数型,纵坐标 为 整数型)
    蓝牙1.发送数据(文本到字节("@stoph","GBK"))
结束 事件

事件 按钮5.被单击()
        蓝牙1.发送数据(文本到字节("@stoph","GBK"))
结束 事件


事件 按钮7.被单击()
     蓝牙1.发送数据(文本到字节("@sgetd","GBK"))
     
结束 事件
事件 按钮9.被单击()
    判断 前灯
        分支 0
            前灯=1
            蓝牙1.发送数据(文本到字节("@ligh1","GBK"))
            按钮9.标题="前灯开"
        分支 1
            前灯=0
            蓝牙1.发送数据(文本到字节("@ligh0","GBK"))
            按钮9.标题="前灯关"
    结束 判断   
   
结束 事件
事件 按钮10.被按下(横坐标 为 整数型,纵坐标 为 整数型)
    蓝牙1.发送数据(文本到字节("@load0","GBK"))
结束 事件
事件 按钮10.被弹起(横坐标 为 整数型,纵坐标 为 整数型)
    蓝牙1.发送数据(文本到字节("@load1","GBK"))
结束 事件
事件 按钮8.被单击()
   
    判断 模式
        分支 0
            按钮8.标题="蓝牙模式"
            蓝牙1.发送数据(文本到字节("@mosh1","GBK"))
            模式=1
        分支 1
            按钮8.标题="超声波模式"
            蓝牙1.发送数据(文本到字节("@mosh0","GBK"))
            模式=0
    结束 判断
结束 事件

事件 速度调节.位置被改变(位置 为 整数型)
    如果 位置>9 且 位置<100 则  
    蓝牙1.发送数据(文本到字节("@spe"&整数到文本(位置),"GBK"))
    结束 如果
结束 事件
事件 蓝牙1.收到数据(数据 为 字节型(),设备名称 为 文本型,设备地址 为 文本型)
    变量 收到数据 为 文本型
   
    分割数据=字节到文本(数据,"GBK")
   
    丰富文本框1.内容 =丰富文本框1.内容 & "\r\n " & 字节到文本(数据,"GBK")
    丰富文本框1.置光标位置(取文本长度(丰富文本框1.内容))
   
     如果 寻找文本(分割数据,"rp",0) >0 则
'    标签2.标题=取文本中间(分割数据,2 ,4) &"m/s"
'    结束 如果
'    如果 寻找文本(分割数据,"dt",0) >= 0 则
'    标签3.标题=取文本中间(分割数据,2 ,4) &"cm"
          如果 寻找文本(分割数据,"dt",0) >0 则
          编辑框1.内容=取指定文本2(分割数据,"dt","cm")
          结束 如果
          如果 寻找文本(分割数据,"sp",0) >0 则
        编辑框2.内容=取指定文本2(分割数据,"sp","ms")
        结束 如果
     '标签2.标题="速度:"&分割数据 &"m/s"
'    否则如果 寻找文本(分割数据,"dt",0) >= 0 则
'     分割数据= 取文本右边(分割数据,3)
'    标签3.标题="距离:"&分割数据 &"cm"
    结束 如果
   
'=====================以下是接收单片机发送过来的16进制HEX数据的方法=======================   
'    变量 计次 为 整数型
'    判断循环首 计次 < 取数组成员数(数据)
'        编辑框1.内容 = 编辑框1.内容 & "  " & 到十六进制(数据(计次))
'        计次 = 计次 + 1
'    判断循环尾   
结束 事件

'事件 编辑框1.内容被改变(新内容 为 文本型)
'   
'结束 事件

事件 丰富文本框1.内容被改变(新内容 为 文本型)
   
结束 事件

事件 标签1.被单击()
   
结束 事件

事件 标签2.被单击()
   
结束 事件


事件 按钮11.被单击()
    如果 读取窗口("窗口1")=空 则
        保存窗口("窗口1",创建 窗口1)
    结束 如果
    切换窗口(读取窗口("窗口1"))
结束 事件


全部资料51hei下载地址:
蓝牙小车apk、51单片机源代码.rar (1.24 MB, 下载次数: 541)

评分

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

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏16 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:577423 发表于 2019-7-31 10:08 | 只看该作者
终于看到中文编程的了,希望看到更多中文编程出现。为初学者(不懂英文)服务
回复

使用道具 举报

板凳
ID:156494 发表于 2019-7-31 11:32 来自手机 | 只看该作者
越南超级人类 发表于 2019-7-31 10:08
终于看到中文编程的了,希望看到更多中文编程出现。为初学者(不懂英文)服务

确实,感谢创造中文编程的大神,支持!
回复

使用道具 举报

地板
ID:5993 发表于 2019-8-5 18:39 | 只看该作者
终于看到中文编程的了,希望看到更多中文编程出现。为初学者(不懂英文)服务
回复

使用道具 举报

5#
ID:608128 发表于 2019-9-7 11:01 | 只看该作者
很完整,值得下载学习
回复

使用道具 举报

6#
ID:637146 发表于 2019-12-8 10:59 | 只看该作者
谢谢共享。。。。。。。。。
回复

使用道具 举报

7#
ID:191376 发表于 2020-2-29 22:48 | 只看该作者
学习了 正感兴趣
回复

使用道具 举报

8#
ID:250820 发表于 2020-3-4 16:10 | 只看该作者

终于看到中文编程的了,希望看到更多中文编程出现。为初学者(不懂英文)服务
回复

使用道具 举报

9#
ID:527324 发表于 2020-4-4 00:37 来自手机 | 只看该作者
好东西,正在到处找,不过也要挣点黑币啊
回复

使用道具 举报

10#
ID:709238 发表于 2020-4-9 17:53 | 只看该作者
值得下载学习
回复

使用道具 举报

11#
ID:364328 发表于 2020-4-13 21:33 | 只看该作者
请问UP有没有E4A,我的说是免费版,提示那个,可有偿请教您,我也是要实现PWM调速,
回复

使用道具 举报

12#
ID:738502 发表于 2020-5-26 12:22 | 只看该作者
我的HC05模块连接手机蓝牙失败,请问您知道原因吗?
回复

使用道具 举报

13#
ID:104994 发表于 2020-7-2 10:22 | 只看该作者
非常感谢大佬分享,非常有用!
回复

使用道具 举报

14#
ID:396065 发表于 2020-9-15 20:54 | 只看该作者
蓝牙小车apk、51单片机源代码.rar (1.24 MB, 下载次数: 230)
回复

使用道具 举报

15#
ID:65956 发表于 2020-9-18 08:32 | 只看该作者
看似不错,下载下来学习一下,谢谢分享
回复

使用道具 举报

16#
ID:834441 发表于 2020-10-30 11:03 | 只看该作者
中文编程厉害了,膜拜
回复

使用道具 举报

17#
ID:859420 发表于 2020-12-13 11:41 | 只看该作者
gaojiaxin123 发表于 2020-5-26 12:22
我的HC05模块连接手机蓝牙失败,请问您知道原因吗?

请问您连接不上蓝牙模块问题解决了吗
回复

使用道具 举报

18#
ID:156494 发表于 2021-3-29 22:33 | 只看该作者
qwthh 发表于 2020-4-13 21:33
请问UP有没有E4A,我的说是免费版,提示那个,可有偿请教您,我也是要实现PWM调速,

E4A可以免费使用,但是功能和服务肯定没有购买版权的好
回复

使用道具 举报

19#
ID:156494 发表于 2021-3-29 22:36 | 只看该作者
gaojiaxin123 发表于 2020-5-26 12:22
我的HC05模块连接手机蓝牙失败,请问您知道原因吗?

用手机链接蓝牙模块,你的蓝牙模块先和手机进行配对好才能连,你要知道蓝牙的初始密码
回复

使用道具 举报

20#
ID:156494 发表于 2021-3-29 22:37 | 只看该作者
DK.mo 发表于 2020-12-13 11:41
请问您连接不上蓝牙模块问题解决了吗

你也链接不上吗
回复

使用道具 举报

21#
ID:405261 发表于 2021-4-20 13:18 | 只看该作者
APP写的非常好
回复

使用道具 举报

22#
ID:581038 发表于 2022-2-18 10:12 | 只看该作者
这东西好,有学习价值,某一个宝上好像要花钱买的。
回复

使用道具 举报

23#
ID:1003226 发表于 2022-2-22 13:26 | 只看该作者
很完整,值得下载学习
回复

使用道具 举报

24#
ID:258676 发表于 2022-3-11 09:50 | 只看该作者
你好 能不能用这个蓝牙
回复

使用道具 举报

25#
ID:577622 发表于 2022-3-25 10:29 | 只看该作者
这个中文编程牛啊。
回复

使用道具 举报

26#
ID:1115148 发表于 2024-4-2 15:04 | 只看该作者
终于看到中文编程的了,希望看到更多中文编程出现,厉害了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表