告诉当蓝牙模块Arduino的连接(Tell when Bluetooth module conne

2019-08-29 04:43发布

我正在与Android和Arduino的项目,我试图找出如何在Arduino的侧面告诉我们,如果蓝牙连接或没有。

我使用这些的一个蓝牙模块进行连接。 我知道我可以通过Android的发送命令,但我想有连接时的动作自动发生,并没有运行在Android如果可能的话后台应用程序。

Answer 1:

使用附带的模块, 没有别的 ,你不能:注意模块有四个连接器:

  • 电源(VCC)
  • 地面
  • TX(发送)
  • RX(接收)

鉴于此界面来确定蓝牙模块是否配对唯一的办法就是送东西给配对的设备和有它在,例如,你的Arduino知道它连接的方式进行响应。 举例来说,如果你的Android程序总是回应与"Hi there!" 当它接收一个字符串"Hello?" ,然后通过seingin "Hello?" 你的Arduino会知道它与你的Android手机/平板电脑配对。 你的Arduino可以轮询(发送询问串)每分钟(或每5秒),看它是否与您的设备配对。


有一个更好的方式,但它需要你做一些焊接。 如果您的模块是HC-03 / HC-05为基础的,那么PIO9引脚的“配对指示灯”(见数据表在这里 )。 你可以说引脚连接到一个Arduino输入引脚和阅读水平:读取数字1将指示装置配对,而读取数字0将表明,事实并非如此。 这是可能的,虽然不能肯定,你的模块上的引脚标记STATE正是这种针,即表示配对状态。 不幸。 该引脚没有连接到头部,所以你必须到电线焊接到correctponding垫将其连接到您的Arduino。 你应该在电压模式万用表连接到该垫的第一测试和测量成对和非成对的状态垫与地面之间的电位。 如果这是响应对状态引脚,那么你是金色的。 这可能是它指示电源(如HC-三月五日PIO8上时whilc闪烁)。 如果事实证明该STATE引脚不配对状态,那么你应该从你的供应商要求数据表,并用它来找到状态LED连接:一个是可能存在的。 一旦你找到了正确的垫,再次使用电压表验证其功能。 然后焊接电线到连接,并从您的Arduino阅读。

重要提示 :请确保您的Arduino 从来没有拿出一个数字1连接到蓝牙模块状态引脚的Arduino的引脚上:这些蓝牙模块电压为3.3V运行,并连接任何不受保护的引脚至5V将是破坏性的。 在VCC和TXD引脚是你买的模块中的电压偏移,但LED /状态行很可能并非如此。 因此,如果连接到“地位”蓝牙模块上的Arduino的引脚配置为输出和你digitalWrite(HIGH)到它,你可能会损坏蓝牙模块。



Answer 2:

Unfortuntaely中, HC-05配对时会切换状态,但不会输出为1,直到它的实际连接到一些东西。

举例来说,我可以从我的解除配对手机HC-05 ,再次配对,然后LED将改变状态,但国家引脚的输出仍然是0。如果我打开一个应用程序,并连接到该设备,然后手动在LED和状态引脚将改变状态。 LED将周期性闪烁两次,并且状态引脚输出一个1到Arduino。

如果你想读取STATE引脚的值,一个导线连接到任何输入到Arduino,和代码Serial.println(digitalRead(inputPin)); inputPin作为线到Arduino的输入端。

我一直在争取这个东西了几个月,还没有找到一种方法,使这件事自动连接到我的手机。 它甚至不会允许我从我的手机在连接到它的HC-05 ,除非我下载一个应用程序到我的Android。 它可以将绑定HC-05到某个地址,但即使这样也没有为我工作。 我想惹"AT+CLASS"命令,但命令后面的文档已经阻碍了我迄今。



Answer 3:

从HC-05数据表我们可以看到,连接状态取决于从PI09输出。 显然,发送 “AT + BIND?” 该模块将返回的形式,PI08和PI09的状态“+ POLAR = PI08,PI09”然而,这是没有意义的我,因为为了得到这一点,你必须输入模式,并进入AT模式将破坏配对连接,因此它总是会发送PI09标记为“未连接”。

因此,为了连接是否依然从arduinos POV我只能看到2种可行的方式生活:

  • 计划的Arduino来,每隔一段时间,发送“你好?” 如果没有收到预期的“喜回”的响应,那么假定它没有连接。
  • 连接PI09到一个Arduino输入引脚,读它的价值时,你要检查连接是否带电或不


Answer 4:

AT+STATE? 将返回连接的当前状态。 是的,你需要在模式进入,即通过打开HC05模块引脚11 HIGH完成。 它确实需要焊接,但它还挺值得的。 然后,它允许完全在设备的控制,然后将其设置低,使其返回到正常工作模式。

另一种选择,我不完全理解,是AT+MPIO? 命令,该命令返回一些奇怪的蒙面格式我还不知道所有的引脚的状态。

我用的第一个选项上面,这样我可以终端(蓝牙)从手机到HC05和一个LED /继电器等开关(即弹出销2到高)的HC05。 这需要在进入AT模式(引脚11 HIGH),发送该命令AT+PIO=2,1 ,然后设置销11为LOW返回到正常工作模式。

注:我注意到我不得不把一个200ms的延迟高,AT和LOW命令之间。 Angela的解决方案是很好-我使用廉价XBEE蓝牙模块( HC05蓝牙蜂万事达&从站模块使用蓝牙的XBee为阿尔杜伊诺uk2015 )2个单元(HC05 / 6),用于5Stg其在XBEE格式布置-得心应手为3.3诉



文章来源: Tell when Bluetooth module connects on Arduino