作者:賴桑
目前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可以看到你歷來建立的紀錄,如果沒有,就創建一個。
Step 3.本文這裡就建立一個「WiFi_relays_controller」的原型,總共只需要兩個「Data Channel」
「Data Channel」就是你要MCS進行監控的資料通道資訊,Display就是只會顯示,Controller就可以控制開或關,所以本文建立一個Controller對應GPIO43、Video對應USB Camera
Step 4.建立一個測試裝置Test device,本文的Test device就是Test
特別要注意的就是「DeviceId」、「DeviceKey」兩項,這兩項是你的程式要讓MCS認得到底哪個Test device才是目標用的!
設定並且在LinkIt Smart 7688下安裝
首先請將你的7688切換到Station mode,才能真的讓7688連上Internet,因為MCS在聯發科的網路上,跑Live video stream還需要ffmpeg的軟體,所以請根據以下步驟,在7688的OpenWRT環境下達指令進行安裝。
- opkg update
- opkg install ffmpeg
- mkdir app && cd app
- npm init
- 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);
}
});
- 【開箱評測】用Mbed上手開發DSI 2599開發板 - 2020/08/03
- 【OpenVINO™教學】自製麵包影像辨識POS機的應用 - 2019/12/24
- 【邊緣運算】OpenVINO好夥伴 — athena A1 Kit x86單板 - 2019/11/18
訂閱MakerPRO知識充電報
與40000位開發者一同掌握科技創新的技術資訊!