极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 21553|回复: 8

求救 蓝牙连接手机

[复制链接]
发表于 2012-8-20 23:54:50 | 显示全部楼层 |阅读模式
读过几篇前辈关于通过蓝牙连接手机的报告,可有些细节,都是带过的。
小弟的第一步,想让arduino通过蓝牙连接的手机发短信,今次遇到了问题,请前辈赐教。

首先买了hc-06蓝牙模块,45元,4脚连接 arduino相应的排座,不细表。
写了个小程序,想通过串口助手发短信。没几行,请读一下:

#include <SoftwareSerial.h>
#define RX 10
#define TX 11

SoftwareSerial BTSerial(RX,TX);

void setup(){
  pinMode(RX,INPUT);
  pinMode(TX,OUTPUT);
  Serial.begin(9600);
  BTSerial.begin(9600);
}  

void loop(){
  String in_comm = "";
  String tb_comm = "";
  char c;
  if(Serial.available()){
    while(Serial.available()>0){      //从串口助手读命令
      c=Serial.read();
      in_comm += c;   
    }  
    BTSerial.print(in_comm);           //1.通过软串口发AT命令
//    BTSerial.print("\r\n");             //2.加 AT结束符
//    BTSerial.println(in_comm);     //3.直接利用println()的换行
   
//    Serial.println(in_comm);
    delay(50);
  }
  if(BTSerial.available()){              //从软串口读回AT命令的回应
    while(BTSerial.available()>0){
      c = BTSerial.read();
      tb_comm += c;
    }
    Serial.println(tb_comm);
    delay(1000);
  }
}
就这么个简单的串口测试程序,可不完全工作。
蓝牙模块通电后,led快速闪动(已经肯定是从模块),用Nokia手机5110连接,搜到模块,用过蓝牙的知道,一个“linvor”出现,然后匹配,密码1234,成功,可是,按照说明,此时的led应该变长亮,可它仍在闪动,换了一个索爱手机,也一样,匹配成功,但蓝牙照样闪动,先摆放一边。

回到串口助手。
输入 AT,回了  OK,很好。
输入 AT+VERSION,回OKlinvorV1.5,很好。
输入 AT+BAUD4,回OK9600,很好。
从上面可以确认,电脑串口,是可以控制蓝牙模块本身的。
然后,想控制手机了,就不成了。
输入个最简单的,回本机号码:AT+CNUM=?,没有回应。
至此,实验进行不下去了,查了N多资料,无果。

这里2个问题,手机跟蓝牙究竟连上没?似乎没真正连上,一则蓝牙还在闪,二则,在一个手机匹配并没退出时,另个手机还可以进行匹配,一个蓝牙模块可以同时连接2部手机?
第二个问题,发 AT命令的格式正确吗?程序的注释1、2、3,进行了初步试探。

各位高手,能帮我分析下吗?先谢了
回复

使用道具 举报

 楼主| 发表于 2012-8-21 15:27:52 | 显示全部楼层
跑过路过的同学,给点建议啊,这个蓝牙模块怎么判断与手机连接上了。
回复 支持 反对

使用道具 举报

发表于 2012-8-21 20:05:28 | 显示全部楼层
polo32081 发表于 2012-8-21 15:27
跑过路过的同学,给点建议啊,这个蓝牙模块怎么判断与手机连接上了。

下载个蓝牙串口助手
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-21 22:06:09 | 显示全部楼层
卖家也給&#65532;了个工具 “串口调试助手V2.7”,我用的mac机,用不上。
现在蓝牙模块本省是可控的,感到诡异是,蓝牙模块与手机的连接,可匹配对,但不连接。
现找到了厂家,加了qq,看他怎么答覆。
有新情况,在这里报告
回复 支持 反对

使用道具 举报

发表于 2012-8-22 11:35:58 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2012-8-22 13:24:43 | 显示全部楼层
你虽然连接了,但是没有打开串口,必须在手机端打开串口之后,模块与手机建立了通信,灯才不会闪
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-22 21:36:56 | 显示全部楼层
谢谢上面2位
问题基本搞清,是手机端没打开串口。
是我对蓝牙的无知引出的问题,以为蓝牙就是串口了,其实有很多协议的。
我用的 hc-06是蓝牙串口的,可我手头的旧手机没有蓝牙串口,必须要有第三方的软件才可完成连接。
原本的设想无法完成,我不可能或让用户保证自己的手机装有蓝牙串口,除非项目应用只对一种手机(如安卓系统),项目不考虑进行下去了。
回复 支持 反对

使用道具 举报

发表于 2013-3-12 16:39:39 | 显示全部楼层
奈何col 发表于 2012-8-22 11:35
参考下http://x.openjumper.cn/?p=49

請問你給的那個LINK 的代碼是不是只是設置  主機的?
回复 支持 反对

使用道具 举报

发表于 2013-7-4 14:57:40 | 显示全部楼层
遇到什么问题了?连接不上?
arduino 和android的蓝牙主要问题是在android应用上面 arduino只要serial()发送接收处理函数 android上面你需要去认真阅读一下蓝牙的api不然 或者直接调用我贴子里面的附件做测试.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-6 01:21 , Processed in 0.047955 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表