[IoT] Linkit7688 DUO 透過 firmata 來控制GPIO,LED
這篇主要是基於 https://iamblue.gitbooks.io/linkit-smart-nodejs/content/zh-TW/basic/firmata.html 還有官網的資料 https://labs.mediatek.com/site/zntw/developer_tools/mediatek_linkit_smart_7688/training_docs/linkit_smart_7688_duo/firmata_nodejs/index.gsp
所組成的,但是因為中間碰到許多雷,所以筆記一下讓後面碰地的人可以快一點,這邊先感謝 iamblue 大大的無私分享
1. 首先準備 LED 燈泡 負極插入 GND 正極插入 D13
2. 安裝好Arduino 軟體 並且將 https://gist.github.com/edgarsilva/e73c15a019396d6aaef2 這邊的code 部屬進入 Linkit 7688 duo MCU 裡面
3. 透過 PUTTY 連入你的Linkit 7688 duo 中,因為我是windows 10 作業系統
4.建立檔案夾 名為 labfirmata
並且 進入建立的檔案夾 labfirmata 中
cd labfirmata
5. 建立一個node_modules 檔案夾 在 labfirmata 檔案夾裡面
mkdir node_modules
6. 透過 git 下載我建立好的 firmata 的 lib
git clone https://github.com/donma/firmata12_tmp_for_7688duo.git
7. 建立好後你用ls 查,你會看到有一個 firmata12_tmp_for_7688duo 的檔案夾 ,其中有一個firmata2.tar 將他搬到 node_modules 裡面
mv firmata12_tmp_for_7688duo/firmata2.tar node_modules/
8. 進入 node_modules 檔案夾後 將firmata2.tar 解開來
cd node_modules tar -xvf firmata2.tar
9. 輸入 cd.. 回到 labfirmata/ 下建立一個檔案叫做 app.js 並且輸入下面的code ,我建議使用nano
console.log('WWW blink start ...'); var ledPin = 13; var firmata = require('firmata'); 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 url = require('url'); var http = require('http'); http.createServer(function(request, response) { var params = url.parse(request.url, true).query; try { if (params.value.toLowerCase() == 'high') { board.digitalWrite(ledPin, board.HIGH); } else if (params.value.toLowerCase() == 'low'){ board.digitalWrite(ledPin, board.LOW); } } catch(e) { } response.writeHead(200); response.write("The value written was: " + params.value); response.end(); }.bind(this)).listen(8080); console.log('Listening on port 8080 ...'); });
10 .啟動
node app.js
11. 這時候你可以透過 http://mylinkit.local:8080/?value=high 打開 http://mylinkit.local:8080/?value=low 關閉LED
這邊我只是包裝跟簡化 這網站的 https://iamblue.gitbooks.io/linkit-smart-nodejs/content/zh-TW/basic/firmata.html 如果我寫得不夠詳細,可以到大大那邊看完整文章..