No Code AI(肉寇)AI自動化兩日精通|實體6小時+線上6小時
|

【LinkIt Smart 7688】透過MCS打造視訊串流及控制GPIO

   

作者:賴桑

目前IoT的應用相當多,除了感測器以外,再來就是開關的應用為最大宗,這篇文章寫的範例,就是利用MediaTek LinkIt Smart 7688搭載USB Camera,透過OpenWRT在MediaTek Cloud Sandbox(MCS)雲端做到視訊串流,以及控制GPIO的方法,供大家做為日後開發其他應用的參考。

所需材料

  • LinkIt Smart 7688
  • LogiTech C170 USB Camera
  • 手機USB充電器(供應5V直流電給7688)
  • 一個220Ω固定電阻跟一個LED

基本架構

首先準備你的MCS上的設定,MCS的做法是把每個測試原型對應到不同的裝置上,一個原型可以包含不只一個測試裝置;不過這個範例只會用到一個,所以這篇文章就針對只有一個測試裝置來進行描述。

基本架構圖

基本架構圖

Step 1.進入MediaTek Cloud Sandbox
Step 2.開始註冊你的帳號,如果已經有直接進行登入。

建立帳號後,進行登入

建立帳號後,進行登入

並按下Development可以看到你歷來建立的紀錄,如果沒有,就創建一個。

按下Development可以看到你歷來建立的紀錄

按下Development可以看到你歷來建立的紀錄

Step 3.本文這裡就建立一個「WiFi_relays_controller」的原型,總共只需要兩個「Data Channel」

建立一個WiFi_relays_controller

建立一個WiFi_relays_controller的原型

「Data Channel」就是你要MCS進行監控的資料通道資訊,Display就是只會顯示,Controller就可以控制開或關,所以本文建立一個Controller對應GPIO43、Video對應USB Camera

Data Channel

Data Channel

Step 4.建立一個測試裝置Test device,本文的Test device就是Test

建立一個測試裝置Test device

建立一個測試裝置Test device

特別要注意的就是「DeviceId」、「DeviceKey」兩項,這兩項是你的程式要讓MCS認得到底哪個Test device才是目標用的!

設定並且在LinkIt Smart 7688下安裝

首先請將你的7688切換到Station mode,才能真的讓7688連上Internet,因為MCS在聯發科的網路上,跑Live video stream還需要ffmpeg的軟體,所以請根據以下步驟,在7688的OpenWRT環境下達指令進行安裝。

  1. opkg update
  2. opkg install ffmpeg
  3. mkdir app && cd app
  4. npm init
  5. npm install mcsjs

以上五道指令輸入確定執行完成後,就可以進入 「/app/node_modules 」這個目錄下,將Node.js的程式與MCS連動了!第1、2道指令是要求安裝「ffmpeg」,第3、4、5道指令是要求MediaTek 7688初始化Node.js以及對應MCS的控制套件包。

原始程式碼:

我用OpenWRT下的Node.js寫的,透過libmraa控制GPIO43

原始程式碼說明

原始程式碼說明


var mcs = require('mcsjs');
var m = require('mraa');

var exec = require('child_process').exec;
var deviceId = 'D7IfstWi';
var deviceKey = 'mI0PGOcGHKzuwZS0';
var dataChnId = 'video';

var width = 176;
var height = 144;

var relay1 = new m.Gpio(43);    //Relay 1
relay1.dir(m.DIR_OUT);
realy1.write(0);

var myApp = mcs.register({
  deviceId: deviceId,
  deviceKey: deviceKey,
});

myApp.on('relay1', function(data, time) {
  if(Number(data) === 1){
    relay1.write(1);
  } else {
    relay1.write(0);
  }
});

exec('ffmpeg -s ' + width + 'x' + height + ' -f video4linux2 -r 30 -i /dev/video0 -f mpeg1video -r 30 -b 800k http://stream-mcs.mediatek.com/' + deviceId + '/' +deviceKey + '/' + dataChnId + '/' + width + '/' + height, function(error, stdout, stderr) {
  console.log('stdout: ' + stdout);
  console.log('stderr: ' + stderr);
  if (error !== null) {
    console.log('exec error: ' + error);
  }
});
賴建宏

訂閱MakerPRO知識充電報

與40000位開發者一同掌握科技創新的技術資訊!

Author: 賴建宏

社群稱號為「賴桑」的他,以電子電機的背景,熱衷於OSHW的應用開發與實作。取得台北科技大學電子所博士學位,目前主推「農林漁牧大業」計畫的迷你型魚菜共生系統開發。

Share This Post On
468 ad

Submit a Comment

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