🤖
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
  • Beacons
  • Using LinkIt 7697 as an iBeacon
  • Using LinkIt 7697 as an Eddystone-URL Beacon
  1. LinkIt 7697 - Development Guide for Arduino IDE
  2. Developer Guide
  3. Using Bluetooth

Beacons

PreviousUsing BluetoothNextCentral Devices

Last updated 3 years ago

Beacons

An Bluetooth beacon is a Bluetooth Low Energy device that only advertises itself with a specific format of advertising data. In most cases it cannot be connected. The LBLE library allows developers to create or beacons with LinkIt 7697:

Using LinkIt 7697 as an iBeacon

An iBeacon is a Bluetooth Low Energy device that only advertises itself with a specific format of advertising data. It cannot be connected.

You can use the class LBLEAdvertisement for easy generation of iBeacon advertisement data. Call the method configAsIBeacon to set the advertisement data to iBeacon format, for example the following code snippet:

LBLEAdvertisementData beaconData;
beaconData.configAsIBeacon("E2C56DB5-DFFB-48D2-B060-D0F5A71096E0", 01, 02, -40);
  • E2C56DB5-DFFB-48D2-B060-D0F5A71096E0 is the UUID for your iBeacon. Usually, this is a vendor-specific UUID that you should generate by yourself. The value, E2C56DB5-DFFB-48D2-B060-D0F5A71096E0, is widely used because this is the UUID used in the example project of the iOS . Many iOS tool provides built-in settings that searches this UUID.

  • The number 01 and 02 are major and minor IDs that can be used to distinguish between different iBeacon devices. For example, you may want to deploy several LinkIt 7697 devices in each meeting room in your office. You can then set major number as the floor number, and set minor number as the room number. Then your iBeacon scanner can detect and know which meeting room the user is currently in by checking the major and minor numbers.

  • The last TX Power number, -40, is an indicator of what the expected signal level should be when you are one meter away from the beacon. The beacon scanner can compare this value with the actual signal strength to have a rough estimation on the distance. The actual value depends on various conditions such as antenna setup and housing of your device, so it's recommend to calibrate this value with the scanner together.

After setting up the advertisement data, call advertise method of the LBLEPeripheral to start broadcasting the advertisement data, for example:

LBLEPeripheral.advertise(beaconData);

LinkIt 7697 will now start broadcasting the advertisement data. Call stopAdvertise() to stop broadcasting.

An example can be found in the IDE menu File > Examples > LBLE > BeaconAdvertisement. After upload this sketch, you can use iBeacon tools such as to search for this beacon. A screenshot of the result of the scan in the app is shown below:

Using LinkIt 7697 as an Eddystone-URL Beacon

To create an Eddystone-URL beacon, simply create an LBLEAdvertisementData object and call its configAsEddystoneURL method:

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

URL Configuration

As you can see, the Eddystone-URL format provides several pre-defined symbols to compress the URL. The total length of the URL data is limited to 17 bytes. In the example above, a single-byte EDDY_HTTPS symbol denotes a https:// URL prefix that would require 8-bytes to represent. Similarly, the EDDY_DOT_COM symbol denotes the suffix .com. The table below shows you the prefix and suffex symbols that you can choose from:

Prefix Symbol
Corresponding URL

EDDY_HTTP_WWW

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"

Beacon Advertisement

After configuring the URL, simply pass the beacon data to the advertiseAsBeacon method of LBLEPeripheral to start broadcasting advertisements.

LBLEPeripheral.advertiseAsBeacon(beaconData); 

Discover Eddyston-URL Beacons

As an example, please download the example from File > Examples > LBLE > EddystoneURLAdvertisement to LinkIt 7697. Open the the Physical Web app and it should be able to detect the beacon as shown below:

This app can also work under the widget mode. If you put it into the widget space (e.g. the Today view in iOS), you'll see all the Eddystone URLs discovered around you when you check the widget space.

Note

Make sure you've turned on the BLE function on your phone.

An beacon broadcast information of a specific URL. The length of the URL is limited due to the size limitation of BLE advertisement data, so usually a shortened URL such as is used.

.

If you cannot find a matching suffix, or that the total URL length still exceeds 17 bytes, you need to consider a service. To describe a shortened URL, simply discard the suffix symbol as shown below:

You can use APP or other tools that supports Google Beacons framework to discover an Eddystone-URL beacon.

iBeacon
Eddystone-URL
Using LinkIt 7697 as an iBeacon
Using LinkIt 7697 as an Eddystone-URL Beacon
AirLocate iBeacon example
Locate Beacon
Eddystone-URL
https://goo.gl/Aq18zF
URL shortener
Physical Web
Android download link
iOS download link
https://www