[IoT] Linkit7688 DUO + Node.js + mraa 控制LED (GPIO)

2016-11-17

用Linkit 7688 當然就是要舒爽的寫Javascript 來控制一些硬體,這篇主要是筆記一下透過mraa 來控制LED 開關,並且透過Node.js
15146641_1229743117101089_2000804149_o

mraa 是一個library ,可以讓你去控制GPIO  ,這邊有詳細文章可以參考 :  https://labs.mediatek.com/site/zntw/developer_tools/mediatek_linkit_smart_7688/training_docs/peripherals/mraa_nodejs/index.gsp

首先,因為Linkit 7688 duo 內建mraa ,所以要先引入

var mraa = require('mraa');

再來將 LED正極插入D6 之後我們將D6 設定為GPIO輸出

// pin=0 , D6 pin腳
var ledPin = 0;

var led = new mraa.Gpio(ledPin);

//設定為輸出
led.dir(mraa.DIR_OUT);

之後就是建立 網站的部分 讓網站透過GET 參數 作開關,其中重點是 可以透過  led.write(1); 來將電輸出讓LED 亮

//Create Web Server
var url = require('url');

var http = require('http');

http.createServer(function (request, response) {

    //先把燈關掉
    //led.write(0);

    //Get Parameter
    var params = url.parse(request.url, true).query;
    try {
        console.log(params.v);
        if (params.v == 'on') {

            led.write(1);
            console.log('使用者觸發開燈');
        }
        else if (params.v == "off") {

            led.write(0);
            console.log('使用者觸發關燈');
        }
    } catch (e) {
        console.log('Error:' + e);
    }

    
    response.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
    response.write("<html><body>" +
        "您輸入的參數是:" + params.v
         +"  <span style='color:red'>"+(new Date()).toISOString().replace(/T/, ' ').replace(/\..+/, '') + "</span></body></html>", "utf-8");
    response.end();

}).listen(5978);
console.log('Led Server 啟動 請使用 port : 5978 ...');

這時候 我們存檔後 用Node.js 啟動
Image 274

瀏覽器連接到Linkit 7688 上面跑的結果
Image 276

Image 277

很簡單給大家參考一下,這邊是我參考的文章,因為我主要是筆記一下自己寫的東西,如果你要看比較詳細一點資料可以參考這網站:
https://iamblue.gitbooks.io/linkit-smart-nodejs/content/zh-TW/basic/mraa.html


當麻許的超技八 2014 | Donma Hsu Design.