前言
随记
简单的一篇概念记录篇,无技术细节
为什么要选择物联网?
对于我来说,,新,具有未知的挑战 + 兴趣,内心的天平秤偏向了物联网吧
唯一的缺点就是需要经历公司配套设施、制度的巨大落差,换来的是技术、产品经验积累,兴趣使然。不同文化氛围的碰撞,依然要保持生活第一、兴趣第二、工作第三,从未经历过内卷,最近新人内卷很严重,请佛系看待。加油!
极客时间-物联网入门
目录
一、物联网发展史
1、物联网 = 互联网 + 物
物联网定义
- 把所有物品通过信息传感设备与互联网连接起来,实现智能化识别、运作与管理功能的网络
互联网本质上已经实现了人与人、人与信息的连接,接下来就是人与人本身、人与物的连接了。看目前的发展趋势,我们也能很清楚的知道,物联网是互联网发展的必然趋势。这种万物互联的愿景和趋势,无疑会深刻改变我们的生活。
物联网发展趋势必然和互联网一样,会迅速到达一个最高点,然后进入泡沫期,最终趋于稳定成熟期,所以在什么时候入场,这个决策很重要。现在的物联网基本都是通过人去操作,极少部分是通过物识别人。
物联网的趋势大概率就是物识人到物识物。例如最近阿里云在爱玛电动车上实施的无感解锁方案,对骑行体验是颠覆性的。
网上我们也看到过很多媒体都说过 “5G
时代,物联网的时代” 之类的话。为什么呢?5G
有 3
个主要应用场景,分别对应 eMBB
、uRLLC
和 mMTC
3
个标准。
-
eMBB
用于我们日常的手机移动通信,网络传输速率高主要就是指这个标准 -
uRLLC
应用的场景是无人驾驶、远程手术等,强调的是极低时延,稳定的时延和速率,毕竟如果远程做手术,那肯定不能出现卡顿和忽长忽短的时延 -
mMTC
可以支持大规模设备的连接上网,适合智能门锁、烟感传感器、路灯等低速率、低成本、低功耗的物联网设备
2、发展史
-
1995
年比尔・盖茨在《未来之路》书中首次提及物联网概念 -
1998
年,美国麻省理工学院(MIT)
创造性地提出了当时被称作EPC
系统的“物联网”的构想 -
1999
年,美国Auto-ID
首先提出“物联网”的概念,主要是建立在物品编码、RFID
技术和互联网的基础上。同年,在美国召开的移动计算和网络国际会议提出了,“传感网是下一个世纪人类面临的又一个发展机遇” -
2005
年11
月17
日,在突尼斯举行的信息社会世界峰会(WSIS)
上,国际电信联盟(ITU)
发布了《ITU
互联网报告2005
:物联网》,报告指出,无所不在的“物联网”通信时代即将来临,世界上所有的物体从轮胎到牙刷、从房屋到纸巾都可以通过因特网主动进行交换。射频识别技术(RFID
)、传感器技术、纳米技术、智能嵌入技术将到更加广泛的应用 -
2009
年1
月28
日,奥巴马就任美国总统后,与美国工商业领袖举行了一次“圆桌会议”,作为仅有的两名代表之一,IBM
首席执行官彭明盛首次提出“智慧地球”这一概念,建议新政府投资新一代的智慧型基础设施 -
2009
年8
月,温家宝总理在无锡视察时提出“感知中国”,无锡市率先建立了“感知中国”研究中心,中国科学院、运营商、多所大学在无锡建立了物联网研究院。物联网被正式列为国家五大新兴战略性产业之一 -
2009
年8
月24
日,中国移动董事长王建宙访台期间解释了物联网概念
二、物联网三层架构
第一层是设备层,对应各种物联网硬件设备,主要关注的是通信技术
第二层是网络层,主要关注的是设备与物联网平台的通信协议,底层依旧是TCP/IP
协议,对于物联网开发人员,这块需要了解HTTP
、MQTT
、AMQP
等网络协议,知道它们的适用场景
第三层是应用层,基本就是对应业务逻辑,和一般APP
开发没有多大区别,唯一的区别就是物联网行业,海量数据处理是必须的,包括其中的数据分析以及AI在其中的落地。
三、物联网通信技术
设备如何接入网络?如何连接目标设备?
在平时的生活中,我们的智能设备,例如手机,是通过WIFI
或者移动网络,刷电梯门时通过手机NFC
功能也可以,还有无线蓝牙耳机等等,都是通过对应的通信技术满足了我们的日常需求。
但是物联网领域都能通过WIFI
、蓝牙、自身网络连接吗?并不是,但是我们可以通过网关、蓝牙、WIFI
解决大部分设备的连接。
物联网行业有自己的专有通信技术,当然局限不包括于WIFI
、蓝牙
-
高速率
-
4G
、5G
、LTE-V
-
场景:视频监控、机器人、智慧医疗
-
-
中档类
-
eMTC
、GPRS
、CDMA
(2G
网络应用场景应该比较少) -
如短距离无线网络
BLE
、ZigBee
、WIFI
(版本不同,它们支持的频率不一样) -
BLE
的数据通信主要基于广播包和GATT
协议,据说连接参数的调节对于BLE
设备的扫描和连接影响很大。还有就是不同品牌Android
芯片不一样,蓝牙协议栈又不一样,还需要针对不同手机兼容。BLE
可以进行地理位置定位,从Android 6.0
开始,BLE
设备需要请求位置权限。 -
LTE-CAT1 独特优势就是网络覆盖,属于
4G
网络的低速类别。2G
的替代在国内通信产业来看,大多是LTE-CAT1
以及NB-LoT
-
场景:可穿戴、车辆调度、电子广告、无线
ATM
-
-
LPWA
低功耗、广覆盖-
LoRa 低功耗广覆盖物联网 的一种,
2017
年12
月的时候工信部的征求意见稿中将用于民用无线电计量仪表使用的470-510MHz
频段,也就是LoRa
用于组网的频段,限定为单频点使用,不能用于组网应用,差点被禁止使用,它最大的对手就是NB-LoT
-
SigFox 低功耗广域网,主要用于连接传感器和设备
-
NB-LoT 可以再看看这篇文章 一文看懂NB-LoT和他的兄弟们,
LPWA
也包含多种技术,如LoRa
、Sigfox
、NB-IoT
、eMTC
等,但是NB-LoT
在他这一层覆盖率基本能应付90%
的业务场景 -
场景:无线抄表、环境检测、智能家居、物流
-
当总结完上面的看法时,总觉得4G
对物联网大多数场景都是性能过剩,市场上大多数产品都是LPWA
低功耗、广覆盖阶段产品。
对于不同协议的应用场景,大多数取决于它们所在的频段,所以对于物联网入门还需要连接四个基本概念,具体自行搜索
-
频段
- 电磁波频率的一个范围,这也是 Wi-Fi 路由器和蓝牙耳机、键鼠,在某些情况下会相互干扰,不在一个频段。干扰也没关系,业内还有跳频技术来解决干扰
-
信道
-
每种通信技术的频段会被划分、规划城多个信道来使用
-
它是信息通过无线电波传输的具体通道介质
-
-
信道带宽
- 信道频段的最大值和最小值之差
-
传输速率
-
带宽越大,传输速率越大。路越宽,承载的可通行的车越多
-
MIMO
技术通过使用多重天线收发信号来提高传输效率
-
四、物联网网络协议
物联网设备间的沟通语言,网络协议,类似于互联网中的网络协议,邮件POP3
、SMTP
、IMAP
协议或者是区块链P2P
协议等等。
1、物联网通信的特点
物联网设备很多可能工作在不可靠、高延迟的网络环境
- 例如共享单车,它们使用的是
NB-LoT
通信技术,解锁使用HTTP
协议的话,单车发出连接请求,那么必然会受到网络延迟的影响。
物联网系统中,设备数量多、交互非常复杂
- 现在一般云平台,都会让你先建一个家庭,然后往家庭内添加设备,便于控制管理
设备经常需要根据实际使用环境做增加、减少等调整
- 常见场景就是更换设备
2、网络通信协议
-
发布-订阅模式
-
这个模式大家都很熟悉,发布者负责生产数据,订阅者负责订阅经纪人的某个主题,经纪人收到某个主题数据时,系那个会发送这个主题的数据给订阅者
-
举个例子,你订外卖,类似 你、外卖订单中心、商家 间的关系
-
这种模式的网络通信协议 很适合 传感器,包括声光报警、人体靠近等等信息。网络不稳定也不会影响彼此工作
-
MQTT
采用的就是发布-订阅通信模式(采用二进制消息内容编码格式,协议头紧凑、协议交互简单,有三种服务质量级别QoS
),MQTT 5.0
也增加了请求-响应模式-
QoS 0
消息只发送以此,消息可能丢失 -
QoS 1
发送方会接受反馈,保证消息的送达,但是消息可能会有重复 -
QoS 2
通过发送方和接收方的多次交互,保证消息有且只有一次
-
-
AMQP
也是采用的发布-订阅模式-
和
MQTT
一样,基于TCP
协议,采用二进制消息格式,支持3
个QoS
级别,不过板本间差异很大 -
比较重,不适合计算资源有限、对功耗要求严苛的物联网设备
-
可靠性和可扩展性好,例如
RabbitMQ
中间件就是基于AMQP
实现的
-
-
-
请求-响应模式
-
对于一些场景,例如小区里面的智能快递柜,输入取件码后,服务器对对应的柜门发送开门指令,如果使用发布-订阅模式,那么服务器知道自己下发的开门指令是否成功,但是它不知道门有没有开!因为柜门没有向服务器反馈。当然,你可能会说,服务器订阅一个柜门开启的消息不就好了,是的,可以,但是流程就变得繁琐、不直接了。
-
HTTP
常见的请求-响应模式- 格式比较重,报文头动不动就达到
KB
级别,资源有限的嵌入式设备可能还不太合适
- 格式比较重,报文头动不动就达到
-
CoAP
-
设计轻量,可以用于资源受限的物联网设备
-
跟
HTTP
协议一样,同样使用URI
来标识资源 -
消息采用二级制格式,支持可确认消息和不可确认消息两种
QoS
级别,类似MQTT
的QoS 1
和QoS 0
-
传输层协议是
UDP
,而不是HTTP
、MQTT
的TCP
协议
-
-
LwM2M
-
定义在
CoAP
协议之上,提供了一组轻量级的交互接口协议,对设备墨香进行了标准化 -
能够更好的实现设备管理
-
-
五、设备如何发现彼此的?
主要通过配网手段。目前LoT
行业,大多数不好的评价都偏向于配网。
有好多配网模式,具体可以查看 设备配网,没空可以简单看下两种配网了解
1、WIFI配网
我们先了解一下简单的WIFI
配网
-
APP
发送广播包,将WIFI
名和密码(自己手动输入)和自己的用户相关信息给设备 -
WIFI
设备连接上路由器(WIFI
热点、AP
),将自己的数据上传平台获取到设备的一些设备id
或者预存信息,与账号一起上传平台完成绑定 -
APP
用户绑定成功
为了简化操作,业内推出了一键配网技术 SmartConfig
-
通过手机或
Wi-Fi
路由器发送UDP
广播包的形式,将Wi-Fi
的SSID
和密码广播出去 -
Wi-Fi
设备在进入配网模式后,会将接收到的广播包进行解析,从而获取到Wi-Fi
的SSID
和密码,然后连接上路由器 -
Wi-Fi
设备连接上路由器后,也会广播自己的MAC
地址,这样手机App
就可以接收到设备的MAC
地址完成绑定
这里有一个坑,因为我们现在路由器大多支持2.4GHz
和 5GHz
两个频段,所以可能会导致手机和设备连接的不是同一个网络(智能设备现在都是2.4GHz
)。如果同一区域有两个一样频段的SSID
名也是一个坑。
2、AP配网
-
WIFI
设备先进入WIFI AP
模式,即由设备创建一个WIFI
热点 -
手机连接到这个热点,然后把
WIFI
的SSID
和密码发送给WIFI
设备 -
WIFI
设备连接上对应的WIFI
,就有了联网能力了。可以将数据发送到云平台就行激活绑定。
六、物联网网关,边缘计算是否很重要
1、网关
并不是所有物联网设备都能直接接入互联网,直接和云平台通信的,例如传感器。这个时候网关的作用就体现了
或者例如冷库,冷库环境很复杂,库房内部的蜂窝网络信号一般都很差,因为要增强保温性能,墙壁势必做的很厚,而且库房一般位于郊区,所以设备在这个环境下,直接连接蜂窝网络有点不现实,一般都通过在稳定网络信号的地方部署物联网网关,让设备间接联网。
网关通信示意图
网关中一般会存储和设备的配置信息,防止因网络临时故障导致设备数据丢失。还有安全性相关,例如本地身份认证、数据加密传输,网关还能接入运营商专网接入。
2、边缘计算
因为海量设备入网,数据处理是一个急需解决的问题,如果都给云平台去处理,那么云平台挑战很大,毕竟要考虑到网络延迟和带宽等的影响。而且有些数据是机密的,上传到云平台会给用户带来很大的风险。
所以,现在行业内已经开始尝试将云平台上的部分计算服务,下沉到靠近数据发生地的“边缘设备”上进行,这就是边缘计算的由来,而物联网网关是边缘计算中最轻量级的解决方案的关键。
需要考虑的点
-
安全、隐私
-
自治能力。当网关与云平台的通信中断时,这种情况不应该影响网关处理数据的计算任务,和对物联网设备的管理
3、边缘计算相关开源生态
-
标准化组织
-
Eclipse
基金会下的 Eclipse loT 项目 -
OpenStack
基金会
-
容器技术
-
KubeEdge项目
- 主要思路将
Kubernetes
从云端扩展到边缘设备,方便应用程序在边缘网关上的编排和调度,同时实现云端和边缘设备的协同数据处理
- 主要思路将
-
-
开发框架
-
EdgeX Foundry 工业物联网领域
-
Home Edge 智能家居领域
-
引入边缘计算后的网关示意图
七、数据分析
这块后端同学都会的,都是经典的后端技能点。作为一个前端,只做记录
1、数据处理框架
-
分而治之 批处理
-
Hadoop MapReduce
-
Spark
-
批处理适合海量静态数据的非实时处理,延迟比较高,也叫离线计算,主要用于离线报表、历史数据汇总等场景
-
-
流处理
-
当采集的数据传输到系统后,我们可能需要对数据进行一些预处理,处理之后再存储起来。
-
数据像流水一样流入系统,然后被处理,而数据的快速处理,也就是实时计算,是这个过程中的关键点。这就是流处理出现的背景。
-
流处理适合动态输入的流式数据的实时处理,延迟低,也叫实时计算,主要用于实时监控、趋势预测、实时推荐等场景。
-
Storm
-
Spark Streaming
-
Flink
最近挺火
-
2、数据存储
结构化数据(关系型数据库)
-
关系型数据库
-
分布式关系型数据库
-
分库、分表,借助数据库中间件实现关联查询、主键避免重复、分页查询和事务一致性等功能
-
NewSQL
-
高扩展。数据分片,鼎泰增加节点,不需要进行麻烦的数据迁移工作
-
高并发。对比关系型数据库基于磁盘的设计,更好的利用了内存
-
高可用。支持多副本存储,自动选择主节点,保证了数据库故障切换时间很短
-
-
TiDB
-
CockroachDB
-
OceanBase
-
-
时序数据库
-
固定频率写入,没有多大的更新写入操作可以选择
-
读取的需求主要是进行数据分析,时效性很强,越新的数据价值越大
-
InfluxDB
-
KairosDB
-
OpenTSDB
-
半结构化数据(非关系型数据库)
-
物联网用半结构化
json
的比较多 -
NoSQL
非结构化数据
-
分布式文件系统
-
Hadoop HDFS
-
FastDFS
-
Ceph
针对海量数据,大多会采用分布式数据库(关系型数据库),如果是物联网中的传感器设备,会不断产生新数据,这时候可能会选择时许数据库。其它的,例如日志或者JSON结构的数据,可能就会选择半结构化数据库了,视频和音频类,可能一般会用分布式文件系统。
3、海量数据
对于海量数据处理,常见的一些方案,大方向就是负载均衡、消息队列和缓存系统、CDN
内容分发。
负载均衡
-
主要是协调多台服务器应对网络连接和请求的压力
-
动态调度策略
-
最小连接数策略
-
加权最小连接数策略
-
源地址哈希值策略
-
-
四层(
IP
)负载均衡 -
七层(
HTTP
请求头、URL
信息)负载均衡
消息队列
-
避免耗时的等待
-
异步处理机制
-
Kafka
、RabbitMQ
缓存系统
-
数据读写更快
-
Redis
、Memcached
当然物联网开发的安全和隐私也是一个重中之重,现如今APP
都在不断收缩权限,严控安全、隐私问题。