树莓派蓝牙连接手机或其他设备(主机+从机)

您所在的位置:网站首页 搜索蓝牙设备连接苹果手机 树莓派蓝牙连接手机或其他设备(主机+从机)

树莓派蓝牙连接手机或其他设备(主机+从机)

2024-07-16 16:19:24| 来源: 网络整理| 查看: 265

扫描&查看MAC:sudo bluetoothctl

输入命令sudo bluetoothctl进入此工具的命令界面 使用命令scan on命令可以扫描当前环境中存在的蓝牙设备。 找到需要连接的设备,记录MAC地址。

[NEW] Device 64:46:0B:05:8F:07 64-46-0B-05-8F-07 [CHG] Device 64:46:0B:05:8F:07 LegacyPairing: no [CHG] Device 64:46:0B:05:8F:07 Name: SU_Band [CHG] Device 64:46:0B:05:8F:07 Alias: SU_Band

使用bluetoothctl进行连接有些问题。

连接设备:bluez

bluez是linux官方蓝牙协议栈。

安装和配置 #安装 sudo apt-get install pi-bluetooth bluez bluez-firmware blueman #添加用户到蓝牙组(假设用户名为pi) sudo usermod -G bluetooth -a pi sudo reboot #重启 #启动/增加SPP(Serial Port Profile) sudo vim /etc/systemd/system/dbus-org.bluez.service

给配置文件增加两行:

[Unit] Description=Bluetooth service Documentation=man:bluetoothd(8) ConditionPathIsDirectory=/sys/class/bluetooth [Service] Type=dbus BusName=org.bluez #增加下面这两行 ExecStart=/usr/lib/bluetooth/bluetoothd -C ExecStartPost=/usr/bin/sdptool add SP NotifyAccess=main #WatchdogSec=10 #Restart=on-failure CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE LimitNPROC=1 ProtectHome=true ProtectSystem=full [Install] WantedBy=bluetooth.target Alias=dbus-org.bluez.service

再重启sudo reboot 使用命令hciconfig查看树莓派的蓝牙信息。

hci0: Type: Primary Bus: UART BD Address: AA:AA:AA:AA:AA:AA ACL MTU: 1021:8 SCO MTU: 64:1 UP RUNNING PSCAN ISCAN RX bytes:353313 acl:4941 sco:0 events:9829 errors:0 TX bytes:130290 acl:8889 sco:0 commands:217 errors:0

可以看到设备是hci0

SSP模式与其他蓝牙设备进行连接 从机模式:被动连接

使用命令sudo rfcomm watch hci0开启等待连接

pi@raspberrypi:~ $ sudo rfcomm watch hci0 Waiting for connection on channel 1

打开手机蓝牙调试助手,连接树莓派蓝牙 连接成功后,/dev/目录下将生成一个设备rfcomm0,可以直接当做串口设备进行使用。

#发送数据 echo 1234541 > /dev/rfcomm0 #读取数据 cat /dev/rfcomm0 主机模式:主动连接

使用命令:sudo rfcomm conn /dev/rfcomm0 [MAC]连接到目的主机

pi@raspberrypi:~ $ sudo rfcomm conn /dev/rfcomm0 64:46:0B:05:8F:07 Connected /dev/rfcomm0 to 64:46:0B:05:8F:07 on channel 1 Press CTRL-C for hangup

同样,连接成功后可以使用设备rfcomm0进行通讯

#include //系统常用类型定义 #include //系统常用文件状态定义 #include //文件控制相关 #include //POSIX常用系统调用 #include #include #include //POSIX线程管理 #include #include #include #include #include #include #include int fd;//串口的句柄 /*串口初始化函数 *@method Usart_Init *@param{void} *@return {void} */ void Usart_Init() { struct termios Opt; memset(&Opt ,0 ,sizeof(Opt)); tcgetattr(fd, &Opt); cfsetispeed(&Opt,B115200); /*设置为115200Bps*/ cfsetospeed(&Opt,B115200); Opt.c_iflag &= ~(BRKINT | ICRNL | INPCK | ISTRIP | IXON); //特殊字符不做特殊处理 Opt.c_oflag &= ~OPOST; Opt.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); Opt.c_cflag |= CLOCAL | CREAD;//保证程序不会成为端的占有者|使端口能读取输入的数据 Opt.c_cflag &= ~CSIZE; Opt.c_cflag |= CS8; //8数据位 Opt.c_cflag &= ~PARENB; //无校验 Opt.c_cflag &= ~CSTOPB; //一停止位 Opt.c_cc[VTIME] = 10;/* 非规范模式读取时的超时时间*/ Opt.c_cc[VMIN] = 128; /* 非规范模式读取时的最小字符数*/ tcflush(fd ,TCIFLUSH);/* tcflush清空终端未完成的输入/输出请求及数据*/ tcsetattr(fd,TCSANOW,&Opt); } void HexViewer(uint8_t *buf, int rc){ if (rc fd = open("/dev/rfcomm0",O_RDWR|O_NOCTTY|O_NDELAY); if (fd


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭