我正在尝试通过android设备上的蓝牙为Arduino构建一个家庭自动化系统,并且有几个设备和传感器正在发送数据和其他接收(光敏电阻,温度和湿度从Arduino到手机,加速度计从android手机到Arduino)还有其他简单的东西,比如控制手机的led条,伺服器等
我想知道是否有可能在串行通信中发送/接收所有这些数据而不会引起任何问题?
这完全有可能。我已经创建了一些同样的应用程序。然而,这是一个巨大的过程。这是我用来创建例如带有XMC4500µC的蓝牙示波器的配方,但它与arduino相似。
1)硬件要求将串行端口(µC)与蓝牙收发器(例如BTM-222)连接。配置您的串行接口以与该收发器通信(波特率,奇偶校验,开始/停止位)并相应地配置收发器模块。
2)在应用程序上配置蓝牙在developer.android.com上有一个很好的解释。我建议您将应用程序配置为客户端,并将µC端配置为服务器。
3)定义一个通信协议Android用Java通信,µC用C/Assembler通信。定义每个交互的字节码。第一个字节是要执行的命令:
获取温度数据:0x00
获取湿度数据:0x01
........
µC:程序接收中断发送请求的值(使用一个简单的状态机)
Android:发送命令,如果有答案等待。
4)测试&调试、测试;调试、测试;调试……
我在波特率为115200的情况下发送数据没有问题。
我希望这是一点帮助