SIM800H 上的蓝牙 SPP 配置文件

Bluetooth SPP profile on SIM800H

我在我的项目中尝试使用蓝牙时遇到问题。在以前的版本中,我使用 HC-05 蓝牙模块,它在连接任何设备后立即为我提供一个简单的串行连接。现在项目发展了,我们选择使用 SIM800H,因为它为我们提供了 GSM+蓝牙。

当我连接任何 android 设备时,它会给我一些配置文件,但不会提供 SPP。我可以正常配对,但在使用任何 SPP 服务器应用程序 () 时,我永远无法从我的设备发送或获取数据。如果我从 Android 应用程序开始连接,它说它正在连接,而 SIM800 给我 URC,我回应:

+BTCONNECTING: "34:c7:31:aa:37:5b","SPP"
AT+BTACPT=1
OK
+BTCONNECT: 1,"Android",34:c7:31:aa:37:5b,"SPP"

但它停留在服务器模式,我无法使用命令 AT+BTSPPSEND 或 AT+BTSPPGET,如文档所述。

另一方面,如果我像文档所说的那样从我的设备开始连接:

AT+BTCONNECT=1,4 // Device is 1 and SPP profile is 4
OK
AT+BTSPPSEND
>I type anything here + ctrl+z
SEND FAIL

Android 方面一无所获。

此外,在这两种情况下,连接都会在大约 30 秒后断开,除非我关闭 SIM800H 并重新打开,否则我无法重新建立连接。

使用APP模式也没有成功(连接成功后立即发送字符串“SIMCOMSPPFORAPP”进行透明通信)。

SIM800H固件版本为

AT+CGMR
Revision:1309B07SIM800H32_BT

我尝试使用以下应用程序

Bluetooth Terminal

Bluetooth spp pro

BlueSPP

GSM 端工作完美,我每次尝试都可以 send/receive TCP 消息。

有没有人有使用这个模块的经验?感谢阅读!

更新:

我正在使用一个简单的草图来与模块的串行通信,不知道它是否相关,但就在这里。

#define SIM800_POWER 23

void setup() {
  Serial.begin(9600);
  Serial1.begin(19200);
  Serial.print("Setting all up");
  pinMode(SIM800_POWER, OUTPUT);
  Serial.print(".");
  delay(500);
  digitalWrite(SIM800_POWER, HIGH);
  Serial.print(".");
  Serial.println("OK");
}

void loop() {
  if(Serial1.available()){
    Serial.write(Serial1.read());
  }
  if(Serial.available()){
    Serial1.write(Serial.read());
  }
}

以及我在尝试 Andrii 的 后得到的结果:

Setting all up..OK
AT
OK
AT
OK
AT
OK
AT+BTPOWER=0
OK
AT+BTPOWER=1
OK
AT+BTCONNECT=1,4
OK
+BTCONNECT: 1,"Will",d4:87:d8:77:37:0b,"SPP"
AT+BTSTATUS?
+BTSTATUS: 5
P: 1,"Will",d4:87:d8:77:37:0b
C: 1,"Will",d4:87:d8:77:37:0b,"SPP"

OK
AT+BTSPPSEND
> SIMCOMSPPFORAPP
SEND FAIL

似乎 AT+BTSPPSEND 没有任何参数仅适用于从客户端(您的 SIM800H)发送到服务器(其他 SIM800,而不是您的 Android 设备,除非您的 Android 设备实现AT 命令支持)。对于数据发送,你应该使用 AT+BTSPPSEND 在收到 > 符号后 发送 SIMCOMSPPFORAPP 关键字,然后在收到 SEND OK 响应后发送命令AT+BTSPPSEND=<LENGTH_OF_YOUR_DATA> 然后,在收到 > 符号后,发送您的数据直到 Ctrl+Z 代码例如:

AT+BTSPPSEND
> SIMCOMSPPFORAPP
SEND OK

AT+BTSPPSEND=5
> HELLO
SEND OK

^Z

其中 HELLO - 是您的数据,AT+BTSPPSEND=5 中的 5HELLO 字符串的长度。 SIM800H_BT_Application_Note.

中的详细信息

更新大胆选择 小而重要的答案部分(感谢hlovdal