整体说明

本篇内容主要记录了JDY-23蓝牙模块的调试过程。设计了JDY-23蓝牙模块的电路,以及独立的(有参考别人的源码)设计手机APP的过程。

工欲善其事,必先利其器(JDY23蓝牙模块的购买)

我在购买中因为前期的一些了解不够详细,闹了一些笑话。一方面是如果需要IO控制功能,需要和厂家沟通好,要带“FFE2”功能的模块,因为,默认发货的是不带“FFE2”功能的。另外就是,技术表示,这款蓝牙是没有PWM功能的,这个到不影响开发板的使用,也就兼容的那块电路浪费了而已。

在这里插入图片描述
在这里插入图片描述

电路原理图的设计

原理图的设计

原理图参考了用户手册上面的,输入部分没有加上拉电阻,这一块还是感觉不太好,如果预留的话,也可以不焊接,这里确实是考虑不周全了。

在这里插入图片描述
下面是我用立创EDA设计的原理图:

在这里插入图片描述

PCB的设计

这个电路并不复杂,主要是软件的一些功能还不够熟悉,多花了点时间。其中,为了信号效果,把蓝牙天线底下留空。左侧的PWM兼容设计用不到了,模块不支持这个功能,用的这个按键不好使,不确定是我用的品控不好,还是这个按键不好,不过,作为开发板的话,用自锁类的按键,会比较方便调试。我这个按键不推荐使用。

在这里插入图片描述

手机APP的设计

主窗口设计

主窗口主要只负责连接蓝牙等一些基础的工作。

在这里插入图片描述
这段代码是用来退出软件,在其他窗口里面,是用来返回主窗口用的。

在这里插入图片描述

这段代码是切换三个窗口,三个窗口里面都有这段代码,原则上是不需要切换到当前窗口的,可以屏蔽掉。

在这里插入图片描述
上面这个需要调用到“公用模块”里面的内容,所以“公用模块.XX”的格式,变量也同理。

在这里插入图片描述
给蓝牙初始化,我的测试中,如果不开定位,是搜不到蓝牙的,但是这个“置可被发现”倒是显得可有可无。一般来说,刚打开软件的时候,不太可能连接上蓝牙(我这里退出软件后会释放蓝牙,可以看前面退出的代码),所以就认为蓝牙的连接状态为“0”。

在这里插入图片描述
因为蓝牙是在这个窗口里面建立的,他这个调用其他窗口的组件,不像易语言一样方便,这块我也不是捋的很清楚,就需要这样保存一下,后面才能在别的窗口调用这里的(BLE)蓝牙组件。

在这里插入图片描述
组件位置初始化就不多说了,就是因为要适配不同的手机屏幕(当然我没做大量的测试),将各个组件的尺寸和手机屏幕的尺寸相关联。主要功能都在子程序里面,这样写就是为了看起来整齐一点。

在这里插入图片描述
搜索蓝牙那个按钮,就是开始搜索的时候,同时打开定时器,定时10秒,到了时间就停止,同时呢,也可以主动再按下按钮停止搜索。

在这里插入图片描述
添加蓝牙设备到列表框,这块就是看的例程复制的,没什么好说的。

在这里插入图片描述
这里是连接蓝牙,以及保存上一次连接蓝牙地址,如果有保存的蓝牙地址,可以通过“直连蓝牙”按钮,直接连接。有一段我给忘了,如果到连接蓝牙这一步骤的话,其实是没必要再去搜索了。

在这里插入图片描述
获取蓝牙不同通道的参数,因为我只焊接了一块,不确定通道后面的参数是不是一致,所以为了保险起见,根据部分确定的特征,获取了一下当前连接蓝牙的通道特征。

在这里插入图片描述
更新蓝牙连接状态,这样可以避免在未连接蓝牙的情况下,进行一些连接蓝牙后的操作,出现不必要的BUG。

在这里插入图片描述
因为蓝牙模块在主窗口,所以数据要在主窗口代码里面先处理一下。由于IO数据和串口透传数据,给手机端的都是用一个通道,所以这里简单区分了一下,但也有误判的情况。而且这里和手册上面说的不一样,有一些出入。

在这里插入图片描述

IO控制窗口

IO控制窗口主要是实现了控制7个引脚的高低电平,同时主动获取8个引脚的电平高低,其中有两个是中断引脚,是下降沿触发的方式,为了做出区别,把标签颜色变红作为提示。

在这里插入图片描述
读取的时间间隔可以存储读取,可以保留最后一次设置的时间间隔(单位:ms)。

在这里插入图片描述

在这里插入图片描述
控制输出引脚的电平,需要调用公用模块,这里仅以LED1举例,其它同理。

在这里插入图片描述
在这里插入图片描述
主动获取输入引脚的电平状态。

在这里插入图片描述
中断方式获取其中两个引脚的电平状态,这里对应在手册上面的数据有误。

在这里插入图片描述

串口透传功能

将手机发送的数据,通过蓝牙的串口输出,不支持校验。

在这里插入图片描述
保留历史数据和选项,避免用户重复选择。

在这里插入图片描述
根据选择框的选择,调整发送数据的格式,以及在窗口中显示的样式。

在这里插入图片描述
处理接收到的数据,根据选择框的选择,添加到窗口中。

在这里插入图片描述

在这里插入图片描述
调整发送数据添加到窗口的格式。

在这里插入图片描述
快捷清除窗口数据。

在这里插入图片描述
窗口更新光标位置,实现数据滚动的效果。

在这里插入图片描述

视频及开源资料

简单录制了一下使用的视频: B站
文件在立创开源里面分享了: 立创开源

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐