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 資料夾
下載 nRF5FlashSoftDevice.jar 到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 】,找到後按「安裝」
安裝 Blynk libraries (以下資料取自本人另一篇文章「01Blynk+Arduino搭配USB上網」)
下載時是0.48版,往下移動會看到Blynk_Release_v0.4.8.zip
將上述檔案解壓縮
將上述全部資料夾複製到Arduino的函式庫資料夾中,如下:
三、下載【 Blynk_LED.ino 】的程式碼
到 https://github.com/ArcherHuang/Micro-bit 下載 Micro-bit-master.zip 。
解壓後,在底下的 Arduino / Blynk_LED 找到【 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燈會滅掉,成功!!