2015/11/15


前一陣子, 萊恩大兵和 Frank, 國俊, Eric, Ken 組隊參加某公司的智慧眼鏡模組創新應用競賽, 發想了一個叫做 "I-See, 正妹追蹤器" 的有趣專案.

雖然最後作品沒完成也沒得名, 但這過程中累積了一些成果. 就此埋沒有點可惜, 不如把經驗與成果分享出來, 留點記錄在人間.

在 10/27 日, 延續 10/13 日的正妹追蹤器概念分享後, 景智接著來介紹 Node-RED.






萊恩大兵簡單地記錄下當天的分享內容:

(1) 什麼是 Node-RED?

簡單講, Node-RED 是 IBM 以 Node.js 為基礎而開發出來的視覺化 IOT 開發工具.






Node-RED 和 Node.js 的關係.. 景智接下來的四張簡報, 都是在介紹 Node.js. 說實在萊恩大兵沒摸過 Node.js, 聽不進去這段的內容. 只記得景智最關鍵的一句~ 不需要會 Node.js 也能使用 Node-RED.









(2) 安裝 Node-RED



Node-RED 的安裝步驟很簡單. 就是先安裝 Node.js, 再安裝 Node-RED, 兩個指令解決. 

萊恩大兵回家後有照著做, 大致說明一下安裝步驟.
首先, 到 Node-RED 的官方網頁下載 Node.js 0.12.x 安裝包.



(萊恩大兵的作業環境是 Macbook, 以下截圖均是 OSX 的安裝畫面.)

接著, 安裝 Node.js. 
點擊剛剛下載的 Node 0.12.x 安裝包. 在彈出來的安裝畫面一直按 Continue (或 Install) 即可完成安裝.


安裝畫面 第一頁

安裝畫面 最後一頁

再來, 安裝 Node-RED. 
打開 Terminal, 輸入:
 sudo npm install -g --unsafe-perm node-red
即會開始安裝 Node-RED.



到這邊順利的話, Node-RED 就安裝完成了.


順道也講一下在 Raspberry Pi 2 上安裝 Node-RED 的經驗好了. 同樣是連到 Node-RED 的官方網頁 可以找到 RPi 2 的安裝說明.

安裝 Node.js 的指令比較長一點: 
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -sudo apt-get install -y build-essential python-dev python-rpi.gpio nodejs
安裝 Node-RED 的指令為: 
sudo npm install -g --unsafe-perm  node-red
在安裝 Node-RED 的過程中, 會有一些 node-gyp rebuild 的錯誤訊息產生, 基本是不影響的, 別擔心.




(3) 啟動 Node-RED



在 Terminal 輸入
node-red
如果是 RPi 2 則請輸入 node-red-pi --max-old-space-size=128 
即可啟動 Node-RED. 
它是一個 web service. 打開瀏覽器, 輸入:
http://localhost:1880 或 http://(your-ip-address):1880
即可打開 Node-RED 的編輯器.



   
(4) Node-RED 的開發環境

景智接著介紹 Node-RED 的開發環境, 程式語法, 如何安裝 library 等等. 









聽完分享, 沒自己親手來試試, 東西就不會是自己的. 萊恩大兵花了一些時間摸 Node-RED, 來講一些自己初上手 Node-RED 的使用心得.

(5) 初上手 Node-RED 的一點心得

簡單的說, 對 Node-RED 的期待要放對位置. Node-RED 是圖形化開發工具, 很方便很省工沒錯, 但它並不是(或還不是) "for dummies" 或 "7 天學會 IOT" 之類的工具.

萊恩大兵歸納了兩個原因:
[i] 相較於 Arduino 或 RPi, 在 Google 上能找到的 Node-RED 範例並沒有很多. 這增加了初學者的門檻.


[ii] 還是有一些範例會教~ 拉幾個 node, 把線串一串, 就可以這樣那樣... 可當真去研究後, 會發現真要做出能用的東西, 還是很需要堅實的底子的. 

用 Node-RED 做一個 http 計算機示範為例. 還是需要知道 http request 與 http response 的對應關係. 甚至也要知道將資料轉成 JSON 形式來餵給 http response node. 若沒有相關知識基礎, 使用 Node-RED 也是無從下手, 只能用 inject 與 debug node 來自 high.



不過話說回來, 拿 Node-RED 搭配 RPi 或 Arduino, 還真是個快速上手, 快速 prototype 的好用工具. 例如控制 RPi 的某根腳位去點亮 LED. 只要簡單的拉四個 node, 串一串再寫一點程式碼即可做到. (請參考 First Flow - Blink - gpio)



(6) 專業的實作分享

另外, 景智這次的分享可是有備而來的. 他展示了一套用 Node-RED, RPi 2, servo, light sensor 與 MQTT 的智慧交通管理系統. 充分展現 Node-RED 快速 prototype 的工具優勢.





最後, 做個簡單的總結. 這次的分享算是 Node-RED 的初入門, 還有很多實作技巧與資源值得去探索 (例如 IBM Bluemix 就是一個大寶庫). 萊恩大兵會繼續花時間在這主題上, 歡迎同好一起切磋討論.



[萊恩大兵的其它文章]

藍色小鋪一起來做

藍色小鋪一起來做, (1) 用 beacon 控制開關的枱燈
藍色小鋪一起來做, (2) 講解 BLE CC2540 UART 通訊範例程式 (Bluetooth, CC2540, UART)
藍色小鋪一起來做, (3) 藍牙枱燈專案實作 (上) (Bluetooth, CC2540)
藍色小鋪一起來做, (4) 藍牙枱燈專案實作 (下) (Bluetooth, CC2540)
藍色小鋪一起來做, (5) iBeacon scanner 專案示範與解說 (Bluetooth, CC2540, iBeacon)
藍色小鋪一起來做, (6) 完成, 用 iBeacon 控制開關的枱燈 (Bluetooth, CC2540, iBeacon)
藍色小鋪, 初嚐樹莓派 (Raspberry Pi)
藍色小鋪, iBeacon 應用, 自動記錄到訪時間 (iBeacon, Geohopper, Zapier)
藍色小鋪, 菲力普的 Docker 應用分享 (Docker)
藍色小鋪, PTT地震文團隊分享三連發, (1) Maker 的 IOT 遊樂場 (PTT, Hackathon, Python, Xively, Internet of Things)
藍色小鋪, PTT地震文團隊分享三連發, (2) mbed 新手分享 (mbed, MPU6050, Hackathon, Internet of Things)
藍色小鋪, 空中提升軌道車, 作品進化分享 (Pneumatic Tube System, Force of Friction, Mini 4 WD)
藍色小鋪, 數字管時鐘, 作品進化分享 (Nixie Tube, VFD)
藍色小鋪, 回憶之光, 3D 列印的經驗分享 (3D printing)
藍色小鋪, Humix 紙箱機器人, 機器人霸凌事件 (Humix, Internet of Thing)
藍色小鋪, 顏禁線制-滿旗開講, Henna 手繪體驗 (Henna)
週二來一招, I-See 正妹追蹤器, 概念分享 (Smart Glasses)
週二來一招, Qmote Maker's Module 功能介紹 (Qmote)
Qmote Maker's Module, 加上按鈕變成手機遙控器 (Qmote)

自製大四軸
自製大四軸, 實作分享@華山文創園區
自製大四軸, (1) 零組件篇, 遙控器 (Drone, Quadcopter, Futaba, Maker, Arduino, Animatronic Eye)
自製大四軸, (2) 零組件篇, 飛控板 (Drone, Quadcopter, MultiWii, Arduino, Futaba, Maker)
自製大四軸, (3) 零組件篇, 自行雷切木質機架 (Drone, Quadcopter, Maker, Laser Cut)
自製大四軸, (4) 零組件篇, 馬達與電變調整 (Drone, Quadcopter, Maker, Electric Speed Control, Motor)
自製大四軸, (5) 組裝篇, 四軸飛行器成形 (Drone, Quadcopter, MultiWii, Arduino, Maker, Electric Speed Control, Motor)
自製大四軸, (6) 調整篇, 飛行前兩三事 (Drone, Quadcopter, Maker, Futaba, Arduino, MultiWii)
自製大四軸, (7) 充電篇, iMax B6 充電器操作記要 (Charger, Battery)
自製大四軸, (8) 問題篇, 機架損壞維修 (Drone, Quadcopter, Laser Cut)
自製大四軸, (9) 改良篇, 方便拆卸的木質機架 (Drone, Quadcopter, Maker, Laser Cut)
自製大四軸, (10) 外飛篇, 新手的青蛙跳與遛狗 (Drone, Quadcopter, Maker, MultiWii)

自動報球速的棒球


CC2540 Bluetooth Low Energy
筆記, CC2540 Bluetooth Low Energy, (1) 開發環境 架設 (Bluetooth, CC2540)
筆記, CC2540 Bluetooth Low Energy, (2) 跑第一個範例程式 (Bluetooth, CC2540)
筆記, CC2540 Bluetooth Low Energy, (3) SimpleBLEPeripheral 簡單介紹 (Bluetooth, CC2540)
筆記, CC2540 Bluetooth Low Energy, (4) 在智慧手機上執行範例程式 (Bluetooth, CC2540)
筆記, CC2540 Bluetooth Low Energy, (5) 偵測與發送 iBeacon 訊號 (Bluetooth, CC2540, iBeacon)
實作, iBeacon 發訊器 x 防丟器 (Bluetooth, CC2540, iBeacon)
實作, iBeacon 尋寶遊戲 (Bluetooth, CC2540, iBeacon, iOS app)
實作, BLE + iOS app, 遙控燈泡君 (Bluetooth, CC2540, iOS app)
做實驗, 用 iBeacon 做自動控制的可行性 (Bluetooth, iBeacon, CC2540, Automation, URL Scheme, iOS app)

OpenCV 學習路徑

記錄, OpenCV 學習路徑, (1) 環境安裝與第一個範例 (OpenCV, Python)
記錄, OpenCV 學習路徑, (2) 辨識多邊形 (OpenCV, Python)

小惡魔 無線溫度感測器


0 意見:

張貼留言