2016-05-11

利用手機程式:Blynk控制Arduino

手機擁有觸控螢幕、各式感測器以及無所不在的網路,這些組合,讓它本身就成為個互動的好工具,之前在Make:Taiwan的介紹「在手機上使用Blynk控制Arduino」,讓我也忍不住試試這用無線網路控制的簡易介面。

先看個範例先:



Blynk的官網:http://www.blynk.cc/

從官網看來的硬體支援列表 ,除了arduino系列外,Raspberry Pi、Intel…等微控制器都有支援,當然還要讓你的arduino是可以上網的。所以列表中也列出目前測試過可用的無線或有線插件的相容性。就算你目前沒有arduino的上網插件,你也可以將Arduino利用USB線,透過電腦來連上網。

現在我就試著利用USB線連接電腦的方式,讓手機中的Blynk程式控制它。
官網中也有簡易教學,也可以參考看看:http://www.blynk.cc/getting-started/
我也把這幾次的嘗試,做一個記錄和整理,卡關時,不妨看看。

1.手機下載 Blynk:(iOS)  (Android)
iOS好像只有給iphone用的,不過 iPad也可以安裝




2.下載安裝給Arduino的函式庫:
函式庫下載網址:https://github.com/blynkkk/blynk-library/releases

●我是下載v0.3.4版,畫面再往下拉一點,就會看到下載點了,我是下載第一個zip檔。



●解壓縮後,將Blynk_v0.3.4.zip壓縮檔解開,裡頭有
BlynkBlynkESP8266_HardSerBlynkESP8266_SoftSerSimpleTimerTime
這五個資料夾複製到Arduino的函式庫資料夾中




3.接著開啟手機中的Blynk程式
●先註冊新帳號登入,或用舊帳號登入




●新增一個專案版面:
  • 填入專題的資料和設定
  • 認證碼會自動產生,但如果要更新認證碼的話,則按「Refresh」
  • 因為認證碼很長,所以寄到信箱,比較方便。





4.Blynk程式中的專案版面工具新增配置(可以隨時增加改變)

●進入剛建立的「test」專案,會是空的版面
你可以按上排中間「新增工具到這個專案版面」按鈕,來增加你的工具。


●這些是可以新增的工具,有按鈕、滑桿…... 。
新增工具到專案版面上時,點選它(以按鈕工具為例),


●進入按鈕工具的設定,就依你想利用Arduino的那個腳位來控制什麼來設定
下面的例子是用按鈕去控制S4A板上的D10:紅色LED燈。


●下面的例子是用滑桿元件工具去控制S4A板上的D11:綠色LED燈。


●下面的例子是用圖表工具去顯示S4A板上的A2:讀取音量大小




5.回到電腦,上傳程式到Arduino,讓Arduino連上網路:
●上傳函式庫內附的Arduino_Serial_USB,就可以讓Arduino控制版和網路溝通。
檔案>草稿碼簿>libraries>Blynk>BoardsAnd Shields>Arduino_Serial_USB


● 這個檔案,唯一要改的是
第64行中,YourAuthToken改成你手機程式所建立出的認證碼(可以看一下email有無收到),
改完後,直接將檔案上傳給Arduino



● 下指令讓arduino透過電腦連上網際網路
  1. 鍵入cmd,再按Enter,開啟「命令提示字元」
  2. 鍵入cd C:\Users\student\Documents\Arduino\libraries\Blynk\scripts,再按Enter,移到執行檔位置
  3. 鍵入blynk-ser.bat,按Ener執行
  4. 其中會問你的Arduino控制版用那一個埠,要鍵入COM20(以下面為例),再按Enter

●如果順利執行的話,會看到下面的畫面。




6.到手機來執行你的專案:
●在「test」專題,你可以任意安排各工具元件的位置和設定。

●Arduino連上網路後
按下上排右方「執行這個專案」,即啟動面板上的工具元件和Arduino互動。



7.最後, 看一下我的示範:


Blynk包含許多各式不同的工具元件(有些我還不大會用),也可以配合手機推播,提醒你所設定的偵測。官網的開發頁面甚至有著伺服器服務的架設(如果你想要連線服務不透過他們公司的話),這些都開放相關的資源讓你去使用。不妨試一試`!

---------2016/1/13 update
剛看到這一則國外的教學,很清楚,它的library放的位置和我不一樣,最後的批次檔是直接加參數執行的 https://www.youtube.com/watch?v=I_hgIj2FdPI

6 則留言:

  1. 請問最後要將Arduino_Serial_USB檔案上傳時,是要先把"YourAuthToken"修改成emai傳來給我的"認證碼"嗎? 好像沒改也能上傳! 而改了也能上傳! 只是後來還要再上傳一次就出現錯誤了! 這裡有點弄不太清楚,打擾了。感謝您的指導。

    回覆刪除
    回覆
    1. 沒錯,"YourAuthToken"要修改成emai傳來給我的"認證碼",因為你的手機中的專題產生這個"認證碼",所以在官網伺服器中已記載了這個認證碼,唯有你的Arduino程式中有這一段"認證碼",你的手機才能控制它。 這和程式是否能上傳沒有關係。

      刪除
    2. C:\Users\user>arduino\libraries\blynk-library-0.3.0\scripts\blynk-ser.bat
      COM1 not found, or may be busy.
      Select serial port [ ~1 ]: COM3
      Connecting device at COM3 to cloud.blynk.cc:8442...
      'com2tcp' 不是內部或外部命令、可執行的程式或批次檔。
      Reconnecting in 3s...
      我是COM3 輸入後卻是這樣 請問問題是....

      刪除
    3. 我自己再試了一次,可以順利連上。你提到的「'com2tcp' 不是內部或外部命令」我以前好像有遇過,但不太記得了。

      我剛是下載新版的0.3.1版的library。解開後,目錄名稱現在是Blynk,放到arduino的library後。

      1.打開「命令提示字元」
      2.cd C:\Users\使用者\Documents\arduino\libraries\Blynk\scripts\
      進入C:\Users\使用者\Documents\arduino\libraries\Blynk\scripts\這個目錄後
      3.再下指令 blynk-ser.bat
      不妨試試

      刪除
    4. 剛看到這一則國外的教學,很清楚,它的library放的位置和我不一樣,最後的批次檔是直接加參數執行的 https://www.youtube.com/watch?v=I_hgIj2FdPI

      刪除
  2. in ESP8266 Arduino board, after upload program there is an error 'Blynk was not declared in this scope', how to fix it?

    回覆刪除