如何成功开发一款物联网应用

如何成功开发一款物联网应用,第1张

拿工业物联网说一下,工业有机器、人、仓库、物料、财务,物联网就是将这些物体转换为数据,通过云端大数据处理后在管理人员的手机、电脑显示。

所以你需要软件团队(设计、前端、后端)把APP做出来;硬件团队(智能传感器)把数据采集回来;还需要云端服务器储存和处理大数据。

目前市面上基于物联网技术的MES做得好的有甲骨文公司、SAP公司,不过普遍比较贵。国内也有创业团队做的MES软件,比较符合国内制造产商的实际情况,花大价钱买一堆自己用不上的功能其实没有必要,满足自身管理需求更重要。有兴趣可以百度“哐哐智造”进行了解。

螺旋模型

它是一个综合了多种模型的特点形成的一种模型。
螺旋模型是瀑布模型与演化模型相结合,并加入两者所忽略的风险分析所建立的一种软件开发模型。螺旋模型是一种演化软件过程模型,它将原型实现的迭代特征与线性顺序模型中控制的和系统化的方面结合起来,使软件的增量版本的快速开发成为可能。在螺旋模型中,软件开发是一系列的增量发布。
螺旋模型沿着螺线进行若干次迭代,每次迭代都包括制定计划、风险分析、实施工程和客户评估四个方面的工作。螺旋模型强调风险分析,使得开发人员和用户对每个演化层出现的风险有所了解,继而做出应有的反应。因此,特别适用于庞大、复杂并具有高风险的系统。
与瀑布模型相比,螺旋模型支持用户需求的动态变化,为用户参与软件开发的所有关键决策提供了方便,有助于提高软件的适应能力,并且为项目管理人员及时调整管理决策提供了便利,从而降低了软件开发的风险。在使用螺旋模型进行软件开发时,需要开发人员具有相当丰富的风险评估经验和专门知识。另外,过多的迭代次数会增加开发成本,延迟提交时间。

要实现远程控制,那首先你的硬件设备要有能访问的ip,如果公网访问就是公网,局域网访问就局域网ip即可。
看你想实现什么控制,比如简单的开关机之类的,可以用简单的>从智能电灯到共享单车、从智能井盖到智慧农业,物联网的行业跨度非常大。毫不夸张的讲,所有行业都和物联网有关联。
应用场景分散化,技术集中化
物联网的应用场景,总结下来很一致:采集+传输+计算+展示(或反向)
物联网终端采集数据、把数据传输给服务器、服务器存储和处理数据、把数据展示给用户。
例如智能水表,水表采集到用水数据、无线传输给服务器、服务器存储并计算、展示给用户查询和缴费。
再例如共享单车,正向过程是:单车获取GPS位置数据、通过2G网络上报给服务器、服务器记录单车位置信息、用户在APP端查看单车位置。反向过程是:用户向服务器发出开锁的要求、服务器通过2G网络把开锁指令下发给单车,单车执行开锁指令。
大大小小的物联网应用,都是基于正向数据采集和反向指令控制这两个流程来实现的。
终端处理器的选择
物联网终端,主要是采集数据和执行指令。采集的数据如温湿度、位置、语音、图像视频等。执行的指令通常是开关和动作,如电机控制、内容显示等。
简单的数据指令,一般采用单片机。
语音图像视频和内容显示等复杂数据,一般采用多核ARM的Linux或Android处理器。
对于物联网行业初学者,可以先从单片机开始了解,像智能锁、水表、路灯控制、智能家居等清一色都是单片机内核的。
传输方式的选择
物联网,肯定要联网。联网方式有这些:
低功耗近距离,用BLE或Zigbee。
低功耗远距离,用NB-IOT或2G
大数据近距离,用WIFI
大数据远距离,用4G网络
网络布局上,远距离的网络直接连基站,无需自己布设网络节点。而近距离的网络都需要有一个网络节点,先把终端数据传给节点,节点再接入广域网。
远距离传输比近距离传输的价格更贵、功耗更高,合理利用远近搭配,能够有效降低物联网终端的成本。
例如原本的摩拜单车采用2G网络解锁,必须要保持数据长连接或使用下行短信开锁,功耗高费用大,而青桔单车抛弃了远程解锁,直接使用手机的蓝牙解锁单车,节省了数据流量、降低了功耗、还能提高开锁速度。
再例如农业物联网,在一个大范围内的农田中布设多个土壤传感器,如果都使用2G网络上报数据,也存在终端成本高、数据流量大的问题。而如果采用自组网的方式先构成局域网,再统一从一个2G数据节点和服务器对联,总体成本就会降低一些。
云服务的设计
物联网的云服务器和APP的设计,和互联网基本是一致的,JAVA、PHP、ASP都可以用来做物联网的后台处理。
移动互联网是“人--服务器--人”的架构,物联网是“物--服务器--人”的架构,两者本质是相同的,物联网终端设备也采用TCP、>

开发之间的重要问题

这些问题对物联网应用开发人员很重要。哪一种才是最好的方法,来构建一个“物联网应用”,它可以做很多事情,从远程控制家庭应用到对引擎改动机制造商发送通知,而这一需要维护服务的引擎有个能在世界任何一个地方?开发人员要具备怎样的技能?要从哪里先开始?

物联网应用开发的始占在于它本身。这些边缘设备通常没有屏幕(尽管并非总是如此)、处理器功耗低,搭载的是某种嵌入式 *** 作系统,使用一个或多个通信协议进行交流(通常是无线)。这些东西可能直接与网络、相邻事物和网络网关相连,一般外形就是一个盒子带一些闪闪发光的灯。

系统的下一层即集成层是软件和基础设施,运行在企业数据中心或云中,来从各种事物中接收和管理数据流。运行在集成层的软件通常也负责管理这些事物,必要时更新固件。

接下来就分析层,用于管理并处理数据。最后,还有一个终端用户层,这一层上应用程序用于用户之间交流。这些可能是企业应用、可能是网络应用,也可能是移动应用。

如果你正在想办法构建物联网应用,最后两层将会是你接触最多的。作为开发人员,你可能没有工具处理这些边缘设备或网关,或者没有适应集成层的能力。

这也就是为什么说构建应用程序要从已经就绪的“物联网平台”开始是有道理的了。这些平台通常包含集成层,这一层承载着以时间为序列输入的数据,以及分析层、自动精简配置,激活和管理功能,实时消息总线和建立其上的平台和应用之间的通信API。

现在市场上有许多公司都在提供这类平台。这有Xively、Mnubo、BugLabs和ThingWorx,他们都有能力与不同的制造商产生的大量“事物”进行沟通。

还有些比较有名的公司,如微软的智能系统服务,和企业软件厂商如SAP的物联网解决方案,这些厂商都在他们的产品中增加了物联网功能。

物联网无非就是几个方面,一个是硬件的嵌入式开发(C语言),或者叫下位机。一个是服务端用来接收处理数据(上位机),上位机又分后台服务、桌面软件、WEB网站和移动设备(如手机),大致如下:
C++:用作后台服务、桌面软件。不适合快速开发,现在用的较少。
C#:后台服务、桌面软件、WEB。
JAVA:后台服务、WEB、安卓开发,可以做桌面软件但不适合。
Object-c/swift:仅用于mac和ios设备
你根据你的最终的需要来选择就行了,比如最终你上位机一定需要安卓,那就是java了(注:java和C#有90%的语法是相近的,二者在语法方面可以很容易切换)

物联网中最常用的编程语言,即Java,C,C ++,Python,JavaScript和Go。
Java:物联网技术最流行的编程语言
Java有多个应用领域,从后端编程到Android的移动应用。根据 Eclipse基金会执行的2017年物联网开发者调查,Java首次提供了用于物联网开发的编程语言列表,专门用于网关和云。
使用Java进行物联网开发的一个主要好处是便携性。Java没有任何硬件限制,这意味着您可以在计算机上编写和调试Java代码,并将其部署到几乎任何运行Java虚拟机的设备上。出于这个原因,许多公司选择聘请Java开发人员进行物联网项目。
C:嵌入式设备的关键编程语言
C编程语言接下来成为物联网IoT堆栈最喜欢的语言。然而,根据Eclipse基金会的说法,它被认为是受限设备开发的领先技术。
该编程语言提供对低级硬件API的直接访问。由于其与机器语言的相似性,C非常快速且灵活,使其成为处理能力有限的物联网系统的完美选择。
C ++:Linux的第一语言
与其前身C一样,C ++已广泛用于嵌入式系统开发。但是,C ++的主要优势在于处理能力,在任务更加复杂时使其成为C的有用替代方案。
C ++最适合编写硬件特定的代码。它可与Linux,第一大物联网技术 *** 作系统配合使用。但是,与Java相比,它具有有限的可移植性。
Python:面向数据的物联网系统的解决方案
作为最受欢迎的网络编程语言之一,以及科学计算的前沿技术,Python在物联网开发中也获得了巨大的推动力。 对于数据密集型应用程序,Python是一个不错的选择,特别是在管理和组织复杂数据时。
JavaScript:事件驱动物联网应用的最佳解决方案
根据年度StackOverflow开发者调查显示,JavaScript是过去五年来最流行的编程语言之一,是现代Web开发中的核心技术。
在许多其他应用领域中,JavaScript是物联网编程语言中最常用的构建事件驱动系统。它可以管理连接设备的大型网络,并且在需要处理多个任务而无需等待其他任务完成时可以胜任。JavaScript对IoT的主要优势之一是非常节约资源。
Go:坚固的技术堆栈为复杂的物联网网络提供动力
Go是一款开源编程语言,由Google创建。尽管它不能像语言那样拥有同样广泛的用途,但我们之前专注于这一点,它是在您的物联网系统内建立通信层的强大技术。
Go语言关于物联网的主要优势是并发性和同时运行多个进程(数据输入和输出)的能力。这使得构建由多个传感器和设备组成的复杂IoT网络变得更加容易。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/13105379.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-30
下一篇 2023-05-30

发表评论

登录后才能评论

评论列表(0条)

保存