“MCookie-BLE”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
与windows设备通信
与IOS设备通信
第131行: 第131行:
 
===与IOS设备通信===
 
===与IOS设备通信===
 
*'''[[【使用LightBlue通信】]]'''
 
*'''[[【使用LightBlue通信】]]'''
 +
*'''[[【使用mRobot通信制作小车】]]'''
  
 
===与MAC设备通信===
 
===与MAC设备通信===

2018年6月14日 (四) 07:37的版本

Language English
mCookie-BT

mCookie-BLE模块是蓝牙低能耗 (BLE) 的串口传输模块。可与其他蓝牙设备进行连接通讯。如手机,ipad借助相关APP可以和BT模块通信。






特色

  • 低功耗;
  • 支持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” 来设置, 只有在从机下才可以。
Ble-rule.jpg

文档

支持AT指令配置/控制, 具体AT指令表见此文档附录:[CC2541文档]

注意:

    • AT+CLEAR
    • AT+TCON
    • AT+RSSI
    • AT+RADD

均会返回"ERROR",无法使用

开发

编程手册:Protocol_Reference

串口通讯要求

  • 默认的串口配置为:
    • 波特率:9600
    • 无校验
    • 数据位8
    • 停止位1
    • 设置成:“\r\n”、“9600baud”
Serial-mcookie.jpg
  • 不同核心分配的串口不一样,见表格:
    • BT默认接到D0,D1上,与Core,Core+,CoreRF通信是Serial,但Core,Core+,CoreRF下载程序时用的是D0,D1(Serial)与蓝牙串口通信接口冲突,所以下载时候不能叠加蓝牙模块,否则下载不了程序。
    • BT与CoreUSB通信是Serial1,下载程序是CoreUSB虚拟出Serial,可直接叠加下载。
模块 D0(读)D1(写) D2(读)D3(写)
Core Serial
Core+ Serial Serial1
CoreRF Serial Serial1
CoreUSB Serial1
USBTTL 下载、串口通信接口(Serial)
USBLLTC 下载、串口通信接口(Serial)
电池盒 下载、串口通信接口(Serial)


蓝牙通信程序(通用)

  • 请根据模块上的标识选择代码中的通信端口,示例程序中通信端口为D4,D5
  • 程序:可将如下程序直接复制到Microduino-IDE中并下载到模块上
#include <SoftwareSerial.h>

String item;

String currentInfo="";

SoftwareSerial mySerial(4, 5);   //根据实际模块上的跳线,选择对应端口

#define my_Serial  mySerial

void setup()

{
  item = "";

  my_Serial.begin(9600);

  Serial.begin(9600);

}

void loop()

{
  if (my_Serial.available() > 0) {

   currentInfo = my_Serial.readStringUntil('\n');

    Serial.println(currentInfo);
  }
  if (Serial.available() > 0) {

    item = Serial.readString();

    my_Serial.println(item);

    Serial.println(item);
  }
}

与IOS设备通信

与MAC设备通信

扩展

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

  • 程序
//#define my_Serial Serial //定义Core,Core+与BT串口
#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

修改串口通讯引脚

默认使用串口为D0(RX)、D1(TX),玩家可根据情况更改串口。串口引脚参考下图:

Ble-Serial-change.jpg

使用软串口通讯程序:

//使用其他软串口用SoftwareSerial
#include <SoftwareSerial.h>
SoftwareSerial mySerial(4, 5);//根据选择的串口,选择对应的端口号(2,3)或(4,5)

#define my_Serial mySerial

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");  //向蓝牙通信的另一端发送数据
  }
}

应用

蓝牙彩灯
蓝牙小夜灯
蓝牙通信
温度湿度计
通过CoreUSB通信
与安卓设备通信

问题解答

  • 无法和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