> For the complete documentation index, see [llms.txt](https://cavedu.gitbook.io/linkit-7697/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cavedu.gitbook.io/linkit-7697/linkit-7697-blocklyduino-shi-yong-zhi-nan/shi-zuo-fan-li-jiao-xue/d01.-shou-ji-tou-guo-ble-du-xie-zhuang-zhi-zi-liao.md).

# D01. 手機透過 BLE 讀寫裝置資料

### 專案說明 <a href="#d01.-shou-ji-tou-guo-ble-du-xie-zhuang-zhi-zi-liao-zhuan-an-shui-ming" id="d01.-shou-ji-tou-guo-ble-du-xie-zhuang-zhi-zi-liao-zhuan-an-shui-ming"></a>

建立起一個**低功號藍芽** (BLE, Bluetooth Low Energy)的**服務**(Service) 和**屬性**(Character)，透過手機寫入一個 54321 資料到開發板上，收到後會從序列埠監視器內印出。

### 手機軟體 <a href="#d01.-shou-ji-tou-guo-ble-du-xie-zhuang-zhi-zi-liao-shou-ji-ruan-ti" id="d01.-shou-ji-tou-guo-ble-du-xie-zhuang-zhi-zi-liao-shou-ji-ruan-ti"></a>

iPhone 請安裝 LightBlue Explorer (免費軟體)

![undefined](https://zh.forum.labs.mediatek.com/uploads/default/original/1X/a31cd85768b04fd1caf703c386ea5a59859acc7b.png)

### 積木畫布 <a href="#d01.-shou-ji-tou-guo-ble-du-xie-zhuang-zhi-zi-liao-ji-mu-hua-bu" id="d01.-shou-ji-tou-guo-ble-du-xie-zhuang-zhi-zi-liao-ji-mu-hua-bu"></a>

**初始化**

* 創建一個藍芽周邊裝置的服務 (Service)，此裝置顯示名稱為 "**LinkIt 7697**" (此名稱就是手機上會看到的藍芽名字, 可修改避免多人時有衝突)
* 幫這裝置新增的一屬性，類型是**整數**且可以**讀寫 (**&#x6B64;範例是讀取，所以也可設成**讀)**
* 修改服務和屬性的 UUID，避免和別人衝突到 (請使用[ UUID generator](https://www.uuidgenerator.net/))

**重複執行**

* 檢查是否有人修改過這屬性，若有則透過序列埠印出來&#x20;
* 持續寫入 123456789 到這屬性

![](/files/JtybcjUvwG9I0ag0XIHY)

產生的 Arduino 程式如下

```
#include <LBLE.h>
#include <LBLEPeriphral.h>

int data;

LBLEService __periphralService("B77D53AC-D590-41E0-B75A-6DA442F543F6");
LBLECharacteristicInt __b77d53ac_d590_41e0_b75a_6da442f543f6("B77D53AC-D590-41E0-B75A-6DA442F543F6", LBLE_READ | LBLE_WRITE);

void setup()
{
  LBLE.begin();
  while (!LBLE.ready()) { delay(100); }

  __periphralService.addAttribute(__b77d53ac_d590_41e0_b75a_6da442f543f6);

  LBLEPeripheral.addService(__periphralService);
  LBLEPeripheral.begin();
  LBLEAdvertisementData __advertisement;
  __advertisement.configAsConnectableDevice("LinkIt 7697");
  LBLEPeripheral.advertise(__advertisement);
  Serial.begin(9600);

  Serial.println("藍芽裝置建立成功");
}

void loop()
{
  if (__b77d53ac_d590_41e0_b75a_6da442f543f6.isWritten()) {
    data = __b77d53ac_d590_41e0_b75a_6da442f543f6.getValue();
    Serial.println(data);
  }
  __b77d53ac_d590_41e0_b75a_6da442f543f6.setValue(123456789);
　delay(1000);
}

```

### 操作步驟 : 讀取開發板上的屬性數值  <a href="#d01.-shou-ji-tou-guo-ble-du-xie-zhuang-zhi-zi-liao-cao-zuo-bu-zhou-du-qu-kai-fa-ban-shang-de-shu-xin" id="d01.-shou-ji-tou-guo-ble-du-xie-zhuang-zhi-zi-liao-cao-zuo-bu-zhou-du-qu-kai-fa-ban-shang-de-shu-xin"></a>

▼在 iPhone 上打開 LightBlue，搜尋和配對 "**LinkIt 7697**" 藍芽裝置\
![](https://zh.forum.labs.mediatek.com/uploads/default/optimized/1X/7e725830049b9de22963db4c472c3c5541fe8382_1_284x500.png)

\
▼這一串 UUID 就是之前在 BlocklyDuino 內寫的屬性 UUID\
&#x20;![](https://zh.forum.labs.mediatek.com/uploads/default/optimized/1X/92a4b599e4b2a4268b5d41af82f8c19a775e333f_1_281x499.png)

\
▼Ox15CD5B07 就是之前寫入的 123456789 的 HEX (十六進位) 表示，看不太懂可以在右上方（紅色箭頭) 換顯示方式\
![](https://zh.forum.labs.mediatek.com/uploads/default/optimized/1X/66fe71156bd4c4bbbf6879db3c534cefa30392c6_1_283x500.png)

\
▼將 Hex 改成用 Integer (十進位) 的顯示方式\
![](https://zh.forum.labs.mediatek.com/uploads/default/optimized/1X/9e5b2b2cd54ff026f958963c1a0482aa5a43e198_1_287x500.png)<br>

<br>

▼ 改完之後可以看到從裝置讀回來的數值是 123456789 \
![](https://zh.forum.labs.mediatek.com/uploads/default/optimized/1X/0a68a60a39e7bf186a93ba1f2af66961506e3ceb_1_281x500.png)&#x20;

### &#x20;操作步驟 : 寫入開發板上的屬性數值 <a href="#d01.-shou-ji-tou-guo-ble-du-xie-zhuang-zhi-zi-liao-cao-zuo-bu-zhou-xie-ru-kai-fa-ban-shang-de-shu-xi" id="d01.-shou-ji-tou-guo-ble-du-xie-zhuang-zhi-zi-liao-cao-zuo-bu-zhou-xie-ru-kai-fa-ban-shang-de-shu-xi"></a>

▼ 延續前面的操作，在 LightBlue 內去寫這屬性值

[![](https://zh.forum.labs.mediatek.com/uploads/default/optimized/1X/069ac3dd7b2b04dab4ff7cb8b1bc83b1b117e016_1_281x500.png)](https://zh.forum.labs.mediatek.com/uploads/default/original/1X/069ac3dd7b2b04dab4ff7cb8b1bc83b1b117e016.png)

\
▼ 輸入個 54321\
&#x20;![](https://zh.forum.labs.mediatek.com/uploads/default/optimized/1X/4e0a27a4da48b20fd4b09dcc89b6664f49a41c46_1_282x499.png)

<br>

▼ 裝置端發現屬性的改變，就會印出來

![](/files/ewVskgeEt9CfQJgKoze3)

&#x20;

### 其他學習資源 <a href="#d01.-shou-ji-tou-guo-ble-du-xie-zhuang-zhi-zi-liao-qi-ta-xue-xi-zi-yuan" id="d01.-shou-ji-tou-guo-ble-du-xie-zhuang-zhi-zi-liao-qi-ta-xue-xi-zi-yuan"></a>

[\[Cavedu\] 如何使用LinkIt 7697開發板的BLE藍牙功能?](https://blog.cavedu.com/2017/06/30/linkit-7697-ble/)
