[TOC]

0x00 物联网定义

定义:
描述:物联网—The Internet Of Things [万物互联]简称IOT,顾名思义是把所有物品通过网络连接起来,实现任何物体、任何人、任何时间、任何地点(4A)的智能化识别、信息交换与管理
百度WIKI:物联网是指通过信息传感设备,按约定的协议,将任何物体与网络相连接,物体通过信息传播媒介进行信息交换和通信,以实现智能化识别、定位、跟踪、监管等功能。


1.在物联网应用中最重要的属性就是设备需要接入【互联网】,用户只要在有网络的地方都能进行访问控制;
2.在物联网应用中有两项关键技术分别是传感器技术和嵌入式技术

  • 物联网是实现形式是通过各种信息传感器设备以及系统,如传感器网络/射频识别/红外感应器/条码与二维码/全球定位系统/激光扫描器等其他基于物物通讯的模式;


物联网—The Internet Of Things深层含义, 也有将物联网理解为 Intelligent Interconnection Of Things (IIOT),体现出了“智慧”和“泛在网络”的含义;

1.是[ Internet ] ,而不是[ internet ] 
internet == 互联网 == 将计算机网络相连的任意网络,不一定遵循TCP/IP协议簇的通信规则;
Internet == 互联网 == 使用TCP/IP协议簇作为通信规则的互联网(我们常说的互联网)
2.是[ things ] ,而不是[ thing ]
things == 事物(复数) == 万物

区别了解:
WeiyiGeek.


物联网与互联网与传感网,泛在网之间的关系

  • 范围和开放性不同
  • 信息采集的方式不同
  • 网络功能不同(IOT:主要是”感知”与”识别”, UN:主要是”网络”和”智能”)
  • 范围体现:传感网->物联网-互联网(InterNeT)->泛在网(Ubiquitous Network)
    • 传感网只是物理网的一部分,主要探测的是自然界的环境参数,如温度,压力等,主要是用于动态属性数据的采集。


Q&A
A:设备接入互联网,有什么用?
Q:设备接入互联网后,可以将数据实时的上报到物联网平台,也可以接受物联网平台的指令。(比如:共享单车 就是一个典型的物联网应用 , 他可以实时将自己的位置上报给云平台)

A:物联网到底是什么?
Q:物联网是指通过各种信息传感设备,实时采集任何需要监控、连接、互动的物体或过程等各种需要的信息,与互联网结合形成的一个巨大网络。其目的是实现物与物、物与人,所有的物品与网络的连接,方便识别、管理和控制;

A:物联网的接入方式有哪些,为什么物联网通信需要这么多的接入方法?
Q:移动空中网,传统互联网,有线传输,近距离离线传输;由于某一种通信方式不能完全适用于所有得物联网应用场景;
WeiyiGeek.


0x01 物联网编程语言

描述:Eclipse IoT 工作组、IEEE IoT、AGILE IoT 和 IoT 委员会在今年第一季度进行了一项“2017 物联网开发者调查”,旨在找出该领域的趋势,了解开发人员如何构建 IoT 解决方案。
WeiyiGeek.

调查发现这些主要编程语言之间其实存在很高的共性。

  • Java 和 Python 通常用于 Constrained Device、IoT 网关和 IoT 云平台。
  • 同时C 和 C ++ 也在 Constrained Device 和网关里占有重要意义和用途,而 IoT 云平台的开发更多地是利用了 Javascript 和 Node.js

WeiyiGeek.


0x02 物联网常见通信协议

电子工程师和物联网(IoT)的产品和系统的应用程序开发人员都有一个几乎令人迷惑的连接选项。
那就是通信技术如WiFi,蓝牙,ZigBee和2G / 3G / 4G蜂窝 / NB-IOT,根据应用,范围,数据要求,安全性和功率需求以及电池寿命等因素将决定某种形式的技术组合的选择

针对物联网场景中的一些通信协议思维导图;
WeiyiGeek.

物联网的基本架构包括三个层面:感知层、网络层和应用层
WeiyiGeek.

各个层的功能以及应用:

  • 1.感知层:通过传感器采集某些数据(声、光、电等),基于网络层的终端模组,对接到网络层的基站,实现数据采集后的传输。
  • 2.网络层:负责将感知层采集的数据进行回传,基于不同特点采用不同的通信协议技术进行回传至关重要。
  • 3.应用层:物联网的云数据平台和云业务平台。数据平台作为所有物联网终端数据的集合点,负责数据的统一存储、分析等,北向通过标准的API接口提供给业务平台做数据调用;业务平台基于数据平台的原始数据实现各种业务逻辑,对外呈现的是服务。


网络层主要技术讲解:
(1)WI-Fi 通信技术数据

  • WIFI标准:802.11n(常用) / 802.11-ac 标准 / 802.11ax 标准
  • 优点:传输速度飞快,对于文件传输是很好的选中(处理大量数据的能力)
  • 缺点:耗电 ,传输距离限制,长距离传输提高了成本。

(2)蓝牙技术

  • 蓝牙版本:5.0
  • 优点:蓝牙低功耗(BLE)
  • 缺点:由于与Wi-Fi在2.4G频段上有交接,所以同频段会有一些干扰问题的产生,传输速度低,通信距离短;
  • 应用场景:在资产追踪、定位标签以及医疗传感器等场景下应用较多,如智能手表,蓝牙定位等。

(3)Zigbee技术

  • 版本:ZigBee PRO 3.0 和 ZigBee远程控制(RF4CE - 主要是后者)
  • 协议标准:IEEE802.15.4协议
  • 优点:功耗比较小,高安全性,鲁棒性和高可扩展性
  • 缺点:通信距离也比较短;
  • 应用场景:适用于工业环境,无线传感器及医疗场景

(4)UWB超宽带技术

  • 优点:安全性高频段较为干净,没有其他频段的干扰。
  • 缺点:功耗高;
  • 应用场景:在高精度定位的场景下应用更多;

图1-2 近距离通信协议对比:
WeiyiGeek.


(5)蜂窝网络

  • 运营商提供的4G网络生活中应用最多的,甚至超过Wi-Fi。
  • 标准:GSM / GPRS / EDGE(2G),UMTS / HSPA(3G),LTE(4G) / 5G(目前发展中)
  • 频率:900/1800/1900 / 2100MHz。
  • 优点:适合长距离传输,速度都很可观,实施发送大量的数据。
  • 缺点:功耗较大,费用高。
  • 应用场景:只能应用于终端可自取电的物联网场景,如某公司的共享单车,利用太阳能电池板进行取电。
  • 范围:GSM最大35km; HSPA最长200公里
  • 数据速率(典型下载):35-170kps(GPRS),120-384kbps(EDGE),384Kbps-2Mbps(UMTS),600kbps-10Mbps(HSPA),3-10Mbps

(6) LPWAN 通信技术

  • 产生原因:在远距离场景下,如果终端不能解决供电问题,那么需要一种具有更低功耗,覆盖范围更大的技术来满足这个场景下的物联网通信需求,为了解决这个问题提出了LPWAN即低功耗广域网技术;
  • 分类:授权频段(EC-GSM、eMTC以及NB-IoT)和非授权频段(LoRa);
  • 优点:低速率、超低功耗、长距离、低吞吐、强覆盖;
  • 应用环境:针对物联网在长距离传输的场景下开发的,具体应用如:城区覆盖、远程抄表、井盖检测以及近海渔船检测等。

图6-1 LPWAN技术特点:
WeiyiGeek.

(7)EC-GSM 通信技术:

  • 产生原因:随着LPWAN的兴起,传统的GRPS应用于物联网的劣势愈发明显。
  • 2014年,3GPP研究项目提出,将窄带(200kHz)物联网技术 迁移到GSM上,寻求比传统GPRS高20dB的更广的覆盖范围,并提出五大目标:
    • 提升室内覆盖性能、支持大规模设备连接、减小设备复杂性、减小功耗和时延。到了2015年TSG GERAN #67会议报告表示,EC-GSM已满足5大目标。
  • 但随着R13 NB-IoT标准冻结之后,人们将更多精力投入到了重新定义的标准当中。

(8)eMTC 通信技术

  • 描述: eMTC的概念在R13中被正式命名,以前的R12被称为Low-Cost MTC,它是基于LTE演进的物联网技术。eMTC基于蜂窝网进行部署,用户设备通过支持1.4MHz的射频和基带带宽,可直接接入现有的LTE网络。
  • 功能:速率高(相较于GPRS、zigbee等)、可移动、可定位以及支持语音。

(9)NB-IoT 通信技术

  • NB-IoT全称为窄带物联网,其实是NB-CIoT和NB-LTE两者的融合。
  • NB-CIoT提出了全新的空口技术,较传统LTE网络改动较大,他满足于TSG GERAN#67会议上提出的五大目标,其亮点在于通信模块成本低于GSM及NB-LTE的模块。

  • NB-LTE则与现有的LTE兼容,特点是利于部署。在激烈的争论后终于对两者加以融合,形成了NB-IoT的技术标准。

  • 优点:更低的功耗可以直接部署于LTE网络,良好的兼容性降低了部署的成本,NB-IoT的终端模组基于电池的待机时间可达10年之久
  • 应用场景:共享单车,智能锁就采用了NB-IoT的模组,一方面是运营商的大力推广,另一方面也确实带来了价值。

(10)LoRa 通信技术

  • 介绍:LoRa全称是Long Range 与 NB-IoT齐头并进发展的,与之不同的是LoRa技术使用非授权频段。它是由Semtech公司采用和推广的一种基于扩频技术的超远距离无线传输技术,类比于Wi-Fi联盟,LoRa也有对应的LoRa联盟,旨为共同建立标准和规范,LoRaWAN就是这样的产物,旨在为具有特定功能的低功率WAN提供支持,以便在IoT,M2M和M2M中支持低成本移动安全双向通信智能城市和工业应用。
  • 频段:在中国LoRa可以使用的频段有两个:CN779-787以及CN470-CN510,由于CN779-787最大发射功率只有10dBm(10mW),并没有“实用”的价值,所以人们更青睐于CN470-CN510这个频段,它的最大发射功率可以达到17dBm(50mW)。
  • 优点:支持长距离传输,频谱成本低,低功率WAN提供支持;
  • 应用场景:LoRaWAN针对广域网(WAN)应用

图10-1 LoRa与NB-IoT对比:
WeiyiGeek.

LoRa与NB-IoT对比说明:

  • 基于成本的考虑 LoRa的模组单价在8-10美元左右,而且非授权频段也不需要支付额外的频谱成本,相比于NB-IoT而言,成本方面具有较大优势。

  • 在电池性能方面,由于NB-IoT在蜂窝授权频谱上工作,所以需要定时进行网络同步,会消耗相应的电量,而LoRa则无此担忧,但NB-IoT的这个特性也受到共享单车的热烈欢迎,可以基于此来做车辆的实时定位工作。

  • 从商业模式上来看,NB-IoT属于运营商建网,业务方不需要自己来考虑基站的部署,比较省心;但与此同时网络的质量、安全都是不可控的风险,且企业自身的增值也会受到一定阻碍。反观LoRa,属于企业自建网络,基站需自己部署,后续需自己运维、优化等,覆盖的点位、网络质量及安全等维度都要自己负责。

(11) NFC 通信技术

  • 介绍:NFC(近场通信)是一种技术,能够实现电子设备之间的简单和安全的双向交互,特别适用于智能手机,允许消费者执行非接触式支付交易,访问数字内容和连接电子设备,本质上它扩展了非接触式卡技术的能力,并使设备能够在距离小于4cm的情况下共享信息。
  • 标准:ISO / IEC 18000-3
  • 频率:13.56MHz(ISM)
  • 范围:10厘米
  • 数据速率:100-420kbps

(12)Z-Wave 通信技术

  • 介绍:Z-Wave是一种低功耗射频通信技术,主要用于诸如灯控制器和传感器之类的产品的家庭自动化;
  • 功能:针对数据速率高达100kbit /s的小数据数据包的可靠和低延迟通信进行了优化工作在1GHz频段;
  • 标准:Z-Wave Alliance ZAD12837 / ITU-T G.9959
  • 频段:工作在1GHz频段;频率900MHz(ISM)
  • 优点:不受WiFi和其他无线技术在2.4 GHz范围内的干扰,如蓝牙或ZigBee;支持全网状网络;扩展性强;
  • 范围:30m
  • 数据速率:9.6 / 40 / 100kbit / s


总结学习:
1.物联网技术协议没有一个能够成为真正的主流,对技术本身而言,没有绝对的完美;从业务出发,更是需要结合业务特点、商业模式去选择更适合的物联网技术。


0x03 物联网云平台介绍

A:什么是物联网云平台?
Q:接收硬件设备上报的数据,向硬件设备下发数据/指令,对数据进行转发/分析/计算机/显示、管理设备;
WeiyiGeek.


以乐鑫云为例(ESP8266-WIFI开发模块)

http://iot.espressif.cn/     #北京时间
http://iot.espressif.com/ #格林尼治标准时间

产品:多个设备的集合;
设备:云下设备对应的【云端设备】;

什么是云下设备?

  • 真实存在的硬件设备 / 模拟器模拟设备(TCP、UDP助手)

什么是云端设备?

  • 在云平台中与云下设备进行对应的虚拟设备;

我们在云平台中只能创建【云端设备】,正常情况下需要有【云下设备】来对应我们创建的【云端设备】;参考ESP8266 SDK Iot_demo指南;

  • 云下设备 在与乐鑫云平台建立网络连接后,只需要安装乐鑫云平台规定好的数据格式,来收发网络数据;
  • 云下设备 就能在与【乐鑫云平台】进行交互,实现【设备接入物联网云平台】
    【注意】:为了验证设备/保护数据,一般情况下,物联网平台需要进行鉴别设备身份(设备密匙、证书);

Q&A
Q:什么是SDK?什么是SDK编程?
A:SDK,Software Development Kit 软件开发包,就是一个文件夹中,存放了SDK编程所需要的外设驱动库,WIFI配置库,连接文件等等;SDK编程:在特定编译环境下,使用SDK软件开发包,进行ESP8266编程开发;

Q:什么是API?
A:API == Application Programming Interface 应用程序编程接口;是一些预先定义的函数,并提供函数接口;开发人员在无需访问源码或者理解内部工作机制的情况下(只需要看他是做什么的),直接调用该函数实现其函数功能;

Q:什么是心跳包?
A:当网络连接TCP建立后,如果云下设备长时间未和【物联网云平台(服务器)】进行通信,服务器将会断开此网络连接TCP,但是很多情况下云下设备比较长时间才会发一次数据,
为了不让云平台断开与云下设备的网络连接TCP,云下设备每隔一定的时间,就要向云平台发送消息;

Q:如何选择云平台进行MQTT协议连接?
WeiyiGeek.

Q:什么是实例与规则引擎显示?
A:设备接入Iot Hub服务实例,每一个实例代表一个完整的物接入服务;
WeiyiGeek.

Q:阿里云平台介绍?
A:2018/6/29,阿里云物联网套件正式更名为【阿里云物联网平台】;还有阿里云Linkdevelop平台;
WeiyiGeek.