HC-05蓝牙串行配置

简介:HC-05蓝牙串行配置

在一些Arduino项目中使用Android设备和HC-05 Bluetooth SPP模块时,我想检查和更改HC-05波特率和其他参数,而无需连接PC USB端口。结果就是这样。

HC-05模块通过蓝牙串行端口配置文件(SPP)连接串口和蓝牙设备。Arduino社区中的许多人已经描述了如何配置和使用这些模块,包括几个Instructables.使用HC-05通常需要初始硬接线串行连接。大多数操作它描述了使用某种usb到串行适配器,通常是一个Arduino板,从PC访问模块的“命令”模式。我宁愿有一个小部件,我可以把HC-05插进去,然后继续。

这可能包括:

    1. 一幅素描…
      • 立即指示当前的串行比特率(这可能是您所需要的全部)
      • 检测当前速率并开始串行通信
      • 通过蓝牙SPP收集用户输入
      • 信号按HC-05命令按钮
      • 向模块发送命令
      • 如有需要,接收HC-05的回复
      • 释放命令按钮的信号
      • 通过BT连接回复用户
    2. 即用设备
      • 可选的便利
      • 非常低的成本
      • 非常小
      • 准备插入HC-05模块
      • 由microUSB电缆供电
      • 使用一个Digispark-喜欢有ATtiny85单片机的电路板

    我已经在UNO克隆和Digispark克隆上测试了草图。它可能在其他Arduino ish板上工作,这些板在引脚0上实现了带有RX的“串行”类。

    供应

    可选:用于构建小部件的部件——稍后列出

    第一步:试试看

    在考虑开始焊接之前,先试一下草图。

    我一直在叫它baudat因为它涉及波特在命令这也归功于ssr。埃米尔Baudot。

    如果你正在读这篇文章,你可能会有类似HC-05和类似于UNO R3的“普通”Arduino ish ATmega328板,或者没有太大的不同。草图在UNO R3克隆上进行了测试。我希望它能在实现串行类的其他板上工作,并使用引脚0进行串行接收。或者编辑serialRxPin。

    • 下载草图,将其上传到您的板,并打开Serial Monitor窗口。
    • 您应该能够在初始噪声中读取连接比特率。现在知道连接速度,但是baudat不喜欢。
    • 在它上面键入一些东西。它应该检测到比特率并继续。在键盘上随机敲击可能会起作用。“U”像x0101010101x一样穿过电线,这是无误的。任何两个或两个以上的常用打印字符(7位,不是“扩展”)都会被发送在一起(line-at-a-time vs character-at-a-time)应该有效。
    • 尝试以不同的速度连接监视器。HC-05模块支持的通用速度应该可以工作。baudat不能识别非常慢、非常快或“奇怪”的速度,比如14400 bps。
    • 尝试一下交互,看看如果它连接了,它会发送什么到您的HC-05。

    步骤2:示例:提示的基本配置

    它应该是这样的:

    [[示例baudat会话通过串行监视器]]

    噪音噪音噪音# # # # # # # #

    这是57600个基点。键入一些东西。“U”是健壮的。

    噪音噪音噪音# # # # # # # #

    波特HC-05配置工具

    设置BT名称、“极轴”和串行比特率?[y/n]y

    设置蓝牙设备名称?[y / n] y

    新名字:My_New_BT_Widget

    设置BT连接状态极性?[y/n]y

    连接时,设置状态引脚LOW(0)或HIGH(1)?(0/1) 0

    支持的串行波特率:a:500000 b:230400 c:115200 d:57600 e:38400 f:19200 g:9600 h:4800 i:2400选择新速度:[a-i]a

    ====新参数===BT名称:My_New_BT_小部件连接状态信号电平:0波特:115200

    准备按HC-05命令模式按钮…LED灯时按;当LED闪烁时释放。

    准备好的[任意键]

    去……[[LED灯固体;AT+NAME=My_New_BT_Widget AT+POLAR=1,0 AT+UART=115200,0,0 AT+RESET [[HC-05 RESET into 38.4kbps command mode]] AT+RESET [[LED闪光灯;您将释放命令按钮]]AT+RESET[[发送在38.4kbps;将HC-05重置为配置速率的通信模式]][[重复启动]]

    这项试验实际上没有任何作用,因为循环中没有HC-05。当连接到baudat通过蓝牙:

    • 在命令模式下,您将看不到发送到模块的命令
    • reset可能会或者不会杀死蓝牙连接,这取决于HC-05固件版本
      • 例如,HC-05固件版本3.0-20170601可以在不中断BT连接的情况下更改串行比特率。

    还是……

    步骤3:示例:任意AT命令

    要输入任意AT命令,请拒绝提示配置:

    [[启动…]]

    设置BT名称、“极轴”和串行比特率?[y/n]n

    输入命令:+版本

    准备按HC-05命令模式按钮…LED灯时按;当LED闪烁时释放。

    准备好的[任意键]

    去……

    [[LED灯亮起;选择命令模式][[HC-05解释以下命令]]AT+版本[[baudat记录超时或缓冲区满时的响应][[LED闪烁;释放命令模式]]

    结果:[[存储结果]]

    输入命令:

    (这些示例是分步骤进行的,以避免格式化错误。如果它们被破坏了,请查看附加的文本文件。)

    步骤4:极性吗?

    当蓝牙设备连接到HC-05时重新启动处理器会非常有帮助。例如,通过蓝牙上传草图。但要做到这一点需要一点努力。

    虽然在“HC-05”载波板之间有一些变化,许多(大多数?)有一个STATE引脚,当有一个活跃的BT连接时,信号高(1)。这对于重置处理器来说几乎是有用的,但它在错误的时间指示了错误的方式。

    方便的是,模块提供了一个命令,在+极地=,改变现状极性这个信号的状态销了低(0)当另一个蓝牙设备连接时。这解决了一个问题。

    如果没有STATE引脚,或者它不工作,你想要这个函数,直接从HC-05模块本身获取信号。参见上面示意图中的注释。

    (示意图来源于在这里;来自hiletgo.cn(也许吧?)

    第五步:用你已经拥有的硬件试试

    如果您已经完成了这一步,那么应该能够连接并配置HC-05了。

    至于接线,我喜欢从图(上图)写下来。

    电阻值不如其(近似)比值重要。比率应接近(5-3.3)/3.3。

    如果使用3.3V mcu板,跳过电阻分压器,直接连接TX/RX引脚。您可能需要对HC-05的电源做一些不同的操作。

    对于Android,我喜欢串口蓝牙终端

    这应该工作。你可能就完了。

    可选择的:

    STATE和RESET引脚之间的连接通过电容解决了最后一步遗留下来的时间问题。通过将STATE信号的极性反转,当新的蓝牙连接建立时,HC-05可以重新启动处理器。

    异端的:

    有些人说,电阻分压器是不必要的,可以省略而不破坏你的BT模块。他们是傻瓜和骗子。我会Ne**咳嗽考虑做这样的事情…但一个愚蠢的无赖谁可以做到这一点,只要四跳。

    第六步:制作小部件

    是的,到目前为止。但是这真的比任何其他没有PC USB端口的配置HC-05更容易吗?

    如果你愿意奉献一块可以编程的电路板,把它连接到HC-05上,放在你的书桌抽屉里。

    Arduino板克隆已经变得相当便宜,有些板很小,这有助于使这成为一件明智的事情Digispark.它们比HC-05小(在载体板上),克隆几乎是免费的。

    这篇文章的其余部分展示了如何构建上图中的小部件。

    步骤7:收集零件

    很明显,你有很大的空间来做你想做的事。我是这样做的。

    部分


    切割FR4 perfboard

    切割一小块我列出的FR4 perfboard可能很容易,但解释如何使其容易会占用太多空间,所以我在这里写了一篇文章这是我的责任

    步骤8:为Digispark/ATtiny85编译

    Digistump通过使用简化的微控制器基本Arduino“IDE”不知道的东西。所以你需要添加支持。我用了不同的串行库,所以也有这个。

    请阅读将Digispark支持添加到Arduino的完整说明在这里. 要点包括:

    解压SoftSerial-INT0图书馆在你文件夹从文件夹名称中删除“-master”。

    (更多的关于SoftSerial-INT0库)

    为Digispark编译时,草图使用不同的接点指定:

    • 引脚2上的RX - SoftSerial-INT0库的硬要求
    • 引脚0上的TX -大多数Digispark变体都有引脚1上的LED
      • 如果你的电路板上有引脚0上的LED,编辑草图,以交换LED和TX引脚

    真正的数码公园将禁用RESET功能。似乎有许多(大多数?,全部?)克隆使RESET函数处于活动状态。如果您的单板已禁用RESET,而您想重新启用它,请读取在这里

    在将Digispark焊接到任何东西之前,您可能需要对其进行编程和测试。

    步骤9:构建它

    图片。因为说起来容易,说起来难。

    请在开始之前浏览所有的图片和注释,因为有时后面的细节有助于解释前面的步骤。

    第十步:享受劳动成果

    最后一幅画就是第一幅画。

    第一个分享

      建议

      • 太空竞赛

        太空竞赛
      • 机器人比赛

        机器人比赛
      • 灯具及照明比赛

        灯具及照明比赛

      评论