LinkIt Smart 7688 Duo 物聯網 IoT教學163.17.93.1/share/105learn/LinkIt7688.pdf如何 Reset...

93
LinkIt Smart 7688 Duo 物聯網 IoT教學 CAVEDU 曾吉弘

Transcript of LinkIt Smart 7688 Duo 物聯網 IoT教學163.17.93.1/share/105learn/LinkIt7688.pdf如何 Reset...

LinkIt Smart 7688 Duo

物聯網 IoT教學

CAVEDU 曾吉弘

硬體介紹

開發環境比一比

7688

• Nodejs

• Python

• C/C++

7688 Duo

• Nodejs

• python

• Arduino

• C/C++

Seeed 7688 Grove感測器套件包

• 1 x Grove - Light Sensor

• 1 x Grove - Infrared Emitter

• 1 x Grove - Infrared Receiver

• 1 x Grove - Encoder

• 1 x Grove - Touch Sensor

• 1 x Grove - OLED Display 1.12"

• 1 x Grove - Temperature & Humidity Sensor

• 1 x Grove - Relay

• 1 x Grove - Gas Sensor (MQ2)

• 1 x IR Remote Control

可搭配的擴充板

POWER

USB HOST

MPU / Wifi / MCU

Micro SD 卡插槽在背面

WiFi天線

接上電源開始吧

Arduino IDE setup

Wi-Fi setup

Arduino IDE 下載

1. 請下載 Arduino 1.6.4 以後的版本

2. 從 board manager 安裝 7688 Duo

3. 安裝 driver

• 網頁版教學請按我

在Arduino IDE偏好設定中

貼上這個連結 • File / Preferences

• http://download.labs.mediatek.com/package_mtk_linkit_smart_7688

_test_index.json

在選單中看到 7688,按 Install

• Tools / Board / Boards Manager

完成之後就可以看到 7688 了

• 在很下面…

如果板子在網路上也可以抓到

安裝 driver,請把 7688 接上電腦

• 在 Windows 裝置管理員中會被歸類在[其他裝置] 中。

• linkit_smart_7688.inf

在懶人包裡面,指到這個位置即可

安裝完成

後續操作上與一般 Arduino 開發板是類似的

Wi-Fi LED 狀態

AP mode 連到 7688 但不連外網

AP mode連線

• 連上LinkIt_Smart_7688_XXXX

XX這個AP,X 代表 MAC

addr 後六碼

• 在瀏覽器輸入http://mylinkit.local即可進入主控台

• 預設帳號 root

• 密碼自行設定

基礎組態設定

AP mode 預設IP

改名字, 由於mDNS的關係,請勿使用底線 _. EX:

mylinkit_001.local <- 不行

目前最新FW 0.9.2

Station mode

• 點擊右上角 [Network]

• 切換到 Station mode 即可讓7688連到外部網路,之後只要在同一網路下的裝置都可連到它。

再次登入後可看到 IP 位址換了

連上外網之後的 IP

如果 http://mylinkit.local 連不上怎麼辦

• 可能是 Windows 的 mDNS 問題

• 如果有別台電腦的話,試著用別台電腦來看看是否可登入來找到 IP

• 都不行的話,請用 IP 掃描工具來看看您的

7688 跑哪去了。(EX: Free IP Scanner)

連上外網之後

• 就不會再看到 7688 AP了。

• 一樣用 mylinkit.local 或 <IP> 來連上它

• 先更新一遍

– $ opkg update

– $ opkg install nano (好用的文字編輯器)

– $ opkg install ffmpeg (影像串流用的套件)

如何回到 AP Mode

• 按住 Wi-Fi 按鈕 5 秒鐘即可從 station

mode 回到 AP mode

如何 Reset LinkIt Smart 7688

透過板子上的按鈕

• 插上電源後請稍等約2分鐘等開機

• 按著板子上的 Wifi 鈕 20 秒。

• 放開後,就會開始看到橘色燈閃爍代表 reset 中

• 靜置一段時間後,觀察是否有新的 LinkIt_Smart_7688_XXXXXX 之 AP 出現,若有代表即完成。

透過 WebUI

• 進去 WebUI 後,點選頁面最下方的 [Reset]

• 稍後 2~3 min 即可完成。

如何自定義 AP SSID

• 準備一個 USB 隨身碟與 micro USB 轉接線

• 於 USB 根目錄下新增一個名為[lks7688.cfg] ASCII 文字檔,檔案內容: – wifi_ssid=THE_AP_SSID

– wifi_key=THE_AP_PASSWORD

• 將 USB隨身碟插入 7688 USB host 之後開機。 – 按住 WiFi 鈕

– 按下一次 MPU reset 鈕

– 在 WiFi LED 亮起之後放開 WiFi 鈕

• 影片

SSH登入7688

• Windows: Putty 或 TeraTerm

• MAC / Linux: Terminal $ ssh [email protected]

或 $ ssh root@<7688IP>

開始寫程式啦!

First nodejs

• $ vim app.js

或 $ nano app.js

(編輯)

• $ node app.js

(執行)

First python

• $ vim test.py 或

$ nano test.py (編輯)

• $ python test.py (執行)

nodejs LED blinking

• $ vim led.js 或

$ nano led.js

(編輯)

• $ node led.js

(執行)

• Wifi狀態LED即為

GPIO #44 pin

• 0 = HIGH, 1 = LOW

MediaTek Cloud SandBox

https://mcs.mediatek.com/resourc

es/latest/tutorial/7688_tutorial

MediaTek Cloud Sandbox

(MCS)

MCS主要功能

• 雲端平台,執行程式

• 例:Google App Engine、Amazon Web

Services、Microsoft Azure

• 提供網頁介面,讓你「點按滑鼠」就能建立雲端程式

• 提供API程式存取介面

• 提供網頁介面,觀看與控制各種資料

MCS其他功能

• 通知(Notification),當某資料符合特定條件時,寄送電子郵件

• 使用者權限(User Privilege),設定開發成員的存取修改權限

• FOTA(Firmware Over The Air),版本控管,韌體經由無線傳輸自動更新

目標

• 到MCS註冊帳號

• 建立網頁應用程式(web application)

• 透過MCS REST API進行溝通

• LinkIt 家族開發板、手機、瀏覽器

範例

• 從雲端控制板子內建的LED

• LED:想像成家裡的燈

• 為什麼從雲端?不能直接連線嗎?

MCS重要觀念與名詞

• Prototype,裝置原型,具備各種 data

channel

• Data Channel,帶有時間資訊的資料串

• Data Channel Id:對應的資料接口

• Datapoint:每筆上傳的資料

• Test Device,想像為實際執行後的程式

• DeviceId、DeviceKey:用這個來鎖定裝置

• 例:LED控制器、溫濕度感測站

MCS Dashboard(儀表板)

MCS 重要選項

• Console:主控台

• Development:

建立Prototype、新增修改Data

channel、查詢Data channel Id

• Test Devices:

查詢DeviceId、DeviceKey

• Resources:

教學文件、參考資料

• Resources:常見問題、論壇、回饋

範例:控制LED並檢視狀態

程式:mcsled.js

流程

1. 建立Prototype

2. 依照所需功能,新增Data channel,記下Data channel Id

3. 建立Test device,記下DeviceId與DeviceKey

建立Prototype

• Prototype name:LED

Manager (或自定)

• Prototype version:1.0

• Hardware platform:LinkIt

Smart 7688 (MT7688)

• Industry:自定

• Application:自定

Data channel 資料頻道

• Controller型:可控制腳位

• Display型:接收腳位/周邊裝置回傳的資料

分享與觸發

• 您可以把建好的 test device 與別人共享

• 也可以自行設定觸發條件,讓 MCS 寄信給您

目前有哪些類型?

Controller

• ON/OFF

• Category

• Integer

• Float

• Hex

• String

• GPS

• GPIO

• PWM

• Analog

• GamePad

Display

• ON/OFF

• Category

• Integer

• Float

• Hex

• String

• GPS

• GPIO

• PWM

• Image Display

• Video Stream

ON/OFF

• 控制高低電位。LED、繼電器等

• 顯示裝置的電位高低狀態

Category

• 讓系統可在2~5個狀態之間切換

Integer / Float / Hex

• 傳整數/浮點數/16進位值給裝置

• 顯示裝置的數值參數。各種感測器

String

• 傳送字串給裝置 / 顯示裝置回傳的字串

GPS (Google Map~)

• 傳送經度、緯度、標高給裝置

• 顯示裝置的GPS座標

日期區間搜尋

GPIO

• 控制/顯示裝置的 GPIO 腳位高低電位

PWM

• 控制/顯示裝置的PWM腳位,可指定範圍

Analog (只有Controller)

• 以滑桿方式送出指定範圍之內的數值

新增Data channel (1/2)

• 請新增一個Controller型

• Data channel name:LED_Control

• Data channel Id:LED_Control 重要!將用於程式碼內

• Data type:ON/OFF

• 您當然可以使用別的名稱,只要一致就好

建立Test device

• 一個 prototype 可有多個 Test device

• Device name:LED Manager (或自定)

Prototype List 頁面

• 這樣代表 test1229 這個 prototype 有一個

test device

請到Development/Test Devices

• 找出您剛剛建立的 test device: LED Manager

DeviceId / DeviceKey

• 這兩筆資料要填在所有要與 MCS 溝通的程式中

• Data channel Id 也不能錯喔:

LED_Control

MCS + LED 閃爍

nodejs 與 python 各自要安裝模組

請打開本日資料夾的

mcsled(js).txt / mcsled(py).txt

複製到 7688 的 nano 裡即可

MCS 新增channel 完成

設定 nodejs 與 python 環境

MCSjs modules

7688 需要用到MCSjs module,這是一個 HTTP

request library。使用 npm 即可安裝。

1. 請確認您的 7688 連上網路(station mode)後SSH 登入它

2. 建立一個名為 app 的資料夾:$ mkdir app

3. 切換到 app 下:$ cd app

4. npm 初始化:$ npm init

5. 使用 npm 來安裝模組(需要一點時間):

$ npm install mcsjs

安裝完成

• /app 下應該會有一個 node_modules 的資料夾,稍後執行的 mcsled.js 需位於同一資料夾下才能順利執行

檢查 npm 版本

$ npm –v

可看到目前的版本為 2.11.3

mcsled.js

• 打開下載資料夾中的 mcsled(js).txt

• 然後在 7688 terminal 中,進入剛剛建立的

/app 資料夾,輸入 $ nano mcsled.js

• 在 nano 中貼入內容,並修改 deviceId /

deviceKey,如下頁

程式 mcsled.js修改處

var myApp = mcs.register({ deviceId: 'ABC123', deviceKey: 'XYZ123', }); 以上紅字換成您 test device的資訊

Python 要先安裝 request 模組

• $ pip install requests

• 然後 $nano mcsled.py 來編輯檔案

程式 mcsled.py修改處

DEVICE_INFO = { 'device_id' : 'YOUR_DEVICE_ID',

'device_key' : 'YOUR_DEVICE_KEY' } 以上紅字換成您 test device的資訊

執行吧!

• 執行時可看到 MCS test device 名稱左邊亮起綠燈,代表裝置已與 MCS 連通

• 拿起Android裝置打開 MCS app 來玩吧

執行畫面

影像串流功能

直接串流 / MCS

好棒好棒

• 7688 / 7688 Duo 已經安裝了

mjpgstreamer 套件,只要下指令就可以在瀏覽器中看到即時影像喔!

• 目前可用的 UVC class webcam 請點我

• 例如Logitech C170, C310 等

如何確定裝置已抓到

• $ cd /dev

• $ ls

• 看到 /video0

就是了

影像串流

• 在 termninal 輸入:$ mjpg_streamer -i "input_uvc.so -d

/dev/video0 -r 640x480 -f 25" -o "output_http.so -p 8080 -

w /www/webcam" &

• 如果出現 v4l2 Fatal Error 或類似訊息請重新啟動 7688

看到影像了嗎?

• 完成後直接開啟

– http://mylinkit.local:8080/stream.html

– http://<7688IP>:8080

MCS Video Streaming Channel

• 每個裝置的每月流量為 3GB

• 一樣透過 DeviceId / DeviceKey 連到 MCS