MCookie-BLE

来自Microduino Wikipedia
853387039@qq.com讨论 | 贡献2015年8月13日 (四) 07:14的版本
跳转至: 导航搜索
Language English
mCookie-BT

Microduino-BT模块是蓝牙低能耗 (BLE) 的串口透明传输模块。可与其他蓝牙设备进行连接通讯。

特色

  • 低能耗;
  • 支持iBecons模式;
  • 有数据掉电保存功能;
  • 小巧、便宜、堆叠、开放;

规格

  • 通讯形式:串口透传,默认串口为D0(RX)、D1(TX);
  • 供电电源:+3.3VDC 50mA;
  • 状态指示灯:
    • 连接前:
      • 主机,未记录从机地址时,每秒亮 100ms;记录从机地址时,每秒亮 900ms;
      • 从机,每 2 秒亮 1 秒。
    • 连线后:
    • 主机与从机均为每 5 秒亮 100 毫秒。(闪亮, 以便省电)
  • 透传期间每个数据包不宜超过 120 字节,波特率越高,发包间隔要求越长。无线蓝牙透数据传均存在丢包率的问题,所以用户朋友们一定要做好应用层的数据校验和丢包重传。
  • 所有AT命令都是以“\r\n”结尾。大家在AT命令调试时要注意选择“\r\n”。大部分 AT 命令都是在未连接前有效,连接后所有数据均为透传。
  • iBeacon 简单已集成。 通过 AT 命令 “AT+MODE2\r\n” 来设置, 只有在从机下才可以。

文档

支持AT指令配置/控制:文件:Microduino-BLE.pdf

开发

串口通讯要求

  • 默认的串口配置为:
    • 波特率:9600
    • 无校验
    • 数据位8
    • 停止位1
    • 设置成:“\r\n”、“9600baud”
Serial-mcookie.jpg

使用AT查看或更改BT的参数

//使用其他软串口用SoftwareSerial
//#include <SoftwareSerial.h>
//SoftwareSerial mySerial(4, 5); // RX, TX

//#define my_Serial mySerial
#define my_Serial Serial1 //定义CoreUSB与BT串口

void setup()
{
  Serial.begin(9600);//串口监视器通讯波特率
  my_Serial.begin(9600);//BT通讯波特率
}

void loop()
{
  if (Serial.available())//监视到串口监视器的数据
    my_Serial.write(Serial.read());//将数据写入BT
  if (my_Serial.available())//监视到BT串口的数据
    Serial.write(my_Serial.read());//将数据在串口监视器打印出来
}
  • 下载程序
    • 将mCookie-BT与mCookie-CoreUSB两个模块叠在一起,将USB线插入mCookie-CoreUSB的插孔,另一端连接电脑USB插口,启动Arduino IED,上面程序复制到IDE中,在工具(tools)->板卡(Board)中选择Microduino CoreUSB,并在工具(tools)->串口(Serial)中选择对应的串口号。之后点击IDE左上角的√按钮对程序进行编译,编译结束后点击->按钮将程序烧录到板子中;
  • 打开串口监视器,设置成:“\r\n”、“9600baud”。
Serial
  • 在串口监视器中输入指定指令,可以看到返回结果,从而更改BT的参数。
AT

通过CoreUSB与其他蓝牙设备通讯

  • 程序
//使用其他软串口用SoftwareSerial
//#include <SoftwareSerial.h>
//SoftwareSerial mySerial(4, 5);

//#define my_Serial mySerial
#define my_Serial Serial1
String msg = "";

void setup()
{
  // 初始化蓝牙通信波特率
  my_Serial.begin(9600);
  // 初始化串口监视器通信波特率
  Serial.begin(9600);
}
void loop()
{
  //每收到一次信号,向通信另一端反馈一次
  if (my_Serial.available() > 0)  //如果串口有数据输入
  {
    msg = my_Serial.readStringUntil('\n'); //获取换行符前所有的内容
    Serial.println(msg);                   //在串口监视器显示收到的msg中的字符串
    my_Serial.println("bluetooth respond");  //向蓝牙通信的另一端发送数据
  }
}

与Android设备通信

    • 系统要4.3以上的才能与mCooki-BT模块通讯。
    • 下载Android的通讯软件:文件:BT—APP.zip,安装到手机上。

步骤一:将程序下载到mCookie里;

Download

步骤二:开始设置Android设备,打开Android设备的蓝牙功能,将测试包中的.apk文件拷入手机中并安装,之后打开App,并在电脑IDE端打开串口监视器;

步骤三:点击App右上方SCAN按钮,这是用来搜索周围蓝牙接入点的,点击SCAN后会显示周围的蓝牙设备。界面如下

App—蓝牙搜索

点击对应的Microduino蓝牙编号,进入如下界面:

App—蓝牙通信

等待2-3秒钟,待屏幕中央出现“ready”字样,说明手机已经与蓝牙建立了连接,点击屏幕中间“Sync RTC With Phone”按钮,同时观察按钮上方“RTC TIME”和串口监视器的的变化

App—串口监视器
App—手机App

可以看到手机接收到了mCookie发送的“bluetooth respond”信息,另一边串口监视器中也收到手机发送的时间内容,验证了蓝牙的双向通信功能。

与IOS设备通信

  • iPhone4s以上、iPod touch 5以上、iPad 3以上、iPad mini以上;
  • 前往App Store里下载LightBlue;
LightBlue

步骤一:将程序下载到mCookie里;

步骤二:开始设置IOS设备,打开IOS设备的蓝牙功能,安装“lightblue”,打开软件,并在电脑端IDE中打开串口监视器;

步骤三:打开LightBlue;进入的界面是蓝牙设备搜索界面,从“Peripherals Nearby”下的列表中找到Microduino的蓝牙设备,点击该条目使手机与其建立连接;

Connection1

连接后进入页面如下:

Connection2

步骤四:选择并点击Characteristic6,观察屏幕右上方的编码格式,默认为Hex 16进制编码,如果要显示字符串请点击Hex所在的按钮并选择UTF-8编码格式,之后点击“Listen for notifications”使手机进入监听状态。

修改编码方式

步骤六:点击“Write new value”,弹出文本编辑界面

文本编辑页面

自定义输入一个英文和数字组成的字符串,观察手机和串口的显示结果

串口显示结果
手机端显示结果

可以从图中看到串口收到了手机发送的数据“12345”,手机端也收到了蓝牙返回的数据“bluetooth respond”,说明蓝牙双向通信是畅通的。


  • 引脚说明



应用

相关应用: 蓝牙彩灯 蓝牙小夜灯


问题解答

  • 无法和win7进行配对?
    • 检查win7电脑支持BT 4.0 协议吗?BT 模块只能用于4.0 协议,并且默认配对密码是000000。
  • 模块无法reset,只能通过上电重启?
    • 可以通过上电启动或者通过串口发送AT指令“AT+RESTART\r\n”来重启。
  • 无法和iphone,Android手机配对?
    • 一般是协议版本不支持,此BT 模块支持4.0 BT 协议
    • For Andriod OS: 4.3 release
    • For IOS: iPhone4s upper, iPod touch 5 upper, iPad 3 upper and iPad mini upper

图库

MCookie-BT-t1.jpg
MCookie-BT-b1.jpg
mCookie-BT Front
mCookie-BT Back