Microduino BLE Android-202KIT/zh

来自Microduino Wikipedia
Csyyn33@sina.com讨论 | 贡献2015年8月12日 (三) 06:53的版本 测试代码分析
跳转至: 导航搜索
Language English

概述

项目名称:Microduino BT与Android设备进行通讯

目的:Android手机通过手机App发送字符串给Microduino-Core和Microduino BT,并通过串口监视器显示字符数据。

难度:初级

耗时:30分

制作者:Microduino Studio-YLB

材料清单

  • Microduino设备
模块 数量 功能
Microduino-Core/zh 1 核心板
Microduino-USBTTL/zh 1 下载程序
Microduino-BT/zh 1 蓝牙通讯
202KIT图片
  • 软件设备

Arduino IDE(1.0版本以上)

  • 其他设备及器件
    • 支持蓝牙4.0的Android设备,系统必须是4.3以上。
    • micro usb线。

文档

测试程序及App下载:文件:BT—APP.zip

调试

   步骤一:将Microduino-Core与Microduino-USBTTL两个模块叠在一起,将USB线插入USBTTL的插孔,另一端连接电脑USB插口,启动Arduino IED,打开之前下载的开发包的中Microduino提供的测试程序M_ble_Serial.ino,在工具(tools)->板卡(Board)中选择Microduino Core (Atmega328P@16M,5V),并在工具(tools)->串口(Serial)中选择对应的串口号。之后点击IDE左上角的√按钮对程序进行编译,编译结束后点击√右边的->按钮将程序烧录到板子中;
Download
   步骤二:程序下载完毕将所有模块叠加,并使用USB数据线把模块连到电脑,注意先断电再叠加。
202KIT-OK
   步骤三:开始设置Android设备,启动Android设备的蓝牙功能,将测试包中的.apk文件拷入手机中并安装,之后打开App,并在电脑IDE端打开串口监视器;
   步骤四:点击App右上方SCAN按钮,这是用来搜索周围蓝牙接入点的,点击SCAN后会显示周围的蓝牙设备。界面如下
App—蓝牙搜索
   点击点阵时钟对应的蓝牙编号,进入如下界面:
App—蓝牙通信
   等待2-3秒钟,待屏幕中央出现“ready”字样,说明手机已经与蓝牙建立了连接,点击屏幕中间“Sync RTC With Phone”按钮,同时观察按钮上方“RTC TIME”和串口监视器的的变化
App—串口监视器
App—手机App
   可以看到手机RTC部分的内容有了变化,另一边串口监视器中也收到内容,验证了蓝牙的双向通信功能

测试代码分析

#include <SoftwareSerial.h> 
// RX, TX ,使用默认蓝牙通信串口4,5
SoftwareSerial mySerial(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");  //向蓝牙通信的另一端发送数据
    } 
}

结果

通过Microduino BT能够方便讲Microduino 核心与Android手机进行通信。

注意问题

  • 串口波特率必须为9600,不然接收字符串会乱码。
  • 若保持默认跳线(RX0、TX1),下载程序时请拔下Microduino BT4.0模块,待程序下载完毕后再断电叠加;
  • 若采用了改跳线的方法,可将Microduino BT4.0与Core的串口连接由TX-RX0、RX-TX1改成:
    • TX-D2、RX-D3(相对Core+的Serial1)
    • TX-D9、RX-D10(可调用SoftwareSeria库来解决)