查看“MCookie-BLE”的源代码
←
MCookie-BLE
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{{Language|mCookie-BT}} {| style="width: 800px;" |- | [[file:mCookie-bt-rect.jpg|400px|thumb|right|mCookie-BT]] mCookie-BT模块是蓝牙低能耗 (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” 来设置, 只有在从机下才可以。 **工作模式 0:透传 ,1: 直驱(保留), 2: iBeacon **iBeacon 可苹果应用商店上的免费应用 Locate iBeacons 来测试,目前显示距离,使用方法参考: http://blog.csdn.net/mzy202/article/details/20365691 [[File:ble-rule.jpg|600px|center|thumb]] ==文档== 支持AT指令配置/控制:'''[[File:Microduino-BLE.pdf]]''' ==开发== ===串口通讯要求=== *默认的串口配置为: **波特率:9600 **无校验 **数据位8 **停止位1 **设置成:“\r\n”、“9600baud” [[File:Serial-mcookie.jpg|thumb|600px|center]] *不同核心分配的串口不一样,见表格: **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)|| |} ===通过'''Core、Core+'''与蓝牙设备通讯=== *BT与Core、Core+默认通信接口是Serial *程序 <source lang="cpp"> #define my_Serial Serial //定义串口通讯为Serial String msg = ""; //定义一个字符串 void setup() { // 初始化蓝牙通信波特率 my_Serial.begin(9600); } void loop() { //每收到一次信号,向通信另一端反馈一次 if (my_Serial.available() > 0) //如果串口有数据输入 { msg = my_Serial.readStringUntil('\n'); //获取换行符前所有的内容 my_Serial.println("^_^ Hello,mCookie!"); //向蓝牙通信的另一端发送数据 } } </source> ===通过'''CoreUSB'''与蓝牙设备通讯=== *程序 <source lang="cpp"> #define my_Serial Serial1 //定义串口通讯为串口1,BT与CoreUSB默认通信接口 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("^_^ Hello,mCookie!"); //向蓝牙通信的另一端发送数据 } } </source> ===与Android设备通信=== *系统要4.3以上的手机才能与mCooki-BT模块通讯。 *下载Android的通讯软件,安装到手机上。 [[File:mSerial.png|200px|center]] |- | 步骤一:将程序下载到mCookie里; |- | [[File:ble-Download2.png|600px|center|thumb|Download]] 步骤二:开始设置Android设备,打开Android设备的蓝牙功能,打开App,并在电脑IDE端打开串口监视器; 步骤三:点击App右上方SCAN按钮,这是用来搜索周围蓝牙接入点的,点击SCAN后会显示周围的蓝牙设备。 点击对应的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设备通信=== *iPhone4s以上、iPod touch 5以上、iPad 3以上、iPad mini以上; *前往App Store里下载LightBlue; [[File:LightBlue.jpg|400px|center|thumb|LightBlue]] 步骤一:将程序下载到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> *下载程序 **将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]] ===修改串口通讯引脚=== 默认使用串口为D0(RX)、D1(TX),玩家可根据情况更改串口。串口引脚参考下图: [[File:ble-Serial-change.jpg|600px|center|thumb]] 使用软串口通讯程序: <source lang="cpp"> //使用其他软串口用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"); //向蓝牙通信的另一端发送数据 } } </source> ==应用== [[蓝牙彩灯]]<br> [[蓝牙小夜灯]]<br> [[蓝牙通信]]<br> [[温度湿度计]]<br> ==问题解答== *无法和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 ==图库== [[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]] |}
返回至
MCookie-BLE
。
导航菜单
个人工具
创建账户
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
Welcome
首页
创客大赛
大赛详情
3D打印
安装月球车
图形化编程
操控月球车
升级月球车
编程工具下载
软件下载
Arduino
Processing
Mixly
Scratch
模块套件
Microduino 102
mCookie 102
mCookie 202
mCookie 302
IBC
其他
应用套件
四轴飞行器
平衡车
小车CUBE
音乐播放器
刷卡音乐播放器
wifi气象站
彩虹音乐触摸灯
分贝检测仪
迎门汇报
LED点阵时钟
LED点阵屏幕
硬件
mCookie
Sensor
Microduino
MicroWrt
MicroNux
MicroRobot-Core
MicroRobot-CoreESP
ideaBoard
ideaBox
MicroMV
MicroAI
帮助
常见问题
帮助
工具
链入页面
相关更改
特殊页面
页面信息