资料介绍
描述
蓝牙低功耗技术提供了一种连接智能设备的合适方式。物联网(IoT)或物联网(Internet of Things)这个词带来了新技术,在连接时代改变和创造世界。物联网表示一切都已连接,而蓝牙使工作变得更加容易。一台中央设备可以启动并保持与多个低功耗蓝牙外围设备的连接。
BleuIO 是一种蓝牙低功耗解决方案,可以以最快、最简单的方式创建新的 BLE 5.0 应用程序。使用此 BleuIO 的多连接功能,我们可以轻松连接到多个 BLE 设备并在它们之间传输数据。
本文将解释如何使用 BleuIO 的多连接功能,连接多个 BLE 设备并在它们之间传输数据。我们将为这个项目使用三个 BleuIO 加密狗:一个中央和两个外围。中央加密狗将连接到外围设备并同时发送数据。
我们将创建一个简单的 python 脚本来帮助我们完成任务。
要求 :
- 3 个 BleuIO 加密狗。
- Python 2.7 或 Python 3.4 及更新版本
- pyserial 3.5
任务:
步骤1:
让我们创建一个名为py_serial_transfer.py的 python 文件并复制以下代码。
源代码也可以在 GitHub 上获得
https://github.com/smart-sensor-devices-ab/ble_multi_connection_example.git
#!/usr/bin/python
# -*- coding: utf-8 -*-
import serial
import time
import string
import random
target_dongle_mac_address = '[0]40:48:FD:E5:2D:AF' # Change this to the 1st peripheral's mac address.
target_dongle_mac_address2 = '[0]40:48:FD:E5:2D:B5' # Change this to the 2nd peripheral's mac address.
your_com_port = 'COM7' # Change this to the com port your dongle is connected to.
connecting_to_dongle = True
trying_to_connect = False
trying_to_connect2 = False
def id_generator(size=10, chars=string.ascii_uppercase + string.digits):
return ''.join(random.choice(chars) for _ in range(size))
print 'Connecting to dongle...'
# Trying to connect to dongle until connected. Make sure the port and baudrate is the same as your dongle.
# You can check in the device manager to see what port then right-click and choose properties then the Port Settings
# tab to see the other settings
while connecting_to_dongle:
try:
console = serial.Serial(
port=your_com_port,
baudrate=57600,
parity='N',
stopbits=1,
bytesize=8,
timeout=0,
)
if console.is_open.__bool__():
connecting_to_dongle = False
except:
print 'Dongle not connected. Please reconnect Dongle.'
time.sleep(5)
print 'Connected to Dongle.'
connected = '0'
connected2 = '0'
while 1 and console.is_open.__bool__():
console.write(str.encode('AT+DUAL'))
console.write('\r'.encode())
time.sleep(0.1)
print 'Putting dongle in Dual role and trying to connect to other dongle.'
while connected == '0':
time.sleep(0.5)
if not trying_to_connect:
console.write(str.encode('AT+GAPCONNECT='))
console.write(str.encode(target_dongle_mac_address))
console.write('\r'.encode())
trying_to_connect = True
dongle_output2 = console.read(console.in_waiting)
time.sleep(2)
print 'Trying to connect to Peripheral 1...'
if not dongle_output2.isspace():
if dongle_output2.decode().__contains__('\r\nCONNECTED.'):
connected = '1'
print 'Connected to 1st device!'
time.sleep(5)
if dongle_output2.decode().__contains__('\r\nDISCONNECTED.'
):
connected = '0'
print 'Disconnected!'
trying_to_connect = False
dongle_output2 = ' '
while connected2 == '0':
time.sleep(0.5)
if not trying_to_connect2:
console.write(str.encode('AT+GAPCONNECT='))
console.write(str.encode(target_dongle_mac_address2))
console.write('\r'.encode())
trying_to_connect2 = True
dongle_output2 = console.read(console.in_waiting)
time.sleep(2)
print 'Trying to connect to Peripheral 2...'
if not dongle_output2.isspace():
if dongle_output2.decode().__contains__('\r\nCONNECTED.'):
connected2 = '1'
print 'Connected to 2nd device!'
time.sleep(5)
if dongle_output2.decode().__contains__('\r\nDISCONNECTED.'
):
connected2 = '0'
print 'Disconnected!'
trying_to_connect2 = False
dongle_output2 = ' '
while connected == '1' and connected2 == '1':
dongle_output3 = console.read(console.in_waiting)
delay = 10
close_time = time.time() + delay
i = 0
while True:
myConIndex = ('0000' if i % 2 == 0 else '0001')
console.write(str.encode('AT+TARGETCONN='))
console.write(str.encode(myConIndex))
console.write('\r'.encode())
console.write(str.encode('AT+SPSSEND='))
console.write(str.encode(id_generator() + '-' + myConIndex))
console.write('\r'.encode())
time.sleep(0.2)
i += 1
if time.time() > close_time:
break
console.write(str.encode('AT+SPSSEND=[DONE]\r'))
time.sleep(0.2)
print 'Sending complete!\r\n'
print 'Exiting script...'
exit()
该脚本将用于中央 BleuIO 加密狗。我们需要找到每个加密狗的端口号和外设mac地址。
第2步:
在您的 PC 上连接三个 BleuIO 加密狗。您可以在三台不同的 PC 或 Raspberry Pi 上执行此过程。
为此项目,我已将中央和外围设备连接到一台 PC。
连接加密狗后,打开设备管理器(windows)找到每个加密狗的端口。
在我的 PC 上,我在端口 7、8 和 18 上连接了 BleuIO 加密狗。
让我们以 COM7 为中心,COM8 和 COM18 为外围。
现在打开脚本并在第 12 行设置端口号。
我们还需要知道外围加密狗的 MAC 地址。
为此,我们可以简单地使用AT+ADVSTART命令宣传加密狗。
- 去https://bleuio.com/web_terminal.html
- 单击连接到 BleuIO 加密狗
- 为外围设备选择端口
- 输入AT+ADVSTART
对其他外围加密狗执行相同的过程。
现在这两个外围加密狗都在做广告。我们可以从中心进行间隙扫描以找到他们的 MAC 地址。
- 去https://bleuio.com/web_terminal.html
- 单击连接到 BleuIO 加密狗
- 选择您的中心端口
- 键入AT+DUAL (这将使加密狗处于双重角色)
- 键入AT+GAPSCAN
现在寻找名为BleuIO 的加密狗。
使用外设 mac 地址更新脚本(第 6、9 行)
第 3 步:
现在让我们运行脚本。
- 使用BleuIO获取蓝牙设备距离
- 如何为BleuIO加密狗制作自己的固件
- UM2744_基于蜂窝连接功能的IoT传感器节点的STM32Cube用户手册
- 多功能多通道充电器SC8913电路图下载 19次下载
- 多模态MR和多特征融合的GBM自动分割算法 32次下载
- 结合多尺度边缘保持分解与PCNN的图像融合方法 16次下载
- 使用相似连接进行多源数据并行预处理的方法概述 12次下载
- 如何使用Lua脚本语言进行ESP8266和TCP服务器多连接
- WiFi模块SKW92系列的介绍和WPS快速连接功能使用说明 7次下载
- TQM7M9023多模多波段功率放大器的详细数据手册免费下载
- TMS320 DSP如何进行多通道连接的详细概述 8次下载
- 了解具有以太网功能的 MCU 并用于您的下一个应用 6次下载
- TCPIP协议处理器的多连接管理设计 25次下载
- ASON中的多粒度光交叉连接技术
- 开源硬件-TIDC-SMARTPLUG-WIFI-具有远程断开和 Wi-Fi 连接的智能插座 PCB layout 设计
- 瑞萨电容触摸技术之低功耗应用—RX140实验环节(5)-3 448次阅读
- 如何利用蓝牙低功耗长距离编码PHY层技术实现超过2300米的连接距离呢 691次阅读
- 瑞萨电容触摸技术之低功耗应用案例—RX140实验环节(3) 597次阅读
- 汽车连接器使用标准分析 805次阅读
- Telink BLE多连接应用的SDK简介 3555次阅读
- 鸿蒙Hi3516连接WiFi的方法介绍 6425次阅读
- 连接器接触件的性能指标 3394次阅读
- 多芯铜线的连接方法_多芯铜线的优缺点 1.1w次阅读
- 英创信息技术ARM Linux环境下多连接TCP服务器的编程概述 1289次阅读
- 浅析SMA连接器的接触 2142次阅读
- 实时控制器获得新的连接功能 770次阅读
- 基于AVR单片机硬件多机通讯功能的实现 879次阅读
- 多功能视频光端机_多业务光端机的功能特性 1.1w次阅读
- 图文详解导线与导线的连接 2.3w次阅读
- 汽车连接器定义及相关介绍 5197次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多