求救 蓝牙连接手机
读过几篇前辈关于通过蓝牙连接手机的报告,可有些细节,都是带过的。小弟的第一步,想让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,进行了初步试探。
各位高手,能帮我分析下吗?先谢了 跑过路过的同学,给点建议啊,这个蓝牙模块怎么判断与手机连接上了。 polo32081 发表于 2012-8-21 15:27 static/image/common/back.gif
跑过路过的同学,给点建议啊,这个蓝牙模块怎么判断与手机连接上了。
下载个蓝牙串口助手 卖家也給了个工具 “串口调试助手V2.7”,我用的mac机,用不上。
现在蓝牙模块本省是可控的,感到诡异是,蓝牙模块与手机的连接,可匹配对,但不连接。
现找到了厂家,加了qq,看他怎么答覆。
有新情况,在这里报告 参考下http://x.openjumper.cn/?p=49 你虽然连接了,但是没有打开串口,必须在手机端打开串口之后,模块与手机建立了通信,灯才不会闪 谢谢上面2位
问题基本搞清,是手机端没打开串口。
是我对蓝牙的无知引出的问题,以为蓝牙就是串口了,其实有很多协议的。
我用的 hc-06是蓝牙串口的,可我手头的旧手机没有蓝牙串口,必须要有第三方的软件才可完成连接。
原本的设想无法完成,我不可能或让用户保证自己的手机装有蓝牙串口,除非项目应用只对一种手机(如安卓系统),项目不考虑进行下去了。
奈何col 发表于 2012-8-22 11:35 static/image/common/back.gif
参考下http://x.openjumper.cn/?p=49
請問你給的那個LINK 的代碼是不是只是設置主機的? 遇到什么问题了?连接不上?
arduino 和android的蓝牙主要问题是在android应用上面 arduino只要serial()发送接收处理函数 android上面你需要去认真阅读一下蓝牙的api不然 或者直接调用我贴子里面的附件做测试.
页:
[1]