不看这几篇好文,就别说自己了解物联网
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 无交互 |
android、Linux、RTOS |
工控机 |
屏幕触摸 or 按键 |
Linux、RTOS |
智能面板 |
屏幕触摸 or 按键 |
Linux、RTOS |
门禁&对讲 |
屏幕触摸 or 摄像头 |
Linux |
从上个列表中也不难发现,只要是带屏幕的物联网设备,同时也比较难逃脱屏幕触摸这种最直接的交互方式,因此讲完最基本的物联网交互方式,那自然就会有对应的UI方案与其交互方式匹配。
以下为在IoT场景上新增的几种交互形态(触摸交互则不在这里体现了):
手势识别属于隔空识别的操作模式,从安全性上较以往的按键交互、触屏交互有很大的提升,不会有按键操作可能出现的触电风险,也不会有触屏操作卡屏的较高几率
语音就是人最自然的与IoT交互的方式,原因是什么呢?
因为人与人之间交互也一样,也是用语音作为最自然的方式;人和机器也是可以做到这么自然流畅的交互。
语音交互是,即使是你在开着车,手不方便的时候,不看屏幕,不用触摸屏幕上的任何东西,也能够跟你的车交互。
下图是天猫精灵提供的语音交互能力
随着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 |
不支持 |
支持 |
BMP/GIF/PNG/JPEG |
LVGL |
C(跨平台) |
100KB < 内存 < 2MB |
不支持 |
不支持 |
默认仅支持BMP,有转换工具 |
GTK+ |
C(Linux为主) |
内存 > 10MB |
支持 |
支持 |
BMP/GIF/PNG/JPEG |
柿饼UI |
JS为主,C++为辅 (RTT系统为主) |
内存 > 800KB |
不支持 |
支持 |
BMP/GIF/PNG/JPEG |
以下简单介绍一下开源的3个UI引擎。
完整的跨平台软件开发框架,实现了一套代码可以在所有操作系统、平台和屏幕类型上部署,从台式机、嵌入式系统到可穿戴设备、移动设备。
MiniGUI 是一个自由软件项目。其目标是提供一个快速、稳定、跨操作系统的图形用户界面(GUI)支持系统,尤其是基于 Linux/uClinux、eCos 以及其他传统 RTOS(如 VxWorks、ThreadX、uC/OS-II、Nucleus 等)的实时嵌入式操作系统。
littlevgl是一个小型开源嵌入式 GUI 库(简称LVGL),界面精美,消耗资源小,可移植度高,支持响应式布局,全库采用纯 c 语言开发,移植上手简单。
物联网领域芯片种类繁多,而可视化应用场景广泛,UI未来会向以下几个方向发展:
提供完善的Native渲染方案,同时结合JS 热加载,热更新等特性,将用户从C/C++研发,逐步转换成JS应用 & 小程序开发。
如何分析物联网设备问题,看懂这篇文章就够了
透过ALSA这层迷雾剖析AliOS Things音频框架设计
漫谈农业物联网与互联网技术的结合
传感器,物联网时代的智能硬件数字化入口
如何快速搭建一个像“天猫精灵”的智能语音助手?
物联网之IP Camera解决方案简介
从语音交互历史浅看它是否会是物联网行业的一个爆点?
带你走进多媒体世界:视频文件是怎么播放出来的
物联网云端一体AI方案的探索
物联网设备连接的下一个引爆点:4G Cat.1
物联网教育现状和前景
一文看懂蓝牙在物联网中的应用场景
下一个智能硬件爆品是什么?
华为、阿里、小米都在用的全屋智能技术
为什么物联网领域使用Rust的项目越来越多?
物联网中也能使用区块链技术?面向IoT的区块链基础架构IoTeX
开源硬件的前世今生
物联网碎片化的一些思考
边缘计算在物联网行业的应用
物联网太难 ? 不妨试试用Python来开发
5G会给物联网行业带来哪些变化?
必须要了解的物联网安全知识
ARMv9能给ARM带来新一轮腾飞吗?(安全篇)
ARMv9能给ARM带来新一轮腾飞吗?(人工智能篇)
国产物联网操作系统的出路在哪里?
RISC-V架构能否引领物联网时代?
物联网到底为什么这么火?
谁才是物联网连接技术中的王者?
物联网平台大量出现能否将行业带入爆发式发展
脚本语言适合物联网开发吗
从“嵌入式”到“物联网”的四大转变
物联网发展新趋势