

英语原文共 17 页,剩余内容已隐藏,支付完成后下载完整资料
有关此出版物的讨论,统计信息和作者个人资料,请访问:https://www.researchgate.net/publication/298908290
把Arduino带到物联网:ASIP编程模型
计算机通信中的应用·2016年3月
DOI:10.1016 / j.comcom.2016.03.01
5位作者,包括:
Filippo Palumbo
意大利国家研究委员会36出版物160引文
Franco Raimondi
英国米德塞勒斯大学84出版物1,204引文
Nick Weldin
英国米德塞尔斯大学6出版物22引文
本出版物的一些作者也在研究这些相关项目:
FP7 DOREMI:老年人赋权的生活方式的下降,营养不良和疾病的减少管理和社会包容观察项目
证明理论基础,信任视图项目的验证和应用
本页面后的所有内容都是由Filippo Palumbo于2016年3月23日上传的。
用户已请求增强下载的文件。 所有带蓝色下划线的文本引用都添加到原始文档中,并链接到ResearchGate上的出版物,让您可以立即访问并阅读。
接受手稿
把Arduino带到物联网:ASIP编程模型
Gianluca Barbon,Michael Margolis,Filippo Palumbo,Franco Raimondi,Nick Weldin
PII:S0140-3664(16)30074-3
DOI:10.1016 / j.comcom.2016.03.016
参考:COMCOM 5285
出现在:计算机通信
收到日期:2015年7月11日
修订日期:2016年1月31日
接纳日期:2016年3月8日
请引用本文为:Gianluca Barbon,Michael Margolis,Filippo Palumbo,Franco Raimondi,Nick Weldin,Arduino Take the Things of Things:the ASIP programming model,Computer Communications(2016),doi:10.1016 / j.comcom.2016.03.016
这是一个未经编辑的手稿的PDF文件,已被接受出版。 作为对我们客户的服务,我们提供这个早期版本的手稿。 手稿将在最终版本以最终形式出版之前进行编辑,排版和审查。 请注意,在生产过程中,可能会发现可能影响内容的错误,并且适用于期刊的所有法律免责声明。
把Arduino带到物联网:ASIP编程模型
Gianluca Barbon,Michael Margolis,Filippo Palumbo,Franco Raimondi,Nick Welding
格勒诺布尔大学阿尔卑斯大学,Inria,LIG,CNRS,法国。
计算机科学系,密德萨斯大学,伦敦,英国。
意大利比萨国家研究委员会信息科学和技术研究所。
意大利比萨大学计算机科学系
摘要
Arduino和其他微控制器被世界各地的制造商广泛使用。 Arduino的易用性和大量的传感器和库可以用来扩展这些控制器的基本功能和驱动人气。过去十年,“物联网”的软件工程解决方案激增,但在某些情况下,这些解决方案需要比简单的,资源有限的微控制器更高级的计算资源。
令人惊讶的是,尽管复杂的硬件 - 软件系统的基本元素,似乎没有简单和灵活的方式来(1)扩展微控制器的基本能力,和(2)协调控制器的微网络的互连。事实上,在每个应用程序的基础上添加了新的功能,并且交互主要限于针对硬件I / O的定制点对点协议,而不是硬件提供的服务。
在本文中,提出了通过(1)向微控制器轻松添加新功能以解决上述问题的提供“服务”抽象的新模型Arduino服务接口编程(ASIP)模型,(2)使用范围的策略,包括套接字连接,桥接设备,基于MQTT的发布订阅消息传递,发现服务等。我们提供了在Arduino板上运行的代码的开源实现,以及Java,Python,racquets和Erland。我们展示了ASIP如何支持非平凡应用的快速开发(协调分布式电路板上的输入/输出以及实现远程机器人的线路跟踪算法)。我们以几种方式评估ASIP的绩效,包括定量和定性。
关键词:Arduino,MQTT,IoT,服务发现,通信中间件
1.介绍
物联网(IoT)范例的成功基于我们周围各种各样的物体(例如射频识别-RFID标签,传感器,执行器,移动电话等)的普遍存在,通过独特的寻址方案,能够相互交互和合作以实现共同目标[1]。
令人惊讶的是,尽管作为复杂的硬件 - 软件系统的基本组成部分,似乎没有一种简单和灵活的方式来(1)扩展微控制器的基本能力,以及(2)协调互连的微控制器在IoT场景。实际上,基于每个应用添加新能力,并且交互主要限于定向硬件I / O而不是由该硬件提供的服务的定制的点对点协议。
市场上有几种商业化的设备,但通常它们与特定的供应商紧密耦合,并且需要本地网关将传感器和执行器作为Web上的服务输出。相反,通过采用开源和硬件原理,可以创建一个容易修改的系统,以适应用户需求,并用作不同情况下新产品的基础。诸如Arduino的微控制器被全世界各种制造商广泛使用。 Arduino的简单易用性和大量的传感器和库可用于扩展这些控制器的基本功能,推动了人气。使用这种便宜的装置使得系统的安装和维护更容易。以这种方式,可以使得系统能够容易地修改以适应用户的需要并且在不同情况下用作新产品的基础。
使用因特网与现实世界资源受限设备进行交互的第一种方法是将智能事物并入标准化的Web服务架构(例如SOAP,WSDL,UDDI)[2]或将HTTP服务器嵌入到设备中。然而,在实践中,这导致对于简单的对象太重和复杂[3]。为了面对互连几个资源受限节点和互联网的问题,已经引入了几种通信协议[4]。这些协议受机器(M2M)场景的启发,并且共享标准计算机网络的通信范例的相同基本原理。 M2M通信发生在具有计算/通信能力的机器(对象或设备)之间,无需人为干预[5]。
在本文中,我们提出了Arduino服务接口编程(ASIP)模型,一个新的模型,通过(1)提供一个“服务”抽象,以轻松添加新的功能到微控制器,解决上述问题,(2)使用一系列策略(包括套接字连接,桥接设备,基于MQTT的发布订阅消息传递,发现服务等)的联网板。我们提供了在Arduino板上运行的代码的开源实现,以及Java,Python, RacketandErlang。我们的编程模型允许处理异质性,这是多个物联网应用的一个显着特征;通过异构性我们指的是硬件差异(不同的微控制器),不同的板在CPU功率,存储器和存储以及软件异质性(例如,编程语言的选择)方面的性能/能力。我们展示了ASIP如何支持非平凡应用的快速开发(在分布式电路板上协调输入/输出以及实现远程机器人的线路跟踪算法),我们以几种方式评估ASIP的性能,包括定量和定性。
本文的其余部分安排如下。我们审查第2节中的相关工作;我们在第3节中介绍了ASIP模型,描述了软件体系结构,通信协议和可能的通信通道:串行,TCP和MQTT发布/订阅消息。我们在第4节提出了一个详细的ASIP性能的实验评估。在第5节,我们提供一个定性评估,提供如何在ASIP之上构建应用程序的示例。
2.相关工作
新兴的物联网场景利用M2M领域的进步,使得建立一个由几个设备组成的巨大的服务导向架构(SOA)的可能性相互提供服务[2]。现有的应用平台使用REST架构[6,7,8,9,10,11,12,13,14]作为接口,以暴露他们的服务。 REST风格的架构由客户端和服务器组成。客户端发起对服务器的请求;服务器处理请求并返回操作资源的适当响应。资源可以是由URI标识的任何东西。 REST使用HTTP的GET,PUT,POST和DELETE操作来访问资源。然而,
用于RESTful架构的协议不适用于资源受限的网络和设备[15]。在处理M2M设备时,HTTP的大的开销导致分组分段和性能降级。此外,TCP流控制不适用于资源受限设备,并且开销对于短事务过高。
为了扩展资源受限设备的REST架构,文献中提出的第一个解决方案由约束应用协议(CoAP)[16]给出。 CoAP是旨在用于允许它们通过因特网通信的简单设备中的协议。 CoAP包括为M2M应用优化的HTTP功能的子集。它还支持通过用户数据报协议(UDP)的多播,非常低的开销和异步消息交换[17]。然而,在CoAP中,HTTP协议仍然存在。它没有被指定为支持持久的通信,即使Web Sockets已经在HTML 5的最近草案(引入客户端和服务器之间的双向通信信道)中引入,他们完全隐藏使REST如此强大的命名方案:每个资源具有标准唯一标识符, URI。 Web套接字方法导致操作资源的非标准解决方案[18]。为了支持设备之间的协作,需要确保对象和对象。为此,基于“发布 - 订阅”(pub / sub)机制在文献中提出了一种新的通信范例[19,20]。
定向差异被认为是WSN的最早的pub / sub通信范例。它是一种以数据为中心的协议,其中命名数据由属性 - 值对描述。订阅称为兴趣,并在整个WSN中广播。另一个早期的用于WSN的pub / sub中间件是Mires [22]。它在TinyOS [23]的基础上实现,这是一个基于事件的WSN操作系统。在Mires中,每个传感器通过汇聚节点向应用程序通告其主题(例如温度,压力,光度等)。 TinyCOPS [24]使用了一种稍微不同的编程方法,这是一个基于组件的中间件,它还为WSN提供基于内容的pub / sub服务,尝试通过组件(通信协议,支持的数据和服务扩展) 。最近,对象管理组(OMG)发布了DDS,一个以数据为中心的具有实时能力的发布 - 订阅中间件平台的开放标准[25]。 TinyDDS [26]是基于TinyOS的WSG的OMG DDS的采用版本。它是一个轻量级的pub / sub中间件,允许应用程序跨越WSN和接入网络的边界进行互操作,而不管他们的编程语言和协议。
所有这些解决方案都与硬件平台严格耦合,并且通常需要集中式硬件基础设施(sinknodesorgateways)[27,28]。 IBM引入的AlsotheMQTT协议使用基于分层主题的[29]发布订阅机制,并通过启用从云中“推送”[30]数据而不是通过受限设备轮询来自服务器的数据来促进受限设备。在这种情况下,覆盖基础结构是一个软件组件,代理。基于消息的主题,经济消费者分配消息给感兴趣的客户。在传感器领域,IBM提出了另一种传感器网络协议MQTT(MQTT-SN)[31],该协议被设计为协议对底层联网服务不可知。
从设备可用性的角度来看,有两种类型的可以连接到IoT服务平台的硬件平台。 一个是与某些平台相关的现成商业产品,例如Cosm消费产品[6],ioBridge [32],NanoRouter [17],MicroStrainSensors [33]和Digi路由器[14]。 第二种类型是用户可以自己开发的开放硬件(开发/可攻击)平台,例如Arduino [34],mBed [35]或Nanode [36]。 利用开源和硬件原理,可以创建一个容易修改的系统,以适应用户的需要,并用作不同情况下的新产品的基础。
已经提出了不同的解决方案以将物联网范例带到Arduino平台上。在医疗保健领域,称为LilyPad [37]的Arduino平台的纺织版本已被用于使用移动设备作为网关将可穿戴医疗设备桥接到支持IoT的基础设施。在[38]中,作者提出了一种模型,用于使用主控制器来实现事件读取和控制电气设备,该主控制器在静态监控场景下运行。在经济监测场景中,[39]描述了一种用于家用设备的非侵入式负载监控系统,在Arduino板。这些解决方案嵌入了HTTP Web服务器,使得更容易在一对一客户端 - 服务器连接中获取公开的信息。我们的目标是避免存在本地网关或嵌入式资源消耗的网络服务器,提供通过互联网协调互连的微控制器的可能性,从而为网络板提供不同的策略:套接字连接,桥接设备和基于MQTT的pub / sub消息。
文献中已经报道了HTTP,CoAP和MQTT协议的成对评价和比较。例如,[40,41,42]比较了端到端传输延迟和带宽使用[41]以及能耗和响应时间[42]方面的MQTT,CoAP和HTTP的性能。基于它们的结果,当分组丢失率低时,MQTT递送具有比CoAP低的延迟的消息,而由于其缩减的报头和小的分组大小,CoAP在传输时间和能量使用方面比HTPP更有效。关于器件的功耗,有一个详细的实验,用于HTTP和MOS器件之间的功耗比较[43]。结果表明,MQTT协议在所有测试中都获胜,包括建立,维护和接收/发送消息[44]。从这些考虑,我们选择实现一个简单的基于文本的服务发现机制,让几个资源受限的微控制器发现彼此的功能,并在它们之间交换消息。
从编程模型的观点来看,将传感器和致动器排列为服务,连接到微控制器的组件需要单独编程以考虑低级实现细节和应用的高级要求,其中微控制器是一部分。已经提出了几种解决方案来解决抽象低级实现细节的问题[45]。它们中的大多数紧紧针对特定应用程序[46]或硬件平台[23]。在本文中,我们建议传感器和执行器由微控制器作为服务提供,而不是依靠专用操作系统,因此可以通过组合它们来构建更复杂的软件应用程序。当限制到Arduino平台时,与ASIP最接近的协议是Firmata协议[47],它使计算机能够发现,配置,读取和写入微控制器通用IO引脚。但是,ASIP的占用空间小于Firmata(使用大约2
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[141606],资料为PDF文档或Word文档,PDF文档可免费转换为Word
您可能感兴趣的文章
- 饮用水微生物群:一个全面的时空研究,以监测巴黎供水系统的水质外文翻译资料
- 步进电机控制和摩擦模型对复杂机械系统精确定位的影响外文翻译资料
- 具有温湿度控制的开式阴极PEM燃料电池性能的提升外文翻译资料
- 警报定时系统对驾驶员行为的影响:调查驾驶员信任的差异以及根据警报定时对警报的响应外文翻译资料
- 门禁系统的零知识认证解决方案外文翻译资料
- 车辆废气及室外环境中悬浮微粒中有机磷的含量—-个案研究外文翻译资料
- ZigBee协议对城市风力涡轮机的无线监控: 支持应用软件和传感器模块外文翻译资料
- ZigBee系统在医疗保健中提供位置信息和传感器数据传输的方案外文翻译资料
- 基于PLC的模糊控制器在污水处理系统中的应用外文翻译资料
- 光伏并联最大功率点跟踪系统独立应用程序外文翻译资料
