來源 | HaaS技術社群不看這幾篇好文,就别說自己了解物聯網
物聯網
1991年由美國麻省理工學院( MIT )的Kevin Ashton教授首次提出物聯網的概念。
物聯網(Internet of Things,縮寫:IoT)是基于網際網路、傳統電信網等資訊承載體,讓所有能行使獨立功能的普通物體實作互聯互通的網絡。
說到物聯網的UI互動方式,就不得先提一下移動網際網路UI互動方式。
移動網際網路
最近10年的手機晶片高速發展,同時伴随着顯示螢幕、攝像頭、4G/5G移動網絡的快速普及,移動網際網路不是簡單的在手機上延續PC網際網路的互動方式,而是進一步深化了個人對帶屏硬體的互動方式,通過觸摸互動方式,達到更直覺的資訊互動行為。
載體 | 互動方式 | 系統 |
PC電腦/筆記本 | 滑鼠點選、按鍵,攝像頭、麥克風 | Window、Mac、Linux |
智能手機 | 螢幕觸摸、攝像頭、麥克風 | android、IOS |
從上面一個最基本的對比,由于手機能将更直接的螢幕觸摸替代滑鼠點選,讓每個人出門都不需要再攜帶笨重的滑鼠,進而升華了裝置和人的互動。
下面為IOS/android上比較常見的幾種螢幕觸摸互動

物聯網的互動方式
上面也提到物聯網覆寫的領域特别廣,進而導緻其互動方式千變萬化,下面先針對詳細講解一下其領域中的互動方案
穿戴手表 | 螢幕觸摸、麥克風 | android、RTOS |
教學平闆/點讀筆 | 螢幕觸摸、攝像頭 | android、Linux、RTOS |
商顯廣告屏 | 螢幕觸摸 or 無互動 | |
工控機 | 螢幕觸摸 or 按鍵 | Linux、RTOS |
智能面闆 | ||
門禁&對講 | 螢幕觸摸 or 攝像頭 | Linux |
從上個清單中也不難發現,隻要是帶螢幕的物聯網裝置,同時也比較難逃脫螢幕觸摸這種最直接的互動方式,是以講完最基本的物聯網互動方式,那自然就會有對應的UI方案與其互動方式比對。
以下為在IoT場景上新增的幾種互動形态(觸摸互動則不在這裡展現了):
手勢互動
手勢識别屬于隔空識别的操作模式,從安全性上較以往的按鍵互動、觸屏互動有很大的提升,不會有按鍵操作可能出現的觸電風險,也不會有觸屏操作卡屏的較高幾率
語音互動
語音就是人最自然的與IoT互動的方式,原因是什麼呢?
因為人與人之間互動也一樣,也是用語音作為最自然的方式;人和機器也是可以做到這麼自然流暢的互動。
語音互動是,即使是你在開着車,手不友善的時候,不看螢幕,不用觸摸螢幕上的任何東西,也能夠跟你的車互動。
下圖是天貓精靈提供的語音互動能力
實體網的UI方案
随着MCU高頻高性能産品的推出,以及人際互動應用越來越多,使得很多産品可以以較低成本實作較為炫酷的顯示效果。而越來越多的裝置上資料可視化需求是GUI應用發展越來越快的根本原因。
GUI為人機互動提供了更直覺UI的操作,尤其是對于一些智能化裝置,使得裝置操作更加簡單易用。裝置的聯網通信給GUI提供了更多内容呈現的可能,裝置廠商或内容服務商通過帶一塊顯示屏,可以把更多的内容将會借助GUI呈現出來。
如今GUI主要的應用領域有智能家居、物聯網、醫療、汽車、消費電子、工業等。其中消費電子是近幾年來GUI需求增長最快的領域,當然其他應用領域也将會随着智能化終端的應用而帶動GUI的發展。
随之而來的是,傳統的直接基于目标裝置的嵌入式GUI開發模式出現了開發周期長,開發成本高,開發門檻高等問題。考慮到GUI已經成為人與機器溝通的橋梁,且嵌入式系統對GUI的需求越來越高,而這一切均要求有一個開發效率高、可配置及美觀的GUI支援。
由于android系統本身的UI方案比較成熟,下面表格主要講解Linux 和 RTOS系統上的UI方案,以及部分對比内容。
UI方案 | 開發語言 | 資源開銷 | GPU支援 | 動畫 | 圖檔解碼 |
QT | C++(跨平台) | 記憶體 > 10MB | 支援 | BMP/GIF/PNG/JPEG | |
MiniGUI | C(跨平台) | 500KB < 記憶體 < 4MB | 不支援 | ||
LVGL | 100KB < 記憶體 < 2MB | 預設僅支援BMP,有轉換工具 | |||
GTK+ | C(Linux為主) | ||||
柿餅UI | JS為主,C++為輔 (RTT系統為主) | 記憶體 > 800KB |
以下簡單介紹一下開源的3個UI引擎。
完整的跨平台軟體開發架構,實作了一套代碼可以在所有作業系統、平台和螢幕類型上部署,從桌上型電腦、嵌入式系統到可穿戴裝置、移動裝置。
MiniGUI 是一個自由軟體項目。其目标是提供一個快速、穩定、跨作業系統的圖形使用者界面(GUI)支援系統,尤其是基于 Linux/uClinux、eCos 以及其他傳統 RTOS(如 VxWorks、ThreadX、uC/OS-II、Nucleus 等)的實時嵌入式作業系統。
Lvgl
littlevgl是一個小型開源嵌入式 GUI 庫(簡稱LVGL),界面精美,消耗資源小,可移植度高,支援響應式布局,全庫采用純 c 語言開發,移植上手簡單。
本領域技術發展方向
物聯網領域晶片種類繁多,而可視化應用場景廣泛,UI未來會向以下幾個方向發展:
- 需要提供統一的UI架構,支援業務邏輯和UI界面可複用(例如:UI需支援不同螢幕的布局),支援多端部署;
- 支援可視化開發,減少開發者的工作量;
- 支援元件化、小型化,能适配不同的裝置和資源需求;
提供完善的Native渲染方案,同時結合JS 熱加載,熱更新等特性,将使用者從C/C++研發,逐漸轉換成JS應用 & 小程式開發。