|
|
读过几篇前辈关于通过蓝牙连接手机的报告,可有些细节,都是带过的。
小弟的第一步,想让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,进行了初步试探。
各位高手,能帮我分析下吗?先谢了 |
|