IoT 入门必备的关键概念和技能

IoT 101:IOT 开发入门

本文是面向 IOT 开发者的快速入门指南"IOT 101"学习路径的一部分。

第四次工业革命,也称为工业 4.0,是自 18 世纪工业革命以来的第四次重大工业革命。它之前还有三次工业革命:第一次是煤炭和蒸汽技术;第二次是电力技术和汽车的发明;第三次是被称为物联网 (IoT) 的计算爆炸。IOT 是工业 4.0 的基石,它利用互连设备网络通过互联网传送数据。IOT 广泛应用于医疗、制造、汽车、零售、楼宇自动化等多个行业。

IOT 的价值在于捕获大数据,进而用于驱动决策和提高操作效率。随着 IOT 的迅速采用,IOT 改变了我们的生活和工作方式,对技术熟练的 IOT 开发者的需求也随之增加。

希望充分利用物联网机会的开发者应该培养一系列关键主题领域的技能,这些领域包括:

  • 硬件
  • 网络
  • 应用程序设计
  • 应用程序开发
  • 安全性
  • 数据和人工智能 (AI)

硬件

IOT 的核心是互联设备。其中包括与其他设备(机器对机器)连接的数字优先设备,以及在传感器上嵌入嵌入式电路的物理优先设备,该传感器将信号传输到指定的目的地 - 仪表板、远程监控平台或其他数据接收中心点。数据包括图像、文本和其他参数,用于提供信息。

这些设备连同它们的传感器和特性要求开发者对硬件设计有一点了解。互联性和整体网络配置需要网络设计技能。这两种类型的设计都可以使用工程设计软件,并与其他软件集成,形成一个由设备、机器和系统组成的高度智能化网络,它们彼此协调来实现设计目标和提供智能信息。

设备设计包括流程和存储能力。设备可以使用微控制器,也可以使用更精细的单芯片系统 (SoC),后者将更多的部件(如 CPU 和 I/O 设备)与集成电路相结合。

IOT 设备是嵌入式的,必须根据预期设计目的的显著特征进行设计。这些特征包括:

  • 环境条件
  • 要使用的传感器类型
  • 要聚合的数据量
  • 设备设计所需的功率、范围和速度。
  • 设备的单位成本及其总体拥有成本

IOT 设备的设计可以使用诸如 Arduino 或单板计算机(比如 Raspberry PI)这样的平台进行原型设计,并在稍后阶段开发定制的印刷电路板 (PCB)。

使用这些平台设计原型需要掌握电路设计和微控制器编程技能,还需要熟悉硬件通信协议,比如常用来在微控制器与相连的传感器和执行器之间进行通信的串行、I2C 或 SPI 协议。嵌入式程序通常是使用 C++ 或 C 开发的,而在 IoT 设备原型设计方面,Python 和 JavaScript 变得更受欢迎。

网络

连接是 IoT 的另一个重要方面,它使设备能够相互通信,还使得设备能与在云中运行的应用程序和服务进行通信。由于互连设备的巨大数量和网络设计决策可能造成的大规模影响,网络设计和管理是 IoT 中必不可少的技能。

例如,网格网络是一种非常容易扩展且可靠的网络拓扑设计,IoT 中通常会采用它;但是,网格网络的分布式性质使系统变得更复杂,也增加了网络中每个设备的延迟和功耗需求。

除了网络设计之外,开发者还应掌握网络标准、协议和技术方面的实用知识。这些知识包括消费者应用程序中使用的 Wi-Fi、低功耗蓝牙、Zigbee、蜂窝技术、RFID 技术,以及 LoRa 等低功耗广域网 (LPWAN) 技术。LPWAN 还包括 SigFox 和 NB-IoT(窄带 IoT),它们提供了更低成本、更低功耗、更长距离的无线连接,更适合大规模的工业级 IoT 应用。

应用程序设计和开发

Web 和移动应用程序提供了用户界面来与 IoT 设备进行交互,并使用来自这些设备的数据。但是,IoT 设备可能拥有自己的用户界面 (UI)。基于语音和手势的界面在 IoT 中很受欢迎,尤其是对于家庭自动化,与此同时,增强现实接口为覆盖整个物理世界的 IoT 数据提供了令人兴奋的可能性。因此,UI 和 UX 设计技能是 IoT 领域目前最热门的技能。

Web 和移动应用程序是使用高级语言开发的,其中 Java、Swift 和 Node.js 是开发 IoT 应用程序的最主要语言。GPS 编程技能尤为重要,因为包括可穿戴设备和智慧汽车在内的许多 IoT 应用都需要感知位置。开发者应时刻关注可用来快速构建原型的新兴框架和开发工具包,以及一些 IoT 平台,这些平台提供了基础架构和工具来帮助自动化 IoT 应用程序的构建、部署、管理和操作。

安全性

无论何时讨论 IOT,网络安全性都至关重要。IOT 设备很容易受到安全漏洞的影响。许多企业报告称遭到了攻击。其他人很可能在不知情的情况下受到了攻击。

运营技术(IOT 设备及其网络)面临着巨大的安全风险。然而,这种风险往往是通过普通 IT 部门网络安全措施的组合解决的。这可能并不足够。使用 IOT 的组织应针对运营技术采用与组织内其他网络不同的独特策略。这应该包括针对勒索攻击的演习、事件响应、灾难恢复计划以及具体策略。

必须在系统设计的每一步内置安全保护,而不是在事后进行添加。与安全性密切相关的关键问题包括数据伦理、隐私和责任。

IOT 的安全考虑因素至少应包括:

  • 端点访问
  • 必要时进行数据加密
  • 适当的身份验证

随着每天数以百万计的新设备进入 IOT 领域,攻击的入口也越来越多。IOT 设备已经被用来发起分布式拒绝服务 (DDoS),以及其他严重的破坏性攻击。

有关 IOT 安全性指导,建议阅读 美国国家标准与技术研究院 (NIST) 针对改善关键基础架构网络安全的框架

在如此紧迫的形势下,安全工程技能开始在 IoT 中备受关注。这些技能包括威胁评估、伦理攻击和加密,以保证数据完整性、保护网络架构和应用程序,以及事件监控、活动记录和威胁情报。

数据与 AI

人工智能 (AI) 已经成为 IOT 网络的固有组成部分。 这是由于数据激增,对这些数据应用更好的个性化算法,以及设备功能和存储能力的提高。

智能大数据分析涉及到应用从数据挖掘、建模、统计、机器学习和 AI 中获得的认知计算技术。可将这些技术实时应用于传感器数据流上,以便执行预测分析或自主决策来响应传入的数据,也可以将它们应用于历史数据,以便识别数据中的模式或异常。

许多 IoT 设备会生成延迟或时间敏感的数据,所以必须筛除或丢弃无关数据。IoT 开发者应掌握的关键的数据分析技术和平台包括 Hadoop、Spark,以及 NoSQL 数据库。

不论现在还是未来,IOT 开发者都需要掌握更多的机器学习和人工智能技能。

您准备好开始开发 IoT 解决方案了吗?

开发 IoT 应用程序所涉及的技术正在快速演化。开发者应准备好培养各种各样的技能,保持敏捷并乐于适应新流程、平台和工具。

为了帮助您轻松入门 IOT 开发,您可以使用IOT 101 学习路径中的文章和教程。

本文翻译自: Key concepts and skills for getting started in IoT (2020-01-30)

我来评几句
登录后评论

已发表评论数()

相关站点

热门文章