🤖
LinkIt 7697 BlocklyDuino 使用指南
  • LinkIt 7697 BlocklyDuino 使用指南
    • 認識 LinkIt 7697
    • 認識 BlocklyDuino
    • BlocklyDuino v2 & v3 比較
    • 安裝開發環境 (v2)
      • 安裝 Arduino 編輯器
      • 安裝驅動並連接開發板
      • 安裝 BlocklyDuino 編輯器
      • 連結兩個編輯器並上傳程式
    • 安裝開發環境 (v3)
    • BlocklyDuino 基礎操作
    • 實作範例教學
      • A01. 內建 LED 閃爍
      • A02. 外接 LED 閃爍
      • A03. 外接 LED 呼吸燈
      • A04. RGB LED 顏色變化
      • A05. 外部按鈕控制開關
      • A06. 蜂鳴器播放聲音
      • A07 .可變電阻控制電壓輸出
      • A08. 伺服馬達控制
      • A21. DHT: 溫濕度感應器
      • A22. HTU21D: 溫溼度感應器
      • A23. PMSX003: PM2.5 感測器
      • A24. HC-SR04P: 超音波測距
      • A25. ADXL345: 加速規(動態)
      • A26. ADXL345: 加速規(手勢)
      • A27. 1602/2004: 液晶顯示模組
      • A28. WS2812: RGB 彩色燈條
      • A29. MFRC522: RFID
      • B00. Grove 相關基礎知識
      • B01. Grove 光感應器
      • B02. Grove 超音波測距感應器
      • B03. Grove 溫溼度感應器
      • B04. Grove 繼電器
      • B05. Grove LED 燈條
      • B06. Grove OLED 顯示器
      • C01. 雲端控制 LED 開關
      • C02. 上傳溫溼度到雲端
      • D01. 手機透過 BLE 讀寫裝置資料
      • E01. 遙控器: 按鈕控制 LED
    • 資源鏈結
  • LinkIt 7697 - Arduino IDE 開發指南
    • 環境設定
      • 設定 Arduino IDE
      • 將 LinkIt 7697 連接到電腦
        • 在 Windows 上安裝 CP2102N 驅動程式
        • 在 macOS 上安裝 CP2102N 驅動程式
      • 執行第一個程式
    • 開發指南
      • GPIO
      • UART
      • ADC
      • EINT (外部中斷 / External Interrupt)
      • I2C
      • SPI
      • EEPROM
      • Timer
      • Flash (索引式儲存空間)
      • RTC (Real-Time Clock)
      • Software Serial
      • 使用 Wi-Fi 函式庫
      • 使用 MCS 函式庫
        • 連接到 MCS
        • 連接到 MCSLite
          • 建立可透過 MCS Lite 控制的 Beacon
        • MCS 函式庫 API 使用手冊
          • MCSDevice
          • MCSLiteDeviceMCSLiteDevice
          • MCSDataChannel 相關類別
      • 使用 BLE 低功耗藍牙
        • 藍牙信標
        • 主控裝置
        • 周邊裝置
        • 已知限制
        • LBLE API 指南
          • LBLE
          • LBLECentral
          • LBLEPeripheral
          • LBLEAdvertisementData
          • LBLEService
          • LBLECharacteristic
          • LBLEAddress
          • LBLEUuid
          • LBLEClient
      • 使用 LinkIt Remote
        • LRemote API
        • LRemote 控制元件 API
      • LinkIt 7697 腳位的初始狀態
      • LinkIt 7697 供電說明
      • 更新 Bootloader 與韌體
      • Flash 燒錄工具
      • FOTA 更新
      • LinkIt 7697 的功能限制
      • 自行編譯 Arduino Package
      • 回報問題
    • 週邊元件連接教學
      • SMD 按鈕
      • RGB 三色 LED
      • 可變電阻
      • 九軸感應器 (MPU-9250)
      • 溫度與濕度感應器 (AM2302)
      • 超音波距離感應器
      • 光感應器 (LM358)
      • 0.96 吋 OLED 顯示模組 (SSD1308Z)
      • 長條型 LED 顯示模組 (MY9221)
      • 繼電器
      • 伺服馬達 (EMAX 9g ES08A Servo)
      • 使用 74HC595 驅動七段顯示器
      • 使用 MAX7219 驅動七段顯示器
      • 使用 MAX7219 驅動 8x8 矩陣式顯示器
      • 使用 OLED 模組 (如 SH1106 / SSD1306... 等模組)
      • 使用 PCF8574 / PCF8574A 驅動 1602 LCD
    • 開發套件與擴充板
      • Grove Starter Kit
      • Robot Shield
        • OTTO97
    • 下載
    • 資源連結
    • BSP 版本更新資訊
  • LinkIt 7697 - Development Guide for Arduino IDE
    • Environment Setup
      • Setup Arduino IDE
      • Connecting LinkIt 7697 to Computer
        • Install CP2102N Driver on Windows
        • Install CP2102N Driver on macOS
      • Run Your First Sketch
    • Developer Guide
      • GPIO
      • UART
      • ADC
      • External Interrupt
      • I2C
      • SPI
      • EEPROM
      • Timer
      • Flash (Key-Pair Storage)
      • RTC (Real-Time Clock)
      • Software Serial
      • Using the Wi-Fi Library
      • Using MCS Library
        • Connecting to MCS
        • Connecting to MCSLite
          • Build a Beacon controlled by MCS Lite
        • MCS Library API Reference
          • MCSDevice
          • MCSLiteDevice
          • MCSDataChannel Classes
      • Using Bluetooth
        • Beacons
        • Central Devices
        • Peripheral Devices
        • Limitations of LBLE library
        • LBLE Library API Guide
          • LBLE
          • LBLECentral
          • LBLEPeripheral
          • LBLEAdvertisementData
          • LBLEService
          • LBLECharacteristic
          • LBLEAddress
          • LBLEUuid
          • LBLEClient
      • Using LinkIt Remote
        • LRemote
        • LRemote Control Classes
      • Initial Pin State of LinkIt 7697
      • Powering the LinkIt 7697
      • Update Bootloader and Firmware
      • Flash Uploading Tool
      • FOTA Update
      • Limitations of LinkIt 7697
      • Source Code of Arduino Package
      • Issue Report
    • Tutorial
      • SMD Buttons
      • RGB LED
      • Potentiometer
      • IMU 9DOF v2.0 (MPU-9250)
      • Temperature and Humidity Sensor Pro (AM2302)
      • Grove Ultrasonic Ranger
      • Light Sensor (LM358)
      • Grove OLED Display 0.96" (SSD1308Z)
      • LED Bar v2.0 (MY9221)
      • Relay
      • Mini Servo (EMAX 9g ES08A Servo)
      • Driving 7-segment Displays with 74HC595
      • Driving 7-segment Displays with MAX7219
      • Driving 8x8 Dot Matrices with MAX7219
      • Using OLED module (SH1106 / SSD1306... etc.)
      • Driving 1602 LCD with PCF8574 / PCF8574A
    • Kits and Shields
      • Grove Starter Kit
      • Robot Shield
        • OTTO97
    • Download
    • Resources
    • BSP Release Notes
Powered by GitBook
On this page
  • 跟掃描相關的 API
  • 周邊裝置資訊相關 API
  1. LinkIt 7697 - Arduino IDE 開發指南
  2. 開發指南
  3. 使用 BLE 低功耗藍牙
  4. LBLE API 指南

LBLECentral

這個類別可讓 LinkIt 7697 作為一個 BLE 主控裝置。透過它,可以掃描鄰近的 BLE 周邊裝置,檢查其廣播內容,並且取得其裝置地址。

LBLECentral 類別並不提供連線到周邊裝置的服務。開發者應該透過 LBLEClient 類別來連線到特定的裝置地址,以存取周邊裝置上面的資料特性。

LBLECentral 實際上是一個單件(singleton),開發者不需要創建物件,只需要直接呼叫 LBLECentral.scan(),然後就可以用 LBLECentral.getPeripheralCount() 來取得掃描到的裝置數量。接著就可以使用比如 getName() 跟 getAddress() 等方法來取得裝置資訊。如下:

// 開始掃描
LBLECentral.scan();
// 等待五秒鐘
for(int i = 0; i < 5; ++i)
{
  delay(1000);
  Serial.print(".");
}
// 印出掃描到的裝置的名字
const int found = LBLECentral.getPeripheralCount();
for (int i = 0; i < found; ++i) {
    Serial.println(LBLECentral.getName(i));
}

跟掃描相關的 API

> scan()

> stopScan()

> getPeripheralCount ()

開始掃描鄰近的周邊裝置。此 API 會讓系統進入掃描狀態,並且在背景持續掃描周邊的 BLE 裝置。

當掃描到新的周邊裝置之後,系統會自動更新內部的資料,開發者可呼叫 getPeripheralCount() 來取得當前掃描到的裝置數量,然後根據裝置的索引號(從 0 開始),用 getPeripheralName 或是 isBeacon 等 API 來取得每個裝置的資訊。

Syntax

Parameters

n/a

Returns

n/a

停止掃描周邊裝置。掃描到的裝置列表不會被清空,只是不再被更新。

Syntax

Parameters

n/a

Returns

n/a

取得目前掃描到的周邊裝置數量。

Syntax

Parameters

n/a

Returns

已知的周邊裝置數目

周邊裝置資訊相關 API

當取得周邊裝置的數量之後,可根據周邊裝置的索引號(從 0 開始,到「周邊裝置的數量 - 1」),透過下列的 API 來取得周邊裝置的相關資訊。要注意的是,因為 BLE 廣播資訊可以高度自訂,不是所有的周邊裝置都會提供同樣的資訊。比如說,有的裝置可能不會提供自己的裝置名稱。在這種情況下,將會得到空白的結果。

getAddress()

getBLEAddress()

getManufacturer()

getName()

getRSSI()

getTxPower()

getServiceUuid()

根據索引號取得裝置的字串形式位址。

Syntax

String addressString = LBLECentral.getAddress(index);

Parameters

index 從 0 到 (getRemotePeripheralCount() - 1) 之間的索引號。相同的索引號代表相同的裝置。

Returns

該周邊裝置的裝置地址,以字串形式呈現。

根據索引號取得裝置地址。

Syntax

LBLEAddress address = LBLECentral.getBLEAddress(index);

Parameters

index 從 0 到 (getRemotePeripheralCount() - 1) 之間的索引號。相同的索引號代表相同的裝置。

Returns

一個 LBLEAddress 物件,代表裝置地址。

取得該裝置的廣播封包內的「製造商資訊」

Syntax

String manufacturerName = LBLECentral.getManufacturer(index);

Parameters

index 從 0 到 (getRemotePeripheralCount() - 1) 之間的索引號。相同的索引號代表相同的裝置。

Returns

廣播封包內的製造商名稱。如果廣播封包內沒有提供此欄位,則回傳空字串。

取得裝置的名稱。

Syntax

String name = LBLECentral.getName(index);

Parameters

index 從 0 到 (getRemotePeripheralCount() - 1) 之間的索引號。相同的索引號代表相同的裝置。

Returns

廣播封包內的裝置名稱。如果廣播封包內沒有提供此欄位,則回傳空字串。

取得掃描時的 RSSI 信號強度。

Syntax

Parameters

index 從 0 到 (getRemotePeripheralCount() - 1) 之間的索引號。相同的索引號代表相同的裝置。

Returns

RSSI 信號強度,以 dbm 為單位。

取得廣播封包內的 txPower 欄位數值。

Syntax

Parameters

index 從 0 到 (getRemotePeripheralCount() - 1) 之間的索引號。相同的索引號代表相同的裝置。

Returns

廣播封包內的 txPower 數值。如果廣播封包內沒有提供此欄位,則回傳 0。取得廣播封包內的 txPower 欄位數值。

Syntax

Parameters

index 從 0 到 (getRemotePeripheralCount() - 1) 之間的索引號。相同的索引號代表相同的裝置。

Returns

廣播封包內的 txPower 數值。如果廣播封包內沒有提供此欄位,則回傳 0。

取得該裝置廣播的服務 UUID。開發者可以透過此資訊,得知該裝置主要提供哪一個 GATT 服務。

Syntax

Parameters

index 從 0 到 (getRemotePeripheralCount() - 1) 之間的索引號。相同的索引號代表相同的裝置。

Returns

廣播封包內的服務 UUID。如果廣播封包內沒有提供此欄位,則回傳無效的 LBLEUuid 物件。

解析廣播封包內的 iBeacon 資訊欄位

Syntax

LBLEUuid uuid;

uint16_t major, minor;

uint8_t txPower;

bool isIBeacon = LBLECentral.getIBeaconInfo(index, uuid, major, minor, txPower);

Parameters

index

從 0 到 (getRemotePeripheralCount() - 1) 之間的索引號。

uuid

iBeacon 的 UUID

major

iBeacon 的 major ID

minor

iBeacon 的 minor ID

txPower

iBeacon 的 txPower 資訊

Returns

true: 此裝置的廣播封包確實為 iBeacon 格式。

false:此裝置的廣播封包不是 iBeacon 格式,無法解析。

PreviousLBLENextLBLEPeripheral

Last updated 3 years ago

可在此連結中找到 iBeacon 的欄位說明:

https://developer.mbed.org/blog/entry/BLE-Beacons-URIBeacon-AltBeacons-iBeacon/#iBeacon