物联网是新一代信息技术的重要组成部分,也是信息化时代发展的重要力量。随着移动互联网增速的放缓,物联网无疑是当前发展最为火热的科技行业之一。
依靠简单的语法、丰富的库、高效的开发效率,Python覆盖了越来越多的IT领域,如科学计算、服务器后端、网络爬虫、自动化运维等,成为目前上升势头非常强劲的编程语言。Python在运行Linux系统的嵌入式设备中也得到了应用,如在开源硬件树莓派中,Python的使用不仅发挥了强大的库功能,而且通过扩展的IO库可以访问底层硬件,操作硬件不再是C语言的专利。计算能力弱、存储空间小的单片机领域也有多个可以运行的Python项目,包括历史悠久的PyMite及其衍生品Pymbed。其中,MicroPython迭代最迅速,拥有自己的Python虚拟机和解释器,能够在多款单片机上运行。
最火的编程语言结合最火的行业,当Python邂逅物联网时,会发生怎样的故事?碰撞出怎样的火花呢?
自物联网概念被提出以来,各大芯片公司、运营商、互联网巨头等均大力投身其中。经过多年的发展,随着NB-IoT、eSIM等关键技术的成熟,共享单车等物联网应用爆发,真正的万物互联已经到来,物联网大大改变了人们的生活方式,正在成为下一个科技浪潮。
物联网作为一个系统网络,与其他网络一样,也有内部特有的架构。大体上来说,物联网由云、管、端等三大部分组成:云,即云平台,负责真实世界数据的存储、展示、分析,是物联网的最上层,是中枢和大脑,是连接人和物的纽带;管,即管道,是物联网的网络核心,一切数据和指令均靠管道来传输,是物联网的中间层;端,代表终端设备,负责真实世界的感知和控制,是物联网的最下层。
图1.1展示了物联网组成架构。由图可知,终端是多种软件、硬件的集合,是具有感知、控制、通信能力的智能硬件,具体包含如下部分。
处理器。 处理器是物联网终端设备的中枢,所有的外围设备均需要连接在处理器的IO上,数据采集、指令下发、数据传输等全部由处理器控制。根据应用场景复杂程度的不同,处理器可以是一个8位的单片机,也可以是含有多核的运算能力非常强的CPU。
图1.1 物联网组成架构
存储器。 存储器是以单片机为核心的终端设备,并不是必需的,因为单片机本身就是运算器、RAM、ROM的集合,在ROM无法满足存储空间需求的情况下,才需要外接存储器,对于需要运行Linux等操作系统的终端设备,存储器是必不可少的,可用来存放操作系统的镜像、根文件系统、系统配置文件及用户数据等。存储器的种类有NAND Flash、NOR Flash、EEPROM、SD卡、TF卡等,根据需要选择即可。
通信芯片。 物联网终端设备在上传数据、接收控制指令时都需要与后台通信,通信芯片就是提供该能力的桥梁。
操作系统。 物联网针对自身特性设计的专用操作系统可提升开发和运行效率。
传感器。 传感器是将真实世界的信息转化为计算机(PC)信号的转换器,是计算机能够感知真实世界的关键。传感器种类繁多,包含红外传感器、温湿度传感器、光照强度传感器、气体传感器、烟雾传感器等。
多媒体。 现实世界是丰富多彩的,音频、图片、视频等文件的采集均需要多媒体设备的支持,如声卡、摄像头等。
执行器。 执行器是控制电路、机械部件,如继电器、电机等,计算机通过执行器控制真实世界的物体。
人机交互。 终端设备有时需要与人直接交互,此时就需要屏幕等显示设备及按键、触摸屏、语音输入等输入设备的支持。
管道包含网络基建和通信协议部分。
网络基建。 物联网的设备分散、应用场景复杂,决定了单一网络无法满足所有需求,需要多种网络类型从功耗、延时、带宽、容量、覆盖面、稳定性等方面支持不同场景。
Wi-Fi、有线网络具有速率和稳定性方面的优势,覆盖率不高,在某些场景下,设备无法通过它接入网络。移动网络相比Wi-Fi、有线网络在覆盖率上虽有大幅提升,但在地下、偏远地区等特殊区域依然无法保证100%的覆盖。为了弥补覆盖问题,ZigBee、蓝牙以组网的方式构建局域网,虽通过网关的中继功能接入互联网,但通信距离、终端功耗等方面的能力并不是最优的。LoRa、NB-IoT等低功耗广域网虽能够满足物联网设备对低功耗、通信距离长的要求,但通信速率很低,无法满足大数据量的传输。
可见,多种网络通信方式互有所长,相互协作、弥补,共同构成了物联网的网络基础建设。
通信协议。 通信协议可满足物联网不同应用场景的通信效率和通信安全。
HTTPS是HTTP的安全版,基于SSL,保证安全的HTTP数据传输。Websocket替代HTTP轮询,可提供更加高效的全双工通信方式。MQTT专为物联网设计,基于发布/订阅消息模式,解除应用程序耦合,对负载内容可屏蔽消息传输,具有三种消息发布服务质量等级。CoAP是基于REST架构,专为资源受限的物联网设备定制的。
云平台可分为服务层和应用层。服务层可提供基础、共有的服务,负责维护物联网终端设备的接入,存储和分析海量的传感器数据,提供物联网通信的安全保障,通过智能、快速的运算,加速系统的运行效率。在服务层提供的基础功能之上,应用层可实现丰富多彩、五花八门的具体业务,如共享单车、智能家居、智慧农业等方面的应用。
物联网是一个非常复杂、庞大的体系,需要多方面共同构建,如需要半导体厂商提供处理、存储等芯片,需要运营商建设网络,需要互联网企业提供后台服务,需要集成商进行整合。
随着手机、平板电脑等移动设备数量增速的放缓,ARM、NXP、TI、高通等半导体厂商均将发力点转移到物联网领域,打造针对物联网的专业芯片。
中国移动推出了多款eSIM 2G基带芯片,更便于提供物联网海量设备的开卡服务。此外,中国移动还发布了多款NB-IoT通信模组,支持eSIM技术和OneNet平台协议,适合物联网终端无线连接,有效地解决了当前物联网的诸多问题。
ARM Mbed OS :ARM公司专为物联网中的“物体”设计的开源嵌入式操作系统,主要支持ARM Cortex-M微控制器。
Contiki OS :开源物联网操作系统,可将小型、低成本、低功耗的控制器连接到互联网,是构建复杂无线系统的强大工具箱。
Zephyr :可扩展的实时操作系统,支持多种硬件结构,针对资源有限的设备进行了优化,以安全性为基础构建,由Linux基金会托管。
LiteOS :华为公司的操作系统,是轻量级的开源物联网操作系统、智能硬件使能平台,可广泛应用于智能家居、穿戴式、车联网、制造业等领域,使物联网终端的开发简单、互联更加容易、业务更加智能、体验更加顺畅、数据更加安全。
Ostro :基于Linux且为物联网智能设备量身定制的开源操作系统,包含Linux参考设计、软件包安装和管理机制,可以让智能设备的连接潜力扩展到最大。Ostro项目不但能提供管理众多智能设备的工具,最重要的是还能保障物联网世界的安全,支持Node.js、Python和C/C++等多种应用编程框架。
Android Things :Google推出的全新物联网操作系统,前身是物联网平台Brillo,除了继承Brillo的功能,还加入了Android Studio、Android SDK、Google Play服务及Google云平台等Android开发者熟悉的工具和服务,支持物联网通信协议Weave,可让所有类型的设备能够连接云端并与其他服务,如Google Assistant交互。
LoRa是LPWAN(低功耗广域网)中的一种通信技术,是美国Semtech公司采用和推广的一种基于扩频技术的超远距离无线传输方案。这一方案改变了以往关于传输距离与功耗的折中考虑方式,是一种能够简单实现远距离传输、长电池寿命、大容量的系统,进而扩展了传感网络。目前,LoRa主要在全球免费频段运行,包括433MHz、868MHz、915MHz等。LoRa联盟是由Semtech牵头成立的一个开放、非营利组织,如IBM、思科、法国电信Orange等重量级的厂商。产业链中的每一个环节均有很多企业参与。开放性、竞争与合作的充分性都促使了LoRa的快速发展和生态繁荣。
ZigBee是一种近距离、低复杂度、低功耗、低速率、低成本的双向无线通信技术,自组网、自恢复能力强,可用于井下定位、室外温湿度采集、污染采集等。ZigBee的安全性较高,安全性源于系统性的设计:采用AES加密,加密程度相当于银行卡加密技术的12倍;采用蜂巢结构组网,每个设备均通过多个方向与网关通信,保障了网络的稳定性;每个设备具有无线信号中继功能,可以接力传输通信信息并将无线距离扩大到1000m以外;网络容量理论节点有65300个;双向通信能力不仅能发送命令到设备,同时设备还能将执行状态和相关数据反馈回来;采用极低的功耗设计,可以全电池供电,在理论上,一节电池能使用2年以上。
NB-IoT聚焦低成本、广覆盖的物联网市场,是一种可在全球范围内广泛应用的新兴技术,具有覆盖面广、连接多、速率低、成本低、架构优等特点。NB-IoT使用License频段,可采取带内、保护带或独立载波等三种部署方式,可与现有的网络共存。NB-IoT的一个扇区能够支撑10万个连接,功耗仅为2G的1/10,终端模块的待机时间可长达10年。
目前,LoRa网络已经在世界多地进行试点或部署:LoRa基站覆盖了京杭大运河的1300km流域;美国网络运营商Senet在北美进行了LoRa基站的建设;法国电信Orange宣布在法国建立LoRa网络;荷兰皇家电信Kpn在新西兰建网;印度Tata在Mumbai和Delhi建网;Telstra在墨尔本进行试点。
中国移动在江西鹰潭开通了多个NB-IoT基站,计划在智慧城管、智慧路灯、智慧停车、智慧物流、智慧农业等领域率先开展NB-IoT业务的应用。中国电信的NB-IoT业务已经全面展开,领先的4G网络实现全国覆盖。中国联通一直致力于物联网的发展,建成以上海为代表的目前世界上最大规模的NB-IoT商用城域网络,实现了上海城域全覆盖,并已经在全国多个城市同步推进测试工作。
为了满足物联网通信的特殊性,IBM推出了专用的通信协议MQTT。该协议支持所有的平台,几乎可以把物联网所有的物体连接起来,专门针对计算能力有限且工作在低带宽、不可靠网络的远程传感器和控制设备设计。目前,MQTT已经在物联网行业广泛使用。
CoAP是受限制应用协议的代名词,非常小,运行在UDP协议之上,最小的数据包仅有4个字节。对于小设备(256KB Flash、32KB RAM、20MHz主频),CoAP是一个很好的解决方案。
目前,市面上为物联网专属打造的云平台很多,可方便物联网终端设备的接入及数据的呈现,比较大的云平台有如下几种。
OneNet是中移物联网打造的物联网云平台,目前设备的接入量已达8700万个,可提供海量链接、数据存储、在线管理、消息分发、原子服务、事件触发等,支持多类型标准AP I和丰富的终端协议,满足海量设备的高并发接入;分布式结构、完备的数据接口和多重保障机制可实现高效的资源管理和安全的数据存储;具有在线设备的监控管理、在线调试、数据统计分析和实时控制功能;可通过消息转发、短彩信推送、信息推送等方式快速通知应用域,建立信息通道;汇聚中国移动短彩信、位置、IaaS资源等优质原子服务;自定义事件触发条件,云端实现事件级别数据处理,减轻业务平台处理压力。
天工是基于百度云构建的、融合百度大数据和人工智能技术的“一站式、全托管”智能物联网云平台,可提供物接入、物解析、物管理、规则引擎、时序数据库、机器学习、MapReduce等一系列物联网的核心产品和服务,帮助开发者快速实现从设备端到服务端的无缝链接,高效构建各种物联网的应用,如数据采集、设备监控、系统维护等。
通过持续的技术创新和不断积累的行业经验,天工日益成为更懂行业的智能物联网云平台,在工业制造、能源、零售O2O、车联网、物流等行业均提供了完整的解决方案。同时,基于天工设备认证服务,还建立了互信、共赢的生态合作机制,帮助行业快速实现了万物互联的商业价值。