Tag Archives: arduino yun

[DuoKit Browser ] 7688物聯網開發板的iOS解決方案

本系列文將介紹 DuoKit 與 DuoKit Browser 這個 iOS 裝置端的控制方案,您可以透過網頁以及 iOS app ( iphone 或 iPad)與您的 7688 (Arduino Yun系列板子也可以) 開發板互動。

作者/攝影  曾吉弘
時間  3小時
成本
難度  * * *
材料表
  • iOS 裝置,例如 iphone 與 ipad,作業系統版本為 iOS7以上
  • 7688 Duo 開發板  


DuoKit 為聯發科技為 LinkIt Smart 7688 Duo 以及其他 Arduino Yún 相容開發板(Arduino + OpenWRT)建構的開源專案,只需要簡單設定就能控制/存取區域網路內的開發板。此外,DuoKit運作時不需要外部網路連線也不需要中央雲服務,控制端裝置僅需與開發板位於同一區域網路之中,即可從行動裝置端(手機或電腦)進行偵測與存取。也不需要額外申請帳號,更適合隱私需求較高的智慧家庭環境。

如果您擁有 iOS 裝置(例如:iPhone、iPad),DuoKit Browser 為 DuoKit 所對應的管理工具,或透過瀏覽器使用 REST API 進行相關控制,或自行撰寫您常用用平台上的控制工具。

本文將介紹如何匯入 DuoKit 函式庫到您的 Arduino IDE中,就能透過 Restful API 控制/讀取7688 Duo 的腳位狀態。

DuoKit 環境設定

    接著介紹如何建置 DuoKit 所需的運作和開發環境。

安裝 Arduino 函式庫

  • 請下載Arduino IDE (http://arduino.cc),解壓縮即可  
  • 請到 GitHub 下載 DuoKit 的最新版本函式庫(https://github.com/x43x61x69/DuoKit/archive/master.zip),並解壓縮。
  • 開啟 Arduino IDE,點選「 Sktech → Include Library → Add .ZIP Library…

  • 選取於上一步驟中解壓縮文件夾內的「lib → Arduino → DuoKit」資料夾並按「選擇」,完成之後即可在 Example下看到 DuoKit 這個資料夾。

開發板設定:首次使用 DuoKit 時,依據開發板型號需先進行相關設定。

  • 請先確認您的 LinkIt Smart 7688 Duo 韌體版本是否為 0.9.4 或更高的版本,以避免網路相關的問題(版本可透過開發板 WebUI 介面查詢)。
  • 使用 putty 或其他連線程式連線至您的裝置,在terminal中使用下列指令開啟的 Yún Bridge 服務(預設為關閉):

 

uci set yunbridge.config.disabled='0'
uci commit
reboot
DuoKit 函式庫內建數個範例,草稿碼皆可透過 Arduino IDE 選單中的「檔案 → 範例 → DuoKit」中查看。DuoKit 的基本架構如下:

#include <DuoKit.h>           	// 引入 DuoKit 函式庫
DuoKit duokit;                    	// 宣告 DuoKit 物件
void setup()
{
	duokit.begin();  // 初始化 DuoKit
}
void loop()
{
	duokit.loop();	// DuoKit 核心功能
}

您可以在原本的專案中加入以上程式碼就能 DuoKit 大多數的功能,例如:透過 DuoKit Browser 對開發板進行基本控制。DuoKit 包含了多項進階功能:

  • 設定腳位I/O模式
  • 存取腳位狀態
  • 存取變數
  • 自定義使用者介面

  DuoKit Browser則可實作上述的功能,只要加入對應的程式碼即可透過 DuoKit Browser 控制 7688 Duo 開發板。

 

請上傳範例「Basic」至開發板,即可透過 REST API 存取相關變數(以 LinkIt Smart 7688 Duo 預設名稱為例):

  •  讀取變數「count」: http://mylinkit.local/arduino/read/count
  •  修改變數「count」為 123.45http://mylinkit.local/arduino/update/count/123.45

或者,您可以透過 DuoKit Browser 視覺化瀏覽範例內的設定值,詳細請見之後的「透過 DuoKit 定義預設使用者操作介面」內容。

* 註:DuoObject 所使用的字串型別為 String(字串物件)而非 C 語言的 char 陣列。

  •  透過 DuoKit 定義預設使用者操作介面:

與變數存取類似,您亦可透過 DuoKit 中的 DuoUI 物件,於 Arduino 草稿碼當中定義一組預設的使用者操作介面設定細節(參考範例「Basic」)。在 DuoKitBrowser 內呈現結果如圖所示:

首先,您必須先初始化一個 DuoUI 陣列(範例中長度為 6):

DuoUI layout[6];

接著設定陣列內的物件:

void setup()
{
	// 略
	duokit.layoutProfile = "Basic Controller”;  // 裝置名稱(選擇性)
 
	layout[0].type  	= DuoUIWebUI;                           	// 第一個物件類型為 WebUI 介面
	layout[0].name  	= "Access WebUI";                    	// 此項目的說明文字
 
	layout[1].type  	= DuoUISwitch;                          	// 第二個項目類型為開關
	layout[1].name  	= "Built-in LED";                        	// 範例為內建的 LED 燈
	layout[1].pin   	= LED_BUILTIN;                          	// 內建 LED 的腳位,7688 Duo 為 13
	layout[1].interval  = 10;                                             	// 自動刷新的時間間隔。不設定或設定為 0 則停用自動刷新
 
	layout[2].type  	= DuoUIValueGetter;    	// 第三個項目類型為數值顯示
	layout[2].name  	= "Program started";   	// 範例為程式執行時間
	layout[2].key   	= "boot";                                    	// 為前述 DuoObject 陣列中的對應關鍵字名稱
	layout[2].interval  = 5;
 
	layout[3].type  	= DuoUIValueSetter;    	// 第三個項目類型為數值設定
	layout[3].name  	= "This is count";        	      // 範例為變數「count」
	layout[3].key   	= "count";
	layout[3].interval  = 10;
 
	layout[4].type  	= DuoUIValueSetter;
	layout[4].name  	= "This is fixed";
	layout[4].key   	= "fixed";
	layout[4].interval  = 10;
 
	layout[5].type  	= DuoUISlider;             	// 第五個項目類型為滑桿(Slider)
	layout[5].name  	= "Slider for fixed";
	layout[5].key	   = "fixed";
	layout[5].min   	= 0;                                            	// 滑桿的最小值
	layout[5].max   	= 9999;                                     	// 滑桿的最大值
	layout[5].interval  = 10;
 
	duokit.setLayout(layout, 6);                                        	// 將初始化完成的 DuoUI 陣列指向 DuoKit 物件
	// 略
}

使用 DuoKit Browser

DuoKit Browser 為 DuoKit 在 iOS 上一款免費且開源的對應控制程式。您只需要具備 iOS 裝置,搭配 DuoKit 即可專注於開發板端的設計,輕鬆透過行動裝置實現智慧家庭;亦可以依自己的需求客製化相關的進階功能,可以免費於 App Store 下載(https://itunes.apple.com/us/app/id1196094443):

您可依照個人喜好或需求更改上述 DuoUI 的值,每個 DuoUI 物件所需的參數可在 DuoKit Github 找到相關文件。

下一篇將介紹如何透過 DuoKit Browser 控制 7688 板子的腳位狀況

相關文章:

 

[物聯網 分享教學 ]2017版Arduino Yun 自動發布 Facebook 個人動態 – 使用 Temboo

本文要告訴您如何使用 Temboo 網站,讓您的 Arduino Yun (或其他相容開發板) 可以自動或根據某些條件發布 Facebook 動態。

本文修改自2015版的[Temboo – Arduino yun 發佈 Facebook 個人動態]一文,因為 Temboo 與 Facebook 在相關認證上的作法皆有調整。

作者/攝影  曾吉弘
時間  3~4小時
成本Arduino Yun 開發板 = $2500 購買連結
難度  *
材料表 ❊個人電腦 (作業系統可用 Windows, Mac OSX 與 Linux,本範例使用 Windows 7)

Arduino IDE 1.0 版以上,可上傳程式到 Arduino yun 即可,本範例使用 1.6

Arduino Yun 開發板

 

Temboo 是一個好用的社群網路互動網站,您可利用 Temboo 的各種函式庫來上傳資料到 Google spreadsheet、發送 Gmail 以及上傳 webcam 照片到 Dropbox 等功能。Temboo 有免費也有付費的帳號。請參閱本團隊翻譯的[實戰物聯網開發:使用Arduino Yun] 這本書中有許多有趣的範例。

 

接著就一起來操作吧!

 

Temboo 端

1.請到 Temboo網站申請一個帳號,登入之後請點選畫面右上角您的帳戶名稱,於下拉式選單中點選 Applications,進入應用程式畫面。在此的 Application 是指一個用來與 Facebook 互動的外部程式,我們需要把他與後續建立的 Facebook app 兩者打通。

 

2.在Applications 頁面中,點選 New Application 建立一個應用程式,在此取名為 myFirstApp,完成之後會看到 KEY。

Facebook 端

3. 接著請到 Facebook 開發者網站,請用您原本的 Facebook 帳號登入即可。點選右上角的個人大頭照,於下拉式選單中找到[新增應用程式]。這是 Facebook 應用程式,不要和 temboo 應用程式搞混了!

新增完成之後,會看到應用程式編號與密鑰,這後續都要填在 Temboo 中。


4. 同一個頁面下,左側,設定 ➜ 新增平台 ➜ 網站 ➜ 填入這個網址https://xxx.temboolive.com/callback/    紅字xxx.為您的 temboo 帳戶名稱,完成如下(記得儲存變更)

又回到Temboo

5. 在Temboo 的 InitializeOAuth頁面填入 Facebook 應用程式 ID,scope欄位請填入 “publish_actions” 代表要發布個人動態。完成後點選 RUN,會在頁面下方產生一個認證網址,請點選它   

6. 這是 Facebook 詢問您,是否同意這個外部程式取得相關權限,您在玩一些 Facebook 小遊戲或是 [誰在暗戀你] 這種隨機算命程式時都會看到這個畫面。不過一般來說,通常我們也沒有特別注意就按確定了,沒錯吧?

有關各式權限的補充:https://developers.facebook.com/docs/facebook-login/permissions/

7. 在 Temboo FinalizeOAauth 頁面輸入Facebook 的AppID, AppSecret 與 CallbackID,Run ➜ 終於取得 accesss token

8.回到 Temboo Facebook setStatus 頁面發布個人狀態 ➜ Run。您也可以透過 sensor event 來決定要怎樣的條件下觸發這個動作,相關設定都會自動產生成一份 Arduino Yun 可執行的 code,上傳後執行就可以了

在此我在 Message 欄位輸入 「I love coding」這段文字,您也可以在程式碼中把感測器值組合成字串之後發送,調整的彈性很大。


 9. 回到您的 Facebook 個人首頁看看吧,成功了!

 

 

相關文章:

 

160719 Arduino Cloud 雲服務體驗夜@CAVEDU大本營

Arduino.cc 近日公布了自家的雲服務 Arduino Cloud 以及網路編輯介面 Web Editor,一起來看看有哪些新功能吧。CAVEDU 使用 Arduino Yun 開設相當多物聯網的基礎課程,當天也要與您分享一些教學心得,誠摯邀請您參加喔。

本次研習使用Arduino Yun 開發板,是一片具備 Wi-Fi 聯網能力的特殊Arduino。除 Arduino IDE 以外,也能支援 python 與 nodejs 等開發語言,並有著相當不錯的影像串流功能。Arduino Yun 可搭配 Arduino Cloud 或 Temboo 等雲服務來從網頁與手機來控制與檢視開發板狀態,是個相當不錯的的全方位開發環境。歡迎您一同進入物聯網的世界!

報名網址請點我

相關文章請參考以下連結:http://blog.cavedu.com/?s=yun

主辦單位:CAVEDU 教育團隊、翰尼斯企業有限公司

時間 : 105年7月19日星期二 19:00~21:20

地點 : 翰尼斯企業有限公司 台北市中正區中華路二段165號1樓

請自行攜帶以下項目(Arduino Yun 與 3. 本公司皆有販售):

1. 筆記型電腦,作業系統不限
2. 安裝Arduino 1.5.X以上的IDE (https://www.arduino.cc/en/Main/Software)
3. Micro USB傳輸線,用來連接 Arduino Yun開發板與您的電腦

收費:

1. $2600元,Arduino Yun讓您帶回家
2. $700,自備Arduino Yun、筆電與傳輸線

以上1. 2. 皆包含 DHT11溫溼度感測器 (一個) 與所需線材 (不需麵包板)名額只有15名,請儘早報名。請先繳費完成並收到我們寄出的確認信函才算報名成功喔!

付款方式:
1. 匯款:
銀行名稱 :華南商業銀行 雙園分行 / 戶名 :翰尼斯企業有限公司
銀行代號 :008 / 帳號 :122-10-015315-3

2. 來店付款
翰尼斯企業有限公司 台北市中正區中華路二段165號1樓

活動流程:

19:00 CAVEDU 教育團隊簡介

19:10 Arduino Yun硬體介紹、Arduino IDE操作、安裝驅動程式

19:30 SSH 登入開發板,基礎 Linux 環境操作,使用 opkg 套件管理器來安裝/更新軟體

20:00 Arduino Cloud 雲端環境介紹

20:30 將溫度感測器值上傳至 Arduino Cloud

21:00 Temboo 雲服務介紹與demo

21:20 結語、賦歸

注意:主辦單位保留修改與解釋活動之所有權利。

聯絡我們:02-23062900 / service@cavedu.com

Arduino Cloud 結合 Arduino Yun 上傳資料 part 1:環境建置

Arduino.cc 終於有自己的 cloud 了,搭配 web editor (還不能使用) 就可以在網頁上寫Arduino的程式了。雖然不是什麼非常新的功能,但總算有個開始。不然老是要用別人的雲感覺就是少了點什麼。

Arduino Cloud 目前就原廠表示還在 beta 階段,且就初步看來只能檢視資料無法控制板子(這真的有點…)。期待之後加入更多更棒的功能囉

延伸閱讀:

請參考Arduino.cc 的範例:Sensor Tower

開始吧!請在 cloud.arduino.cc 登入您的 Arduino.cc 帳號,點選[New Thing]。 在此我取名為 cavedu,您可以把 thing 比照為 MCS 的 test device,就是讓開發板藉由金鑰來上傳資料到指定的位置。

cloud01

建立好之後,點選右上角的 (i) info 圖示,可以看到這個 Thing 的內容,包含 USERNAME、THING_NAME 與THING_ID 與 THING_PASSWROD 其中最重要的就是 ID 與 PASSWORD,很容易可以想到這些資料都要正確寫在Arduino 草稿碼中喔

cloud05

接著要在 THING 下面新增 Property,這就好比是 MCS 的 Data Channel,根據不同資料型態來決定 Property 的內容。目前可以選的是。有的是資料型態,有的則是常用的單位。

  • Character String
  • int
  • float
  • Temperature (攝氏/華氏)
  • Length (公尺/公分/英寸)
  • Percentage
  • Analog
  • Lumen
  • Status

但再次強調,目前只能看資料,無法從雲端去控制板子喔

cloud02

在此我新增一個叫做 light 的 property ,因為之後的範例我想要上傳光敏電阻的值上去。請注意在此資料類型(Type) 我選擇 int (因為 analogRead() 就是回傳 0~1023 的整數),而不選流明( lumen)。

在 Policy 欄位有兩種:Update on changeUpdate regularly。目前沒有看到 Arduino Cloud 對於流量的限制,所以選 Update regularly 也沒問題。完成點選 SAVE 就好,之後就根據個人需要來新增更多 property 吧

cloud03

接著請點選右上角的 code 圖示,會直接根據您所選擇的板子產生一個可直接執行的草稿碼,在此我用 Yun or Yun Shield 這個選項,因為我直接使用 Arduino Yun。另一個選項則是Arduino.cc 的新板子 MKR1000 或 WiFi101 擴充板,在此用到新的函式庫,所以其他的 WiFi Shield 不知道會不會通喔…

在此沒有接上任何感測器,而是上傳每隔一秒上傳不同的字串:OHYEAH… (好冷…)

cloud04

void loop() {
  cavedu.poll();

  cavedu.writeProperty("light", "oh...");
  
  delay(1000);
  cavedu.writeProperty("light", "yeah!");
  
  delay(1000);
}
寫入資料到 Property 中

您只要看到 light 這個 property 下面輪流顯示 OHYEAH 這兩個文字就成功囉!下一篇文章要告訴您如何上傳光敏電阻的值到 Arduino Cloud,一起來玩玩看吧


 

物聯網裝置連線社群網站_使用Temboo取得Google的OAuth認證

今天要跟大家分享一個TemBoo取得google認證的功能,取得認證能做什麼呢?這意味著你的裝置可以取得平常google服務的權限,這個Temboo的網站可以將物聯網裝置取得認證這件事變得比較容易。

1、首先要到Temboo的官方網站申請帳號

2、取得Temboo帳號之後,接著登入Google的開發者網站,有申請Google帳號的使用者,用原本的帳號就可以登入了

3、接著建立一個新的專案。

01

4. 接著點畫面左邊的「API和驗證→API」找到Google Drive API並且啟用API,(畫面顯示停用,代表API已經啟用了)

02

03

 

5.點畫面左欄「API和驗證→憑證」在OAuth選向下點「建立新的用戶端ID」,應用程式類型選「網路應用程式」後,點「設定同意畫面」,並且在「同意畫面」中寫上Email和產品名稱(其他為選填)

 

04

6.畫面跳出「建立用戶端ID」,在下面的「授權的重新導向URL」填寫Google要連線的Temboo網址

https://ACCOUNT_NAME.temboolive.com/callback/google

ACCOUNT_NAME 需要填寫自己的Temboo的帳號

05

 

7、設定結束後,我們會得到「用戶端ID」、「用戶端密碼」,這兩個資訊我們在接下來會一直使用

06

 

8、接著到Temboo網站,設定Temboo與GoogleAPI間的認證OAuth,進行 Initialize OAuth  ,

在「Client ID 」填上上一步得到的「用戶端ID」

在「Scope」 填上 https://spreadsheets.google.com/feeds/ (適用於使用GoogleDoc的服務)

填寫完成後點「Run」

07

 

8.點選到 AuthorizationURL下方的網址,Google會詢問你是否給予權限,同意後出現空白畫面就代表成功了。

9、接著記下「Callback  ID 」的內容。

08

 

 

09

9.下一步則是到Temboo的 FinalizeOAuth進行最後的設定

分別填寫 「用戶端ID」、「用戶端密碼」、及上一步得到的「CallbackID」

點選「RUN」

10、取得最後產生的RefreshToken。

10

11、只要有「Client ID」、「Client Secret」、「Client ID」、「Refresh Token」,便可以透過Temboo的網站,對Google的內容進行編輯,下方分享的圖案是針對GoogleDoc服務的試算表,填寫試算表的內容。

20

 

12、也可以透過Temboo生成的程式碼,將這個功能加入到可以上網的裝置arduinoYun當中。

21

執行Arduino Yun之後,在序列監視器看到上傳成功的畫面,就把裝置上傳資料的時間、環境溫度、環境濕度填寫在GoogleDoc的試算表當中。

22

23

 

今天分享到這裡,有興趣可以再看看相關的物聯網文章~

150523 「Arduino Yun 自造家庭防盜系統」工作坊

下大雨的週末,Maker PRO x CAVEDU 與三十多位學員們一起來玩 Arduino Yun,玩玩各種聯網議題。有上傳資料到 Google 試算表、寄 Gmail ,還有控制 webcam 拍照與上傳到 Dropbox。現場網路不是很穩定(連線數不夠…),造成學員的困擾,真的很抱歉。

其實在用一些聯網服務時,比較麻煩的就是對方(例如Google)的認證方式有變,那就需要改很多東西。我們一碰到這些問題就會趕快寫教學文放上來,六月的 Raspberry Pi 活動也會加油做到更好,感謝您的支持喔!

IMG_0450

 

請參考學員的迴響

0425「用Arduino Yún自造智慧家電」工作坊活動報導

還有 Dropbox 相關問題與 Facebook 發布個人動態

ArduinoYun使用Temboo上傳照片至Dropbox

Temboo – Arduino yun 發佈 Facebook 個人動態

時間學習內容
9:10 - 9:30報到
9:30 – 11:00認識 Arduino Yun 開發板

  • 安裝 Arduino 程式編輯介面
  • Arduino Yun 使用環境建置:透過網路將程式上傳到Arduino Yun
  • Arduino 無線網路介面設定
11:00 – 11:15Break
11:15 – 12:10遠端家電監控

  • 認識Restful API 通訊格式
  • 遠端控制與存取開發板資料:Mode / digital /  analog

介紹DesignSpark

12:10 - 13:00午休
13:00 – 14:30認識 Temboo 雲端服務 

  • 註冊帳號與能源消耗狀況
  • 遠端開關家電,使用繼電器
14:30 – 14:45Break
14:45 – 15:40智慧能源監控

  • 認識 Temboo cloud service
  • 認識電流感測器,並上傳能源消耗資料到 Google Doc 整合分析數據
  • 發送警告電子郵件
15:40 – 16:20小偷偵測器

  • PIR 偵測器
  • 偵測到動態就拍照
  • 將照片發送到 Dropbox
16:20 – 16:30結語、賦歸

現場有點擁擠,不好意思。

IMG_0422

只看到豐智老師滿場跑幫學員解決問題

 

 

 

IMG_0419 IMG_0420 IMG_0421