一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>如何使用BleuIO的多連接功能

如何使用BleuIO的多連接功能

2023-06-26 | zip | 0.00 MB | 次下載 | 免費(fèi)

資料介紹

描述

藍(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ù)。

要求 :

任務(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。

連接加密狗后,打開設(shè)備管理器(windows)找到每個(gè)加密狗的端口。

?

pYYBAGNY6VuAJLZVAAEBmgNCNBo220.png
?

在我的 PC 上,我在端口 7、8 和 18 上連接了 BleuIO 加密狗。

讓我們以 COM7 為中心,COM8 和 COM18 為外圍。

現(xiàn)在打開腳本并在第 12 行設(shè)置端口號(hào)。

我們還需要知道外圍加密狗的 MAC 地址。

為此,我們可以簡(jiǎn)單地使用AT+ADVSTART命令宣傳加密狗。

poYBAGNY6V2AD3OgAABmHK0iKvY133.jpg
?

對(duì)其他外圍加密狗執(zhí)行相同的過(guò)程。

現(xiàn)在這兩個(gè)外圍加密狗都在做廣告。我們可以從中心進(jìn)行間隙掃描以找到他們的 MAC 地址。

現(xiàn)在尋找名為BleuIO 的加密狗。

pYYBAGNY6WKAXhrwAAFf6-9QNIw380.jpg
?

使用外設(shè) mac 地址更新腳本(第 6、9 行)

第 3 步:

現(xiàn)在讓我們運(yùn)行腳本。

?

?

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1DD3118電路圖紙資料
  2. 0.08 MB   |  1次下載  |  免費(fèi)
  3. 2AD庫(kù)封裝庫(kù)安裝教程
  4. 0.49 MB   |  1次下載  |  免費(fèi)
  5. 3PC6206 300mA低功耗低壓差線性穩(wěn)壓器中文資料
  6. 1.12 MB   |  1次下載  |  免費(fèi)
  7. 4網(wǎng)絡(luò)安全從業(yè)者入門指南
  8. 2.91 MB   |  1次下載  |  免費(fèi)
  9. 5DS-CS3A P00-CN-V3
  10. 618.05 KB  |  1次下載  |  免費(fèi)
  11. 6海川SM5701規(guī)格書
  12. 1.48 MB  |  次下載  |  免費(fèi)
  13. 7H20PR5電磁爐IGBT功率管規(guī)格書
  14. 1.68 MB   |  次下載  |  1 積分
  15. 8IP防護(hù)等級(jí)說(shuō)明
  16. 0.08 MB   |  次下載  |  免費(fèi)

本月

  1. 1貼片三極管上的印字與真實(shí)名稱的對(duì)照表詳細(xì)說(shuō)明
  2. 0.50 MB   |  103次下載  |  1 積分
  3. 2涂鴉各WiFi模塊原理圖加PCB封裝
  4. 11.75 MB   |  89次下載  |  1 積分
  5. 3錦銳科技CA51F2 SDK開發(fā)包
  6. 24.06 MB   |  43次下載  |  1 積分
  7. 4錦銳CA51F005 SDK開發(fā)包
  8. 19.47 MB   |  19次下載  |  1 積分
  9. 5PCB的EMC設(shè)計(jì)指南
  10. 2.47 MB   |  16次下載  |  1 積分
  11. 6HC05藍(lán)牙原理圖加PCB
  12. 15.76 MB   |  13次下載  |  1 積分
  13. 7802.11_Wireless_Networks
  14. 4.17 MB   |  12次下載  |  免費(fèi)
  15. 8蘋果iphone 11電路原理圖
  16. 4.98 MB   |  6次下載  |  2 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935127次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191390次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  10. 158M  |  183342次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81588次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73815次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65989次下載  |  10 積分