使用Intel® Edison和TI SensorTag进行蓝牙低功耗开发

本文将指导如何使用GATT配置文件,通过蓝牙低功耗(BLE)与Texas Instruments SensorTag进行通信。

概述

本指南将教如何使用GATT配置文件,通过蓝牙低功耗与Texas Instruments SensorTag进行通信。

要求

需要已经组装好Intel® Edison开发板,更新到最新固件,通过串行连接,并连接到Wi-Fi。如果需要帮助完成这些步骤,请参考入门指南。

安装GATT工具

TI SensorTag以及许多其他蓝牙设备使用通用属性配置文件(GATT)与计算机和其他设备进行通信。GATT工具是BlueZ软件包中的标准工具,但默认情况下并未安装在Intel Edison开发板上。要安装它,请通过串行登录到Intel Edison开发板并输入以下命令:

root@edison: cd ~ root@edison: wget https://www.kernel.org/pub/linux/bluetooth/bluez-5.24.tar.xz --no-check-certificate root@edison: tar -xf bluez-5.24.tar.xz root@edison: cd bluez-5.24 root@edison: ./configure --disable-systemd --disable-udev root@edison: make root@edison: make install

要能够从任何地方启动gatttool,请将其添加到路径:

root@edison: export PATH=$PATH:~/bluez-5.24/attrib/

使用bluetoothctl扫描和发现BLE设备

首先在Intel Edison开发板上启用蓝牙。

root@edison: rfkill unblock bluetooth root@edison: bluetoothctl

注册代理并将其设置为默认。

[bluetooth]# agent KeyboardDisplay [bluetooth]# default-agent [bluetooth]# scan on

如果扫描中没有显示SensorTag,请点击SensorTag侧面的配对按钮。一旦发现了SensorTag的MAC地址,可以关闭扫描模式并退出。

[bluetooth]# scan off [bluetooth]# quit

在上面的屏幕截图中,SensorTag的MAC地址被突出显示。

使用gatttool读取传感器值

现在可以使用gatttool读取SensorTag的传感器数据。

使用上一步中收到的MAC地址以交互模式启动gatttool。

root@edison: gatttool -b 34:B1:F7:D5:15:38 -I

连接到设备,通过向配置句柄0x29写入01来打开温度传感器,并从温度句柄0x25读取值。

[34:B1:F7:D5:15:38][LE]> connect [34:B1:F7:D5:15:38][LE]> char-write-cmd 0x29 01 [34:B1:F7:D5:15:38][LE]> char-read-hnd 0x25

温度传感器对应的句柄值是从Sensor Tag属性表中提取的:

输出是两个16位无符号值。要将这些值转换为温度读数,它们必须输入到使用SensorTag wiki中概述的转换算法的脚本中:

创建此类脚本的一种方法是使用Python编程语言和pexpect模块。例如,可以从以下链接下载Python脚本,并使用它从SensorTag读取温度值:

root@edison: wget https://github.com/msaunby/ble-sensor-pi/archive/master.zip --no-check-certificate root@edison: unzip master.zip root@edison: cd /ble-sensor-pi-master/sensortag

使用vi打开sensortag_test.py。

root@edison: vi ./sensortag_test.py

将第62行从

tool.expect('[CON].*>')

更改为

tool.expect('Connection successful')

编辑完成后,按Escape键并输入:

:wq

安装pip和所需的Python模块

要使用pexpect运行Python脚本,必须安装pexpect,使用Pip安装最简单。Pip默认情况下并未安装在Intel Edison开发板上,也不在官方opkg仓库中。但是,Pip在Michael Hirsch编译的非官方Intel Edison开发板仓库中。以下是他关于使用非官方仓库的指南摘录:

使用vi编辑base-feeds.conf文件。

root@edison: vi /etc/opkg/base-feeds.conf

输入:

src/gz all http://repo.opkg.net/edison/repo/all src/gz edison http://repo.opkg.net/edison/repo/edison src/gz core2-32 http://repo.opkg.net/edison/repo/core2-32

按Escape键并输入:

:wq

更新opkg并安装Python。

root@edison: opkg update root@edison: opkg install python-pip

为Pip安装setup-tools。

root@edison: wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py --no-check-certificate -O - | python

启动Python脚本并读取温度

现在已经准备好运行温度脚本了。从/ble-sensor-pi-master/sensortag目录,输入以下命令。

root@edison: ./sensortag_test.py 34:B1:F7:D5:15:38

输出应该类似于下面的屏幕截图。

立即开始使用Intel® IoT开发者计划,它提供了知识、工具、套件和专家社区,以快速轻松地将创新想法转化为IoT解决方案。

梦想它,用Intel® IoT开发者套件构建它,适用于Intel® Edison和Intel® Galileo平台。这些套件是多功能的、性能优化的、完全集成的端到端IoT解决方案,支持多种编程环境、工具、安全性、云连接和硬件。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485