作者/攝影 | 袁佑緣 |
時間 | 1小時 |
成本 |
|
難度 |
★★☆☆☆ |
材料表 |
|
本文章教各位讀者如何用手機撰寫App Inventor的應用程式,並透過Buletooth Low Energy來得到遠端LinkIt 7697的光感測器讀值。
本範例的aia檔請由此下載-連結。
App Inventor Extension 安裝
請先進到App Inventor的網站,並建立一個專案,在左下角Extension的部份,點選import extension,如下圖。
並把從MIT App Inventor Extensions網站(http://appinventor.mit.edu/extensions/)上的BLE套件裝上去。
如果讀者想要直接取用本範例的aia檔也可以,這樣就不需要再手動安裝Extension,因為已經包含在aia檔中了。
本範例的aia檔請由此下載-連結。
App Ineventor 程式設計
首先請確認您有按照前面的步驟將BLE元件新增App Inventor中,如下圖。
接下來請看到Desginer的部份,Connect按鈕是用來連接到指定藍牙MAC位址的7697,連上之後就會變成Disconnect按鈕,可以用來斷掉連接的藍牙。而最底下的有一個label元件用來顯示感應器的數值。
接下來看到後台的Blocks端,首先我們要先定義一個addr的變數,用來指定要連接的LinkIt 7697的MAC address,至於這個MAC address會根據每一塊不同的板子而有所不同,請讀者按照待會Arduino程式設計的部份所顯示的MAC Adress填入正確的位址。
再來當按鈕connect按下去之後,就會嘗試連上指定MAC address的控制板,如果成功的話,按鈕就會切換到Disconnect,以等待下一次使用者按下時就會斷線。
如果連接成功的話,應用程式的標題就會切換成Connected,反之則顯示Unconnected。
接下來是本範例的重點部份,如果此刻的狀態是正確連接的話(也就是按鈕是顯示用來Disconnect的狀態),Clock元件每隔一段時間就會啟動一次接收BLE訊息的服務,而這個服務會透過指定的Service跟Characteristic讀到7697上的光感測器數值(提醒讀者這邊的UUID務必確認跟Arduino程式碼端的設定一樣喔),最後當App讀到BLE的Int值時(when BluetoothLE1.IntValueRead),就會將數值顯示在Label元件上,讓使用者可以在手機螢幕上看到光感值!
LinkIt 7697 程式設計
請打開Arduino IDE,並確定您的控制板在編輯器中切換成7697,再上傳以下的程式碼到7697上。
本範例的ino檔請到此處下載-連結
成功上傳本隻程式碼到7697上後,請打開Serial Monitor,7697將會印出這塊板子的MAC Address,請務必記得把這段位址修改到App Inventor端的addr變數上喔。
範例影片