[LinkIt Smart 7688教學] 經由 MediaTek Cloud Sandbox 控制板載LED (nodejs)

本篇要介紹的是結合 MCS 雲服務來控制 7688 上的 LED,這樣一來不論您身在何方都能藉由 MCS 來連到 7688 開發板來控制/監看開發板,還能多人同時透過網頁與 Android app 來控制它,很棒吧。

詳細資料請參考 MCS 的 7688 教學 以及 [LinkIt Smart 7688教學] 登入7688 後使用 nodejs 控制板載LED

首先請到 MediaTek Cloud Sandbox 建立一個 prototype,接著新增一個 On/Off 的 Controller 與 Display 資料頻道,channel id 分別命名為 LED_ControlLED_Display。您當然可以為資料頻道取不同的名稱,記得在程式中修改就好。

新增data channel  完成之後,就要為這個 prototype 建立一個 test device,在此才會取得DeviceId 與 DeviceKey,如下圖右上角處。這兩個值需要寫在 7688 端的程式碼中,請不要忘了修改這個值喔。

一般來說,程式無法作動的原因大致上有以下:

  1. 7688 沒有連上網際網路
  2. DeviceId 與 DeviceKey 忘了改或錯誤
  3. channel id 錯誤

002

使用node.js

  1. 登入 7688 之後, 使用以下語法建立一個名為 mcs_led.js 的檔案: #vim mcs_led.js
  2. 輸入以下內容. 請注意在#5, #6 行需要改為您方才好不容易申請到的 DeviceId 與 DeviceKey。
  3. #18行則是 channel id,如果您建立的 channel id 不是 LED_Control 的話,就要修改這裡。
  4. 接著使用以下語法來執行這個檔案: #node mcs_led
  5. 回到 MCS 的 test device 頁面,點選那個 On/Off controller,您板子上的燈是否有亮起來了呢?
MCS LED Blink
var ledPin = 13;

var firmata = require('firmata');
var mcs = require('mcsjs');
var myApp = mcs.register({
deviceId: 'XXXXXX', //輸入您的deviceId'
deviceKey: 'YYYYYY', //輸入您的deviceKey'
});
var board = new firmata.Board("/dev/ttyS0", function(err) {
if (err) {
console.log(err);
board.reset();
return;
}
console.log('connected...');
console.log('board.firmware: ', board.firmware);
board.pinMode(ledPin, board.MODES.OUTPUT); //將LED所連接的腳位模式設為OUTPUT

myApp.on('LED_Control', function(data, time) {
if (Number(data) != NaN) {
board.digitalWrite(ledPin, board.HIGH); //LED亮起
console.log('LED HIGH');
} else {
board.digitalWrite(ledPin, board.LOW); //LED熄滅
console.log('LED LOW');
}
});
});

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *