Tag Archives: linkit 7688

[課程紀錄]物聯網大專教師研習-使用LinkIt 7697@經濟部通推小組

作者/攝影 曾吉弘
課程時間  2017 5/12
課程講師 曾吉弘
課程場地 經濟部通訊產業發展推動小組會議室

台北市中山區長安東路一段18號6F

通訊大賽物聯網組的大專教師研習開跑,2015年是LinkIt ONE, 2016是 LinkIt 7688,今年則是一片可愛的LinkIt 7697 (具備 Wi-Fi, BLE 的 Arduino相容板)。

7697的投影片在此(還有學習筆記),快100頁喔,喜歡就幫忙分享出去吧!


當天上課內容如下:

  • 7697 硬體介紹以及當作 Arduino使用
  • 基礎電路操作 – 使用 BlocklyDuino 與 Arduino IDE
  • BLE 基礎介紹,使用App Inventor 編寫Android app 來控制 7697
  • 由MCS雲服務來控制7697腳位
  • 上傳感測器資料到 MCS 雲服務指定之資料頻道
  • 如何外部取得 MCS channel 的資料點 (JSON format)

這次有個重要的亮點是 BlocklyDuino 圖形化介面(離線執行,載點請按我),除了基本的I/O指令之外,Seeed Grove套件、Adafruit 套件甚至 IFTTT, Blynk 等雲端服務等都寫好了。請一定要試試看。

對於小朋友來說,拉拉方塊就能寫好當然是最棒啦。但如果是會Arduino IDE 語法的朋友,可以轉成Arduino 語法之後再進行最佳化。不管怎樣,聽起來都是很棒的東西呢。

BlocklyDuino 主畫面

上圖之積木方塊轉為Arduino 語法

BlocklyDuino 之設定畫面

其實像是 IFrog ICblockwebduino 或是 Motoduino慧手科技的motoblockly 都有類似的服務。 

上課實況,感謝諸多老師參加喔!

上課會使用 7697 搭配簡易電子元件來做到各種互動功能,不過物聯網系列的課程重點都是在資料聯網之後的應用,能夠正確控制周邊應該是最大公因數,在此也感謝許多廠商努力提供好用的軟硬體。

使用App Inventor 藉由 BLE 通訊來與 LinkIt 7697 互動

下圖是上傳光敏電阻資料到 MCS 的資料頻道上:

LinkIt 7697(數大就是美)

Motoblockly.com 主畫面

webduino (轉 javascript) 主畫面

 

相關文章:

 

[物聯網屋專題實作計畫]用LEGO®製作物聯網屋

誤:為了名正言順的動用公司資金玩LEGO,特別提案製作LEGO物聯網企劃。

正:為了提供更好的物聯網學習體驗,使用互動性、模組化最佳的LEGO積木為素材,整合Linkit Smart 7688 Duo物聯網開發板、聯發科雲端服務(MCS)、Seeed Grove感應器,打造【CAVEDU第三代物聯網屋】。

作者/攝影  鄭建彥/CAVEDU教育團隊
時間
  •  30分鐘(開箱時間)
  • 2~5分鐘(製作時間)
成本
  • Linkit Smart 7688 Duo
  • Linkit Smart7688 Duo Arduino相容擴充轉接板
  • LEGO 75827
  • Grove加速度感應器
  • Grove火焰感應器
  • Grove溫溼度感應器
  • Grove 水感應器
  • 風扇模組
  • 5mmLED
難度 

我們家老闆也不是那麼好騙的,哪有這麼隨便就讓我們動用公司資源開專案,一定要有範例佐證一下。

還好我出門遊玩工作時,有順手拍照記錄的好習慣。

這是2016 CAVEDU物聯網應用發表會,亞馬遜雲端服務(AWS)所展出的LEGO物聯網屋。

2016年的新加坡Maker Faire,Cognizant的攤位活動也是LEGO小屋+樹莓派+平板

 

已經可以證明使用LEGO為房屋素材,是世界級大廠的共同選擇,所以我們選用LEGO也只是剛好跟上一流國際科技品牌的腳步而已。

我們在玩了評測好幾間LEGO屋之後,決定選用LEGO 75827。

是的,就是那棟魔鬼剋星消防局總部,滿滿三層樓的回憶與感動(想當年那卷魔鬼剋星錄影帶我也是一看再看啊!)。

這麼豐富的零件,讓滿懷感動的我們,花了好幾個晚上組裝才完成。

 

說好的物聯網功能呢?

首先,先研究如何將感應器跟LEGO積木裝在一起。Seeed Studio推出了可以將Grove系列模組跟LEGO積木結合的保護殼(工商服務:http://shop.robotkingdom.com.tw/seeedstudio/grove.html),剛好解決這個問題。

接下來就可以輕鬆愉快的Grove感應器們裝上去了。

 

安頓好了各輸出入模組,下個問題才讓我們手忙腳亂,線 要 按 怎 牽 ?

每個樓層都有好幾個模組,每個模組都要拉線到控制板上,這麼多線要如何安全、整齊的配置呢?我們製作了這個黑盒子(商業機密,恕不公開內部照片),解決了這個惱人的問題。

 

好用又好玩的LEGO物聯網屋就完成啦。

 

等等,你以為我們這樣就滿意了。

我們再接再厲的改裝了LEGO辛普森他們家。

 

下個改裝目標據說是這個

 

想看實體嗎?歡迎在2017/5/27、28來華山1914文創園區的東二館,我們會在【放課後】展出。

購票網址:http://shop.robotkingdom.com.tw/funschool/funschool.html

 

相關文章:

[課程紀錄]物聯網實作工坊-7688教師研習@TQC

作者/攝影 曾吉弘
課程時間  2017 1/12,13
課程講師 曾吉弘
課程場地 TQC電腦技能基金會

新年新氣象,1/12 13 兩天於TQC電腦技能基金會舉辦了7688物聯網講師研習,

兩天課表的 Google doc 在這邊,請和我們一起學習吧!

 兩天研習的好處就是可以慢慢教,大家也有一個晚上的時間稍微緩衝一下,不然這些內容要一天全部上完,物聯網課程又比單純Arduino的課程來得複雜很多,硬體、網路

我們把 LinkIt Smart 7688 Duo 的大小秘辛都講過一遍,簡列大綱如下:

  第一天上午   7688 Duo 硬體介紹以及當作 Arduino使用

  第一天下午   7688 網路設定與 openWRT 操作 (檔案系統,以及如何執行Node.js / python)

                       Mediatek Cloud Sandbox 介紹 -> 繼電器(數位輸出) 控制

  第二天上午   MCS影像串流 / 照片上傳,這是 7688 最特別的地方,用它做一個

  第二天下午   上傳感測器資料 (Node.js + Arduino / python + Arduino)

                       如何外部取得 MCS channel 的資料點 (JSON format)

  在此需要好好說一下,在此之所以使用 1+1 的方式而非純Arduino 或 純 Node.js / Python 的原因(很多學員也很困惑):

  1. 很多電子周邊有Arduino函式庫,但不一定有 Node.js / Python 的函式庫
  2. Arduino IDE 的聯網功能與 Node.js / Python 相比弱多了,以[[LinkIt Smart 7688] MCS 上傳資料] 教學,您可以看到Arduino code < 20行,Node.js / Python code <30行,輕鬆愉快喔

下圖是上傳光敏電阻資料到 MCS 的資料頻道上:

相關文章:

[微軟認知服務] 串流影像之臉孔與年齡辨識

本範例要介紹如何使用 LinkIt Smart 7688 Duo(7688也可以)結合微軟認知服務下的Face API,您連到7688的影像串流IP之後會不斷偵測畫面中是否辨識到人臉,並將相關資訊(年齡)呈現在網頁上。本範例感謝台灣微軟同仁與 CAVEDU 講師袁佑緣協助。

例如前陣子幾乎人人都玩過的How-Old.net就是運用這類技術來判斷照片中是否有人臉以及年齡判斷等等。更多微軟認知服務的資訊與教學,請參考原廠網站:https://www.microsoft.com/cognitive-services/en-us/apis

10-1
微軟認知服務首頁
10-2
目前可用的API

延伸閱讀

[App Inventor教學] 上傳照片到微軟認知服務Computer Vision API,使用 Makeblock CamVision

 

取得Face 與Emotion API金鑰

請登入您的Microsoft帳號(我的@msn.com還可用呢!):https://www.microsoft.com/cognitive-services/en-us/face-api

點選APIàFace API,找到頁面下方的Get started for free,如下圖

10-3
點選Get started for free

 

接著會列出可選用的API以及使用方案,以本範例的 Face 與Emotion API 來說,兩者的流量限制都是每個月執行30,000次,每分鐘20次。請勾選Face選項與Emotion選項,再點選頁面最下方的Subscribe即可。

10-4
勾選Face與Emotion選項

接著會進到以下頁面,您可在此看到這個產品所產生的Key,屆時就是要把這組Key輸入在本專案的 cognitive.js 與 index.html中。您也可點選 Show Quota 看一下已用掉幾次呼叫。

10-5
您目前啟用的服務列表

Continue reading

160913 物聯網教師社群開始上課囉

6年前,承台中女中王主任邀請我擔任未來教師社群計畫的講師,授課的內容是 App Inventor,那時候只覺得應該要有個網頁紀錄一下,就弄了一個 Google site,因為排版、嵌入 youtube與上傳作業都很方便,後來覺得這樣看起來很像光華商場買電腦的報價單…    加上網址也太長了,所以就申請網址外加畫 banner ,於是

App Inventor 中文學習網誕生啦~

今年再次擔任物聯網教師社群的講師,使用 LinkIt Smart 7688 與10多位中彰投的師長們一起上課,其實很多老師之前都已經再進行各種教學,包含Arduino、Scratch與 Raspberry Pi 等等,所以第一堂課大家很快就上手啦。

請期待本學期末各位老師的產出囉,我會努力督促大家的~

2016-09-13-16-45-15

2016-09-13-16-11-32

參加的老師都有豪華套件包一組,好羨慕啊

2016-09-13-13-18-12

很快就 SSH 連進去 7688,能看到這個畫面就是好的開始

2016-09-13-16-10-32






9月份T客邦創客基地 LinkIt Smart 7688 物聯網實作坊:週五1930~2130@T客邦

感謝您過去參加創客基地的活動,CAVEDU 與T客邦創客基地合辦的 LinkIt Smart 7688 物聯網實作坊開課了,課程內容使用熱門又平價的「LinkIt Smart 7688 開發板」實作聯網功能、結合 MCS 雲端伺服器、透過雲端控制家電、最後做出雲端影像監視器。

本次開課日期是9/23、9/30、10/7、10/14,週五晚上 19:30 ~ 21:30

當您學完本課程之後,就可以直接應用在生活、工作上,有問題還可以跟同學、老師討論。

了解詳情並報名>>>

7個理由,為什麼要來上課?

  • 聯發科技推出的 LinkIt Smart 7688 開發板便宜又好用,更適合實作 IoT 應用。
  • 所有課程分為4堂課,可任意選擇也可以全部報名,依照個人需求做決定。
  • 使用 Arduino IDE 進行開發,適合想學 Arduino 的人。
  • 解決工作上的問題:各行各業都可能需要物聯網裝置進行升級。
  • 開發者培養第二專長;設計師學會玩互動硬體;學生玩開發板,進入科學、技術、工程跨領域的學習。
  • 認識講師,遇到困難有人回答。書本資料太多、網路上的資料太分散,現場有人教學得快。
  • 同時學程式和硬體,培養跨領域的思維、解決問題的能力。

課程說明

本課程分為4堂課,每堂課可單獨報名,也可一次報名4堂課(有優惠)。

地點:T客邦總部,台北市中山區民生東路二段141號6F (Google 地圖),若有更改將會儘早通知。

第一堂:LinkIt Smart 7688 設定、開發環境上手與基本電子工具與元件的運用

時間:2016/9/23(五) 晚上 19:30 ~ 21:30

  • LinkIt Smart 7688、LinkIt Smart 7688 Duo 開發板。
  • LinkIt Smart 7688 與 Arduino 之間關係性與各式硬體版本。
  • LinkIt Smart 7688 Duo 的作業系統與開發環境。
  • 讓 LinkIt Smart 7688 Duo 使用 Arduino 開發環境及其建置,安裝 SDK 與驅動程式。
  • 基本電子元件與工具介紹及運用:包括感測器模組、LED、觸碰開關、360 度旋鈕、光敏電阻等入門者常用的感測器、電子元件模組。

課程費用(不含開發板、電子材料):800元

上課材料 – 可自備或在現場購買(附發票):

LinkIt Smart 7688 Duo 開發板:600 元。

材料:466 元。

  • Micro USB 線 x 1
  • 400 孔麵包板 x 1
  • 跳線線材 x 1
  • 5 mm LED x 3
  • 5 mm RGB 三色 LED(共陰極) x 1

第二堂:實作 LinkIt Smart 7688 Duo 聯網功能

時間:2016/9/30(五) 晚上 19:30 ~ 21:30

  • 介紹 LinkIt Smart 7688 Duo 的聯網系統,Linux 作業系統。
  • 設定 LinkIt Smart 7688 Duo 的網路連線功能。
  • 使用遠端連線下指令,使用網路攝影機拍照。
  • 將 LinkIt Smart 7688 Duo 連接網路攝影機。
  • 在網頁瀏覽器上觀看攝影機影像。

課程費用(不含開發板、電子材料):800元

上課材料 – 可自備或在現場購買(附發票):

LinkIt Smart 7688 Duo 開發板:600 元。

材料:615 元

  • 網路攝影機 Logitech C170 x 1
  • Micro USB 轉 USB 轉接線 x 1

第三堂:使用 MediaTek Cloud Sandbox 實作雲端控制家電

時間:2016/10/7(五) 晚上 19:30 ~ 21:30

  • LinkIt Smart 7688 結合 MCS 雲端伺服器:在 MCS 雲端伺服器控制 LinkIt  Smart 7688 的 LED 亮滅(On/Off)。
  • 使用 MCS 雲端伺服器控制家電: 認識 Relay 繼電器,在 MCS 雲端伺服器控制 LinkIt  Smart 7688 的繼電器,達到開關家電的功能。

課程費用(不含開發板、電子材料):800元

上課材料 – 可自備或在現場購買(附發票):

LinkIt Smart 7688 Duo 開發板:600 元。

材料:117元。

  • 5mm LED x 1
  • 5 mm RGB 三色 LED(共陰極) x 1
  • Relay 繼電器模組 x 1
  • 市電插座/公頭/母頭 x 1

需自行準備小家電,如檯燈、電扇。工具:剝線鉗、小隻的一字螺絲起子、電工膠帶。

第四堂:實作雲端影像監視器

時間:2016/10/14(五) 晚上 19:30 ~ 21:30

  • 將網路攝影機的影像上傳至 MCS 雲端伺服器,透過網際網路看到即時的影像。
  • Q&A 時間 : 設計專題的問題與討論。

課程費用(不含開發板、電子材料):800元

上課材料 – 可自備或在現場購買(附發票):

LinkIt Smart 7688 Duo 開發板:600 元。

材料

  • 網路攝影機 Logitech C170(與第二堂課材料相同) x 1
  • Micro USB 轉 USB 轉接線(與第二堂課材料相同) x 1
  • 自行準備或攜帶前三堂課程的材料。

第一~四堂一起報名,有優惠

課程費用(不含開發板、電子材料):3000元

上課材料 – 可自備或在現場購買(附發票):

地點:T客邦總部,台北市中山區民生東路二段141號6F (Google 地圖),若有更改將會儘早通知。

注意事項:

  • 學員當天需自備筆電(Windows / Mac 皆可)。
  • 課程內容可能不適合國小、國中學生,請自行斟酌。

7688 Duo 與亞馬遜物聯網服務實作 (二):建立 AWS IoT 元件

本篇接續「7688 Duo 與亞馬遜物聯網服務實作 (一):什麼是雲端服務?」一文,繼續介紹 AWS IoT,此系列的內容節錄自本團隊的將要出版的新書《7688 Duo 雲端應用手冊(暫定)》中,本書目前在校稿階段,最後出版內容可能會有些許不同。

建立亞馬遜IoT元件

在瞭解 AWS IoT 的架構後,現在我們就來進行實際的操作。要讓您的IoT裝置 (也就是7688 duo) 連上 AWS IoT,首先您必須在 AWS IoT 裡建立一個 IoT 元件,而該元件的所有活動都將會記錄在您的 AWS IoT 帳號裡。請照著以下的步驟以建立元件:

1. 登入您的 AWS 帳號並進入 AWS IoT 頁面。選擇創立元件 (Create a thing),並輸入您想要的名稱,如圖 9-6 所示。這裡我們輸入test。如果您想要為您的元件加入更多說明,可以點選新增屬性 (Add Attribute),不過那並非必要。

6

圖  9-6 建立一個新的IoT元件。

2.  選擇檢視元件 (View thing),您將會看到該元件的相關資訊,如圖  9-7所示。

7

圖  9-7 檢視元件相關資訊。

3. 如同我們在上一節所提到的,任何IoT裝置與AWS IoT的聯繫都經由 X.509 憑證所保護。因此,要讓我們的裝置連上AWS IoT,我們需要創立一個 X.509 憑證。除了憑證外,IoT裝置還需要透過AWS產生協定(policy)以授權裝置與AWS之前的連線。要產生這些東西,請點選您剛剛新增的AWS IoT裝置,點選連接裝置(Connect a device)。接著在裝置列選擇Arduino Yún,並點選產生憑證與協定(Generate certificate and policy),如圖 9-8所示。

8

圖  9-8 產生憑證與協定。

4. 完成後,下載憑證(Download certificate)以及私人金鑰(Download private key) 到您的電腦中,我們之後就會用到它們, 最後點選確認並開始連接(Confirm & start connecting),如圖 9-9所示。

9

圖  9-9 下載憑證與私人金鑰到電腦中。

5. 點選確認後您會看到AWS幫您產生的一段程式碼,如圖 9-10所示。請把它複製並存在一個文字檔中。這段程式碼定義了裝置、憑證以及協定的名稱,我們等下需要把這段程式加到Arduino的程式碼中。

10

圖  9-10  複製並儲存此段程式碼,之後將用在Arduino程式中。

參考資料

  • AWS IoT Developer Guide

http://docs.aws.amazon.com/iot/latest/developerguide/what-is-aws-iot.html

 

 

7688 Duo 與亞馬遜物聯網服務實作 (一):什麼是雲端服務?

從本篇我們將開始發布一系列的文章介紹如何結合 7688 Duo (或是 Arduino Yun)與亞馬遜物聯網服務。此系列的內容節錄自本團隊的將要出版的新書《7688 Duo 雲端應用手冊(暫定)》中,本書目前在校稿階段,最後出版內容可能會有些許不同。

本章我們將介紹如何結合7688 Duo以及亞馬遜雲端服務(Amazon Web Service, 簡稱AWS)。在前面的章節我們介紹了 MCS雲端服務,雖然MCS在設定與使用上都非常簡單快速,功能也非常豐富,然而與AWS相比,AWS則是包山包海。AWS不僅提供物聯網服務,還有其他各式各樣的服務,也因此,透過AWS,我們可以發展更多應用 。事實上,MCS就是以AWS為基礎開發出來的。接下來我們會先簡單介紹什麼是AWS、帶領您認識並使用AWS IoT的開發環境、以及如何讓AWS IoT與7688 溝通。

什麼是雲端服務?

無論您是在執行擁有數百萬行動使用者的照片共享應用程式,還是要為您業務的關鍵營運提供支援,「雲端」都可讓您快速存取靈活且成本低廉的 IT 資源。透過雲端運算,您無需預先在硬體投資巨額資金,然後花大量時間和精力來維護和管理這些硬體。反之,您可以精準佈建所需的類型和規模的運算資源,為您的新點子提供助力,或者協助您的 IT 部門運作。您可以借助雲端運算來即時存取所需的資源,且只需要為使用量付費。

雲端運算提供一種簡單的方式透過網路來存取伺服器、儲存、資料庫和各種應用程式服務。像 Amazon Web Services 這樣的雲端運算提供商,他們擁有和維護此類應用程式服務所需的硬體,而您只需要透過 Web 應用程式就可以佈建和使用所需的資源。

雲端運算有三種主要類型,通常分別稱為基礎設施即服務 (Infrastructure as a Service, IaaS)、平台即服務 (Platform as a Service, PaaS) 和軟體即服務 (Software as a Service, SaaS)。針對您的需求選擇正確的雲端運算類型,有助於您在繁重工作中取得良好平衡。

基礎設施即服務包含基本的雲端 IT 建構區塊,且通常能提供聯網功能、電腦 (可以是虛擬的,或是專屬的硬體) 及資料儲存空間的存取。基礎設施即服務可為您擁有最大彈性和最高層級管理控制的 IT 資源,且與目前許多 IT 部門和開發人員熟悉的現有資源最類似。平台即服務可讓公司與組織無須管理基礎設施 (通常是硬體和作業系統),並讓您能專注於應用程式的部署和管理。因為您不需要擔心執行應用程式時的資源採購、容量規劃、軟體維護、修補,或任何其他相關的繁重工作,所以能協助您更有效率地工作。軟體即服務可提供您由服務供應商執行和管理的完整產品。在大部分情況下,一般所說的軟體即服務指的是最終使用者應用程式。有了 SaaS 產品,您就不需要考慮如何維護服務或如何管理基礎設施;您只需要思考如何運用該特定軟體。最常見的 SaaS 應用程式範例就是網路電子郵件,您可以在該應用程式收發電子郵件,而不需管理電子郵件產品中額外的功能,或維護執行電子郵件程式的伺服器和作業系統。

亞馬遜雲端服務產品

  • AWS提供了各式各樣的雲端服務解決方案,主要有以下幾類:
  • 網站以及網路應用程式(Websites & Web Apps) • 行動服務(Mobile Services)
  • 備份、儲存以及封存服務(Backup, Storage, & Archive)
  • 巨量資料以及高效能運算(Big Data & High Performance Computing)
  • 財務金融服務(Financial Services)
  • 遊戲開發(Game Development)
  • 數位媒體(Digital Media)
  • 健保與生命科學(Healthcare & Life Sciences)
  • 商務應用(Business Apps)

在各個解決方案下,則包含許多不同的產品,圖9-1即為AWS所有雲端服務產品。由於AWS包含的內容非常廣泛,這裡我們就不一一介紹各個領域。您只需要知道個服務都可以互通有無,舉例來說,我們可以透過AWS IoT將IoT裝置的資料上傳,而在資料上傳後,則可以使用AWS的資料庫產品來儲存資料,或是高效能運算產品進行資料分析。

1

圖 9-1 AWS 提供的所有雲端服務產品一覽。

註冊帳號

在開始使用AWS IoT服務前,我們需要先註冊一個AWS帳號。請連至https://aws.amazon.com/,並點選「建立免費帳號(Create a Free Account)」,如圖9-2所示。您可以在畫面右上角切換語言為繁體中文,但是並不是所有的頁面都有中文版本。

2

圖 9-2 註冊一個AWS帳號。

接著您會進入登入畫面,如圖9-3所示。請點選「新使用者(I am a new user)」並登入(sign in),接下來只要照個畫面上的指示操作即可。

3

圖 9-3 登入AWS以建立帳號。

目前若您是一般使用者且沒有要開發商業應用,註冊帳號後的第一年免費(少數服務還是需要付費例如AWS Kinesis)。但是您仍要輸入您的信用卡資訊以啟用帳號。 註冊完帳號後,您即可登入AWS IoT的後台了,請將游標移至產品(Products),並點選AWS IoT,如圖 9-4 所示。

4

圖9-4 註冊完帳號後即可登入AWS IoT 後台。

亞馬遜物聯網服務(AWS IoT)

在正式開始體驗AWS IoT的各項功能前,先讓我們來瞭解一下其架構與背景。透過AWS IoT,物聯網裝置可以輕易地存取AWS雲,並與AWS各項雲端服務互動。常見的物聯網應用則包含收集以及處理各式遙測數據,與硬體的遠端控制等等。AWS IoT與物聯網裝置的互動可以透過 MQTT以及HTTP協定來進行,基本上是以MQTT為主。

在AWS IoT中,物聯網裝置透過上傳JSON格式的訊息至特定的MQTT主題以回報它們的狀態。因此,在上傳資料到AWS IoT時,請務必確保您的資料符合JSON格式,且上傳到正確的MQTT主題上。每個MQTT主題都具有一個階層式的名稱架構,用來表示AWS IoT元件 (Things) 的更新狀態,我們在後面的範例中即會看到這樣架構的實際應用。在這裡,AWS IoT元件並不是指實體的物聯網元件 (例如7688 Duo),AWS IoT元件是AWS所提供的服務,讓您的實體裝置可以跟AWS溝通。

當一個訊息被發布到一個MQTT主題上時,此訊息會先被AWS IoT 的 MQTT訊息仲介 (Message Broker) 所接收。這個訊息仲介的用途在於接收並轉發所有被發布到MQTT主題的訊息至全部有訂閱該主題的用戶端中。物聯網裝置與AWS 之間的連線是透過 X.509 憑證所保護。您可以使用自己的憑證,或是讓AWS IoT幫您產生憑證,而此憑證必須在AWS IoT上被註冊以及啟用,且附加到AWS IoT元件上,您的物聯網裝置將透過此憑證來與AWS IoT服務連線。關於元件的資訊以及憑證都會被儲存在該元件的目錄(Thing Registry) 中。

AWS IoT強大的地方在於您可以輕易地透過其規則引擎 (Rules Engine) 來結合亞馬遜所提供的其他雲端服務,以及將資料傳送到其他雲端裝置。舉例來說,您可以設立一個簡易的規則,將物聯網裝置所上傳到AWS IoT的資料轉存到亞馬遜的雲端資料庫 AWS DynamoDB 中,或是使用雲端運算服務AWS Lambda執行程式以分析資料,或是透過訊息服務AWS SNS傳送簡訊給手機回報裝置最新狀態。AWS IoT的規則引擎使用其專有的語法來過濾訊息,一旦物聯網裝置上傳的資料符合特定語法,就會執行相對應的動作。規則引擎本身也結合了亞馬遜的身份與存取管理服務 (Identity and Access Management, IAM),以保護整個過程的安全性。圖 9-5即為AWS IoT的架構圖。

5

圖9-5 AWS IoT 架構 (圖片取自http://docs.aws.amazon.com/)。

每個 AWS IoT 元件都具備一個元件映像 (Thing Shadow) 來讀取與儲存元件的狀態,其中狀態則包含應用程式所要求的狀態以及元件的上一個狀態。當一個應用程式對 AWS IoT 元件要求當前狀態時,元件映像會回傳一個含有元件狀態、註解、版本的 JSON 格式檔案給程式端。也就是說,一個應用程式可以透過要求改變AWS IoT元件的狀態來操控一個實體的物聯網元件。 AWS IoT 的元件映像會接收應用程式的要求、更新元件的狀態,並回傳一個訊息以讓用戶端確認狀態已被更新,而AWS IoT 元件也會同步更新。 讓我們舉一個實際應用的例子來進一步說明元件映像的功用。假設您的物聯網裝置是一個可以透過手機應用程式遙控的三色LED燈,也就是說,您可以透過手機控制燈光的顏色。當您產生一個相對應的 AWS IoT 元件後,其元件映像就會儲存此 LED 燈的狀態(在這裡就是燈的顏色) 。現在,假如您使用手機將燈光顏色設定為紅色,然後關掉 LED 的電源,接著再利用手機將燈光顏色改為綠色,接著打開電源,您會發現 LED 變為綠色而不是停留在紅色,即便您是在它沒有電時更改顏色。這就是元件映像的功用:即使您的實體物聯網元件沒有在運作,您仍可以使用應用程式改變元件的狀態,這時 AWS IoT上 的元件映像就會儲存此狀態,當您的實體裝置恢復運作後,元件映像就會與它更新最新的狀態。

小筆記:JSON

JSON 是”JavaScript Object Notation” 的縮寫,為一種用來統一資料與數據的文字格式,具有輕便以及易讀的特性。JSON格式的資料常用於網路應用程式與伺服器之間的溝通,是除了傳統的XML (Extensible Markup Language) 格式外的另一個選擇。

舉例來說,以下的JSON檔案範例描述了一間公司員工的姓名,包含一個物件「員工 (employees)」以及一個陣列「姓名 (firstName, lastName)」:

{"employees": [
    {"firstName":"John", "lastName":"Doe"},
    {"firstName":"Anna", "lastName":"Smith"},
    {"firstName":"Peter", "lastName":"Jones"}
]}

同樣的內容若是改寫成XML 則會具有以下的形式:

<employees>
    <employee>
        <firstName>John</firstName> <lastName>Doe</lastName>
    </employee>
    <employee>
        <firstName>Anna</firstName> <lastName>Smith</lastName>
    </employee>
    <employee>
        <firstName>Peter</firstName> <lastName>Jones</lastName>
    </employee>
</employees>

相比之下,JSON是否更加簡潔易讀呢?

參考資料

  • What is Cloud Computing?

https://aws.amazon.com/what-is-cloud-computing/?nc2=h_l2_cc

  • AWS IoT Developer Guide

http://docs.aws.amazon.com/iot/latest/developerguide/what-is-aws-iot.html

  •  What is JSON?

http://developers.squarespace.com/what-is-json/

LinkIt Smart 7688 Duo 之 Arduino COM埠閃退篇

本文將說明LinkIt Smart 7688 Duo 的 Arduino COM port 常見的問題與處理方式

文:Ted Lee李俊德  個人CC授權發布於CAVEDU blog [1]

延伸閱讀:LinkIt Smart 7688 Duo-Wi-Fi 掛點急救篇

 

Q:我的7688 Duo(以下簡稱7688D)在Arduino IDE上時常行蹤飄忽不定,有時會在燒錄Arduino草稿碼(sketch(以下簡稱Arduino程式)之前找不著指定的COM埠(port,有時程式燒到一半它就不見了。更糟的是,還會有程式順利燒好了,原本配置的埠卻也不見,再也找不到?

A:

問題思考 在探究問題的根源之前,我們需要先了解Arduino程式如何在7688D上執行的整個過程,將之整理為圖1。

以Arduino IDE寫好的程式對作業系統來說皆屬於應用程式的性質,此類應用程式會呼叫作業系統的系統服務(system services,並透過驅動程式將此程式傳到Arduino晶片上。Arduino晶片上的啟動程式(bootloader,以啟動程式簡稱)會將之載入內部的記憶體後不斷地重覆執行(Arduino程式會循環地執行loop()副程式區塊(block內的程式碼)。

因此,先排除硬體故障和作業系統錯誤的可能性(可用另一片正常的Arduino交叉測試)與Arduino程式的撰寫錯誤(可找另一可執行無誤的程式替換),我們可以合理懷疑都是驅動程式或啟動程式「惹的禍」!

image002

圖1:Arduino程式在7688D上從燒入到執行的一連串過程[2]

 

本問題的解法有三[3]

一. 重置MCU 如開發手冊(Developer’s Guide的3.1節所述,按下MCU重置鈕(MCU Reset Button 後讓ATmega32U晶片重新啟動(reboot

image004

圖2:重置MCU

二. 重灌驅動程式 在Windows作業系統的裝置管理員(device manager內確認7688D的驅動程式是否運作正常。如果異常,請参考本文的「複習」一節重新再安裝一次適合您電腦作業系統版本的驅動程式。

image005

圖3:可從裝置管理員中確認7688D驅動程式是否正確被作業系統識別(recognize[4]

補充說明:在您玩7688D時是否曾注意到這個COM埠,有時名稱是B(啟動程式COM埠)、有時卻出現G(一般COM埠)呢?原因是這樣的:

  1. 啟動程式COM:這個COM埠是由ATmega32U4上的啟動程式提供。它出現的時機有二:
    1. 當使用者剛重新燒錄ATmega32U4的啟動程式但還未燒錄Arduino程式時,這個COM埠會出現。
    2. 當使用者快速按兩下MCU重置鈕時,此COM埠會短暫出現後才切換到Arduino程式提供的COM埠。
  2. 一般COM:這個COM埠Arduino程式提供(使用者本身沒有寫它,但Arduino函式庫(library一定會連結)。如果Arduino程式錯誤或寫壞記憶體時,這個COM埠就可能會消失。

 

三:重裝啟動程式:使用AVRDUDE(AVR Downloader/UploaDEr)套件這個命令列工具(command line tool將啟動程式重新到ATmega32U的快閃記憶(flash momory[5]

  1. 將Caterina-smart7688.hex(通常放在C:\Users\使用者名稱\AppData\Local\Arduino15\packages\LinkIt\hardware\avr\0.1.6\bootloaders\caterina\之下)複製到USB隨身碟(handy drive
  2. 將此隨身碟(以USB-A1稱之)插到7688D上。
  3. 使用Putty工具以SSHSecure Shell方式連入7688D後(注意:使用SSH連線時你的電腦和7688D需在同一網段下),下達:

avrdude -p m32u4 -c linuxgpio -v -e -U flash:w:Caterina-smart7688.hex -U lock:w:0x0f:m

其中各參數[6] 說明如下:

-c:程式代號(programmer-id)。linuxgpio:Linux GPIO(General Purpose Input/Output,通用輸出/入)組態(configuration

-p:零件編號(part no)。m32u4 表示 ATmega32U4

-U:執行記憶體操作

-e:清除(erase)

-v:詳列的輸出訊息(verbose)

  1. 成功重燒妥啟動程式的畫面如圖4所示:

image006

圖4:以AVRDUDE指令重燒啟動程式的成功畫面。

Continue reading

[新書預報] 物聯網雲端應用大全 – 使用 LinkIt Smart 7688 Duo

如果可以的話,就讓我們順利把這本書完成吧~  去年寫了 LinkIt ONE 的書之後,一轉眼一年已過,很感謝各位師長好友的支持,我們的 7688 新書終於有樣子啦,一本書裡面要把四種雲寫進去真的很不容易,所以希望大家多多支持囉

2016-07-18 21.56.28
寫到很悶就來玩樂高,結果貓在旁邊睡覺啊…

Continue reading

[IBM Bluemix] 對話機器人 – LinkIt Smart 7688 結合 IBM Watson 語音轉文字服務,再搭配Google小姐

7/22 在T客邦創客 night 分享的  IBM Bluemix 對話機器人做法來囉,一起來玩玩看吧,記得在家玩就好,不然對著板子講話…  這個畫面有點詭異

技術協力:CAVEDU 講師   袁佑緣

功能簡述如下:

  • 聽:Watson Speech to Text service
  • 說:Google Translate Text to speech (Google 小姐~)
  • 對話與整合:7688 + node.js

所需硬體:

  1. LinkIt Smart 7688 / LinkIt Smart 7688 Duo
  2. USB 接頭之雙孔音效卡,一個接麥克風一個接喇叭 (例如這種很容易買到,$150~$200很便宜)
  3. 麥克風 / 耳機 – 如果是個人測試用的話,選用耳麥就好
  4. micro SD卡 (8G即可),插在 7688 之SD卡插槽

軟體建置:

  1. 讓您的 LinkIt Smart 7688 連上外網,當然啦,要連到 IBM 的大腦
  2. 按照此 Github 頁面,在 LinkIt Smart 7688 的 terminal 中安裝所需的套件

示範影片,請記得開喇叭喔,這是 LinkIt Smart 7688 在執行程式時的 terminal 畫面,可以看到畫面中不斷顯示 Watson 丟回來的辨識結果,你好也會被辨識成“離 好”、”黎 好”等等,搭配相關的 confidence 參數就可以知道您的口音是否標準… haha

男聲(CAVEDU講師) 與 Google 小姐( 7688 的語音輸出功能)

 

 

LinkIt Smart 7688 Duo-Wi-Fi 掛點急救篇

本文將說明LinkIt Smart 7688 Duo Wi-Fi 常見的問題與處理方式

文:Ted Lee李俊德  個人CC授權發布於CAVEDU blog

Q:我的7688 Duo(以下簡稱7688D)上的Wi-Fi LED永遠都亮著,既不在外網模式Station mode──無法連外網;也不在內網(Access Point模式──無法連內網192.168.100.1。它變磚(brick了嗎?

A:

Wi-Fi燈一直亮著的情況可分成「解決之道、軟體工程師的聖經、根本原因(root cause)、哪裡可以問?」共四部份來思考,我們先一個步驟接一個步驟(step by step的詳細列出兩種解決方法(solutions:重置(reset)及解磚。第二到四奌再來補充此問題衍生出的(derived各種可供思考的各種可能的面向(aspects


 解決之道
 做法有二:

  1. Reset Wi-Fi 長按7688D上的Wi-Fi reset按鈕20秒以上[2],誏它回復到出廠預設值(factory reset[3]

001

圖1:MTK以Gitbook建立的線上知識庫

圖2:YouTube上的「MediaTek LinkIt™ Smart 7688 tutorial. Perform factory reset.」影片。

003

圖3:FB上專門討論MTK的LinkIt Smart家族的LinkIt開發社群社團,有MTK首席工程師進駐(on site解惑。

2. 解磚──更新韌體(firmware update) 我們將完整的做法詳列如下:[4]

  1. 從MTK官網下載啟動映像檔 lks7688.img[5]
  2. 將I備妥的檔案複製到USB隨身碟(handy drive根目錄(root directory下(根目錄不需清空)。
  3. 將此隨身碟連到7688 Duo的USB埠(port。II-III的配置如圖4所示。

004

圖4:解磚第II-III步,備妥乾淨的啟動程式映像檔。

4. 同時按下Wi-Fi及MPU的重置鈕,再放開MPU重置鈕後誏Wi-Fi重置鈕持續按壓20秒以上。

5. 待Wi-Fi的LED燈亮起後,放開Wi-Fi重置鈕。此時7688 Duo會開始讀取啟動程式(Wi-Fi LED會快速閃爍)並將它升級(upgrade。這個過程會持續2秒左右。

圖5:YouTube「MediaTek LinkIt™ Smart 7688 tutorial – Bootloader upgrade with USB」影片。


複習(review

7688D接上電源後會發生的兩件事(如圖6)以做為本問題的控制組(control group

  1. 開機階段(booting phase 供電、初始化載入程式(loader、載入OpenWrt、Wi-Fi備妥。
  2. 四種狀態(states 正常開完機後,7688D被設定為只連內網的AP模式時,若LED燈號熄滅則表示此刻沒有其他人連入。此外,若每秒燈號閃爍3次後再停頓5秒,則表示有人連到7688D;另一方面,在連外網的情況下,若每秒閃爍2次表示此刻7688D正連接外網中。除此之外,就表示它和外網是接通的。

006

圖6:7688D開機流程及其隨後會進入的四種狀態。

Continue reading

160705 【T客邦Maker講座】物聯網裝置的雲端服務:Arduino Cloud、IBM Bluemix、MCS與開發板Demo

7月份創客Night 的主題是「物聯網裝置的雲端服務」包括 Arduino 官方推出的 Arduino Cloud、具有強大人工智慧系統的 IBM Bluemix、聯發科技推出的 Mediatek Cloud Sandbox,並使用3款開發板:Arduino Yun、LinkIt Smart 7688、Raspberry Pi 進行現場 Demo,這場軟硬雲結合的講座,請勿錯過。

為什麼要參加創客 Night 講座?

  • 玩開發板已經跟雲端服務密不可分,開發 IoT 應用就要認識好用的雲端服務。
  • 最廣為使用的 Arduino 開發板已推出官方雲端服務,務必要認識 Arduino Cloud 怎麼玩。
  • IBM Bluemix 雲端服務後面有強大的人工智慧系統,來了解怎麼讓你的 IoT 裝置變得更聰明。
  • 使用火紅的 IoT 開發板 LinkIt Smart,搭配官方的 MCS 雲端服務,來看如何使用。

免費報名請點我 7/8(五) 創客 Night #15 >>

活動說明

時間:2016年7月8日(五) PM7:00 – PM9:00 

地點:T客邦總部,台北市中山區民生東路二段141號6F (Google 地圖)

主辦單位:

合作單位:

[LinkIt] 使用 LinkIt Smart 7688 控制繼電器

來用 MCS 搭配 7688 控制繼電器吧,您會發現使用 nodejs 的話,程式可說是相當清爽呢!

您需要在 MCS 上建立一個具有 on/off 的 Controller Data channel,請參考我的 test device 畫面,您在程式碼中需要設定正確的 deviceId, deviceKey 與 Channel Id 才可順利操作。

iao

電路接線如下圖,繼電器的訊號腳位請接到 7688 Duo 的 D7 也就是 GPIO #0,另外兩隻則分別接電(5V) 與接地即可。其他更多 7688 的內容請參考本文末的 7688 教學投影片喔

7688_relay_bb

實體照片,學員採用的是 2-channel 的繼電器來控制燈泡,但控制方法是一樣的,就是高低電位而已。

2016-06-29 21.20.16

現在我們在T客邦創客基地開課,很熱鬧喔

264282

nodejs code 如下,其實只要把 GPIO(44) 改為 GPIO(0)即可

var mcs = require('mcsjs');  //宣告所需模組
var m = require('mraa');      //宣告所需模組
var myRelay = new m.Gpio(0);   
//請改為 m.Gpio(0) 來控制D7 pin = GPIO #0 

myRelay.dir(m.DIR_OUT); //設定繼電器訊號腳位模式為輸出

var myApp = mcs.register({
     deviceId: 'OOO',
     deviceKey: 'XXX',
});
// 在此改為您 MCS test device 的 device ID 與 device Key

myApp.on('RELAY_Control', function(data, time) {
 if(Number(data) === 1){
     console.log('Relay on');   //顯示訊息
     myRelay.write(0);      //繼電器啟動
 } else {
     console.log(’Relay off');
     myRelay.write(1);
 }
});
Control 7688's relay with MCS

7688教學投影片


 

取得 Mediatek Cloud Sandbox 的資料點 (JSON)

本篇教學要告訴您如何使用AppInventor 的web元件取得 Mediatek Cloud Sandbox 上指定 test device 下 data channel 的最新一筆資料點( data point)。 .aia 原始檔請點我下載
 
首先,您的MCS test device 上必須要有個什麼資料,並且把這個 test device 設為 public,否則將無法取得資料。
這是我的 test device 設為public 之後的畫面,其中 DCT60FBv 就是 deviceID。連結:http://mcs.mediatek.com/public/devices/DCT60FBv
以我的 test device 來說,有這些 data channel:
  • Controller : LED_CONTROL (控制D13 LED亮滅)
  • Display
    • LED (檢視 D13 腳位狀態)
    • Longitude(經度)
    • Latitude(緯度)
    • GPS (嵌入式 Google Map)
 
但在 public device 上只能看到這樣的畫面,也就是只有顯示器型態的 data channel,換言之,您無法透過 public 的 test device 來控制您的開發板。

根據 MCS 的 API 說明,取得最新一筆資料點的語法如下,會直接回傳 JSON 的資料格式,如此一來就可以用 App Inventor 的 Web Component 搭配 JsonTextDecode  方法幫我們轉成陣列,這樣就方便多啦!

以下語法是取得 DCT60FBv 這個 tst device 下的 longitude 這個 data channel 下的最新一筆資料點,由下圖可看到就是 121.2214

http://api.mediatek.com/mcs/v2/devices/DCT60FBv/datachannels/longitude/datapoints

 

如果用 jsoneditoronline.org 這類型的 JSON 檢視網站來看的話,您會對MCS 資料點的格式更清楚喔