最近在玩一个创客项目其中用到了蓝牙模块。一开始傻傻分不清,随便买了CC41模块,发现功能过于简单,之后又再买了一个声称是HM-10的模块,发现“有点不真实”,还好最后自己刷了一下固件,变成了“真”HM-10模块了。原计划是想写一篇关于蓝牙模块的介绍的,发现有点不自量力,因为蓝牙模块的东西实在太多了,等未来有机会窥见其一二之后才再写一点给大家分享一下吧。这次先整理一点自己的经验和理解。因为我是偏软件的,所以也许我的理解更适合程序员同学们。
系列文章列表
一、试用蓝牙模块的一点经验整理(Part 1, 刷HM-10固件)
二、试用蓝牙模块的一点经验整理(Part 2, 蓝牙模块AT指令 )
三、试用蓝牙模块的一点经验整理(Part 3, 关于Beacon功能 )
下载资源
🚀 关于HM-10的其它相关资料,比如产品手册等,可以在这里😆下载。
🚀 CC41的相关资料,可以在这里😆下载。
一、刷HM-10固件
在买了CC41之后,发现其中的AT命令集功能太少,然后网上搜索了一轮,大家都说因为CC41是基于CC2541,所以是可以刷成HM-10。我当然就兴冲冲地试了,首先遇到的问题是要直接在引脚上焊接线才能刷固件。你可能问我,就不能不焊吗?因为我的焊接技术差得没话说,所以我第一反应就是直接接触,但是我是没有成功的,而且这么几根线不焊上去的确也不太好固定。
1. 焊引脚
以下是CC41的引脚图,主要用到了7(DEBUG_CLK)、8(DEBUG_DATA)、11(RESETB)这三个引脚来完成时钟、数据传输和重置动作等,然后就是12和13这两个电源引脚。
具体接线方式如下:
* 没找着CC41的模块图,借用HM-10的模块图,他们其实是一样的。
怎么焊接线呢?(敲黑板)
上图从一位大神那里借来的,我自己的线已经拆掉了。(链接)
说实话,我焊到怀疑人生,觉得估计是不可能焊好的了😭。可是,我又找了一些视频和资料之后,发现其实这种直接将线焊到这种引脚上是有技巧的,简单来说:
1️⃣用烙铁将一些焊锡粘到引脚上。
2️⃣用烙铁将焊锡粘到线的最前端上。
3️⃣将线贴近引脚,用烙铁加热线上的焊锡,它们很快就会粘上了。
因为这个模块的引脚之间距离太近,所以其实也有点不太好焊,不过用上面的方法会更容易成功。
2. 刷固件
好不容易焊上引脚,这里就要刷固件了。
工具我放在这里了,不用你到处找:将基于CC2541的模块刷成HM-10固件的相关工具和固件-嵌入式文档类资源-CSDN下载
1️⃣将包里的CCLoader.ino用Arduino的开发环境打开。然后下载到你的Arduino里去。
2️⃣Win+R,输入cmd,运行命令提示符环境。
通过命令进入解压好的目录里,并运行对应命令
命令格式如下:
CCLoader.exe <COM Port> <Firmware.bin> 0
注意:
- <COM Port> 用COM端口号替换(例如2,3,4,5),不用写“COM”这个词。
- <Firware.bin>则是实际的bin文件名。
- 如果用的是Arduino Uno,请用“0”,用的是其他Arduino,例如Micro。请将0改为1。
我的COM口是5,所以这里填成5,所以我的命令是这样的
CCLoader_x86_64.exe 5 CC2541hm10v540.bin 0
然后就等它完成啦,看起来是这样的。(下图还是那位大佬的)
3️⃣刷完之后,你可以试一下用AT命令测试,这里要强调一下,刷完之后,除了AT之外,别的命令似乎都没有反应。这时你需要发AT+MODE1给蓝牙模块,然后你就可以根据HM-10的说明书来发送AT命令啦。
最后说一句,我不知道我的CC41是有什么问题,刷的过程中总报找不到芯片,所以我的CC41没有刷成功。然后我在网上又买了声称是HM-10的模块,买回来后,发现可用的AT命令很少,知道应该是HM-10的克隆版本,然后我试着刷固件,方法跟上面说的完全一样,然后成功了。我就得到几块“真”HM-10了。
3. 升级HM-10的固件版本
刷完的固件版本只是V540,有点低。你可以在这里找到V709版本,然后用里面的工具来升级就可以。在使用工具升级前,要给蓝牙模块发"AT+SBLUP"命令,不然升级不成功。
注:这时升级不是用Arduino板,而是将蓝牙模块直接通过USB转TTL的工具来接线并插到电脑上。
🚀 关于HM-10的其它相关资料,比如产品手册等,可以在这里😆下载。
原计划一篇搞定,但写得实在是有点累了,先发出一部分吧。请待续。