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

来自Microduino Wikipedia
跳转至: 导航搜索
应用
 
(未显示4个用户的29个中间版本)
第1行: 第1行:
{{Language|mCookie-BT}}
+
{| style="width: 800px;"
 +
|-
 +
|[[file:mCookie-bt-rect.jpg|300px|left]] ||
 +
::<p style="color: #000000;font-size:200%"><br><br><br><br><br>'''mCookieBLE'''</p>
 +
::产品编号:'''<big style="color: #00A0A6">XXXXXXX</big>'''
 +
|-
 +
|[[File: Add-to-cart.jpg|300px|left|link=https://shop108263663.taobao.com/?spm=a230r.7195193.1997079397.2.ek3cAW]]||
 +
::<p style="color: #000000;font-size:120%">mCookie-BLE模块是蓝牙低能耗 (BLE) 的串口传输模块。可与其他蓝牙设备进行连接通讯。如手机,ipad借助相关APP可以和BT模块通信。</p>
 +
|}
 +
<br>
 
{| style="width: 800px;"
 
{| style="width: 800px;"
 
|-
 
|-
 
|
 
|
[[file:mCookie-bt-rect.jpg|400px|thumb|right|mCookie-BT]]
+
<p style="color: #333333;font-size:155%">'''技术规格'''</p>
mCookie-BT模块是蓝牙低能耗 (BLE) 的串口传输模块。可与其他蓝牙设备进行连接通讯。如手机,ipad借助相关APP可以和BT模块通信。
+
{| class="wikitable"
 +
|-
 +
| '''电压'''||3.3V
 +
|-
 +
| '''通信'''||软串口(D4/D5默认,可通过跳线更改)
 +
|-
 +
| '''功能'''||与手机APP进行蓝牙通信,从而控制模块
 +
|-
 +
| '''特点'''||低功耗、支持iBecons模式
 +
|}
  
 
+
<br>
 
+
----
 
+
<br>
 
+
{| style="width: 800px;"
 
+
|-
 
+
|
 
+
<p style="color: #333333;font-size:155%">'''技术细节'''</p>
 
 
 
 
 
 
==特色==
 
*低功耗;
 
*支持iBecons模式;
 
*小巧、便宜、堆叠、开放;
 
 
 
==规格==
 
 
*通讯形式:串口透传,默认串口为D0(RX)、D1(TX);
 
*通讯形式:串口透传,默认串口为D0(RX)、D1(TX);
 
*供电电源:+3.3VDC 50mA;
 
*供电电源:+3.3VDC 50mA;
第36行: 第45行:
 
**iBeacon 可苹果应用商店上的免费应用 Locate iBeacons 来测试,目前显示距离,使用方法参考: http://blog.csdn.net/mzy202/article/details/20365691
 
**iBeacon 可苹果应用商店上的免费应用 Locate iBeacons 来测试,目前显示距离,使用方法参考: http://blog.csdn.net/mzy202/article/details/20365691
 
[[File:ble-rule.jpg|600px|center|thumb]]
 
[[File:ble-rule.jpg|600px|center|thumb]]
==文档==
+
<br>
支持AT指令配置/控制:'''[[File:Microduino-BLE.pdf]]'''
+
----
 +
<br>
 +
 
 +
<p style="color: #333333;font-size:135%">'''主要元件'''</p>
 +
*[[File:Cc2541.pdf]]
 +
----
 +
<br>
 +
<p style="color: #333333;font-size:135%">'''编程手册'''</p>
 +
支持AT指令配置/控制,
 +
具体AT指令表见此文档附录:'''[[https://wiki.microduino.cn/images/a/ad/Microduino-BLE.pdf CC2541文档]]'''
  
==开发==
+
注意:
===串口通讯要求===
+
**AT+CLEAR
*默认的串口配置为:
+
**AT+TCON
**波特率:9600
+
**AT+RSSI
**无校验
+
**AT+RADD
**数据位8
+
均会返回"ERROR",无法使用
**停止位1
 
**设置成:“\r\n”、“9600baud”
 
  
[[File:Serial-mcookie.jpg|thumb|600px|center]]
+
*<p style="font-size:125%">库语法手册</p><big>
 +
*'''[[Protocol_Reference]]'''
 +
*'''[[【串口通信要求】]]'''
 +
<br>
 +
----
 +
<p style="color: #333333;font-size:135%">'''示例教程'''</p>
 +
*'''蓝牙通信程序(通用)'''
 +
*请根据模块上的标识选择代码中的通信端口,示例程序中通信端口为D4,D5
 +
*程序:可将如下程序直接复制到Microduino-IDE中并下载到模块上
 +
<source lang="cpp">
 +
#include <SoftwareSerial.h>
  
*不同核心分配的串口不一样,见表格:
+
String item;
**BT默认接到D0,D1上,与Core,Core+,CoreRF通信是Serial,但Core,Core+,CoreRF下载程序时用的是D0,D1(Serial)与蓝牙串口通信接口冲突,所以'''下载时候不能叠加蓝牙模块''',否则下载不了程序。
 
**BT与CoreUSB通信是Serial1,下载程序是'''CoreUSB虚拟出Serial''',可直接叠加下载。
 
{|class="wikitable"
 
| align="center" style="background:#f0f0f0;"|'''模块'''
 
| align="center" style="background:#f0f0f0;"|'''D0(读)D1(写)'''
 
| align="center" style="background:#f0f0f0;"|'''D2(读)D3(写)'''
 
|-
 
| Core||Serial||
 
|-
 
| Core+||Serial||Serial1
 
|-
 
| CoreRF||Serial||Serial1
 
|-
 
| CoreUSB||Serial1||
 
|-
 
| USBTTL||下载、串口通信接口(Serial)||
 
|-
 
| USBLLTC||下载、串口通信接口(Serial)||
 
|-
 
| 电池盒||下载、串口通信接口(Serial)||
 
|}
 
  
 +
String currentInfo="";
  
===通过'''Core、Core+'''与蓝牙设备通讯===
+
SoftwareSerial mySerial(4, 5);  //根据实际模块上的跳线,选择对应端口
*BT与Core、Core+默认通信接口是Serial
 
*程序
 
<source lang="cpp">
 
#define my_Serial Serial //定义串口通讯为Serial
 
  
String msg = ""; //定义一个字符串
+
#define my_Serial  mySerial  //声明软串口
  
 
void setup()
 
void setup()
 +
 
{
 
{
   // 初始化蓝牙通信波特率
+
   item = "";
 +
 
 
   my_Serial.begin(9600);
 
   my_Serial.begin(9600);
}
 
void loop()
 
{
 
  //每收到一次信号,向通信另一端反馈一次
 
  if (my_Serial.available() > 0)  //如果串口有数据输入
 
  {
 
    msg = my_Serial.readStringUntil('\n'); //获取换行符前所有的内容
 
    my_Serial.println("^_^ Hello,mCookie!");  //向蓝牙通信的另一端发送数据
 
  }
 
}
 
</source>
 
  
===通过'''CoreUSB'''与蓝牙设备通讯===
+
  Serial.begin(9600);
*程序
 
<source lang="cpp">
 
#define my_Serial Serial1 //定义串口通讯为串口1,BT与CoreUSB默认通信接口
 
String msg = ""; //定义一个字符串
 
  
void setup()
 
{
 
  // 初始化蓝牙通信波特率
 
  my_Serial.begin(9600);
 
  // 初始化串口监视器通信波特率
 
  Serial.begin(9600);
 
 
}
 
}
 +
 
void loop()
 
void loop()
 +
 
{
 
{
  //每收到一次信号,向通信另一端反馈一次
+
   if (my_Serial.available() > 0) {
   if (my_Serial.available() > 0) //如果串口有数据输入
 
  {
 
    msg = my_Serial.readStringUntil('\n'); //获取换行符前所有的内容
 
    Serial.println(msg);                  //在串口监视器显示收到的msg中的字符串
 
    my_Serial.println("^_^ Hello,mCookie!");  //向蓝牙通信的另一端发送数据
 
  }
 
}
 
</source>
 
  
===与Android设备通信===
+
  currentInfo = my_Serial.readStringUntil('\n');  //接收手机发送的数据
*系统要4.3以上的手机才能与mCooki-BT模块通讯。
 
*下载Android的通讯软件,安装到手机上。
 
[[File:mSerial.png|200px|center]]
 
|-
 
|
 
步骤一:将程序下载到mCookie里;
 
|-
 
|
 
[[File:ble-Download2.png|600px|center|thumb|Download]]
 
  
步骤二:开始设置Android设备,打开Android设备的蓝牙功能,打开App,并在电脑IDE端打开串口监视器;
+
    Serial.println(currentInfo);          //手机发送过来的数据串口返回
 +
  }
 +
  if (Serial.available() > 0) {
  
步骤三:点击App右上方SCAN按钮,这是用来搜索周围蓝牙接入点的,点击SCAN后会显示周围的蓝牙设备。
+
    item = Serial.readString();      //接收PC端串口数据
点击对应的Microduino蓝牙编号,进入界面等待2-3秒钟,待屏右上角变成“Serial ready”字样,说明手机已经与蓝牙建立了连接.
 
[[File:202KIT-android-ready.jpg|600px|center|thumb|App—手机App]]
 
手机向mCookie发送英文字符,串口监视器中收到手机发送的内容。同时手机接收到了mCookie发送的“^_^ Hello,mCookie!”信息,验证了蓝牙的双向通信功能。
 
[[File:202KIT-android-system5.jpg|600px|center|thumb|App—串口监视器]]
 
[[File:202KIT-android-system6.jpg|600px|center|thumb|App—手机App]]
 
  
===与IOS设备通信===
+
    my_Serial.println(item);          //串口数据发给手机
*iPhone4s以上、iPod touch 5以上、iPad 3以上、iPad mini以上;
 
*前往App Store里下载LightBlue;
 
  
[[File:LightBlue.jpg|400px|center|thumb|LightBlue]]
+
    Serial.println(item);
步骤一:将程序下载到mCookie里;
+
   }
 
 
步骤二:安装“lightblue”,打开软件,开始设置IOS设备,打开IOS设备的蓝牙功能。并在电脑端IDE中打开串口监视器
 
[[File:LightBlue_on_ble.jpg|400px|center|thumb]]
 
步骤三:打开LightBlue;进入的界面是蓝牙设备搜索界面,从“Peripherals Nearby”下的列表中找到Microduino的蓝牙设备,点击该条目使手机与其建立连接;
 
|-
 
|
 
[[File:ble-Connection.jpg|400px|center|thumb|Connection1]]
 
连接后进入页面如下:
 
[[File:ble-Connection1.jpg|400px|center|thumb|Connection2]]
 
 
 
步骤四:选择并点击Characteristic6,观察屏幕右上方的编码格式,默认为Hex 16进制编码,如果要显示字符串请点击Hex所在的按钮并选择UTF-8编码格式,之后点击“Listen for notifications”使手机进入监听状态。
 
[[File:ble-Connection5.jpg|400px|center|thumb]]
 
 
 
步骤六:点击“Write new value”,弹出文本编辑界面
 
[[File:ble-Connection2.jpg|400px|center|thumb]]
 
自定义输入一个英文和数字组成的字符串,观察手机和串口的显示结果
 
 
 
[[File:ble-Connection3.jpg|400px|center|thumb]]
 
[[File:ble-Connection4.jpg|400px|center|thumb]]
 
可以从图中看到串口收到了手机发送的数据“12345”,手机端也收到了蓝牙返回的数据“bluetooth respond”,说明蓝牙双向通信是畅通的。
 
===与MAC设备通信===
 
mac蓝牙无法直接与BT搜索连接,需要借助Light Blue来开发。下载
 
*将mCookie-CoreUSB与BT模块连接到电脑,下载同样的代码。
 
*打开Arduino串口监视器,再打开Light Blue软件,可以发现识到Microduino设备。
 
[[File:ble-Connection5.png|400px|center]]
 
*点击Microduino可以和蓝牙连接,连接成功后可以看到串口监视器打印出Connected。同时也可以看到蓝牙指示灯微闪(频率变快,亮度变低)。
 
[[File:ble-Connection6.png|400px|center]]
 
*按下图选择,然后向BT模块发送信息,例如:mCookie。
 
[[File:ble-Connection7.png|800px|center]]
 
*可以看到串口监视器打印出mCookie。
 
[[File:ble-Connection8.png|400px|center]]
 
===与windows设备通信===
 
蓝牙默认连接不需要密码,但是如果电脑自动弹出来要配对,默认密码是:000000.如果还无法连接,需要使用AT命令设置成连接需要密码。
 
*参考下面文档“使用AT查看或更改BT的参数”
 
[[File:ble-Connection9.jpg|600px|center]]
 
*打开串口监视器输入“AT+TYPE1”设置连接需要密码。注意设置:“\r\n”、“9600baud”.设置成功会返回:“OK+Set:1”、“Hello World Peripheral”数据。
 
[[File:ble-Connection10.jpg|300px|center]]
 
*然后再用电脑连接,电脑自动弹出配对,输入:000000即可连接。
 
[[File:ble-Connection11.jpg|200px|center]]
 
 
 
==扩展==
 
===使用AT查看或更改BT的参数===
 
*AT指令配置/控制文档:'''[[File:Microduino-BLE.pdf]]'''
 
*程序
 
<source lang="cpp">
 
//#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());//将数据在串口监视器打印出来
 
 
}
 
}
 
</source>
 
</source>
*下载程序
 
**将mCookie-BT与mCookie-CoreUSB两个模块叠在一起,将USB线插入mCookie-CoreUSB的插孔,另一端连接电脑USB插口;
 
**启动Arduino IED,将上面程序复制到IDE中;
 
**在工具(tools)->板卡(Board)中选择Microduino CoreUSB,并在工具(tools)->串口(Serial)中选择对应的串口号;
 
**点击IDE左上角的编译(√)按钮对程序进行编译,编译结束后点击下载(->)按钮将程序烧录到板子中;
 
*打开串口监视器,设置成:“\r\n”、“9600baud”。
 
[[File:ble-Serial.jpg|600px|center|thumb|Serial]]
 
*在串口监视器中输入指定指令,可以看到返回结果,参考文档可更改BT的参数。
 
[[File:ble-AT.jpg|600px|center|thumb|AT]]
 
  
===修改串口通讯引脚===
+
使用lightblue连接蓝牙模块(名称为Microduino或mCookie-xxxxx)
默认使用串口为D0(RX)、D1(TX),玩家可根据情况更改串口。串口引脚参考下图:
+
连接后选择"read write without response Notify.
[[File:ble-Serial-change.jpg|600px|center|thumb]]
+
[[file:Lightblue.PNG|400px|thumb|center|LightBlue]]
使用软串口通讯程序:
+
*lightblue短点击write new value发送信息到蓝牙模块。
<source lang="cpp">
+
*上方Listen开启监听,随时接收从mCookie模块发来的信息。
//使用其他软串口用SoftwareSerial
+
[[file:BluetoothSerial.png|400px|thumb|center|LightBlue]]
#include <SoftwareSerial.h>
+
*结合图中示例,mCookie发送bb至手机,手机发送aa至mCookie
SoftwareSerial mySerial(4, 5);//根据选择的串口,选择对应的端口号(2,3)或(4,5)
 
  
#define my_Serial mySerial
+
*'''与IOS设备通信'''
 +
*'''[[【使用LightBlue通信】]]'''
 +
*'''[[【使用mRobot通信制作小车】]]'''
 +
*'''[[【使用mDock通信制作多样应用】]]'''
  
String msg = "";
+
*'''与MAC设备通信'''
 
+
*'''[[【与MAC设备通信的方法】]]'''
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");  //向蓝牙通信的另一端发送数据
 
  }
 
}
 
</source>
 
  
==应用==
+
<br>
'''相关应用:'''
+
----
[[蓝牙彩灯]]
+
<p style="color: #333333;font-size:135%">'''应用'''</p>
[[蓝牙小夜灯]]
+
[[蓝牙彩灯]]<br>
[[蓝牙通信]]
+
[[蓝牙小夜灯]]<br>
 +
[[蓝牙通信]]<br>
 +
[[温度湿度计]]<br>
 +
[[通过CoreUSB通信]]<br>
 +
[[与安卓设备通信]]<br>
 +
<br>
 +
----
  
==问题解答==
+
<p style="color: #333333;font-size:135%">'''Q&A'''</p>
 +
*'''[[【使用AT指令修改蓝牙设置】]]'''
 +
*'''[[【修改跳线以更改串口引脚】]]'''
 
*无法和win7进行配对?
 
*无法和win7进行配对?
 
**检查win7电脑支持BT 4.0 协议吗?BT 模块只能用于4.0 协议,并且默认配对密码是000000。
 
**检查win7电脑支持BT 4.0 协议吗?BT 模块只能用于4.0 协议,并且默认配对密码是000000。
第268行: 第154行:
 
**For Andriod OS: 4.3 release
 
**For Andriod OS: 4.3 release
 
**For IOS: iPhone4s upper, iPod touch 5 upper, iPad 3 upper and iPad mini upper
 
**For IOS: iPhone4s upper, iPod touch 5 upper, iPad 3 upper and iPad mini upper
 +
<br>
 +
----
 +
<p style="color: #333333;font-size:135%">'''图库'''</p>
 +
{| border="0" cellpadding="10" width="100%"
 +
|-
 +
|width="50%" valign="top" align="left"|
 +
[[file:mCookie-BT-t.jpg|thumb|400px|center|mCookie-BT Front]]
 +
|width="50%" valign="top" align="left"|
 +
[[file:mCookie-BT-b.jpg|thumb|400px|center|mCookie-BT Back]]
 +
|}
  
==图库==
+
[[MCookie_产品系列/zh|返回mCookie产品系列页面]]
[[file:mCookie-BT-t1.jpg|thumb|600px|center]]
 
[[file:mCookie-BT-b1.jpg|thumb|600px|center]]
 
[[file:mCookie-BT-t.jpg|thumb|600px|center|mCookie-BT Front]]
 
[[file:mCookie-BT-b.jpg|thumb|600px|center|mCookie-BT Back]]
 
|}
 

2018年12月17日 (一) 02:46的最新版本

MCookie-bt-rect.jpg






mCookieBLE

产品编号:XXXXXXX
Add-to-cart.jpg

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


技术规格

电压 3.3V
通信 软串口(D4/D5默认,可通过跳线更改)
功能 与手机APP进行蓝牙通信,从而控制模块
特点 低功耗、支持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",无法使用



示例教程

  • 蓝牙通信程序(通用)
  • 请根据模块上的标识选择代码中的通信端口,示例程序中通信端口为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();       //接收PC端串口数据

    my_Serial.println(item);          //串口数据发给手机

    Serial.println(item);
  }
}

使用lightblue连接蓝牙模块(名称为Microduino或mCookie-xxxxx) 连接后选择"read write without response Notify.

LightBlue
  • lightblue短点击write new value发送信息到蓝牙模块。
  • 上方Listen开启监听,随时接收从mCookie模块发来的信息。
LightBlue
  • 结合图中示例,mCookie发送bb至手机,手机发送aa至mCookie



应用

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


Q&A

  • 【使用AT指令修改蓝牙设置】
  • 【修改跳线以更改串口引脚】
  • 无法和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 Front
mCookie-BT Back

返回mCookie产品系列页面