前言随记
简单的一篇概念记录篇,无技术细节
为什么要选择物联网?
对于我来说,,新,具有未知的挑战 + 兴趣,内心的天平秤偏向了物联网吧
唯一的缺点就是需要经历公司配套设施、制度的巨大落差,换来的是技术、产品经验积累,兴趣使然。不同文化氛围的碰撞,依然要保持生活第一、兴趣第二、工作第三,从未经历过内卷,最近新人内卷很严重,请佛系看待。加油!
物联网发展历程
5G时代十大应用场景白皮书
如何看代5G通信和物联网
设备配网
一文看懂NB-LoT和他的兄弟们
LTE-CAT1 物联网时代的新宠
极客时间-物联网入门
目录 c4720561f1c942a4af4ecc5fb135354f~tplv-k3u1fbpfcp-watermark.jpg
一、物联网发展史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日,中国移动董事长王建宙访台期间解释了物联网概念

二、物联网三层架构 f94eba9f79944f7b9e0cf02b5cd71507~tplv-k3u1fbpfcp-watermark.jpg
第一层是设备层,对应各种物联网硬件设备,主要关注的是通信技术
第二层是网络层,主要关注的是设备与物联网平台的通信协议,底层依旧是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、网关并不是所有物联网设备都能直接接入互联网,直接和云平台通信的,例如传感器。这个时候网关的作用就体现了
或者例如冷库,冷库环境很复杂,库房内部的蜂窝网络信号一般都很差,因为要增强保温性能,墙壁势必做的很厚,而且库房一般位于郊区,所以设备在这个环境下,直接连接蜂窝网络有点不现实,一般都通过在稳定网络信号的地方部署物联网网关,让设备间接联网。
网关通信示意图
70ad08adc8024bf19858d283e3d7f849~tplv-k3u1fbpfcp-watermark.jpg
网关中一般会存储和设备的配置信息,防止因网络临时故障导致设备数据丢失。还有安全性相关,例如本地身份认证、数据加密传输,网关还能接入运营商专网接入。
2、边缘计算因为海量设备入网,数据处理是一个急需解决的问题,如果都给云平台去处理,那么云平台挑战很大,毕竟要考虑到网络延迟和带宽等的影响。而且有些数据是机密的,上传到云平台会给用户带来很大的风险。
所以,现在行业内已经开始尝试将云平台上的部分计算服务,下沉到靠近数据发生地的“边缘设备”上进行,这就是边缘计算的由来,而物联网网关是边缘计算中最轻量级的解决方案的关键。
需要考虑的点

  • 安全、隐私

  • 自治能力。当网关与云平台的通信中断时,这种情况不应该影响网关处理数据的计算任务,和对物联网设备的管理

3、边缘计算相关开源生态

  • 标准化组织


    • Linux基金会下的 LF Edge和致力于推进Cloud Native的 CNCF

    • Eclipse基金会下的 Eclipse loT 项目

    • OpenStack 基金会

  • 容器技术


    • KubeEdge项目


      • 主要思路将Kubernetes从云端扩展到边缘设备,方便应用程序在边缘网关上的编排和调度,同时实现云端和边缘设备的协同数据处理
  • 开发框架


    • EdgeX Foundry 工业物联网领域

    • Home Edge 智能家居领域

引入边缘计算后的网关示意图
913260b3c00843779453e9404e66eb80~tplv-k3u1fbpfcp-watermark.jpg
七、数据分析这块后端同学都会的,都是经典的后端技能点。作为一个前端,只做记录
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都在不断收缩权限,严控安全、隐私问题。