本文所使用的蓝牙模块是HM-10,通过串口控制,输入电压:3.3V / 5V 只需要一组电源供电。
内置电平转换功能。
如果用5.0V MCU与蓝牙模块通讯,5.0V电源端口供电,RX TX 逻辑电平5V
如果用3.3V MCU与蓝牙模块通讯,3.3V电源端口供电,RX TX 逻辑电平3.3V
RX,蓝牙模块串口接收端与MCU的TXD连接。
TX,蓝牙模块串口发送端与MCU的RXD连接。
GND,地端电源负极
3.3V,电源端3.3V电源
# 5V,电源端5V电源
Android手机端(蓝牙4.0)与模块连接需用专门的apk,http://pan.baidu.com/s/1eQ8P9nG
对模块发指令设置也在上面分享中。把指令(如AT+BAUD?)直接复制到串口调试工具中,查看配置蓝牙模块的设置。
剩下的就是串口的使用了。
'''****************************************************************************************************'''
串口的使用:
Linux终端中,可以使用minicom工具,另外使用前可能需要修改两处文件,改完重启下:
【1】修改/boot/cmdline.txt
sudo nano /boot/cmdline.txt
【删除红色部分】
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
【最终变为】
dwc_otg.lpm_enable=0console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
【2】修改/etc/inittab
sudo nano /etc/inittab
【注释最后一行内容】
#T0:23:respawn:/sbin/getty-L ttyAMA0 115200 vt100
Windows下,可以使用串口调试工具,如sscom
'''****************************************************************************************************'''
minicom的配置串口:sudo minicom -s
minicom的使用:
自动换行:Ctrl+A Z W
清屏:Ctrl+A C
回显:Ctrl+A E
退出:Ctrl+A Q Enter
'''****************************************************************************************************'''
树莓派通过串口控制蓝牙模块的程序
import serial
import time
ser = serial.Serial('/dev/ttyAMA0', 115200, timeout=1)
#ser = serial.Serial('COM3', 115200, timeout=1)
print ser.isOpen()
words="abcd"
while (1):
getchr = ser.read()
print getchr
ser.write(words)
endTime = time.time()
print ""
time.sleep(5)
ser.close()
如果安卓app发送字符出现发送不成功,比如点一下发一大串,是树莓派上串口没打开,Raspbian在raspi-config 中打开,并确认串口文件修改配置正常。
如果收发没反应,或者是乱码,确认连接正常,速率相匹配。