🤖
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
  • 將 LinkIt 7697 設定為 iBeacon 信標
  • 將 LinkIt 7697 作為 Eddystone-URL 信標
  1. LinkIt 7697 - Arduino IDE 開發指南
  2. 開發指南
  3. 使用 BLE 低功耗藍牙

藍牙信標

Previous使用 BLE 低功耗藍牙Next主控裝置

Last updated 3 years ago

所謂的藍牙信標,是最單純的一種低功耗藍牙周邊裝置,它僅僅只是不斷的發送具備特定內容的廣播信號。在大部分的應用例子當中,信標不會提供其他服務。 開發者可以使用 LBLE 程式庫與 LinkIt 7697 來建立 或是 信標。

  • 將 LinkIt 7697 設定為 iBeacon 信標

  • 將 LinkIt 7697 作為 Eddystone-URL 信標

將 LinkIt 7697 設定為 iBeacon 信標

iBeacon 就是一個以特定格式發送資料的低功耗藍牙裝置。它不能夠被主控裝置連線。

可透過 LBLEAdvertisement 輕易的生成並設定 iBeacon 廣播的內容,只需要呼叫 configAsIBeacon 這個函示來設定 iBeacon 的資訊,如下例所示:

LBLEAdvertisementData beaconData;
beaconData.configAsIBeacon("E2C56DB5-DFFB-48D2-B060-D0F5A71096E0", 01, 02, -40);

在上面的例子當中:

  • E2C56DB5-DFFB-48D2-B060-D0F5A71096E0 是 iBeacon 的 UUID。這個 UUID 是應用程式要。在這個例子當中,我們使用了 E2C56DB5-DFFB-48D2-B060-D0F5A71096E0,這是一個在 iOS 開發套件當中的 範例。有許多 iOS 的信標偵測工具,都會提供掃描這個 UUID 對應的信標的範例。

  • 參數 01 跟 02 分別是所謂的 major ID 與 minor ID。這兩個 ID 的用途是讓開發者區分同一個信標應用當中的不同實體信標。比如說,使用者可能會想要在辦公室的每一間會議室當中,都放一個 LinkIt 7697 作為 iBeacon 信標,並且把 major ID 設定為樓層號碼,把 minor ID 設定為會議室編號。這樣一來,就可以透過偵測 major 與 minor ID,得知自己所在的會議室。

  • 最後一個數值 -40,是代表「在距離此信標一公尺遠的範圍,測量此信標的信號強度所預期得到的dB值」,主要的目的是讓 iBeacon 掃描器的應用可以提供大概的距離估算。要注意的是,這個值只是單純的被保存在信標的廣播數據之中,它不會真的影響廣播信號的強度。開發者應該在實際環境與對應的 iBeacon 掃描器中,測量並且校正此數值應該有的大小。

在設定好信標廣播的內容之後,只需要呼叫 advertise 這個方法,就可以讓 LBLEPeripheral 類別開始廣播信標,如下:

LBLEPeripheral.advertise(beaconData);

此時 LinkIt 7697 便會開始信標的廣播。如果要停止廣播,請呼叫 stopAdvertise() 。

在 IDE 選單中的 File > Examples > LBLE > BeaconAdvertisement 已經提供了一個簡單的範例。當上傳此範例檔案後,即可以使用 這類的手機 iBeacon 掃描工具來掃描範例所提供的信標。下面是該手機工具的螢幕截圖:

將 LinkIt 7697 作為 Eddystone-URL 信標

要創建一個這樣的信標,只需要呼叫 LBLEAdvertisementData 物件的 configAsEddystoneURL方法:

LBLEAdvertisementData beaconData;
beaconData.configAsEddystoneURL(EDDY_HTTPS, "labs.mediatek", EDDY_DOT_COM);

URL 類型設定

在上面的範例當中,會看到 Eddystone-URL 已經有內定一些常見的 URL 開頭,以求更進一步縮短所需要的資料空間。URL 資料的長度限制為 17 bytes,而在上面的範例中,我們可以用一個 1 byte 的 EDDY_HTTPS 代號來代表 https:// 這個需要 8 byte才能夠表示的網址開頭。同樣的, EDDY_DOT_COM 用來代表 .com 這個 URL 的結尾。下面的表格列出了可供選用的 URL 開頭與結尾。

Prefix Symbol
Corresponding URL

EDDY_HTTP_WWW

EDDY_HTTPS_WWW

EDDY_HTTP

http://

EDDY_HTTPS

https://

Suffix Symbol
Corresponding URL

EDDY_URL_NONE

(append nothing)

EDDY_DOT_COM_SLASH

.com/

EDDY_DOT_ORG_SLASH

.org/

EDDY_DOT_EDU_SLASH

.edu/

EDDY_DOT_NET_SLASH

.net/

EDDY_DOT_INFO_SLASH

.info/

EDDY_DOT_BIZ_SLASH

.biz/

EDDY_DOT_GOV_SLASH

.gov/

EDDY_DOT_COM

.com

EDDY_DOT_ORG

.org

EDDY_DOT_EDU

.edu

EDDY_DOT_NET

.net

EDDY_DOT_INFO

.info

EDDY_DOT_BIZ

.biz

EDDY_DOT_GOV

.gov

beaconData.configAsEddystoneURL(EDDY_HTTPS, "goo.gl/Aq18zF");	// This results in "https://goo.gl/Aq18zF"

廣播信標內容

設定好要廣播的 URL 之後,只要把該資訊傳入 advertiseAsBeacon 方法中,就可以開始廣播:

LBLEPeripheral.advertiseAsBeacon(beaconData); 

搜尋周圍的 Eddyston-URL 信標

作為示範演練,請先燒錄 File > Examples > LBLE > EddystoneURLAdvertisement 這個範例到 LinkIt 7697。接著在手機上打開 Physical Web 程式,它應該會顯示如下的信標資訊:

Physical Web 這個程式也支援小工具模式,如果在手機的小工具頁面當中放置此程式,就可以隨時搜尋鄰近的 Eddystone-URL 信標,並開啟對應的網址。

Note

請確認手機上面的 BLE 功能有開啟。

信標主要的功能便是廣播一個特定的網址(URL). 因為 BLE 廣播資料有限制相當短的長度,所以一般來說,會使用縮短後的網址,比如像是 這種形式。

.

.

如果要使用的網址沒有在上面列出的表格之中,而且總長又超過了17 byte,那麼可考慮使用 服務,這樣一來,可以輕易的把長網址轉換為短網址:

開發者可以使用 手機程式或是其他支援 Google Beacons 框架的工具來搜尋鄰近的 Eddystone-URL 信標。

iBeacon
Eddyston-URL
自己去生成的
AirLocate iBeacon
Locate Beacon
Eddystone-URL
https://goo.gl/Aq18zF
URL shortener
Physical Web
Android 版本下載連結
iOS 版本下載連結
http://www
https://www