原文:How to be Strategic about Building your IoT Prototype
翻译:安翔
审校:苏宓


创建物联网(IoT)原型对于工程师来说是具有成就感,有时却令人沮丧的过程之一。

你接通 IoT 原型设备的电源,打开电源开关,这一次信心满满,心想“这一次应该可以正常工作了”。然而,却看到设备起火,烧焦,一片狼藉;或者更多的时候系统是没有任何反应的。

这次到底又是哪里出错了呢?

事实上,创建物联网(IoT)原型对于工程师来说是具有成就感,有时却令人沮丧的过程之一。

这是有益的, 因为创造性的思想,物联网为我们提供最新和最前沿的机会与世界各地互动,同时提供一种新颖的方式让世界与我们互动。

这是充满挑战的,因为物联网产品虽然表面上看起来比较简单,实际上它是一个跨越了多个不同学科的非常先进的工程项目,它包含了电气工程、固件开发、机械集成、无线网络、移动应用开发、服务器和数据库设计以及云处理。

这是令人沮丧的,因为我们生活在互联网世界中,能够在手机上通过 Netflix 看视频。从 IoT 设备读写少量的数据更是易如反掌。IoT 不断发展,要跟上新技术的发展脚步有时是令人疲惫和沮丧的。

IoT 原型

当你完成产品构想之后,就准备开始正式构建原型了。无论你的想法是写在餐巾纸背面还是有详细的PDS(产品设计规范),直接构建一个立即推入市场的产品都是充满风险的。

很多东西都充满未知:你的客户最关心哪些功能?设备中的哪些功能点客户不关心?哪些功能是客户需要但是你还没有考虑到的?设计中最昂贵和最困难的部分是什么?

你或许会尝试通过自己的经验和调研进行猜测,但事实是有些东西你很难进行准确定位。此外,如果针对 IoT 硬件产品的猜测出现误差,那么想要扭转局面将会比纯软件产品代价高得多,因为“重新编译”(设计、开发、生产)电子设备所需的时间相比软件来说更加漫长。

理想的方案是先建立原型设计,根据反馈信息并测试自己的一些假设,然后再开始将原型进行产品化,但是现实中资本和时间通常不允许你耗费太长的时间在原型阶段。基于这样的情况,解决该难题的方案也就应运而生,它就是:战略原型。

原型开发的前期准备将决定最后的原型产品化过程是否顺利、快速、满足需求;如果原型设计不到位,产品化过程将耗费漫长的时间,并且让你不断触碰物联网硬件开发的种种壁垒。

本系列文章的目标是为你配备工具 ,以便你的IoT原型设计取得成功。

目前市面上有很强大的工具用于开发联网设备(更多的细节将在本系列的第二部分介绍),你不必自己做太多的开发工作。

然而,对于每个产品开发过程,必须有一个优秀的项目把控者,他需要了解项目的方方面面,使用的工具,以及如何构建原型,并尽可能地节省开发时间。

接下来,我们将解释和分析你的 IoT 开发需求,以确定原型为主要目标,了解约束条件,并将设计思路转化为功能点。

IoT原型剖析工具 - GCM 图

一个 IoT 原型将至少有两个,通常有三个集成接口:

  • 物理硬件 - 硅、电线、焊料、设备传感器,模组和功能组件。
  • 手机应用 - 在手机上打开的应用程序,提供硬件传感器的数据读取,具有指令触发功能,并提供用户与设备的交互接口。
  • Web应用 - 基于云端,提供设备的数据可视化。设备启用 WiFi 之后,可以提供网络应用程序的远程接口。

开发 IoT 原型充满挑战的一个关键原因是,为硬件设备创建联网程序所需的技能集合与开发和维护 Web 服务器所需的技能集合有很大的差异,反之亦然。

因为即便是很熟练的软件工程师可能也看不懂硬件原理图,而电子工程师则对用于控制设备的行业标准 iOS 移动应用的开发知之甚少。

鉴于现状,我们开发了一种方法,用于剖析一个 IoT 原型路线图,我们称之为:目标 - 约束- 模块 [GCM] 图。

下面我们将分解 GCM 图的各个部分。虽然它最初可能看起来有点复杂,但它确实是一个非常有用的工具,可以快速构建战略原型开发路线图,并且可以帮助我们识别原型的关键部分,并选择合适的工具来正确地构建设备。

1. 目标

我们的原型方法的第一步是简洁地在架构层面定义你的原型及其目的。这是 GCM 图表的“ 目标 ”部分。

你正在建立一个IoT原型,事实上大多数这样的原型是不存在或者不太容易实现的。你的设备如何使它变得特别?它有什么作用?它是如何工作的?我们将其称为原型的“目标”,其主要目的是映射出各层级设备和信息流的关系。

事实证明,即使IoT原型很复杂,你也可以很简单地表示信息架构 - “目标”。以下是三个示例,显示三种不同的IoT原型的目标。

以下是为原型设定目标的方法。查看原型的每个部分以及物理设备。它的目的是什么?它在做什么?它如何与移动应用程序或 Web 应用程序通信?对于移动应用和 web 应用也需要做同样的思考。



充分了解设备的目标是为你的原型设计展示信息流的关键途径。

2. 约束

目标设定了原型的整体规划,接下来重要的是了解你的原型制作过程以及原型本身存在的约束和限制。这是 GCM 图的“约束”部分。

上图中提到的内容是 IoT 原型的常见约束,但是,通过提出以下问题可以确定特定原型的进一步约束:

原型的目标是什么 - 是做现场测试来证明这个想法吗?是用来展示给你的经理或者董事会从而获得他们进一步的支持?是从投资人那里获得投资吗?或者,原型本身就是目的?

了解原型的关键约束、次要约束、无约束,有助于确定一条清晰的原型开发规划图。

3. 模块

既然已经为原型定义了目标和约束条件,接下来就通过各个功能部件构建原型 - 这将为原型选择合适的工具和硬件提供明确的选择。这是 GCM 图的“模块”部分。

任何 IoT 产品 至少需要以下模块中的一个:

  • 通讯模块 - 决定了设备与互联网通信方式
  • 电源模块 - 决定设备如何供电
  • 处理器模块 - 用于执行设备固件程序

此外, 大多数 IoT 产品 还会具有以下各种模块:

  • 用户输入、输出模块 - 允许用户与设备进行物理交互的模块
  • 传感器模块 - 用于记录设备周围的环境信息
  • 执行模块 - 用于控制设备周围的对象

接下来我们详细看看这些模块,了解一下哪些模块适合自己的原型。

通讯模块

信息将如何从你的设备传输到互联网?这可以通过无线或有线连接实现。

常见的无线通信模块有:

  • 蓝牙低功耗(BLE)

BLE 功耗非常低,没有月租,并且能够直接与移动设备通信。BLE 的缺点是它的通信范围有限 - 最大100英尺;带宽有限(实际上小于100 kbps)。然而,覆盖范围问题通常可以使用 BLE-WiFi 或 BLE-Cell 无线网关集线器来解决。

  • WiFi

WiFi 提供其覆盖范围内的任何设备直接接入互联网的功能。WiFi 在 IoT 设备上的配置需要一点挑战,但是一旦配置成功,它将提供相对于 BLE 来说高得多的数据传输速率。WiFi 比 BLE 具有更高的功耗,但数据传输速率也更高。

  • 蜂窝网络

蜂窝网络的优势在于它提供比 BLE 和 WiFi 更广泛的覆盖范围;在任何蜂窝网络覆盖到的地方,你的 IoT 原型都可以直接接入互联网。它的缺点是需要每个月向网络运营商上交数据流量费用。我们建议尽量避免使用2G,因为它在美国已经日薄西山了,推荐使用3G或者即将推出的以 IoT 为中心的 4G-M 解决方案。

其他一些小众的通信模块:

  • USB - 有线
  • 以太网 - 有线
  • LoRa - 无线
  • Zigbee - 无线
  • Thread - 无线
  • Z-Wave - 无线

处理器模块

处理器是原型的大脑 - IoT设备处理器通常是低功耗微控制器。
选择处理器时需要考虑如下三个因素:

  1. 处理器的内存是否满足需求
  2. 微控制器的开发环境是什么?是否容易使用和免费?
  3. 处理器的硬件功能和接口能力 - 它是否具有合适的通信接口

常用于 IoT 原型的处理器平台有:

  • Arduino
  • 树莓派
  • Breadware B-Line
  • BeagleBone
  • TI 的一些平台

电源模块

IoT 设备功耗通常是很低的,但它仍然需要供电。市面上有多种电源方案,参考 GCM图中的约束限制条件选择适合你原型的方案。

  • 设备是电池供电还是电源适配器供电?
  • 如果电池供电,电池是否需要充电?
  • 如果电池供电,电池寿命是多长?

常用的 IoT 设备的电源模块有:

  • 可充电 LiPo(锂聚合物)电池 - 手机中使用的就是这种
  • 可充电、可更换的纽扣电池
  • USB 供电
  • PoE(以太网供电) - 常用于“智能家居”、“智慧楼宇”
  • 9V 电池
  • AA、AAA 电池

用户输入、输出模块

有多个现成的模块提供用户与设备之间的交互。

用户交互模块示例如下:

  • 按键
  • 开关
  • 旋钮
  • LED
  • 扬声器
  • LED 屏
  • 触摸面板

传感器模块

传感器模块用于设备收集周围的环境信息。

常用的环境交互模块有:

  • 温度感应器
  • 加速度传感器
  • 陀螺仪
  • 亮度传感器
  • 湿度传感器
  • 摄像头

执行模块

执行模块用于改变设备及其周边对象的状态。

常用的执行模块有:

  • 继电器
  • 电机控制器
  • 声音放大器
  • 其他

总结

原型开发是物联网产品开发的关键一环。然而,如果没有正确定义 IoT 原型的目标、约束和模块,那么就很难细化原型的开发过程。

使用 GCM 流程预定义你的 IoT 原型的所有路径可以让目标更为清晰和明确,并可以作为选择合适工具的指南,以便快速启动一个有益的且无障碍的原型开发过程。

一旦设备的所有功能模块都定义清楚,我们就能够很快从在线供应商中划分出正确的硬件。在本系列的第二部分,我们将深入研究如何为 IoT 原型设计选择合适的工具、平台和硬件。

如何快速构建物联网原型?相关推荐

  1. 低代码构建物联网平台,让物联网项目更简单

    物联网(Internet of Things,IoT)是普遍联系的网络,是基于互联网.电信网等信息网络的承载体,可以视为互联网的延伸和升级,是科学技术发展的必然,也被称为继计算机.互联网和移动通信网络 ...

  2. 以低代码软件构建物联网基础设施建设

    工业物联网领域,对IOT设备以及数据的平台化管理和智能化应用愈渐成熟,物联网智能化的基础设施建设由软件平台实现.传统型繁重的代码级写软件方式已逐渐被低代码方式所取代. 以低代码快速构建物联网系统基础设 ...

  3. 微软发布XAML Studio工具:快速构建UWP XAML原型

    IT之家1月30日消息 微软车库的最新项目XAML Studio已经在Windows 10应用商店上架,将帮助开发人员快速构建UWP XAML原型,以后可以轻松地将其复制到Visual Studio中 ...

  4. firebase使用_使用Firebase进行物联网原型设计:如何事半功倍

    firebase使用 by Bayrem Gharssellaoui 由Bayrem Gharssellaoui 使用Firebase进行物联网原型设计:如何事半功倍 (Internet of Thi ...

  5. 构建物联网网络的4个关键步骤简介

    在首次构建物联网网络时经常犯的最大错误是低估了物联网网络设计,运营和管理的复杂性 - 并且相信传统网络技术和参与模型将支持大规模物联网部署的要求. 建立物联网网络并不像听起来那么容易,而且当面对大规模 ...

  6. 1个通用工具平台+多个热点场景工具套件,助力开发者快速构建应用

    摘要:华为云为开发者提供了全流程的极简工具和模板,通过1个通用工具平台-"DevCloud"和多个热点场景的工具套件,支持Full Code和Low code/No code多种开 ...

  7. 如何支撑企业快速构建数字孪生体

    摘要:详解华为云IoTA服务如何助力IoT数据开发者快速实现IoT数据价值变现,带你动手实践完成一整套工业物联网方案的开发. 本文分享自华为云社区<[云驻共创]孪生?数字孪生?欢迎进入极客的世界 ...

  8. 【caffe2从头学】:3.3.Brewing Models(快速构建模型)

    本片文章是我的[caffe2从头学]系列中的一篇,如果想看其他文章,请看目录: 0.目录 1.快速开始 1.1.什么是caffe2 ? 1.2.安装caffe2 2.学习caffe2 3.caffe2 ...

  9. 怎么快速制作web原型_如何使用AppGini快速原型制作Web应用程序

    怎么快速制作web原型 This article was sponsored by AppGini. Thank you for supporting the partners who make Si ...

最新文章

  1. 萨克斯维修服务器,萨克斯常见故障修理方法
  2. Windows Communication Foundation环境安装篇
  3. 51CTO下载专题有奖征集建议:您的期待,我们的方向!
  4. vue2的响应式原理学“废”了吗?继续观摩vue3响应式原理Proxy
  5. windows phone画板程序
  6. 都9012了,这几个公众号你还没关注?
  7. vscode 添加库头文件_VSCode配置C/C++并添加非工作区头文件的方法
  8. Java内存模型深度解析:重排序
  9. Python中系统命令
  10. python基于大数据的食物推荐系统
  11. 特征选择mRMR算法实现全解
  12. 如何获取网页logo与favicon图标使用
  13. UESTC 1634 去年春恨却来时,落花人独立,微雨燕双飞
  14. Mac和Windows系统中ssh密钥的生成和共享
  15. linux 学习5 文本编辑器 vim
  16. 实现基于股票收盘价的时间序列的统计(用Python实现)
  17. 龙的战争 Dragon ‘s War
  18. 关于微信小程序danmu-List所遇到的坑
  19. 2023转型“密码”——中小企业进销存软件
  20. JS中VAR的用处(局部变量要用var来声明,全局变量不加var)

热门文章

  1. target属性的值
  2. ipconfig/flushdns(转)
  3. 设置div滚动条样式
  4. Anaconda在windows环境下走代理
  5. python 函数递归一次增加一次变量_python3 --函数(函数,全局变量和局部变量,递归函数’)...
  6. Android单点登录,互踢下线代码实现
  7. Dubbo Serialized class xxx.Xxx must implement java.io.Serializable问题解决
  8. 广电国家标准对高清视频服务器播出文件的码率规定是多少,常用视频标准尺寸和码率...
  9. 心理学上10点建议,打造更好的用户体验
  10. Endnote参考文献分享与导入