1#
发表于 2015-04-24 23:49:03
intel Edison官方系统只开放了HID和PAN权限,HID指的像键盘鼠标之类的人机交互设备,PAN是蓝牙局域网,其他协议需要等到第二版更新才会支持,下图为intel官方PPT介绍
过年这段时间对Edison自带的蓝牙进行了调试试验,现在已经可以与HC04, HC05, HC06蓝牙模块进行通信(理论上只要是蓝牙透明串口的模块都支持),但不算完美,就边完善边更新帖子了。
我使用的Edison是刷入Debian系统(刷入debian教程),因为现在没有yocto系统进行调试,所以yocto系统需要等待下次更新。
蓝牙模块与arduino连接,我使用的是HC04
硬件连接
HC04 ARDUINO
TXD-> 10
RXD-> 11
下面是蓝牙模块连接arduino运行的代码
[C] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11);// RX, TX
voidsetup()
{
Serial.begin(9600);
while(!Serial) {
}
mySerial.begin(9600);
}
voidloop()
{
if(mySerial.available())
Serial.write(mySerial.read());
if(Serial.available())
mySerial.write(Serial.read());
}
|
对Edison操作
首先打开putty以管理员账户登录
输入”apt-get update"回车
输入”apt-get install libusb-dev libdbus-1-dev libglib2.0-dev automake libudev-dev libical-dev libreadline-dev rfkill“回车
输入“ apt-get install bluetooth bluez-utils "回车 输入“ wgethttp://www.kernel.org/pub/linux/bluetooth/bluez-5.28.tar.xz "回车
输入 " tar xf bluez-5.28.tar.xz "回车
输入 " cd bluez-5.28 "回车
输入 " ./configure –disable-systemd ”回车,手工输入命令,不要复制
输入 ”make -j 2"回车
输入 ”make install "回车
下载附件 所需文件.rar (306.55 KB, 下载次数: 28) 解压缩,然后使用winscp把文件按照相应路径复制到Edison,权限设置为0755。
输入”mkdir /etc/firmware"回车
输入" cp /lib/firmware/bcm43341.* /etc/firmware/"回车
输入”bluetooth_rfkill_event &"回车,按Ctrl+C
输入" rfkill unblock bluetooth"回车,按Ctrl+C
输入"hcitool scan”回车,搜索蓝牙模块
输入“nano /etc/bluetooth/rfcomm.conf”回车,编辑配置文件,修改成下面这样,注意,需要去掉几个注释,请认真对比。
# RFCOMM configuration file.
#
rfcomm0 {
# # Automatically bind the device at startup
bind yes;
#
# # Bluetooth address of the device
device 98:D3:31:30:0E:E6; #替换成刚才搜索到模块的MAC地址
#
# # RFCOMM channel for the connection
channel 1;
#
# # Description of the connection
comment "BC04-B"; #修改成刚才搜索到模块的名称
}
修改完以后输入“Ctrl+X保存
输入”echo "xx:xx:xx:xx:xx:xx 1234" >> /var/lib/bluetooth/xx:xx:xx:xx:xx:xx/pincodes “回车
XX:XX 替换成刚才搜索到的地址 1234替换成你的模块PIN码 xx:xx:xx:xx:xx:xx/pincodes里的XX替换成Edison蓝牙的地址
输入"/etc/init.d/bluetooth restart"回车,重启蓝牙服务
输入”cat /dev/rfcomm0 " 回车,在arduino的串口输入任意字符都会显示到Edison 控制台上,按"Ctrl +C 退出接收
给HC04蓝牙模块发送消失
输入“ echo "test">/dev/rfcomm0" 就会在arduino串口控制台显示出来
Edison重启以后需再次激活Edison自带模块,命令为:
输入”bluetooth_rfkill_event &"回车,按Ctrl+C
输入" rfkill unblock bluetooth"回车,按Ctrl+C
结束
蓝牙调试的时候用了很多的命令,可能有些命令在我的Edison上有操作,但我没写出来,麻烦论坛的朋友按照上面操作的时候反馈一下与什么错误没有, 只有一个Edison,所以没办法把Edison初始化,我也就没办法测试了。
|