[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,您板子上的燈是否有亮起來了呢?
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');
       }
   });
});
MCS LED Blink

About CAVEDU 阿吉 - 雜工 (2520 Articles)
CAVEDU 教育團隊 打雜
Contact: Website

Leave a comment

Your email address will not be published.


*