使用 MCS + firmata 控制 LED

前言

請先閱讀完畢 之前的章節

電路圖

LED 的火線請接 D13。

步驟

MCU 端

MPU 端

  • 確認 LinkIt smart 7688 是否已經連接
  • ssh 進去
  • 編輯之前章節的 app.js ( 把原來的內容清空 )

以下可以選擇使用 MCS TCP command server 或者是 MQTT 來傳輸 (請擇一)。

使用 MCS TCP command server 的程式碼:

var ledPin = 13;
var firmata = require('firmata');
var mcs = require('mcsjs');
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);
  var myApp = mcs.register({
    deviceId: 'Input your deviceId',
    deviceKey: 'Input your deviceKey',
    //host: 'api.mediatek.cn', // 如果是中國 site 的人記得加這行.
  });
  myApp.on('LED_control', function(data, time) {
    console.log('blink');
    console.log(data);
    if(Number(data) === 1){
      board.digitalWrite(ledPin, board.HIGH);
    } else {
      board.digitalWrite(ledPin, board.LOW);
    }
  });
});

使用 MCS MQTT server 的程式碼:

var ledPin = 13;
var firmata = require('firmata');
var mcs = require('mcsjs');
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);
  var myApp = mcs.register({
    deviceId: 'Input your deviceId',
    deviceKey: 'Input your deviceKey',
    // host: 'api.mediatek.cn', //如果是中國 site 的人記得加這行.
    mqttHost: 'mqtt.mcs.mediatek.com',
    // mqttHost: 'mqtt.mcs.mediatek.cn', //如果是中國 site 的人記得把上一行換成這行.
    method: 'mqtt',
    port: 1883,
    qos: 0,
  });
  myApp.on('LED_control', function(data, time) {
    console.log('blink');
    console.log(data);
    if(Number(data) === 1){
      board.digitalWrite(ledPin, board.HIGH);
    } else {
      board.digitalWrite(ledPin, board.LOW);
    }
  });
});
  • 存檔成功後執行 node app
  • 按下 MCS 的 switch 後,就可以看到 LED 燈隨著變化囉!
  • 完成!

results matching ""

    No results matching ""