資料介紹
描述
藍(lán)牙低功耗技術(shù)提供了一種連接智能設(shè)備的合適方式。物聯(lián)網(wǎng)(IoT)或物聯(lián)網(wǎng)(Internet of Things)這個(gè)詞帶來(lái)了新技術(shù),在連接時(shí)代改變和創(chuàng)造世界。物聯(lián)網(wǎng)表示一切都已連接,而藍(lán)牙使工作變得更加容易。一臺(tái)中央設(shè)備可以啟動(dòng)并保持與多個(gè)低功耗藍(lán)牙外圍設(shè)備的連接。
BleuIO 是一種藍(lán)牙低功耗解決方案,可以以最快、最簡(jiǎn)單的方式創(chuàng)建新的 BLE 5.0 應(yīng)用程序。使用此 BleuIO 的多連接功能,我們可以輕松連接到多個(gè) BLE 設(shè)備并在它們之間傳輸數(shù)據(jù)。
本文將解釋如何使用 BleuIO 的多連接功能,連接多個(gè) BLE 設(shè)備并在它們之間傳輸數(shù)據(jù)。我們將為這個(gè)項(xiàng)目使用三個(gè) BleuIO 加密狗:一個(gè)中央和兩個(gè)外圍。中央加密狗將連接到外圍設(shè)備并同時(shí)發(fā)送數(shù)據(jù)。
我們將創(chuàng)建一個(gè)簡(jiǎn)單的 python 腳本來(lái)幫助我們完成任務(wù)。
要求 :
- 3 個(gè) BleuIO 加密狗。
- Python 2.7 或 Python 3.4 及更新版本
- pyserial 3.5
任務(wù):
步驟1:
讓我們創(chuàng)建一個(gè)名為py_serial_transfer.py的 python 文件并復(fù)制以下代碼。
源代碼也可以在 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 加密狗。我們需要找到每個(gè)加密狗的端口號(hào)和外設(shè)mac地址。
第2步:
在您的 PC 上連接三個(gè) BleuIO 加密狗。您可以在三臺(tái)不同的 PC 或 Raspberry Pi 上執(zhí)行此過(guò)程。
為此項(xiàng)目,我已將中央和外圍設(shè)備連接到一臺(tái) PC。
連接加密狗后,打開(kāi)設(shè)備管理器(windows)找到每個(gè)加密狗的端口。
?
在我的 PC 上,我在端口 7、8 和 18 上連接了 BleuIO 加密狗。
讓我們以 COM7 為中心,COM8 和 COM18 為外圍。
現(xiàn)在打開(kāi)腳本并在第 12 行設(shè)置端口號(hào)。
我們還需要知道外圍加密狗的 MAC 地址。
為此,我們可以簡(jiǎn)單地使用AT+ADVSTART命令宣傳加密狗。
- 去https://bleuio.com/web_terminal.html
- 單擊連接到 BleuIO 加密狗
- 為外圍設(shè)備選擇端口
- 輸入AT+ADVSTART
對(duì)其他外圍加密狗執(zhí)行相同的過(guò)程。
現(xiàn)在這兩個(gè)外圍加密狗都在做廣告。我們可以從中心進(jìn)行間隙掃描以找到他們的 MAC 地址。
- 去https://bleuio.com/web_terminal.html
- 單擊連接到 BleuIO 加密狗
- 選擇您的中心端口
- 鍵入AT+DUAL (這將使加密狗處于雙重角色)
- 鍵入AT+GAPSCAN
現(xiàn)在尋找名為BleuIO 的加密狗。
使用外設(shè) mac 地址更新腳本(第 6、9 行)
第 3 步:
現(xiàn)在讓我們運(yùn)行腳本。
?
?
- 使用BleuIO獲取藍(lán)牙設(shè)備距離
- 如何為BleuIO加密狗制作自己的固件
- UM2744_基于蜂窩連接功能的IoT傳感器節(jié)點(diǎn)的STM32Cube用戶手冊(cè)
- 多功能多通道充電器SC8913電路圖下載 19次下載
- 多模態(tài)MR和多特征融合的GBM自動(dòng)分割算法 32次下載
- 結(jié)合多尺度邊緣保持分解與PCNN的圖像融合方法 16次下載
- 使用相似連接進(jìn)行多源數(shù)據(jù)并行預(yù)處理的方法概述 12次下載
- 如何使用Lua腳本語(yǔ)言進(jìn)行ESP8266和TCP服務(wù)器多連接
- WiFi模塊SKW92系列的介紹和WPS快速連接功能使用說(shuō)明 7次下載
- TQM7M9023多模多波段功率放大器的詳細(xì)數(shù)據(jù)手冊(cè)免費(fèi)下載
- TMS320 DSP如何進(jìn)行多通道連接的詳細(xì)概述 8次下載
- 了解具有以太網(wǎng)功能的 MCU 并用于您的下一個(gè)應(yīng)用 6次下載
- TCPIP協(xié)議處理器的多連接管理設(shè)計(jì) 25次下載
- ASON中的多粒度光交叉連接技術(shù)
- 開(kāi)源硬件-TIDC-SMARTPLUG-WIFI-具有遠(yuǎn)程斷開(kāi)和 Wi-Fi 連接的智能插座 PCB layout 設(shè)計(jì)
- 瑞薩電容觸摸技術(shù)之低功耗應(yīng)用—RX140實(shí)驗(yàn)環(huán)節(jié)(5)-3 448次閱讀
- 如何利用藍(lán)牙低功耗長(zhǎng)距離編碼PHY層技術(shù)實(shí)現(xiàn)超過(guò)2300米的連接距離呢 691次閱讀
- 瑞薩電容觸摸技術(shù)之低功耗應(yīng)用案例—RX140實(shí)驗(yàn)環(huán)節(jié)(3) 597次閱讀
- 汽車連接器使用標(biāo)準(zhǔn)分析 805次閱讀
- Telink BLE多連接應(yīng)用的SDK簡(jiǎn)介 3555次閱讀
- 鴻蒙Hi3516連接WiFi的方法介紹 6425次閱讀
- 連接器接觸件的性能指標(biāo) 3394次閱讀
- 多芯銅線的連接方法_多芯銅線的優(yōu)缺點(diǎn) 1.1w次閱讀
- 英創(chuàng)信息技術(shù)ARM Linux環(huán)境下多連接TCP服務(wù)器的編程概述 1289次閱讀
- 淺析SMA連接器的接觸 2142次閱讀
- 實(shí)時(shí)控制器獲得新的連接功能 770次閱讀
- 基于AVR單片機(jī)硬件多機(jī)通訊功能的實(shí)現(xiàn) 879次閱讀
- 多功能視頻光端機(jī)_多業(yè)務(wù)光端機(jī)的功能特性 1.1w次閱讀
- 圖文詳解導(dǎo)線與導(dǎo)線的連接 2.3w次閱讀
- 汽車連接器定義及相關(guān)介紹 5197次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多