Microduino-Module BLE/zh

来自Microduino Wikipedia
Radiumray9@gmail.com讨论 | 贡献2015年12月21日 (一) 13:43的版本 与电脑蓝牙匹配连接
跳转至: 导航搜索
Language English
Microduino-BT

Microduino-BT模块是基于CC2541芯片的蓝牙低能耗 (BLE) 的串口透明传输模块,专为 U 型27 PIN 标准 Microduino 接口设计。原模块参考Microduino-【BT】/zh

特色

  • 采用 U 型 27 PIN 标准 Microduino 接口,与其他 Microduino 模块堆叠使用;
  • TI CC2541 芯片,低能耗;
  • 支持iBecons模式;
  • 多种方式恢复出厂设置,
    • 使用“AT+ RENEW\r\n”命令恢复;
    • 调试引脚的DEF接GND,然后模块上电,此时LED1亮,保持3秒后LED灯闪烁,此时松开DEF,恢复出厂设置成功,可以看到led灯每隔1S闪烁一次。
  • 有数据掉电保存功能;;
  • 支持AT 指令,可根据需要更改串口波特率、设备名称、配对密码等参数,使用灵活;
  • 小巧、便宜、堆叠、开放;
  • 开源的硬件电路设计,与 Arduino 兼容的编程开发环境程;
  • 统一的 Microduino 接口规范,和丰富的外围模块,可方便、灵活的与其他符合 Microduino 接口规范的模块、传感器进行快速的连接和扩展;
  • 2.54间距的排母接口方便集成到洞洞板。

规格

  • 通讯形式:串口透传,默认串口为D4(RX)、D5(TX);
  • 供电电源:+3.3VDC 50mA;
  • 蓝牙协议:Bluetooth Specification V4.0 BLE;
  • 支持服务:Central & Peripheral UUID FFE0,FFE1;
  • 工作频率:2.4GHz ISM band;
  • 调制方式:GFSK(Gaussian Frequency Shift Keying);
  • 发射功率:≤4dBm;
  • 灵 敏 度:≤-84dBm at 0.1% BER;
  • 传输速率:
    • Asynchronous: 6 kbps;
    • Synchronous: 6 kbps;
  • 状态指示灯:
    • 连接前:
      • 主机,未记录从机地址时,每秒亮 100ms;
      • 主机,记录从机地址时,每秒亮 900ms;
      • 从机,每 2 秒亮 1 秒。
    • 连线后:
    • 主机与从机均为每 5 秒亮 100 毫秒。(闪亮, 以便省电)
  • 透传期间每个数据包不宜超过 120 字节,波特率越高,发包间隔要求越长。无线蓝牙透数据传均存在丢包率的问题,所以用户朋友们一定要做好应用层的数据校验和丢包重传。
  • 所有AT命令都是以“\r\n”结尾。大家在AT命令调试时要注意选择“\r\n”。大部分 AT 命令都是在未连接前有效,连接后所有数据均为透传。
  • iBeacon 简单已集成。 通过 AT 命令 “AT+MODE2\r\n” 来设置, 只有在从机下才可以。

文档

Eagle PCB 文件:Microduino-BT Shield.zip

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

主要元件

测试APP


如果玩家想参照github里的android代码开发出自己的app,要注意UUID要和Microduino-BT模块的UUID一致

Microduino-BT-UUID

开发

串口通讯要求

  • 默认的串口配置为:
    • 波特率 9600
    • 无校验
    • 数据位8
    • 停止位1
  • 对于Arduino IDE自带串口监视器:
    • 设置成:“\r\n”、“9600baud”
  • 对于其他串口调试软件:
    • 波特率 9600
    • 无校验
    • 数据位8
    • 停止位1

PC上位机调试时

Microduino-BT Microduino-USBTTL
D4 TX1
D5 RX0
3V3 3V3
GND GND

用USBTTL、Core下载、调试程序时

  • 默认串口跳线RX(D4)、TX(D5),可调用SoftwareSeria库来解决:
  • 玩家自己改动模块背面的跳线:切断两组焊盘中间的连线,将焊盘中间与D2、D3(或者RX0、TX1)焊上即可,参考引脚规则图。
    • 若采用了改跳线的方法,可将Microduino BT与Core的串口连接由TX-D4、RX-D5改成:
      • TX-D2、RX-D3(相对Core+的Serial1)
      • TX-RX0、RX-TX1(这时候串口会冲突,不能直接叠加下载程序)

与Android设备通信

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

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

Download

步骤二:开始设置Android设备,打开Android设备的蓝牙功能,打开App,并在电脑IDE端打开串口监视器;

步骤三:点击App右上方SCAN按钮,这是用来搜索周围蓝牙接入点的,点击SCAN后会显示周围的蓝牙设备。 点击对应的Microduino蓝牙编号,进入界面等待2-3秒钟,待屏右上角变成“Serial ready”字样,说明手机已经与蓝牙建立了连接.

App—手机App

手机向mCookie发送英文字符,串口监视器中收到手机发送的内容。同时手机接收到了mCookie发送的“^_^ Hello,mCookie!”信息,验证了蓝牙的双向通信功能。

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

引脚说明

Microduino-BT


Microduino-BT


HM-10模块引脚名 Microduino引脚 功能
TX RX0(orD2/D4) 模块串口发送脚(TTL电平),可接单片机的RXD
RX TX1(orD3/D5) 模块串口接收脚(TTL电平),可接单片机的TXD

应用

程序下载

测试程序:文件:BLE debug uart1.zip,文件:BLE LightBlue time.zip


BT模块发送示例:

#include <SoftwareSerial.h>

SoftwareSerial mySerial(4, 5); //RX,TX

#define my_Serial mySerial  //core  
//#define my_Serial Serial1  //Core+

String currentInfo="";

void setup() {
  Serial.begin(9600);

  my_Serial.begin(9600); 

  delay(200); // a 2 seconds delay while we position the solar panel
}

void loop() {

my_Serial.println("111");
delay(500);
my_Serial.println("222");
delay(500);
my_Serial.println("333");
delay(500);

}


BT模块接收示例:

#include <SoftwareSerial.h>

SoftwareSerial mySerial(4, 5); //RX,TX

#define my_Serial mySerial  //core  
//#define my_Serial Serial1  //Core+

String currentInfo="";

void setup() {
  Serial.begin(9600);

  my_Serial.begin(9600); 

  delay(200); // a 2 seconds delay while we position the solar panel
}

void loop() {


  if (my_Serial.available() > 0) {
    currentInfo = my_Serial.readStringUntil('\n');
    Serial.println(currentInfo);
    if(currentInfo=="ERROR"||currentInfo=="Connected") {
      return;
    }

  }

}

通过CoreUSB对Shield BT4.0进行串口调试

  • 所需要准备的硬件有:Microduino CoreUSB、Microduino BT;
  • 所需要准备的软件有:Arduino IDE(1.0版本以上)、Microduino提供的测试程序(Arduino端);
    • 其他条件:玩家已经改过模块背面跳线,使得串口改到RXO(D0)、TX1(D1);(因为CoreUSB可以利用USB模拟出串口0(Serial),而RX0、TX1是CoreUSB的串口1(Serial1));
  • 启动Arduino IED,打开Microduino提供的测试程序,板卡选择Microduino CoreUSB,直接下载即可;
  • 检测串口通讯是否正常:
    • 打开对应串口监视器后,发送大写“AT”(AT 后要有\r\n 符号),若返回“OK”,说明配置成功。

通过Core+的uart1对Microduino BT进行串口调试

  • 所需要准备的硬件有:Microduino USBTTL、Microduino Core+、Microduino BT;
  • 所需要准备的软件有:Arduino IDE(1.0版本以上)、Microduino提供的测试程序(Arduino端);
  • 其他条件:玩家已经改过模块背面跳线,使得串口改到D2、D3;
  • 启动Arduino IED,打开Microduino提供的测试程序,板卡选择Microduino Core+ (Atmega644P@16M,5V),直接下载即可;
  • 检测串口通讯是否正常:
    • 打开对应串口监视器后,发送大写“AT”(AT 后要有\r\n 符号),若返回“OK”,说明配置成功。

两个Microduino BT互相通信

Microduino BT串口透传数据到IOS设备

注意:如果使用Android设备调试,系统要4.3以上的才能检测到Microduino BT模块。

通讯源代码参考:https://github.com/iascchen/android-microduino

Microduino-Shield BT4.0 简单测试

其它应用:

Microduino 物联网智能家居方案

Microduino 手机蓝牙控制家用电器/zh

Microduino 手机蓝牙控制电视/zh

Microduino 小车

Microduino 蓝牙控制小车/zh

Microduino KIT

Microduino BLE_IOS-202KIT/zh

Microduino BLE_Android-202KIT/zh

问题解答

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

购买

历史

  • 2014年7月28日,取消使用模组方案,采用CC25541芯片,支持iBecons模式,原模块参考Microduino-【BT】/zh
  • 2013年6月5日,第二次打样完成,更名为Microduino-[BT]新增第三个可选串口——UART1,分成2个版本,一个2.1版本,所用模块为HM09;一个为4.0版本,所用模块为HM10。
  • 2013年5月10日,布板完成。


图库

Microduino BT 4.0 Front
Microduino BT 4.0 Back

视频