上一篇我們成功的,也全盤了解如何製作一個抓取天氣的app,透過App Inventor。
接下來我們來製作一個可以與ePy-Lite進行傳輸資料的app。
首先,有了前面練習,我開了一個新的app頁面來製作傳送資料的功能 ,因為這不是獨立的專案,所以我只做簡單的功能,傳送一個字。
首先編輯手機的工作面板
這邊大家會遇到第一個問題是如何新增BluetoothLE這個插件。
首先要連線到App Inventor Extensions的頁面,看到BluetoothLE的欄位,後面有個Download .aix File,下載「BluetoothLE.aix」
回到app inventor的編輯頁面,我們在左側工具欄位的最底下有個擴充套件,點選後再選擇「匯入擴充套件」,此時會跳出選擇檔案的小視窗,就把剛才下載好的檔案從此開啟,然後點選「Import」,如此就有新的插件可以使用,記得要把她拖拉到模擬手機畫面中新增。
接著進行程式設計。
總的程式設計如下圖,我就挑幾個重要的部分說明。
首先是serviceUuid,這個是每個藍芽裝置上身份辨識碼,每個藍芽裝置都不一樣,就像是身分證。
手機就是透過這個Uuid去抓ePy-Lite,所以各位要先找到自己ePy-Lite上的Uuid為多少,我使用的app是LightBlue,請先前往google play下載安裝此app,它可以用來掃描環境周圍的藍芽裝置,並將藍芽裝置的訊息顯示,我們要先使用他來找到ePy-Lite的Uuid與characteristicUuid。
這樣我就可以在appinventor使用這兩個碼
第二個重點是藍芽在連線時,雖然ePy-Lite上的藍燈會被點亮,代表藍芽連線,但其實他會需要一段時間進行連線,連線成功之後才能傳送資料,不然手機會一直出現「未連線」的錯誤訊息。所以我特別增加兩個積木來顯示甚麼時候可以按下傳送資料的按鈕。
然後我們要在ePy-Lite寫code來進行接收,程式碼在這裡。
之後我還會再特別說明這個程式碼的解析,今天只說明重點部分,資料的型態一直都是我的弱點,所以我說明資料型態的部分。
date是用來儲存藍芽接收到的訊息,所以這邊用了兩個表示的方式,一個是回傳utf8,另外一個是將其轉成str字串型式,所以我們將程式碼上傳到ePy-Lite後就可以等待手機端回傳的訊息。
那我的B從哪裡來?當然是我又在app inventor中增加一個按鈕來測試囉。
這樣就是一個簡單的傳送資料的專案,讓我們了解藍芽如何對ePy-Lite進行傳輸的工作,我也可以將單一字元換成字串,畢竟我之後要做傳送天氣的狀態。
之後我將解析這份範例程式碼的內容,與設計下一個專案:我們要將天氣的app與藍芽傳送的app相結合!讓ePy-Lite接收到天氣資訊。