蓝牙模块(HC-06,BT-06)与 电脑通信

来源:互联网 发布:java nextline 编辑:程序博客网 时间:2024/04/29 07:07


Hc-06,BT-06 都是在淘宝常见的蓝牙模块,价格在20元左右,分主从模块。所谓“主从一体模块”,就是可以发出配对请求,又可以接受配对请求的。所谓“从模块”,就是只能接受配对请求而不能发出配对请求。我们的手机、笔记本上配备的蓝牙模块都是所谓的“主从一体”模块,也就是既能接收配对请求,也能发送配对请求的。主从一体模块的价格和从模块也没有差别,因此建议直接买主从一体的蓝牙模块。


蓝牙模块,如Hc-06,都有自己的指令,作用是用修改蓝牙模块的名称,密码,模式等。这个具体的指令和是用方法可以咨询淘宝店家,他们一般都有资料。本文只解释我个人在刚开始用这个模块时搞不清楚的一些问题


(1)蓝牙模块和串口有什么关系?(or:使用这个模块我需要学习蓝牙的具体工作原理、通信协议么?)

蓝牙模块可以简单的理解为一个无线的串口,蓝牙模块式具体如何把你要发送的数据编码,调制,发送出去的你不用管,你只要知道他就是一个串口,他有两个数据口,一个叫RXD(接收),一个叫做TXD(发送)。如图1(我知道有点简陋鄙视,不用提醒我)。在单片机和蓝牙的双向通信中,两个蓝牙就像是一条无形的串口线,一端连着Pc,一端连接你的单片机,你的数据通过单片机段的TXD发送出去,在Pc端的RXD上就会读到单片机发来的数据,反向同理。因此,如果你已经实现了单片机和Pc的串口通信,现在你什么都不要做,只需要买一个蓝牙,一个蓝牙转串口模块,替换掉你的串口线即可,具体往下看。(如果你不知道串口是怎么工作的,可以参考有关单片机/嵌入式的数据翻阅)。


Pc  --Bluetooth   RXD-------------TXD Bluetooth--单片机

                  TXD-------------RXD

(图1)


(2)Pc上如何操作

已经实现了单片机和Pc的串口通信,具体如何用蓝牙换掉串口线呢?在单片机端,你只要把单片机上的TXD,RXD接到蓝牙模块的RXD,TXD上。注意!!,是

单片机  TXD----RXD 蓝牙

RXD----TXD

这个和串口线的连接方法是一样的,不要接反了。

Pc机上的连接就麻烦一些,要分两种情况

(a)这是一种是偷懒省事的方法。到淘宝上买一个 蓝牙转串口模块(如PL2303TA就很好用),通过蓝牙指令设置好单片机上蓝牙的配对密码,然后把这个模块插到Pc的USB接口上(如对应COM5),这个模块就会自动和单片机配对。这时候数据就会通过COM5和单片机进行通信。(对的,你基本上什么都不用做,买东西换掉串口线就行了)。

(b)这种方法很麻烦,但是只需要普通的蓝牙适配器就行。很多笔记本电脑都是自带蓝牙的,如果你的笔记本没有蓝牙,你需要购买一个USB蓝牙适配器(10块钱左右)。这种方法之所以麻烦并且不稳定,是因为蓝牙驱动程序很难用。以Windows 7为例,你可以选用的驱动无外乎两种。一种是Windows自带的,一种是叫“BlueSoleil”的第三方驱动。这种方法的大致原理就是,通过驱动操作蓝牙适配器,让Pc上的蓝牙适配器和你的单片机配对,然后蓝牙服务设置为“串口通信”,把蓝牙适配器接受到的数据映射到某个COM(如COM 5),然后你就可以在COM5上去和你的单片机通信。注意!!!不论是Win自带蓝牙驱动还是BlueSoleil 都是极不稳定的,不靠谱的。我和这两个驱动搏斗了两个月之久,最后才发现(a)方法。如果你和我一样,是一个学生,不是做真正的商用的工程项目,建议不要在这里浪费时间,直接选用方法(a)。如果你一定不用 蓝牙转串口模块, 我也不知道该怎么办, 或许你需要自己写一个靠谱的蓝牙驱动。(Windows 7蓝牙驱动会时常自动断开配对,我猜测可能是为了节能,程序自动断开的。BlueSoil有时候确实管用,但是会和Win 7 蓝牙驱动产生冲突,蓝屏、死机等,需要关闭或彻底卸载自带蓝牙驱动后使用)


(3)电压

蓝牙模块的VCC接高电平,GND接低电平,这个没什么好说的。但是注意!!!有些蓝牙模块默认电压是3.7V。如果你用的是5V单片机,记得接一个5K左右的降压电阻。或者你买的时候注意模块参数,有的模块支持3V-5V的电压。蓝牙模块很容易坏,高压一会就烧坏了。因此第一次用记得多买几个备用。


(4)焊接

淘宝上的蓝牙模块有两种,一种带排针的,是用来测试啊,接线的。另一种不带,适合用来焊接在PCB上。蓝牙模块怕高温,焊接的时候一定要小心,焊点一定要一次成型,焊过一个焊点后等它冷却了再焊下一个,不然长时间高温,焊好了一上电,你就发现蓝牙已经坏了。


以上内容是我半年之后凭记忆写的,项目做完已经有一段时间了,以上内容难免有错误,如有错误,请赐教。


1 0