Python与硬件学习笔记:蓝牙(二)


大家也可以按附录中的AT命令详解来设置蓝牙模块,下面我们用蓝牙模块跟树莓派连接来制作一个蓝牙无线通信开关,手机充当遥控器,我们需要将蓝牙模式设为从模式,波特率为9600,配对密码为0000。

蓝牙无线通信开关制作

1、所需材料

1)蓝牙模块; 2)树莓派

3) LED灯; 4) 连接线数根

2、引脚连接

蓝牙模块 Raspberry Pi
GND GND
5V 5V
TX RX(Pin 10)
RX TX(Pin 8)
LED Raspberry Pi
短脚 GND
长脚 GPIO 21(Pin 40)

 

3、树莓派UART配置和使用

A、修改文件/boot/cmdline.txt:sudo nano /boot/cmdline.txt

dwc_otg.lpm_enable=0【console=ttyAMA0,115200kgdboc=ttyAMA0,115200】console=tty1root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

将【......】部分删除,变为:

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2rootfstype=ext4 elevator=deadline rootwait

B、修改文件/etc/inittab: sudo nano /etc/inittab

注释最后一行内容:

#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

C、使用minicom,测试树莓派UART是否正常工作

安装minicom: sudo apt-get install minicom

启动minicom: minicom -b 9600 -o -D/dev/ttyAMA0

\

使用minicom发送内容:直接在控制台输入内容即可,如果minicom打开了回显可在控制台中观察到输出内容,如果回显关闭则控制台中没任何反应,千万不要以为minicom没有正常工作。

minicom回显控制: 打开回显:先按Ctrl+A,再E

关闭回显:先按Ctrl+A,再Q

D、使用pyserial

minicom仅满足调试用途,如果需要编程解决问题那么python的serial扩展库—pyserial,使用命令安装:sudo apt-get install python-serial,安装此库后,我就可以调用此库来编写程序了。

4、软件设计

首先找一步安卓手机,再到这里链接: http://pan.baidu.com/s/1pJNwpdT 密码: x5f3下载一个“蓝牙开关.apk”。

\

再登陆到树莓派,新建Python文件: bluetooth.py 代码如下:

# -*- coding: utf-8 -*   #编码方式
import serial     #包含相应的库
import time
import RPi.GPIO as GPIO 

GPIO.setwarnings(False)   #取消警告
GPIO.setmode(GPIO.BCM)    #设置引脚编码方式
GPIO.setup(21,GPIO.OUT)   #讲GPIO 21口设置为输出模式

ser = serial.Serial('/dev/ttyAMA0', 9600, timeout = 0.5)  #打开串口,括号内为参数

while True:   #循环
	if ser.isOpen() == False:
		ser.open()
	
	switch = ser.read()   #读取串口中的数据
 	print switch         #打印从串口中读取的数据
	#ser.write('A')    #相对蓝牙来说向外输出给用户,本程序不需要用到,仅告知 
	if switch == 'y':   #判断读取的数据是‘y’
		GPIO.output(21,GPIO.HIGH)  #如果是‘y’点亮led
	if switch == 'n':    #判断读取的数据是‘n’
		GPIO.output(21,GPIO.LOW)  #如果是‘n’熄灭led
	time.sleep(0.1)   #必要的延时

保存文件执行。

接下来我们将安卓手机蓝牙打开,然后搜索设备,将会搜索到连接在树莓派上的蓝牙,点击它,输入配对密码后配对成功。然后打开刚刚下载的“蓝牙通信.apk”安卓程序。打开后如下图1。点击“连接蓝牙”按钮,将会出现刚刚配对蓝牙列表,然后选择树莓派蓝牙,连接成功后,显示界面如下图2

\
图一

\

这时你就可以测试你的远程无线开灯光灯按钮了,观察LED灯的变化吧。有兴趣有条件的同学,可以拿两个树莓派和蓝牙模块,一个做主,一个做从,让们两进行相互通信。

评论关闭