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

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

3天内不再提示

如何为IoT项目选择最佳硬件

科技观察员 来源:it技术库 作者:艾矽易小艾 2022-04-01 14:56 次阅读

互联设备是IoT的核心。设备会收集数据并监控参数。从工业设备、建筑物和汽车,到动物、货物运输、管道和人员,互联设备无处不在。硬件和软件部分是通过标准设计协议为IoT应用程序设计的:规范开发、概念设计、原型、测试,以及集成到网络中的硬件和软件的部署。一些平台,如Arduino和RaspberryPi,可以加快设计以及快速进行原型构建,而无需定制,从而缩短实施IoT配置的时间。

设计需要确定性能需求,实现这些要求所必需的硬件和软件,然后是组件的规格(商用现成(COTS)设计或定制设计),并适当考虑到运行环境及其内部使用的应用。

在我们谈到IoT时,设备是指任何获取信息和传输信息的物件。例如,管道内的压力传感器,冷藏轨道车内的温度传感器,或分布在母牛皮肤下的微小芯片,这些都是设备。设备可能独立运行,也可能与其他设备同步工作。

在本文中,我将回顾一些现成的硬件选项,以及在选择这些硬件开发下一个IoT项目时需要考虑的一些因素。

用于为IoT项目设计原型的现有硬件类型

开发IoT应用程序变得更容易了,这得益于越来越多现有的低成本、商业性硬件开发板、平台和原型设计工具包。模块化的硬件设计使得开发IoT应用程序更加灵活。随着零部件选择的增多,设计师可以更换不同规格的新传感器。或者,您可以独立地升级设备的网络、数据处理或存储模块,以满足不断变化的需求。

包括微控制器和单板计算机在内的许多现有的商业性硬件设备,都是围绕单芯片系统(SoC)集成电路而设计。SoC将数据处理、存储和联网等功能集成到一个芯片上。这种配置意味着,您会牺牲一些灵活性来换取便捷性,但幸运的是,有大量具有一系列配置的商业性设备可供选择。例如,表1列出了选择用于IoT项目原型设计的微控制器的技术规格,并对3种常见的单板计算机(SBC)进行了比较。

微控制器开发板

微控制器是一种提供数据处理和存储功能的SoC。微控制器包括一个(或多个)处理器内核、内存(RAM),以及用于存储在微控制器上运行的自定义程序的可擦除可编程只读存储器(EPROM)。微控制器开发板属于PCB,但增加了额外的电路来支持微控制器,使对芯片进行原型设计和编程变得更方便。

传感器和执行器通过数字或模拟通用输入/输出(GPIO)引脚或通过硬件总线连接到微控制器。I2C和SPI等标准通信协议用于与总线上连接的组件进行设备内通信。通过采用各种标准,可以更容易地添加或替换与总线连接的组件。

Arduino是一个开源设备平台,其制造兼容开发板和工具的社区十分活跃。不同官方Arduino型号的设备功能不同,数十种第三方兼容电路板的设备功能也有差异。表1中的设备都是兼容Arduino的微控制器,包括无处不在的ArduinoUno、Particle的Electron(其中集成了一个蜂窝式调制解调器),以及EspressifSystems集成了WiFi的低成本、低功耗微控制器ESP8266-01。

像Arduino一样,ESP8266拥有一个活跃的采用者社区。基于ESP8266的著名开发板包括NodeMCU、WeMosD1以及AdaFruit的FeatherHuzzah。开源和制造者社区已为基于ESP8266的开发板开发了许多备选固件,使IoT开发者能使用Lua、PythonJavaScript为这些开发板编程,并支持无线(OTA)更新。

表1:ArduinoUno、ParticleElectron和EspressifSystemsESP8266-01微控制器技术规格

pYYBAGJGof-AFMKwAALJLNoAaj8881.png

要开发在兼容Arduino的微控制器上运行的软件,标准方法是使用C或C++和ArduinoIDE,但是也有一些社区开发的语言绑定和可视编程工具。具有相同引脚布局且兼容Arduino的开发板能使用可选的第三方孔壁进行扩展,例如为了向ArduinoUno添加以太网端口蓝牙。Arduino是采用最广泛的业余爱好者微控制器开发环境,但像Tessel这样的开发环境原生支持JavaScript,而MicroPython的PyBoard和WeIO等开发板则支持Python。

选择兼容Arduino的微控制器,更容易将使用跨平台Arduino库和ArduinoIDE开发的程序移植到其他兼容Arduino的设备上运行。仍然需要仔细斟酌并体会细微差异。

例如,ArduinoUno使用数字I/O引脚上的5V逻辑电压(其中0V等于LOW或OFF,5V等于HIGH或ON),但ESP8266和Particle开发板使用3.3V逻辑电压(3.3V表示HIGH)。这可能影响您对传感器或执行器组件的选择,因为一些组件仅适用于某一种开发板。将针对5V逻辑电压设计的传感器替换为3.3V逻辑电压的传感器可能会导致意外结果,也可能损坏经受不住更高电压的引脚,所以您需要添加一个逻辑电平转换器才能使移植奏效。在实现低电平硬件功能时,比如启用深度睡眠模式或使用特定协议从连接的传感器读取数据,可能需要依靠特定于设备或组件的库,这些库会导致代码更不容易移植。

单板计算机

单板计算机(SBC)比微控制器更进一步。它们允许连接键盘、鼠标和屏幕等外围设备,并提供了更多内存和更强的处理能力(例如,表2提供了1.2GHz32位ARM微处理器,而表1仅提供了8位16KHz微控制器)。表2列出了以下三个SBC的技术规格:RaspberryPi4、BeagleBoneBlack和DragonBoard410c。

微控制器与单板计算机之间的区别没有固定标准。一些设备介于二者之间,比如OnionOmega2的板载内存和处理能力与低端SBC相当。还有一些混合设备,比如UDOOQuad,它将基于ARM的Linux系统与兼容Arduino的微控制器相集成。

表2:RaspberryPi4、BeagleBoneBlack和DragonBoard3种SBC的技术规格

pYYBAGJGofmAMbmPAAJP95Xh4RY948.png

与微控制器一样,SBC设备功能也可通过增加可堆叠的开发板来扩展,这些开发板在RaspberryPi上被称为hat,在BeagleBoneBlack上被称为cape,还可以通过增加电动机控制器或模数转换器等外部模块来扩展开发板,减轻设备内置功能的限制。

许多SBC设备更像一台微型PC,而且运行着嵌入式操作系统(通常是简化的Linux发行版)。因此,与微控制器开发板相比,对于这些设备上连接的传感器和执行器,要开发用于它们的嵌入式应用程序,有更多开发工具和语言可供选择。但是,SBC的设置更复杂、更大、能耗更高,而且更容易出现一些问题,比如存储应用程序的SD卡或闪存损坏。

在微控制器开发板和单板计算机之间进行选择

尽管现有的微控制器开发板和单板计算机可能只能在IoT解决方案中发挥部分作用,但它们是初始开发的理想选择。

一种入门方式是根据应用程序的需求来考虑关键的IoT设备特征,然后制定以下设计决策:

确定您需要的外围传感器和输出组件的类型和数量,如有必要,还需要确定这些组件的设计电路

选择一个微控制器或单板设备来协同控制外围组件并从中读取数据

确定您用于设备内通信的数据通信协议(例如,对微控制器与任何附加传感器之间的通信使用I2C)

选择需要用来与云服务和应用程序进行通信的网络硬件和协议

例如,要在预算内设置一个家庭自动化系统,您可以选择RaspberryPiZeroW,因为它是一个成本非常低的小巧的SBC设备,而且拥有充足的处理能力和内存(1GHzARM6处理器和512MBRAM)来在设备上执行数据处理和分析。它支持采用最高64GB的microSD闪存扩展卡来存储程序和数据。而且像RaspberryPi4一样,它配备了一个完整的40引脚GPIO端板,允许连接多个传感器,同时还支持SPI和I2C协议。它拥有板载WiFi,可用于连接家庭网络,而且可以通过micro-USB从移动电源或墙插式电源供电

随着您在IoT架构设计方面的深入,您可以停下来,将您的预期性能与设计意图进行比较。进行设备设计和原型设计,选择嵌入式软件,选择上游服务和应用程序,然后停下来对其进行评估。您可以根据功能需求和非功能需求(包括性能、可靠性和安全性)定期评估原型,并在必要时重新考虑这些选择。

部署IoT项目的硬件要求

IoT设备是高度专业化的,而且是为在非常特定的上下文和环境中运行而设计的。所以IoT项目的硬件千差万别。虽然可以通过通用的现成硬件进行原型设计,但最终您可以根据IoT解决方案的要求着手设计和开发定制PCB和组件。作为此过程的一部分,您需要考虑以下几种硬件需求。

安全需求:安全是IoT的关键要素。在设计和开发的所有阶段都必须考虑到这一点。即使是在原型设计期间,也必须保证设备捕获的数据的完整性和安全性。安全需求适用于IoT设备本身、网络以及云、移动和Web服务应用。

相关安全需求包括:

确保每个设备拥有足够的处理能力和内存,以便能以发送和接收数据和消息的速率对它们进行加密和解密;

确保嵌入式软件开发库支持在向上游服务和应用程序执行验证时使用的授权和访问控制机制;

选择采用现有的设备来实现设备管理协议,以便在将新设备添加到网络时,安全地注册这些设备以免发生欺诈;此外,选择包含固件功能的现有设备,可用无线方式安全地更新安全补丁。

易开发性:在原型设计期间,易开发性是另一个要优先考虑的需求,满足该需求才能快速轻松地让您的IoT设备正常运行,捕获数据,并与其他设备和云进行通信。

考虑API文档、开发工具,以及硬件制造商或开发社区所提供的支持的可访问性、可用性和质量。选择的设备要能快速轻松地编程和刷新,而且在部署时只需较少的接触,不需要配置或只需针对每个设备进行极少的配置,以便在开发IoT应用程序时少走弯路并节省时间。

数据获取、处理和存储需求:连接的传感器数量、捕获的数据的分辨率,以及数据采样速率,这些都决定了要处理的数据量,还会影响数据处理和存储需求。

需要保留在设备上的数据量,取决于连接设备向上游传输数据的频率。安装在智慧建筑中的始终通过电缆连接的设备,会直接向一个高度可用的服务器传输少量的原始数据,与需要处理大量突然传入的数据相比,这种设备需要的处理能力和存储空间相对较少。为了省电而每隔几小时进行连接的设备需要更大的存储空间,在连电期间将数据记录到本地。

连接需求:无线网络的连接需求包括操作范围,或者信号的传输距离,以及预计要传输的数据量和传输速率。考虑设备的容错能力,以及在断开连接后重连并重新尝试发送数据的能力。您的硬件可能拥有集成式网络连接,比如蓝牙或WiFi,或者可能需要通过扩展板或模块来添加此能力。可升级的外部模块能提供更高的灵活性,因为您可以选择试用不同模块来评估它们的范围和功耗。

电源需求:其他许多需求也会对设备的电源需求产生影响,这些需求包括需要的传感器数量和网络传输速率。考虑您的设备是连接电源,还是需要需要电池或超级电容之类的移动电源。如果需要便携式电源(如电池),那么您需要了解电池的大小、重量和容量需求,以及电池是否可以重复充电、更换,或者在电池耗尽后是否应丢弃。如果设备可再充电,应多久充一次,通过什么方式充电?

物理设备设计需求:物理设备设计需求包括设备的外观和大小。

还需要考虑设备将安装到哪些环境条件下,例如它是否需要防水或有坚固的外壳?例如,作为车队监控应用的一部分,安装在卡车底部的设备需要得到妥善保护,以确保它们在恶劣条件下能够继续运行;它需要防水、耐脏和抗震。

成本需求:硬件的成本包括硬件和关联组件(比如任何传感器)的初始费用,以及它们的持续操作成本,比如电源成本和更换磨损部件或缺陷组件的维护成本。还要考虑某些组件或设备驱动程序的版权费。购买商用的现成开发板或SBC可能比制造定制板更经济。如果您通过许多设备扩展IoT网络,那么专用硬件设备可能是更明智的选择。

每种应用和情况各有不同。在为IoT项目选择硬件时,没有万全之策。采用基于标准的商业性硬件,比如微控制器或单板计算机,可以在开发的早期阶段节省时间和开支,而不会牺牲灵活性。您在原型设计阶段学到的知识,能帮助您在之后部署IoT解决方案时制定关键的硬件设计决策。

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

    关注

    48

    文章

    7482

    浏览量

    151012
  • IOT
    IOT
    +关注

    关注

    186

    文章

    4174

    浏览量

    196170
  • 互联设备
    +关注

    关注

    0

    文章

    11

    浏览量

    3034
收藏 人收藏

    评论

    相关推荐

    IoT工程师如何为你的设计选择正确的软件架构

    在本文中,我们将讨论你在为微控制器或无线微控制器项目选择一套优秀的软件时,所需要考虑的各种要素。
    发表于 12-26 15:20 2442次阅读

    何为高电压测试选择最佳电缆?

    何为高电压测试选择最佳电缆?
    发表于 05-11 06:44

    何为FPGA选择合适的电源管理方案呢

    何为FPGA选择合适的电源管理方案0背景 当项目中FPGA选型已确定,开始设计电路原理图时,硬件工程师面临的首要问题就是:如何为
    发表于 10-29 06:36

    何为DC/DC直流电源转换器选择最佳的开关频率呢

    何为DC/DC直流电源转换器选择最佳的开关频率呢?有哪几种设计方案?
    发表于 11-01 07:58

    请问鸿蒙Beta3.0如何创建imx6ull的项目选择呢?

    最近刚开始学习鸿蒙系统,遇到一些问题,请大家不赐福教。我安装了3.0Beta版本的工具,想要基于imx6ull板子开发,但是在创建项目MCU的时候没有找到并没有这个型号的板子,请问如何创建imx6ull的项目选择呢?
    发表于 03-30 10:12

    LoRa与NB-IoT对比 谁是物联网最佳选择

    物联网必将带来万亿市场,宽松土壤下生长的LoRa和出身名门的NB-IoT都是目前物联网领域的主流技术。LoRa与NB-IoT并没有太大区别,几乎都具备远距离、高速低功耗、覆盖范围广等特点,对于大规模布网下的安全隐患,谁才是那个最佳
    发表于 02-05 13:55 1.2w次阅读

    何为不同的项目选择合适的显示屏

    如果只是显示数字,那么从众多采用LED或LCD技术的7段显示屏中选择一款就足够了。它们看起来有点老派,但具有良好的可读性,而且很容易控制。遗憾的是,这些显示屏显示的文本仅限于少数可能的字符。要显示
    发表于 04-11 15:30 1037次阅读
    如<b class='flag-5'>何为</b>不同的<b class='flag-5'>项目选择</b>合适的显示屏

    何为物联网项目选择最佳的合作伙伴

    物联网的全面采用为企业提供了所需的灵活性、效率和可扩展性。所有这些加在一起为企业提供了竞争优势。物联网供应商正在提供多功能的物联网平台来帮助这些公司管理连网设备,并追赶物联网潮流。
    发表于 09-27 11:02 714次阅读

    开发者如何为其特定嵌入式AI项目选择最佳的AI芯片

    来源:ST社区 开发者和系统设计人员在为其嵌入式设计增加某种形式的神经网络或深度学习功能时,有多个选择。以前,甚至是现在,设计人员成功地使用GPU和FGPA来满足了深度学习的内存密集型需求。现在
    的头像 发表于 12-23 14:08 1037次阅读

    怎样给物联网项目选择合适的网关?

    怎样给物联网项目选择合适的网关? 随着物联网(IOT)边缘计算侧能力和网络连接能力的提升,终端产品越来越可以自主进行一些决策性工 作。与此同时,对于物联网中另外一个重要的组成部分——网关,也有了更多
    发表于 12-21 15:05 1182次阅读

    除了Python,AI项目选择的编程语言还有哪些?资料下载

    电子发烧友网为你提供除了Python,AI项目选择的编程语言还有哪些?资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工程师们。
    发表于 04-03 08:45 0次下载
    除了Python,AI<b class='flag-5'>项目选择</b>的编程语言还有哪些?资料下载

    篇1:如何为FPGA选择合适的电源管理方案

    何为FPGA选择合适的电源管理方案0 背景 当项目中FPGA选型已确定,开始设计电路原理图时,硬件工程师面临的首要问题就是:如何为
    发表于 10-23 11:06 18次下载
    篇1:如<b class='flag-5'>何为</b>FPGA<b class='flag-5'>选择</b>合适的电源管理方案

    何为集成项目选择合适的红外热像仪

    随着红外热像仪在工作中的应用越来越普遍,越来越多的企业明白在工作项目中添加热成像传感器,可以发现很多肉眼看不到的东西。如果你正要将热像仪加入到目前的工作中去,以下这些事情一定要弄清楚!
    的头像 发表于 02-26 13:34 1493次阅读
    如<b class='flag-5'>何为</b>集成<b class='flag-5'>项目选择</b>合适的红外热像仪

    何为Arduino led项目选择颜色

    电子发烧友网站提供《如何为Arduino led项目选择颜色.zip》资料免费下载
    发表于 10-27 17:17 1次下载
    如<b class='flag-5'>何为</b>Arduino led<b class='flag-5'>项目选择</b>颜色

    何为你的项目选择LoRa模块?

    LoRa模块有各种不同的参数和质量水平。那么,我们如何挑选最好的LoRa无线模块制造商?如果你想购买尽可能高质量的LoRa模块选件,找到一家在客户关怀方面有良好声誉的可靠制造商是至关重要的。
    的头像 发表于 11-07 15:38 623次阅读