0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

物联网应用原型开发的快速解决方案

电子设计 作者:佚名 2017-11-10 09:43 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

物联网 (IoT) 应用中,用户将能够即时访问有关健康、环境和机器的详细信息。但是,对于开发人员而言,物联网提出了众多要求,涉及到多个专业,包括无线传感器设计、安全通信和基于云的软件开发。

随着需求的快速变化和新机会的不断出现,开发人员面临的挑战更加严峻,用于将概念转化为实际物联网应用的时间越来越短。

本文将讨论物联网应用的设计。本文还将阐述 Renesas 物联网沙箱和 Renesas Synergy S3A7 物联网快速原型开发套件组成的全面的平台如何帮助设计人员避免漫长的物联网开发过程。

物联网应用要求

物联网应用向设计人员提出了极其多样化的苛刻要求。与传统的嵌入式设计或后端软件系统不同,物联网应用需要涵盖各个系统和服务的复杂层级结构的专业知识(图 1)。

图 1: 物联网应用是基于复杂层级架构来构建的,这种架构是将从多个可信来源获取的数据转化为有意义信息所必需的。然后,这些信息可以直接提供给用户,或者在企业中进一步使用。(图片来源: Microsoft Corp。)

在外围,开发人员需要从众多传感器节点收集数据,实现高度精确的传感器数据采集,这些节点可能包括利用合适的客户端软件升级的现有设备、仅依赖电池电源长期工作的定制设备。很多情况下,系统架构师使用中间网关到达终端节点,该网关设计用于聚合数据,特别是来自物联网设备的数据,采用了短程无线技术。

物联网节点和网关使用标准通信协议,需要安全、快速、可靠地将数据有效负载传输到应用。如图 1 所示,物联网开发人员需要协调大量基于云的服务以处理基本任务,例如调配新设备和服务、验证授权设备的身份、维护数据流、存储数据等。最后,用于数据分析和机器学习的特定应用服务帮助软件工程师将原始数据转换为对最终用户有意义的信息。

快速物联网开发

虽然物联网开发人员可以快速找到实施复杂分层物联网架构的各个部件,但对于新开发人员而言,要将物联网的所有这些部件集成在一起,仍然是一项令人生畏的任务,即便对于经验丰富的工程师,也要消耗大量时间。Renesas 物联网沙箱的设计目的是简化物联网开发,它提供了一整套软件组件,这些组件是将数据从终端节点移动至云、再将信息提供给最终用户所必需的。

物联网沙箱可与 Renesas Synergy S3A7 物联网快速原型开发套件配合使用,它提供了完整的端到端开发平台,让开发人员能够快速部署物联网原型,而只需少量开发工作。开发人员可使用一系列菜单来配置沙箱,通过基于云的处理服务来传输传感器数据,这些服务能够快速响应事件,与其他云服务交互,提供详细分析,并且支持用户的移动设备(图 2)。

图 2: Renesas 物联网快速原型开发套件和物联网沙箱配合使用,提供完整的开发平台,用于物联网应用的快速原型开发。(图片来源: Medium One)

Renesas Synergy S3A7 物联网快速原型开发套件是一种高性能的实时平台,基于 Renesas R7FS3A77C MCU,用于设计和评估物联网无线传感器节点设计。S3A7 MCU 板包括 32 MB 闪存、2.4 GHz Wi-Fi 模块 (802.11a/b/g/n)、LCD 显示屏、LED 以及用于简单交互的用户按钮。S3A7 内核处理单元基于 32 位 ARM Cortex-M4 内核。MCU 集成了片上闪存、192 KB SRAM、14 位模数转换器 (ADC)、12 位数模转换器 (DAC),还提供多个连接选项和多种安全功能,包括片上加密。

S3A7 MCU 板提供 4 个 Pmod 连接器和 4 个 Grove 连接器(图 3),让开发人员能够在添加扩展板时轻松进行配置。此外,这个物联网快速原型开发套件附带两个 Pmod 传感器模块,一个是 6 轴运动传感器模块,另一个是环境模块,包括光照、湿度/温度、空气质量、颜色/接近传感器。除了 S3A7 MCU 板和 Pmod 传感器之外,这个物联网快速原型开发套件还包括了功能全面的软件应用程序,旨在演示使用物联网沙箱的整个物联网流程。

图 3: 除了 32 位 MCU、32 MB 闪存、Wi-Fi 和 LCD 之外,S3A7 MCU 板还包括 4 个 Pmod 连接器(底部的一行黑色连接器)和 4 个 Grove 连接器(Pmod 连接器上方的白色连接器)。(图片来源: Renesas)

物联网沙箱

Renesas 物联网沙箱使用简单的 Web 连接协议,提供必不可少的服务,包括安全、数据处理、分析、实时传感器的图形化显示。同时,开发人员可以基于样例应用程序进行开发,以便通过一系列菜单快速配置这些服务,而只需很少的编程工作。

开始使用物联网沙箱时,开发人员通过物联网沙箱的 Web 界面,手动创建 API 密钥和授权用户。API 密钥和 API 基本用户身份用于为沙箱的后续事务处理进行授权。

在开发新物联网应用的过程中,最初的事务之一可能包括将样本数据包发送至云。这个简单操作既可展示连接协议,又为物联网沙箱中的后续数据处理奠定基础。

物联网器件(例如 S3A7 MCU 板)使用 JSON 格式将事件数据发送至物联网沙箱。每个事件的数据有效负载包括事件发生时间的键值对 (observed_at),以及数据集本身的键值对 (event_data),此外还可能有多个键值对。例如,在特定时间发现的某个事件具有两个关联值,它们将使用 JSON 格式进行传输,如下所示:

{"observed_at":"2017-01-01T12:00:00.0-0600", "event_data": {"force_strength":67, "level":"apprentice"}}

对于数据流式传输和其他交互,物联网沙箱支持两个简单的连接协议。设备使用 MQTT(消息队列遥测传输)或 REST 操作,与物联网沙箱进行通信。基于 TCP/IP 开发的 MQTT 是一种 ISO 标准轻量级协议,用于定序的无损消息传输。MQTT 基于灵活的发布/订阅模式开发,可以使用很简短的代码实施。因此,对于存储器空间或带宽有限的物联网设备而言,MQTT 尤其具有吸引力,但它需要可靠的数据通信。

MQTT 需要中间的消息代理,用于协调它的发布/订阅模式。作为其服务的一部分,物联网沙箱提供了代理,另外提供 Python 库,设备使用该库将数据发送至云。与其他沙箱 API 调用相同,MQTT 库将数据发布抽象为基本调用。例如,通过沙箱 MQTT 代理,将以上所示的数据有效负载发布至某些特定设备非常简单:

MQTT.publish_event_to_client(device, payload)

另外,开发人员可以使用受支持的 REST API,以任何语言为交互编程。在这一方面,程序员使用他们熟悉的 Web 协议,例如 GET、PUT 和 POST,将数据传输到沙箱(代码列表 1),或者从沙箱接收数据(代码列表 2)。正如这些代码列表所示,每个会话都从一个使用 API 密钥、API 用户 ID 和密码的登录事务开始。后续的写入或读取使用基本的 http POST 方法来发送数据有效负载,或使用 GET 方法来接收数据有效负载,数据为 JSON 格式。

import requests

import json

headers = {'Content-Type': 'application/json', 'Accept': 'application/json'}

data = {'login_id': 'john.doe@renesas.com', 'password': '12345', 'api_key': 'ABCDEFGHIJKLmnopabcdefghijklmnop1234567890'}

session = requests.session()

response = session.post('https://api-renesas-na-sandbox.mediumone.comv2/login', data=json.dumps(data), headers=headers)

url = 'https://api-renesas-na-sandbox.mediumone.com/v2/events/raw/john.doe@renesas.com'

data = {'observed_at': '2015-01-10T00:00:00.000-0800', 'event_data': {'sensor1' : 38.6}}

response = session.post(url=url, data=json.dumps(data), headers=headers)

列表 1: Renesas 物联网沙箱 API 在“Medium One”云上提供专门端点,用于会话登录,还用于将数据添加到特定用户的“原始”数据流(使用标准 http POST 方法)。(代码来源: Renesas/Medium One)

import requests

import json

headers = {'Content-Type': 'application/json', 'Accept': 'application/json'}

data = {'login_id': 'john.doe@renesas.com', 'password': '12345', 'api_key': 'ABCDEFGHIJKLmnopabcdefghijklmnop1234567890'}

# Login

session = requests.session()

response = session.post('https://api-renesas-na-sandbox.mediumone.com/v2/login', data=json.dumps(data), headers=headers)

url = 'https://api-renesas-na-sandbox.mediumone.com/v2/events/raw/john.doe@renesas.com'

headers = {'Accept': 'application/json'}

params = {"since":"2015-01-10T00:00:00.000-0800", "until":"2015-01-17T00:00:00.000-0800", "limit":100, "include":"$.event_data.tagname"}

# GET

response = session.get(url=url, params=params, headers=headers)

列表 2: 开发人员使用大多数编程语言都支持的标准 http 库(例如此处所示的 Python),执行简单的 GET 事务,从“原始”数据流拉取具有请求的特征的 JSON 格式数据。(代码来源: Renesas/Medium One)

云处理

对于原始数据流,物联网沙箱首先建立处理步骤,称为“工作流”,它们围绕名为“标记”的键建立,这些标记在数据流内部的数据有效负载中定义。工作流代表了基本的数据处理步骤,例如筛选、转换或对数据流执行的其他操作。

使用比较传统的方法,开发人员经常需要识别和维护在代码中使用的参数与来自外部设备的一组特定数据流之间的绑定。相反,物联网沙箱则可自动识别标记,并允许开发人员将标记用作工作流的输入,工作流对与每个标记关联的数据值执行代码。例如,如果开发人员发送了数据有效负载,例如上文描述的有效负载,系统将自动识别关联的数据类型(例如数字或字符串),并且建立数据流,其中包含这些标记的时序数据。开发人员使用物联网沙箱的 Web 界面,确认或修改沙箱自动生成的架构(图 4)。

图 4: 物联网沙箱自动识别新有效负载内部的数据类型,从而为开发人员提供了创建新物联网处理流的简单专用方法。(图片来源: Renesas/Medium One)

此外,沙箱还为开发人员使用直观的图形化方法,用于将标记绑定到代码参数。在上例中,开发人员使用沙箱提供的基于 Web 的 Workflow Studio,为工作流代码生成输入和输出。在输入端,开发人员使用 Workflow Studio,将来自从外部设备接收的“原始”数据流的标记值拖放至代码模块的特定输入参数。同样,他们还将工作流代码的输出连接到“已处理”数据流(图 5)。

图 5: 使用物联网沙箱提供的基于 Web 的 Workflow Studio,开发人员能够通过图形化方式,将标记(例如 raw.force_strength)拖放至工作流,并连接每个标记作为命名输入参数(例如 in1),以便在与每个工作流关联的代码模块内部使用。(图片来源: Renesas/Medium One)

在工作流的代码模块中,物联网沙箱的内置 IONode 模块提供了几个简单的类方法,用于获取和设置标记值。例如,IONode.get_input('in1') 返回一个 Python 字典(键和值的关联阵列,类似 JSON 有效负载),其中包含值和元数据(属于从 in1 输入到代码模块的数据的当前实例)。使用这种方法,开发人员能够将输出值 (out1) 设置为输入变量的一些经过处理的组合(代码列表 3)。

new_strength = IONode.get_input('in1')['event_data']['value'] + 100

new_level = "expert"

output = IONode.set_output('out1', {'new_strength': new_strength, 'new_level': new_level})

列表 3: Renesas 物联网沙箱提供了多个高级别库,例如内置的 IONode Python 模块,它可将工作流 I/O 精简为简单方法,以便读取 (get_input) 和写入 (set_output) 数据。(代码来源: Renesas/Medium One)

经过处理的数据流可以进一步连接到一个或多个后续工作流,以实施复杂的信号处理、分析或业务逻辑。例如,开发人员可以使用单独的工作流来监控数据流。如果发生严重事件,来自主工作流的输出会被定向到第二个工作流,后者使用物联网沙箱 Python 模块,向用户发送 SMS 警报。每次当工作流在原始数据流中查找新事件时,它会自动启动和执行其代码包。因此,它能够接近实时地对数据流进行自动处理。开发人员可在不同工作流之间共享输出和输出,以构建包含多个连续和并发处理步骤的复杂处理流。

但是,对于任何物联网应用,都有一个重要目标:向用户呈现经过处理的数据流的结果。物联网沙箱提供了一系列连接到数据流的图形化小工具,从而简化了这种开发要求。使用物联网沙箱的 Web 界面,开发人员能够将相应小工具放置在仪表板上,以创建易于理解的物联网结果快照。例如,物联网沙箱实时仪表小工具可以显示特定标记的当前值,从而自动更新该值及其最小值/最大值范围。开发人员可以使用多个仪表来构建仪表板,采用简洁的格式呈现来自多个数据源的结果(图 6)。

图 6: 物联网沙箱提供了图形化仪表,用于显示原始数据流或已处理数据流的当前值和趋势。(图片来源: Renesas/Medium One)

Renesas Synergy S3A7 物联网快速原型开发套件附带了 Renesas Smart Chef 物联网演示,利用该套件附带的全套传感器,演示端到端物联网应用。Renesas 还提供其他多个样例应用程序,用于演示其他使用场景,包括使用低功耗蓝牙Lora 的连接。开发人员只需通过 MCU 板的 JLink 连接器,将以 srec (S record) 格式提供的镜像刷入S3A7 MCU 板。开发人员可以使用 Renesas e2 Studio 软件开发环境,来扩展这些样例应用程序,或者从头开始构建新应用程序,使用 J-Link 闪存实用工具加载最终 srec 镜像。

总结

物联网应用开发需要依赖于多种不同的技术和方法来进行数据采集和通信,通过云处理从传感器硬件采集的数据,并将数据发送至用户的移动设备。因此,开发人员发现他们面临着两难处境,既要满足众多开发要求,又承受着更快速交付物联网设计的压力。

为了帮助加快开发速度,Renesas Synergy S3A7 物联网快速原型开发工具和 Renesas 物联网沙箱的组合提供了完整的端到端开发环境。开发人员能够使用基于 Web 的界面来配置物联网沙箱,以支持基于云的处理流,且只需很少的额外编程工作。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2950

    文章

    48103

    浏览量

    418143
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RL78/G22快速原型开发板:功能特性与使用指南

    RL78/G22快速原型开发板:功能特性与使用指南 在电子开发领域,拥有一款高效且功能丰富的快速原型
    的头像 发表于 12-30 09:50 1479次阅读

    RL78/G24 快速原型开发板使用指南

    RL78/G24 快速原型开发板使用指南 在当今的电子设计领域,快速原型开发板为工程师们提供了便
    的头像 发表于 12-29 11:55 1040次阅读

    Renesas云套件CK - RA6M5与CK - RX65N:助力联网解决方案快速成型

    Renesas云套件CK - RA6M5与CK - RX65N:助力联网解决方案快速成型 在联网
    的头像 发表于 12-29 11:30 829次阅读

    探索瑞萨云套件 CK - RA6M5 和 CK - RX65N:联网快速原型开发利器

    探索瑞萨云套件 CK-RA6M5 和 CK-RX65N:联网快速原型开发利器 作为电子工程师,在
    的头像 发表于 12-29 11:30 586次阅读

    Renesas FPB - RX140快速原型开发板使用指南

    Renesas FPB - RX140快速原型开发板使用指南 在当今电子设计领域,高效且便捷的开发板对于产品的快速迭代和创新至关重要。Ren
    的头像 发表于 12-29 09:45 783次阅读

    Renesas FPB - RA2T1快速原型开发板:开启高效设计之旅

    Renesas FPB - RA2T1快速原型开发板:开启高效设计之旅 在电子设计领域,一款优秀的快速原型
    的头像 发表于 12-26 16:20 419次阅读

    探秘 CYSBSYSKIT - DEV - 01 快速联网连接开发者套件

    探秘 CYSBSYSKIT - DEV - 01 快速联网连接开发者套件 引言 在联网迅猛发
    的头像 发表于 12-21 15:35 868次阅读

    SCH1600 PCB 设计解析:助力快速原型开发

    SCH1600 PCB 设计解析:助力快速原型开发 在电子设计领域,快速原型开发是产品迭代和创新
    的头像 发表于 12-16 16:35 430次阅读

    Nordic经过全球认证的、多传感器、电池供电的蜂窝联网原型平台:Thingy91X套件

    Thingy:91 X 为开发人员提供了一个经过全球认证的、多传感器、电池供电的蜂窝联网原型平台 全球领先的低功耗无线连接解决方案提供商N
    发表于 12-15 10:39

    深耕蓝牙联网十年:北京桂花网 2015-2025 发展大事件全景

    of CES创新大奖。随后,桂花网聚焦企业联网开发了企业级蓝牙路由器和相关的蓝牙联网解决方案
    发表于 11-07 13:52

    MQTT网关对接到联网平台快速开发应用

    且可扩展的联网解决方案的基础框架,为从设备数据采集、传输到终端系统应用的全流程提供技术支撑。 1、数据采集、协议分析 通过MQTT智能网关的协议分析器把现场各种设备的数据读取到智能网关内部进行协议解析和边缘计算,然后对数据进行
    的头像 发表于 11-03 11:13 569次阅读

    首搭RT-Thread程翧车控平台| RT-Thread程翧 S32K344 快速原型开发平台正式上市!| 产品动态

    在智能汽车迈向高集成与高安全的时代,VCU/ECU开发正面临效率与可靠性的双重考验。依赖单一硬件或拼凑软件方案的传统模式,已成为制约创新的瓶颈。为此,RT-Thread带来里程碑式的解决方案
    的头像 发表于 10-31 11:53 1248次阅读
    首搭RT-Thread程翧车控平台| RT-Thread程翧 S32K344 <b class='flag-5'>快速</b><b class='flag-5'>原型</b><b class='flag-5'>开发</b>平台正式上市!| 产品动态

    能量收集技术在联网设备上的应用与解决方案

    应用的热门发展方向。本文将为您介绍能量收集技术在联网设备上的应用,以及由Silicon Labs(芯科科技)与合作伙伴所推出的相关解决方案
    的头像 发表于 08-26 10:15 3413次阅读
    能量收集技术在<b class='flag-5'>物</b><b class='flag-5'>联网</b>设备上的应用与<b class='flag-5'>解决方案</b>

    莫仕推出USB 2.0集线器解决方案-赫联电子

      随着联网市场的发展,许多设备系统中增加了传感器和USB接口数量,以适应智能技术的需求。然而,当需要为原型产品开发USB板时,上市时间,设计周期成了令人头疼的问题。针对这个问题,莫
    发表于 06-03 20:26

    Thingy:91 X 为开发人员提供了一个经过全球认证的、多传感器、电池供电的蜂窝联网原型平台

    Thingy:91 X 为开发人员提供了一个经过全球认证的、多传感器、电池供电的蜂窝联网原型平台 挪威奥斯陆 – 2024年12月10日 – 全球领先的低功耗无线连接
    的头像 发表于 05-08 17:41 3291次阅读