08利用Blynk APP控制

(2017/08/14)

之前利用Blynk APP來控制Difi進行遠方電器的控制時(參考【02利用Blynk遠端控制電器】),就發現Blynk也可以用來控制Micro:bit的板子,昨天又看到相關的文章,當然趕快來進行測試並將過程記錄下來~~

參考資料:

一、讓Arduino IDE認識 Micro:bit

  • 開啟Arduino IDE

  • 安裝【 nRF5 】

    • 點選 檔案/偏好設定

        • 在【 額外的開發板管理員網址 】輸入

        • https://sandeepmistry.github.io/arduino-nRF5/package_nRF5_boards_index.json

      • 點選【 工具 】 /【 開發板 】/【 開發板管理員 】

      • 右上搜尋欄位輸入【 Nordic Semiconductor nRF5 Boards 】,然後點選它,按【安裝】

  • 找到Micro:bit板子

    • 點選【 工具 】 /【 開發板 】 / 【 BBC micro:bit 】開發板

      • 點選【 工具 】 /【 Softdevice:無 】 / 【 S110 】

      • 點選【 工具 】 /【 燒錄器 】 / 【 CMSIS-DAP 】

  • SoftDevice 設定

    • 先到檔案總管,找Arduino資料夾,在Arduino/tools下建立 nRF5FlashSoftDevice 資料夾

      • 在 nRF5FlashSoftDevice 資料夾下再建一個 tool 資料夾

      • 重啟 Arduino IDE

      • 點選【 工具 】 /【 nRF5FlashSoftDevice】

      • 點選【 Accept 】

      • 完成

  • 安裝micro:bit 的驅動程式

    • 將micro:bit板子與電腦連接

    • 下載驅動程式並安裝 mbed Windows Serial driver

    • 安裝完後,發現【裝置管理員】有連到此設備

  • 測試點亮 LED 燈

    • 下載【 LED.ino 】的程式碼( 可到 https://github.com/ArcherHuang/Micro-bit/blob/master/Arduino/LED/LED.ino取得檔案)

    • 程式如下

      • #define LED_ROW2 27

      • #define LED_COL3 10

      • void setup() {

      • // put your setup code here, to run once:

      • pinMode(LED_ROW2, OUTPUT);

      • pinMode(LED_COL3, OUTPUT);

      • }

      • void loop() {

      • // put your main code here, to run repeatedly:

      • digitalWrite(LED_ROW2, 1); //要將此的0改為1

      • digitalWrite(LED_COL3, 0);

      • }

      • 完成程式後,一樣點【上傳】,將檔案寫進板子內

    • 中間的LED燈被成功點亮

二、使用 Blynk APP 的前置作業

  • 加入藍牙 BLEPeripheral 程式庫

    • 點選【 草稿碼 】/【 匯入程式庫 】/【 管理程式庫... 】

      • 在搜尋欄位輸入【 BLEPeripheral 】,找到後按「安裝」

    • 將上述全部資料夾複製到Arduino的函式庫資料夾中,如下:

三、下載【 Blynk_LED.ino 】的程式碼

    • 開啟 Blynk_LED.ino,程式內容如下:

      • /*************************************************************

      • *

      • This example shows how to use BBC Micro:Bit

      • to connect your project to Blynk.

      • Note: This requires nRF5 support package:

      • https://github.com/sandeepmistry/arduino-nRF5

      • And BLEPeripheral library

      • from http://librarymanager/all#BLEPeripheral

      • or https://github.com/sandeepmistry/arduino-BLEPeripheral

      • 1. Select: Tools -> SoftDevice -> S110

      • 2. Select: Tools -> Programmer -> CMSIS-DAP

      • 3. Select: Tools -> nRF5 Flash SoftDevice

      • 4. Read and Accept License

      • 5. Verify and Upload Sketch

      • NOTE: BLE support is in beta!

      • *************************************************************/

      • #define BLYNK_USE_DIRECT_CONNECT

      • #define BLYNK_PRINT Serial

      • #include <BlynkSimpleSerialBLE.h>

      • #include <BLEPeripheral.h>

      • #include "BLESerial.h"

      • // You should get Auth Token in the Blynk App.

      • // Go to the Project Settings (nut icon).

      • char auth[] = "a17a842931d740e4b01ac11fddb81d88"; //這部分等一下到MAIL信箱去收屬於自己的認證碼

      • // Create ble serial instance, parameters are ignored for MicroBit

      • BLESerial SerialBLE(0, 0, 0);

      • // Configure Pin

      • #define PIN_BUTTON_A 5

      • #define LED_ROW2 27

      • #define LED_COL3 10

      • BLYNK_WRITE(V0) // 建立 V0 的虛擬腳位

      • {

      • pinMode(LED_ROW2, OUTPUT);

      • pinMode(LED_COL3, OUTPUT);

      • if (param.asInt() == 1) /* When button widget is "ON" */ //按鈕按下時,中間的LED燈會亮

      • {

      • digitalWrite(LED_ROW2, 1);

      • digitalWrite(LED_COL3, 0);

      • }

      • else

      • {

      • digitalWrite(LED_ROW2, 0);

      • digitalWrite(LED_COL3, 0);

      • }

      • }

      • void setup()

      • {

      • Serial.begin(9600);

      • SerialBLE.setLocalName("Blynk");

      • SerialBLE.setDeviceName("Blynk");

      • SerialBLE.setAppearance(0x0080);

      • SerialBLE.begin();

      • Blynk.begin(SerialBLE, auth);

      • Serial.println("Waiting for connections...");

      • pinMode(PIN_BUTTON_A, INPUT_PULLUP);

      • }

      • void loop()

      • {

      • SerialBLE.poll();

      • Serial.print("Button A Status: ");

      • Serial.println(digitalRead(PIN_BUTTON_A));

      • if (SerialBLE) { // If BLE is connected...

      • Blynk.run();

      • }

      • }

  • 將上面的程式碼進行「上傳」(當然要將micro:bit 板利用USB線與電腦連接)

    • 上傳成功後,就可離線處理。

四、Blynk APP的使用

    • 下載及安裝 Blynk APP

  • 註冊新帳號登入,請參考前面文章

  • 新增一個新的專案

  • 選擇硬體

  • 選擇連線方式 (這地方要選擇BLE)20171218修改

  • 輸入專案名稱並按「建立」

    • 這時會寄認證碼到你的信箱

    • 進入剛建立的專案,會是空的版面

      • 你可以按上排中間「新增[元件]到這個專案」按鈕,來增加你的元件。

    • 新增一個藍牙元件 (選BLE)

    • 選擇及連接藍牙設備

    • 找到Blynk的藍牙設備(這個就是micro:bit板)<記得手機的藍芽要打開>

    • 連接成功

    • 接著新增一個按鈕元件

    • 點一下可進入相關設定,設定腳位為虛擬腳位V0

    • 更改按鍵名稱

    • 完成,並執行程式

    • 按下按鍵時,micro:bit的中間的LED燈會亮,放開按鍵時,micro:bit的中間的LED燈會滅掉,成功!!