Adafruit IO 是一個免費/付費的IoT 平臺,提供數(shù)據(jù)云端化、圖像化的服務(wù)整合,Adafruit IO 可以讓用戶自由定義云端的資料內(nèi)容;
Protocol 除了支持MQTT(S)、HTTP(S)、WebSocket 外,也提供多樣化的API供使用者使用,
大部分程序語言都可以透過HTTP 或MQTT 協(xié)議對Adafruit IO 存取。
接下來就要開始帶大家一步步操作,內(nèi)容包含以下七個部分:
1. 注冊Adafruit IO賬號
2. 建立Group
3. 建立Feed
4. 建立Dashboard
5. 取得Username & AIOKey
6. 軟件安裝
7. 程序設(shè)計(IoT范例)
一、注冊Adafruit IO 賬號
首先至Adafruit IO官網(wǎng)注冊頁面,注冊免費賬號。
免費及付費賬號所支持的功能差異請參見下表,一般小型項目使用免費賬號即可;有更多需求的伙伴可以自行評估是否升級,以$10 USD/月或$99 USD/年的方式去付費使用。
二、建立Group
Group(群組)主要用來集中管理Feed(傳感器節(jié)點),可將一個Group當(dāng)作一臺裝置看待(如下圖所示的Device 1號、Device 2號),裝置內(nèi)便能建立各自的傳感器,好處是可以更集中管理或存取每個裝置內(nèi)的傳感器。
請參考下圖建立Group。
三、建立Feed
Feed(節(jié)點)是用來存放感測數(shù)據(jù)及觀看歷史數(shù)據(jù)的地方:下圖紅框區(qū)域會呈現(xiàn)歷史數(shù)據(jù)折線圖;藍框由左至右分別表示「新增一筆資料」、「下載所有數(shù)據(jù)」、「過濾及塞選數(shù)據(jù)」;下方綠框會顯示歷史數(shù)據(jù);右側(cè)紫色框內(nèi)除了顯示Feed基本數(shù)據(jù)的「Feed Info」外,更可針對此Feed新增更多設(shè)定。
點入Feed Info后可見,畫面如下圖所示,紅框內(nèi)容為預(yù)設(shè)提供的API,若是使用MQTT 協(xié)議可以直接復(fù)制MQTT by key這行內(nèi)容,作為MQTT 要Subscribe(訂閱)或Publish(發(fā)布)的Topic(主題),詳細HTTP 的API可以參考官網(wǎng)提供的API Documentation。
請參考下圖建立Feed。
四、建立Dashboard
Dashboard 即儀表板,以圖型方式呈現(xiàn)數(shù)值,默認(rèn)提供多種圖表供選擇,包含開關(guān)、滑桿、調(diào)色盤、圖片、折線圖等等,使用這些圖表相互搭配可以很容易的建構(gòu)出網(wǎng)頁版的監(jiān)測站,比起其他平臺省去不少建置費用及時間成本!
在建立Dashboard 的時候預(yù)設(shè)有多種block可以選擇。
選擇Dashboard 時需要選取對應(yīng)的數(shù)據(jù)源(即Feed),并針對細節(jié)做顯示設(shè)置:例如Gauge可以設(shè)定標(biāo)題、數(shù)值顯示的范圍、線寬粗細等等,可依照使用需求去設(shè)定調(diào)整。
請參考下圖建立Dashboard。
五、取得Username & AIO key
在對Adafruit IO 數(shù)據(jù)操作時都需要經(jīng)過驗證,使用MQTT、HTTP時都需提供賬號及AIO Key才可存取Adafruit IO,以下將介紹如何取得賬號密碼。
進入Adafruit IO官網(wǎng),點選紅框「My Key」跳出賬號密碼。
https://io.adafruit.com/
下圖藍框為Username,紅框是系統(tǒng)產(chǎn)生的AIO Key,若密碼意外泄漏,也可透過右邊綠色框內(nèi)的「REGENERATE KEY」按鈕重新產(chǎn)生新的密碼。這里有一點要特別注意,Adafruit IO會定時檢查Github上公開的code,看有沒有人不小心把密碼放上去,若是被掃描到的話,Adafruit IO 相當(dāng)?shù)刭N心,會自動幫你重新產(chǎn)生新的key,不過還是請大家要小心,密碼不要亂放??!
六、軟件安裝
(一)軟件下載與擴充
撰寫程序時我們是采用與Scratch類似的Blockly 來編寫程序,所以需要下載LinkIt 7697專用的程序撰寫編輯器BlocklyDuino v3。
https://github.com/MediaTek-Labs/BlocklyDuino-for-LinkIt/releases/tag/3.0.312b
目前該程序只支持Windows的操作系統(tǒng),請依照自己的版本將下載下來的壓縮文件解壓縮。
因為該編輯器是免安裝的版本,對于路徑相當(dāng)要求,解壓縮后的文件夾不能放置在任何有中文檔名的文件夾內(nèi),否則上傳程序時可能會產(chǎn)生錯誤。
除了編輯器外,我們還需要下載兼容BlocklyDuino的鏈接庫CIRCUS Pi KIT,因為原先的BlocklyDuino內(nèi)并沒有Adafruit IO相關(guān)的程序積木,所以需要用戶自行擴充。
https://github.com/iCShopMgr/CIRCUS_Pi_KIT
如上圖所示,點選擴充程序CIRCUS Pi KIT鏈接后,找到「0622擴充程序.zip」這個選項并點選。文件名的0622是發(fā)布爾日期,若有新的版本日期會不同。
依照下圖所示,點選「Download」的選項下載擴充程序到自己的計算機,下載完成后請解壓縮。
截至目前為止我們應(yīng)該獲得了兩個文件夾,分別是程序編輯器「BlocklyDuino」以及「0622擴充程序」。接下來請將「0622擴充程序」文件夾內(nèi)的兩個檔案復(fù)制起來,并在BlocklyDuino文件夾內(nèi)貼上并取代。
(二)安裝驅(qū)動程序
請下載并安裝「CP2102N 驅(qū)動程序」,以便PC能連接到您的LinkIt 7697。
點選頁面內(nèi)「DOWNLOADS」的選項,并依照您操作系統(tǒng)的版本,下載對應(yīng)的驅(qū)動程序并安裝。
將上述步驟做完就完成軟件的準(zhǔn)備啰~現(xiàn)在開啟軟件檢查看看有沒有擴充程序吧!打開BlocklyDuino文件夾,并點選「BlocklyDuino.exe」,如下圖所示,檢查看看有沒有「Adafruit IO」的選項。
七、程序設(shè)計(IoT 范例)
本次使用Linkit7697做為IoT 裝置硬件,開發(fā)環(huán)境使用BlocklyDuino,示范如何與Adafruit IO溝通,將數(shù)據(jù)發(fā)送至Adafruit IO、透過Adafruit IO Dashboard網(wǎng)頁控制Linkit7697 LED亮滅。
(一)程序撰寫
依照下圖所示拉入積木程序代碼,請自行修改WiFi ID、WiFi密碼、Adafruit IO Username、AIO Key;DeviceID 可以自定義,在云端平臺會作為Group 名稱,并且積木程序?qū)褂肈eviceID 作為MQTT ID,所以每個裝置請使用不同的DeviceID,重復(fù)使用將會剔除ID 相同者聯(lián)機。
程序說明
1. 設(shè)定并聯(lián)機到WiFi聯(lián)機,請自行修改WiFiID、密碼。
2. 設(shè)定并聯(lián)機到Adafruit IO,請自行修改AdafruitIO Username、AIO Key。
3. 在Loop函式中持續(xù)同步AdafruitIO狀態(tài)以檢查傳感器數(shù)據(jù)是否更新。
4. 使用計時的方式取代Delay,每10秒將目前的開機毫秒數(shù)更新到云端。
5. 設(shè)定當(dāng)云端傳感器led更新時判斷內(nèi)容并控制內(nèi)建LED亮滅。
完整Adafruit IO范例程序
https://github.com/iCShopMgr/CIRCUS_Pi_KIT/blob/main/Example/AdafruitIO%E7%AF%84%E4%BE%8B%E7%A8%8B%E5%BC%8F.zip
(二)Adafruit IO設(shè)定
在Adafruit IO中可以透過首次發(fā)布新資料時自動建立Feed,建議大家可以自行建立所有的Feed,以確保資料發(fā)布成功。
下圖為建立一個名為「icshop」的群組,「led」、「time」Feed。
下圖為建立一個名為「icshop」的Dashboard。
在「icshop」Dashboard內(nèi)點選紅框「Create New Block」新增圖塊。
選擇「Stream」圖塊。
數(shù)據(jù)源選擇icshop「time」。
設(shè)定Stream Block Title,可自定義。
新增「Toggle」圖塊。
數(shù)據(jù)源選擇icshop「led」。
設(shè)定Toggle Block Title(可自定義),可設(shè)定發(fā)送的文字內(nèi)容,默認(rèn)為「ON」、「OFF」。
完成后如下圖所示。
Linkit7697 將會每10秒發(fā)送一次開機時間到AdafruitIO,并且使用者可透過網(wǎng)頁開關(guān)控制Linkit7697 LED亮滅,如下圖所示。
關(guān)閉LED
開啟LED
八、結(jié)語
Adafruit IO 支持MQTT(S)、HTTP(S)、WebSocket,所以不管用什么語言都很容易上手;再加上相當(dāng)直覺的網(wǎng)頁操作接口、簡潔好上手的Dashboard、完整的官方API,更重要的是有免費版本可以使用;我們也針對 Adafruit IO 制作了積木程序,對于初學(xué)者使用上會更加容易,不妨現(xiàn)在就一起使用 LinkIt 7697 操作看看吧!
審核編輯:湯梓紅
-
傳感器
+關(guān)注
關(guān)注
2551文章
51099瀏覽量
753606 -
IO
+關(guān)注
關(guān)注
0文章
448瀏覽量
39156 -
IOT
+關(guān)注
關(guān)注
187文章
4210瀏覽量
196808 -
MQTT
+關(guān)注
關(guān)注
5文章
651瀏覽量
22507
原文標(biāo)題:一次學(xué)會使用Adafruit IO 平臺!
文章出處:【微信號:易心Microbit編程,微信公眾號:易心Microbit編程】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論