物联网(IoT)是一个全球性的互连物理设备系统,通过互联网传输数据,物联网正在改变我们的生活和工作方式。物联网设备已经广泛应用于医疗保健、制造、汽车、零售、楼宇自动化等多个行业。许多企业正在利用来自连接设备的数据来提高运营效率并改善他们为客户提供的价值和体验。随着物联网解决方案的采用迅速增长,连接设备的数量达到数十亿,对熟练使用物联网解决方案的开发人员的需求持续增长。想要利用物联网机会的开发人员应该掌握一系列主题领域的一系列关键技能,包括:硬件网络应用程序设计应用程序开发安全商业智能和数据分析机器学习和人工智能(AI)1。硬件物联网的核心是数十亿个互连的“事物”或连接到感测和控制物理设备的传感器和执行器的设备。为这些设备开发硬件需要电气工程技能,而物理设计则需要工业设计和CAD技能。除了需要网络连接来传输收集的数据之外,这些设备通常还需要一些基本的处理和存储功能,这些功能由微控制器或片上系统(SoC)集成电路提供。IoT设备是嵌入式设备,因此每个设备的电路设计必须考虑操作限制,例如:环境条件连接到设备的传感器和执行器的类型和数量要收集和传输的数据量大小、功率和范围单位成本其他物联网设备可以使用现成的微控制器平台(例如Arduino)或单板计算机(例如RaspberryPi)进行原型制作,然后在后期开发定制印刷电路板(PCB)。使用这些平台进行原型设计需要电路设计和微控制器编程方面的技能,以及熟悉串行、I2C或SPI等硬件通信协议,这些协议通常用于微控制器与连接的传感器和执行器之间的通信。嵌入式程序通常使用C++或C开发,而Python和JavaScript在物联网设备原型设计方面变得越来越流行。2.网络连接是物联网的另一个重要方面。它使设备能够相互通信以及与在云中运行的应用程序和服务进行通信。由于互连设备的数量庞大以及网络设计决策的潜在大规模影响,网络设计和管理是物联网中的基本技能。例如,网状网络是一种非常可扩展和可靠的网络拓扑设计,在物联网中经常被采用;然而,网状网络的分布式特性使系统更加复杂,并增加了网络中每个设备的成本。延迟和功率要求。除了网络设计之外,开发人员还应该具备网络标准、协议和技术的应用知识。这些知识包括客户端应用程序中使用的wifi、低功耗蓝牙、Zigbee、蜂窝和RFID技术,以及LoRa等低功耗广域网(LPWAN)技术。LPWAN还包括SigFox和NB-IoT(窄带物联网),提供更低成本、更低功耗、更远距离的无线连接,更适合大规模工业物联网应用。3.应用程序设计和开发Web和移动应用程序支持用户界面与IoT设备交互并使用来自这些设备的数据。但是,物联网设备也可能有自己的用户界面(UI)。基于语音和手势的界面在物联网应用中很受欢迎,尤其是家庭自动化,而增强现实界面为在物理世界中叠加物联网数据提供了令人兴奋的可能性。因此,UI和UX设计技能是目前IoT中最热门的技能。Web和移动应用程序是使用高级语言开发的,其中Java、Swift和Node.js是开发物联网应用程序的最主要语言。GPS编程技能尤为重要,因为许多物联网应用(包括可穿戴设备和智能汽车)都需要位置感知。开发人员应密切关注用于快速原型制作的新兴框架和开发工具包,以及提供基础设施和工具以帮助自动化构建、部署、管理和运行物联网应用程序的物联网平台。4.物联网安全安全是物联网中最重要的问题之一。安全性必须构建在系统设计的每一步中,而不是事后添加。与安全密切相关的关键问题包括数据伦理、隐私和责任。物联网最大的安全挑战是需要保护:对设备及其数据的物理和网络访问与设备通信的应用程序和服务网络本身每天连接数百万个新设备,每天都在增加潜在攻击点的数量。受损的IoT设备用于发起分布式拒绝服务(DDoS)攻击。然而,一旦设备失控,如果没有既定的安全和设备管理实践或安全基础设施,就很难部署固件更新来修复安全问题。鉴于这种紧迫性,安全工程技能开始在物联网中获得关注。这些技能包括威胁评估、道德黑客攻击、数据完整性加密、保护网络基础设施和应用程序,以及事件监控、活动日志记录和威胁情报。5.商业智能和数据分析随着物联网设备传输的数据量越来越大,大数据已经成为真正意义上的海量数据。开发人员需要一流的数据管理技能来安全可靠地获取、存储和查询源自这些设备的大量异构数据。许多物联网设备会生成延迟或时间敏感的数据,因此必须过滤或丢弃不相关的数据。物联网开发人员应掌握的关键数据分析技术和平台包括Hadoop、Spark和NoSQL数据库(如MongoDB)。6.机器学习和人工智能(AI)为了交付价值并理解物联网设备生成的海量数据,物联网开发人员最终必须掌握机器学习和人工智能技能。智能大数据分析涉及应用源自数据挖掘、建模、统计、机器学习和人工智能的认知计算技术。这些技术可以实时应用于传感器数据流以执行预测分析或自主决策以响应传入数据,或应用于历史数据以识别数据中的模式或异常。您准备好开始开发物联网解决方案了吗?开发IoT应用程序所涉及的技术正在迅速发展。开发人员应该准备好发展各种各样的技能,保持敏捷并愿意适应新的流程、平台和工具。
