🤖
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
  • MediaTek已經於 2021.4.16 停止 MCS 服務,如要使用請使用MCSLite
  • 建立 MCS 測試裝置
  • 使用 MCS 函式庫連接 MCS
  • 執行 Sketch
  • 程式碼說明
  1. LinkIt 7697 - Arduino IDE 開發指南
  2. 開發指南
  3. 使用 MCS 函式庫

連接到 MCS

Previous使用 MCS 函式庫Next連接到 MCSLite

Last updated 3 years ago

MediaTek已經於 2021.4.16 停止 MCS 服務,如要使用請使用MCSLite

以下範例將介紹如何使用 MCS 函式庫提供的 MCSDevice 類別連接到 MCS 伺服器,並透過 MCS 網頁控制介面操縱 LinkIt 7697 板上的 USR LED。

建立 MCS 測試裝置

開啟 建立新的產品原型、資料通道、以及測試裝置。在本範例中,需要建立兩個資料通道:

  1. 一個 "開/關" 類型的控制器通道。

  2. 以及一個 "開/關" 類型的顯示器通道。

若不清楚如何產生產品原型、資料通道、以及測試裝置,請參考 頁面。

完成設置後,會產生如下的測試裝置頁面。需特別留意 Data channel Id、DeviceId、和 DeviceKey 欄位 (如下圖箭頭所指),後續撰寫程式碼的過程中會使用這些資訊。

使用 MCS 函式庫連接 MCS

下列步驟將說明如何在程式裡,使用 device key 和 device ID 產生 MCSDevice 物件,並設置對應的資料通道,以連接到 MCS 平台服務。

1.點選 Arduino IDE 的 File > Examples > MCS > LED_control 選單。

2.由於需要 Wi-Fi 網路以連接 MCS,請依照使用的 AP 設定修改程式中的 Wi-Fi SSID 與 password 資訊

// Assign AP ssid/password here
#define _SSID "your_ssid"
#define _KEY  "your_password"

3.將 device ID 與 device key 填入 MCSDevice 類別的建構函式中:

// Assign device id/key of your test device
MCSDevice mcs("your_device_id", "your_device_key");

Device ID 和 device key 可從上述的 MCS 測試裝置頁面取得:

4.同樣地將 channel ID 填入資料通道類別的建構函式:

// Assign data channel ID 
MCSControllerOnOff led("your_channel1_id");
MCSDisplayOnOff    remote("your_channel2_id");

Channel IDs 可在 MCS 測試裝置頁面的資料通道資訊下方取得:

執行 Sketch

1.點選 Upload 按鈕並等待 Done Uploading 訊息顯示完成。

2.點選工具列的 Serial Monitor 按鈕開啟 Serial Monitor 視窗並將 Baud rate 設定為 9,600。

程式碼說明

在以上範例中,使用了 MCS 函式庫處理開發板與 MCS 伺服器之間的連線。使用函式庫需先加入 MCS 的 header file:

#include <MCS.h>

接著建立 MCSControllerOnOff 與 MCSDisplayOnOff 類別實體,用來控制事先在 MCS 網頁控制介面定義的兩個開/關資料通道 (控制器與顯示器)。建立時需將各資料通道所對應的 channel ID 傳入類別建構函式當中。

MCSControllerOnOff led("your_channel1_id");
MCSDisplayOnOff    remote("your_channel2_id")

下一步利用 device ID 與 device key 產生 MCSDevice 類別實體,使開發板對應到之前在 MCS 網頁控制介面產生的測試裝置。

MCSDevice mcs("your_device_id", "your_device_key");

相關實體建立完成後,使用 addChannel() 將資料通道加入至測試裝置,並呼叫 connect() 來連接至 MCS 伺服器。

  // setup MCS connection
  mcs.addChannel(led);
  mcs.addChannel(remote);
  while(!mcs.connected())
  {
    Serial.println("MCS.connect()...");
    mcs.connect();
  }

在 Arduino 的 loop() 裡,呼叫 updated() 檢查是否有來自開/關控制器通道的新資料,若有新的資料,則根據該數值設定 LED_PIN 所對應的 LED 明滅,並同時更新顯示器通道的數值,以在網頁控制介面正確呈現出開發板的狀態。

if(led.updated())
  {
    Serial.print("LED updated, new value = ");
    Serial.println(led.value());
    digitalWrite(LED_PIN, led.value() ? HIGH : LOW);
    if(!remote.set(led.value()))
    {
      Serial.print("Failed to update remote");
      Serial.println(remote.value());
    }
  }

3.此時可操作 的開/關控制器通道來開啟、或關閉開發板上的 LED。在開發板 LED 狀態變化的同時,開/關顯示器通道的顯示狀態也會隨之變化

4.對應 的操縱,開發板上的 USR LED 將會開啟或關閉。

更多 MCS 函式庫的使用說明,請參考 。

MCS 網頁控制介面
MCS 網頁控制介面
MCS 函式庫 API 手冊
MCS 網頁控制介面
MCS 入門導覽