Arduino中国 | Flamingo EDA

Jan/08

23

Arduino蓝牙模块原型

Arduino有专门的蓝牙版本,但是价格不菲,而且在国内暂时还无法买到。好在蓝牙技术本身在国内已经得到了比较的应用,虽然厂商不是太多,但经过一番周折还是找到了一个适合在Arduino上使用的蓝牙模块。

在工作原理上, 这个蓝牙模块采用的是串口方式与Arduino进行通信。也就是说,Arduino只需要将要发送的数据通过串口发送个这个蓝牙模块,就能够将这些数据通过蓝牙网络发送给指定的另一个蓝牙设备(比如PC机上的蓝牙适配器)。而另一个蓝牙设备向Arduino发送的数据,最终也可以通过Arduino的串口读出耿。

这个蓝牙模块采用3.3V供电,但Arduino板子上一般只提供5V电源。即使在最新的Decilima上,那个标记为3V3的电源其实也只是FT232RM/FT232BM提供的,并没有做相应的滤波。实际中我量到的Arduino板子上3V3接口上的电压为3.5V,为了不致于损坏蓝牙模块,我借用了一个XBee模块的扩展板,这个板子能够提供稳定的3.3V电源。下图是最后连接好的最终电路:

在PC机上,蓝牙适配器同样能够提供虚拟的串口,让我们获得Arduino所发送过来的数据,或者向Arduino发送数据。我正是利用了上述的蓝牙模块和一个蓝牙适配器,来实现Arduino与PC机间的数据通信。

将蓝牙适配器它插入到PC机上的USB口后,Windows能够自动找到它并安装相应的驱动,此后我们就能够在资源管理器中找到该设备:

此时进入Windows的控制面板并双击“Bluetooth设备”,打开“Bluetooth设备”对话框:

单击“添加”按钮,打开“添加Bluetooth设备向导”对话框,选中其中的“我设备已经设置并准备好,可以查找”选项框:

并单击“下一步”按钮,系统开始查找位于附件的蓝牙模块:

选中找到的蓝牙模块,单击“下一步”按钮进入密钥设置对话框,选中其中的“让我选择自己的密钥”,并输入“00000000”,这是模块的默认密钥:

单击“下一步”按钮,系统开始安装相应的设备,同时为其分配串口:

将蓝牙模块与Arduino连接好之后,给Arduino上电,再用串口调试软件打开上述对话框中列出的“传出COM端口”(即COM12),并设置好波特率和各种串口参数:

需要注意的是, 按照蓝牙协议的规定,这里的蓝牙模块其实处于从模式状态,而蓝牙适配器则处于主模式状态。因此,只有当PC机打开蓝牙适配器所对应的串口时,蓝牙适配器和蓝牙模块之间的蓝牙通道才真正开始工作。

Arduino工程相对来讲比较简单,只是不断地从串口接收数据,然后再把接收到的数据通过串口传回去:


int val;

void setup() {
  Serial.begin(115200);
}

void loop() {
  val = Serial.read();
  if (-1 != val) {
    Serial.print(val, BYTE);
  }
}

No tags

4 comments

  • techwolf · 2008/03/20 at 9:30 AM

    这个蓝牙模块相对于XBee的应用要广泛喽。
    价格几何,哪里买到。
    还有个问题,这个蓝牙模块只能够作为模拟的串口设备,那是不是也只能进行点对点连接呢。是否可以设计一个多蓝牙模块交互的环境呢。

  • Author comment by flamingoeda · 2008/03/21 at 12:05 AM

    这个模块的价格在200左右,比XBEE要便宜一些,但一般只能用在点对点的场合,当用PC作为主机时,也可以实现一主多从的模块,但不能像XBEE那样自主组成多点网络。

  • greencard · 2008/11/14 at 6:58 PM

    Why this web site do not have other languages support?

  • Matt · 2010/11/10 at 11:23 AM

    You have great products! How do we get them in Australia? Please contact me?

Leave a Reply

使用新浪微博登录

<<

>>

Theme Design by devolux.nh2.me