在雲端開發平台Blynk的step工具數值發送至序列的文章中,我們學習到如何將Blynk APP中的資料傳輸到硬體中並發送到序列埠,然而有沒有一種工具能將日誌、報告與數據等資訊像序列視窗一樣顯示在APP中呢?
Blynk的LCD工具雖然是一個能夠顯示字串的工具,但是它的字數少、顯示的資訊不多,同時又會被蓋掉,所以並不是一個好的紀錄顯示工具,因此Blynk提供了一個Terminal工具來模擬Arduino中的序列功能,最厲害的是它不僅僅是能夠顯示,它也提供了輸入的功能(這樣才像話)。
在Terminal工具中一共有四個語法,基本上都類似Arduino的Serial功能。
terminal.print(); // Print values, like Serial.print
terminal.println(); // Print values, like Serial.println()
terminal.write(); // Write a raw data buffer
terminal.flush(); // Ensure that data was sent out of device
write跟print的差異可以參考86Duino-print()與小狐狸事務所-Arduino 串列埠測試 (UART),而flush()則是等待序列的傳輸完成在做下一步。(其實兩者差異我有點搞混了)
我從官方的範例程式碼中下載Terminal的範例,這個程式碼可以測試APP中Terminal的讀寫。接著我們在APP中載入Terminal工具,並把它的大小拉到最大以方便檢視,注意Blynk中的序列是走虛擬引腳的,所以必須要指定引腳位置(範例是使用V1)。
AUTO SCROLL會讓序列自動滾動,而INPUT LINE則是決定要不要開啟輸入的部分,如果單純只是想要接收從硬體過來的訊息,可以選擇關閉。
我在程式中輸入Marco,它會回應我Polo。輸入其它的字則會重覆一次。
透過這個工具我們可以在程式中進行設定,使得某些情況觸發時會顯示訊息在APP序列中,或是在APP序列中輸入一些資訊,讓它顯示在硬體的LCD之類的裝置(能做個雲端字幕機?)。
另外Blynk只會記錄硬體最後發送到Blynk伺服器的25組訊息,這點必須要注意。