物联网概念最早于 1999 年由美国 MIT 提出,2013 年前后物联网在国内萌芽并开始迅猛发展,时至今日,大家对物联网领域概念性内容有了一定认知。
本次分享我们聚焦在物联网的现状和关键技术两方面,过程中包涵了一些问题与思考。
物联网的发展过程大致分为两个阶段,消费互联网带动产业互联网,再进化到物联网。
共享单车、智能电表、智能家居等都是物联网领域的典型案例,车联网、自动驾驶、智能工业等诸多场景,蕴含着巨大潜力。
那么物联网是怎么实现的呢?如下图是典型架构之一,四层架构:
由感知、网络、平台和应用这四层组成的架构是物联网典型架构之一,目前诸多物联网场景均按照这个架构进行布设,如智慧垃圾桶、智慧井盖、智慧城市等。
感知层:物联网设备端,一般由单片机作为主控,用来承载企业的业务逻辑,外接传感器,作用是数据采集。
网络层:网络层用于接入和传输数据,通常分为两大类,一类是蜂窝网络,如 4G Cat1、NB-IoT;另一类是非蜂窝网络,如 Wi-Fi、蓝牙、ZigBee、LoRa。
两者的区别是,蜂窝网络直接通过核心网直接连入 Internet,非蜂窝网络则需要一个网关。
网关会有专门企业进行研发,一端能够通过 4G、5G 能上网,另一端能够通过 Wi-Fi、蓝牙、ZigBee、LoRa 去连接很多设备。
平台层:划分为连接管理平台和业务使能平台,解决业务规划、安全、维护,以及数据如何存储、检索、使用等内容。
应用层:用于应用的部署,面向具体的业务,作用是数据呈现及客户交互。
另一种是自组网式的局域网架构,这种物联网场景不需要服务器,设备之间就可以实现互联。
如下图,这种架构的典型案例:HarmonyOS 以手机为核心,构建的 1+8+N 全场景应用。
物联网的应用现状
我们选择比较热的智能家居与消费物联网、智慧城市与公共事业物联网、智慧城市与数字孪生、车联网与智能汽车这四大方向来谈谈物联网的应用现状。
①智能家居与消费物联网
消费物联网领域最典型的场景就是智能家居,于国内华为、小米在智能家居领域市场份额占比相对较多,华为的 Hilink、HarmonyOS,小米的米粉卡,频繁出现在我们的工作和生活中。
②智慧城市与公共事业物联网
公共事业物联网最典型的场景就是智慧城市,包涵智慧停车、智慧垃圾桶、城市噪音污染监测、井盖监测等。
③智慧城市与数字孪生
智慧城市中有个概念叫做数字孪生,如下图如,是两者之间的关系:
什么是数字孪生呢?就是在整个城市实物的基础之上,通过物联网的传感器采集必要数据,并对这些数据进行建模,之后把模型放到云端运行,形成一个数字化的城市模型,于我们的城市一一对应。
④车联网与智能汽车
车联网早期就是把车连接起来,通过调度系统进行通信,之后扩展了广告屏,也有安装实时监控。
现在的车联网大多是指自动驾驶,自动驾驶场景一般采用 V2X(自组网式的局域网)架构,与路基设施,人,其他车辆通过特定协议进行互动。
车联网领域涉及的内容很多,如 OTA、SOA、TBox 和智能座舱的预控制器等。
物联网设备开发核心技术
物联网涉及的技术非常繁多,本次直播主要分享物联网设备端的八大核心技术:
单片机软硬件开发
传感器技术
网络通信编程
网络协议栈
云平台对接
低功耗技术
RTOS
网络安全技术
①单片机软硬件开发
物联网设备开发,核心技能是单片机的软硬件开发,大致包涵单片机硬件电路设计、射频及天线部分硬件设计、单片机软件编程、I2C/SPI/UART 等通信总线编程、AD 转换软硬件生产部署与测试等核心开发,以及结构、散热、光学、机加工等配套开发。
②传感器技术
传感器技术,学习门槛相对较低,因为大多以数字传感器为主,都有数字接口,如温湿度传感器、烟感探头(烟雾传感器)、9 轴传感器(动力加速度、陀螺仪、地磁)、GNSS(GPS/Beidou/Glonass)等。
也有一些传感器是模拟的,需要用AD转换才行,比如电压检测、压力传感器等。
③网络通信编程
网络通信编程和互联网通信相关,首先要懂网络编程基础知识,对基本原理有一定了解,这样在学习新模块时,才能比较快速的掌握到核心精髓。
当前,物联网模块编程会采用 AT 指令,也会直接用 socket 编程接口。设备之间相互链接采用应用层协议,如 HTTP、MQTT,也可以使用更底层的传输层协议 TCP、UDP。
④网络协议栈
CoAP 与 MQTT 是物联网常用协议,COAP 可以理解为 HTTP 针对物联网的移植版本,采用 UDP 而不是 TCP 是为了节约建立连接的开销,数据包头采用的是二进制而不是文本编码,发送和接收可以异步进行。
MQTT 采用发布/订阅模式,进行云端管理主题,负责消息的转发,采用二进制编码方式,各终端通过 TCP 连接到云端。
对于安全要求比较高的领域,如国防、民航、工业控制领域,采用实时数据通信协议 DDS。
⑤云平台对接
对于单片机开发的老工程师来说,是新知识点,一般成熟云平台会提供接口,设备端按照指令流程进行对接,于设备端上下行进行数据编程,云平台对接协议编程实现,在到云端进行开发(譬如华为 OC 平台的 profile 和编解码插件)。
⑥低功耗技术
物联网场景中移动设备居多,供电方式为电池,所以低功耗是必须考虑的问题。
那么要如何实现低功耗呢?对于 MCU 部分,尽量选择低功耗、唤醒时间短的 MCU,适当降低系统工作频率,进入睡眠前,关掉内部所有外设。
如对晶振精度要求不高,尽量选用内部晶振,同时降低工作电压(不同的工作电压功耗不同)和降低工作温度。
对于外设部分,选择合适的供电方式,采用 LDO 供电或 DCDC 供电要权衡,选择低泄漏电流器件(MOS 管和电容等),选择低功耗的开关切换电路,切换外部模块,以及降低系统工作电压(根据伏安特性电压越高漏流越大)。
⑦RTOS
RTOS 是物联网设备端技术精华,当前很多单片机工程师都集中在学习 RTOS,当前也有很多热门的 RTOS,如华为 LiteOS、阿里 AliOS、RT-Thread、freeRTOS、uCOS2/uCOS3 和 ARM mbed/RTX 等。
那么,这么多 RTOS 在做项目时要如何选择呢?其实就考察其的配套组件和生态完善程度即可。
⑧网络安全技术
物联网产品,非常注重网络安全,在这方面防护方式有很多,如身份验证授权、入侵检测、冗余机制、异常行为检测、白盒密码(抵抗白盒攻击环境下的攻击)、FOTA 与区块链等。
学习物联网的建议
物联网的学习建议总结如下:
①物联网并非单一技术,而是多项技术的组合:学习物联网的时候,首先要了解物联网的整体架构,确定学习物联网的设备开发,还是云端开发。
其次,选定一个行业深耕,毕竟车联网与农业物联网行业差别很大,涉及的技术也大相径庭。
②注重基础知识和核心技能,不着急做项目:当前,很多开发者是这个状态,物联网不是通过短暂学习,就能做出项目的。
成型的物联网项目门槛较高,周期长,也一定会用到细分行业里的基础知识。所以,非常不推荐过早考虑做项目,先把基础知识和核心技能掌握扎实为宜。
③注意更新知识体系,不要读死书:这点对于老工程来说,注意更新知识体系,尤为重要。因为物联网正处于持续不断的发展当中,每天都在发生变化,不断融入更多领域的高新科技。
全部0条评论
快来发表一下你的评论吧 !