前两天在家折腾智能小车,想让它能用手机遥控前进后退。朋友推荐我试试蓝牙模块加手机APP控制,一开始觉得挺复杂,结果动手试了才发现,其实没那么难。
常见的蓝牙模块长啥样
市面上最常见的就是HC-05和HC-06这两种蓝牙模块,体积小,价格便宜,十几块钱就能买到。它们一般有四个引脚:VCC、GND、TXD、RXD,接上单片机比如Arduino或者STM32,再连上电源,就能和手机通信了。
怎么让手机连上蓝牙模块
手机端需要一个支持串口通信的APP,比如“蓝牙串口助手”或者“Serial Bluetooth Terminal”,在应用商店搜一下就有了。打开APP,先搜索可用设备,会看到类似“HC-05”这样的名称,点进去输入默认密码“1234”或“0000”就能配对成功。
我家那台老安卓手机刚开始连不上,后来发现是系统限制了后台权限,手动开了允许才能正常通信。新一点的手机基本一次搞定。
数据是怎么传的
比如我想让小车前进,在APP里点个“F”按钮,实际是发送了一个字符‘F’到蓝牙模块。单片机收到这个字符后,判断如果是‘F’,就让电机正转;如果是‘B’,就反转。逻辑很简单:
if (receivedChar == 'F') {
digitalWrite(motor1, HIGH);
digitalWrite(motor2, LOW);
} else if (receivedChar == 'B') {
digitalWrite(motor1, LOW);
digitalWrite(motor2, HIGH);
}
自己做个简易遥控界面
有些APP还支持自定义按钮布局。我把常用指令设成四个方向键加一个停止键,放在主界面,爸妈都能上手操作。孩子玩的时候最喜欢用手机控制小车追着宠物狗跑,虽然狗完全不搭理……
要是你会点开发,还能用MIT App Inventor自己做个专属APP,拖拽式编程,不用写代码也能做出带按钮、滑动条的控制界面,生成APK装到手机里就能用。
遇到问题别慌
最常碰到的就是配对失败。先检查模块供电是否稳定,电压不够的话信号容易断。另外注意TXD和RXD有没有接反——模块的TXD要接单片机的RX,RXD接TX,这个容易搞错。
有一次我烧录程序时蓝牙还在连着,导致下载失败。后来养成习惯:只要上传代码,先断开蓝牙模块的电源。
现在我家阳台上那个自动浇花装置也是用蓝牙APP控制的。下班路上打开手机,看看土壤湿度数据,顺手启动水泵几秒钟,比定时器灵活多了。