物联网原型开发使用简单的单板设计

物联网,特别是工业物联网(IIoT)不仅负责为许多业务部门创造变革性的影响,还负责实现嵌入式IIoT解决方案开发方式的根本转变。许多面临此类项目的工程师选择选择市售的单板计算机(SBC)作为设计的基础。虽然这种方法可以产生快速的结果,但它也可能使开发人员走上一条难以轻松将最终设计带入大批量生产的道路。在选择原型平台时,仔细检查设计所基于的MCU以及大量支持组件以查看它们是否可以单独购买并从头开始整合到新设计中非常重要。
本文将重点介绍用于物联网设计的简单温度传感器平台的设计,并将重点介绍所使用的各个组件。此外,该平台将不仅用于验证设计的概念,还将通过调查功耗特性以及如何对其进行优化,展示如何使用该平台对开发进行微调。
IIoT温度传感器的基本功能要求示意图
图1:IIoT温度传感器的基本功能要求。
考虑图1所示的简单温度传感器设计。这突出了需要设计用于将数据存储在云平台上的电池供电温度传感器的基本功能模块。微控制器(MCU)以预设间隔轮询温度传感器,然后使用无线设备建立通信链路并将数据发送到接收云应用程序。对于设计工程师来说,要做出许多个人决定,决定选择使用的部件,并反过来影响物料成本。例如,温度传感器可以包括专用温度传感器,例如来自ADI公司的流行的TMP36系列或更全面的组合的温度,湿度和空气压力,如博世传感器 BME280,或一个不起眼的表面安装PTC 热敏电阻从爱普科斯-TDK。成本只是一个考虑因素,准确性,容忍度和接口方法都是其他因素。传感器的选择也将影响MCU的规格。如果您使用的是廉价的热敏电阻,则在所需的温度范围内,温度与温度之间可能没有线性关系,因此需要进行一定程度的基于软件的斜率计算。实现这一目标的MCU资源量很小,但仍是一个考虑因素。另一方面,BME280需要SPI或I 2C通信到主机MCU,因此需要具有这些接口功能并能够控制传感器并处理更多数据的设备。
交流方式也有许多关键性的决定。可能最重要的是要使用的无线协议,其中蓝牙Wi-Fi是最受欢迎的。蓝牙提供较短的通信范围,适用于相对较少量的数据传输,并且通常与网关设备进行通信,该网关设备可能会在使用更远距离的通信(如Wi-Fi)进行前传输之前聚合数据。在传感器处配置Wi-Fi通信不再需要中间网关,允许更长距离的通信并适合更高的数据量,但需要耗费更高的功耗。
一旦无线通信已经确定,还有另外的选择采用分立方法或使用预先认证的无线模块的决定。除非您的组织拥有自己的专业射频工程团队,并且预期的生产量非常高,否则很可能会使用模块方法。
这种设计的最终功能是电源管理。从可更换纽扣电池操作可能是为传感器供电的一种方法,但使用具有无线能量收集技术的可充电电池或小型太阳能电池板是另一种方法。此外,将MCU和无线模块置于多种不同睡眠模式的功能可以极大地帮助节省电力,从而延长电池寿命。典型地,以这种方式控制设备是通过软件实现的。该设计的其他考虑因素将涉及预期的生产量,如果该传感器可能是该公司希望开发和推出的多种不同传感器产品中的一种。如果后者是这种情况,
当考虑传感器设计的原型设计(如上面强调的)时,设计工程师有多种不同的方式来设计设计。过去,制造商开发套件和评估板为设计提供了一个理想的学习平台,尽管在许多情况下集成各种功能需要进行一些工程设计和嵌入式开发。然而,全新的全集成和紧凑型单板计算机(SBC)越来越受到正在寻找最小原型开发时间的工程师的欢迎,并且设计充分开源,因此他们可以围绕SBC进行最终设计。在这种情况下,SBC的所有核心组件都可以购买,并且Creative Commons许可证涵盖任何设备库。
Adafruit Feather M0 Wi-Fi(图2)是一个紧凑型完全集成SBC的好例子。
Adafruit Feather M0 Wi-Fi单板电脑的图片
图2:Adafruit羽毛M0 Wi-Fi单板计算机。
这款Adafruit Feather M0 Wi-Fi的重量仅为6.1克,仅为2.1 x 0.9 x 0.3英寸,包括采用QFN封装的Microchip ATSAMD21G18 MCU,运行频率为48 MHz,配有256 kB闪存和32 kB SRAM。这款基于ARM®Cortex®-M0的器件提供20个可访问的GPIO引脚,8个PWM端口,10个12位模拟输入和一个DAC。外设串行通信接口包括SPI,I 2 C和UART。板载Diodes公司的 AP2112K-3.3 3.3 V 直流稳压器具有600 mA的峰值电流能力,可通过微型USB连接器为整个电路板供电。逻辑电平始终保持在3.3 V DC,因此如果连接到任何5 V DC,则需要使用电平转换器设备。此外,可以使用3.7 V DC LiPo电池与Microchip MCP7331T-2ACI / OT充电器IC 一起提供该电路板。经认证的FCC型认证的Microchip ATWINC1500模块带有集成天线,可提供2.4 GHz,802.11 b / g / n Wi-Fi通信。在正常操作下,MCU的功耗可以为10 mA左右,在发送期间无线模块的最高功耗可达300 mA。
Adafruit Feather M0 Wi-Fi的示意图如图3所示。
Adafruit Feather M0 Wi-Fi示意图(点击放大)
图3:Adafruit羽毛M0 Wi-Fi示意图。
32.768 kHz晶振,四个LED和一些电阻和电容完成了电路板的BOM。
Feather上的软件开发由具有USB引导程序的MCU提供支持,该引导程序允许使用流行的Arduino IDE。使用这种方法可以快速开发应用程序,而Feather板的紧凑特性使其可以轻松集成到新产品的低量早期测试版中。代替使用Feather的Arduino USB进行串行编程和调试功能,专业开发人员可以选择使用位于电路板底部的SWDIO / SWCLK引脚的Atmel软件框架(ASF)。
如前所述,成功使用SBC来设计原型的关键在于能够基于SBC的核心组件构建自己的设计。Adafruit Feather M0确实如此。MCU和无线模块在商业上随时可用,并附带一系列开发工具和资源。Microchip的SAMD21G18微控制器数据表可以在这里找到,并给出了器件选项和封装尺寸的深入解释。硬件资源包括ATSAMD21 XPRO评估板以及全面的用户指南,在线仿真器,编程器和调试器(Atmel-ICE)以及一系列扩展板,如ATIO1-XPRO包含各种不同的传感器。WINC1500也得到了开发资源的良好支持,包括用于ATSAMD21 XPRO和ATWINC1500-XPRO的XPRO扩展板。
Feather不仅提供了一个理想的开发平台,从中可以证明设计理念并对其进行了原型设计,但是由于它所基于的所有组件都可以随时使用,这意味着原型设计也可以被纳入生产设计有信心的阶段。
为了演示物联网应用程序可以轻松建立原型,参考了一个将Feather M0 Wi-Fi连接到微软的物联网服务Azure的例子。这里可以找到一个全面的详细解释,指导工程师完成准备连接到Azure的Feather板的步骤,以及用于Arduino IDE和Azure设置说明所需的库。
Microsoft Azure是弹性的企业级IIoT平台的一个很好的例子,该平台不仅提供与传感器和执行器设备的连接,还为收集的数据提供全面的存储和分析应用套件。该平台的免费试用版可用于轻松访问所有必需的功能。
此应用程序说明了使用博世BME280温度,湿度和压力传感器,但对于此示例,您可以在不需要将传感器连接到羽毛的情况下刺激发送的数据。
第一步是在这里注册一个免费的Microsoft Azure帐户。一旦完成,请登录并访问图4中所示的Microsoft Azure仪表板。
设置新的Azure IoT Hub实例的图像
图4:设置新的Azure IoT Hub实例。
点击仪表板页面顶部的+新按钮,然后选择物联网,然后选择IoT Hub。然后,您可以将您的IoT Hub参数(名称和资源组)命名为图5中突出显示的名称。
在Microsoft Azure中设置IoT Hub功能的图像
图5:在Microsoft Azure中设置IoT Hub功能。
设置过程的最后阶段是在物联网集线器内创建一个设备。这在图6中进行了说明,其中设备添加了TempSensor1的设备ID。勾选该框以自动生成设备密钥,这将在保存时发生。一旦您运行Feather草图,您将需要此设备的主键。这可能会让人困惑,因为物联网集线器和每个设备都有自己的主键。当提示输入连接字符串时,主键将被使用(图8)。
将羽毛温度传感器作为设备添加到物联网集线器的图像(点击放大)
图6:将羽毛温度传感器作为设备添加到物联网集线器。
您现在已准备好使用随附的演示草图,可以在此处下载它。
假设您已经有Arduino IDE,您只需添加Feather M0开发板的支持文件即可。Adafruit教程将引导您了解可在此处找到的流程。
使用Blink示例草图测试Feather M0 Wi-Fi板是一种很好的做法。确保您可以编译和上传草图,并且在继续之前,板载引脚13 LED(位于micro USB连接器旁边)闪烁正确。
为了使用演示草图,您必须将库列表添加到Arduino IDE环境中。请注意,对于Azure库AzureIoTHub,AzureIoTUtility和AzureIoTProtocol_HTTP,您需要安装1.0.21版本,否则草图将失败并显示编译错误。另外,如果您决定不使用BME280传感器,但使用模拟数据,则仍需要包含其库。此外,默认情况下,草图假定您将使用物理传感器。如果您希望模拟数据,则需要更改config.h文件中的标题行以读取'#define SIMULATED_DATA true'。
图7突出显示了库的完整列表,并在屏幕底部显示了草图成功编译并上传到目标Feather M0板。
显示库列表和成功上传的Arduino IDE的图像
图7:显示库列表和成功上传的Arduino IDE。
草图上传后,您需要切换到IDE的串行监视器。草图的写法是通过串行监视器输入Wi-Fi访问详细信息和Azure连接字符串(图8)。
输入Wi-Fi和设备连接信息的图像
图8:输入Wi-Fi和设备连接信息。
在输入上述详细信息后不久,您应在串行监视器上看到确认已建立Wi-Fi连接。然后Feather应该开始将数据发送到Azure IoT Hub,如图9所示。在此示例中,我们一直使用模拟数据。
串行监视器的图像显示来自Feather M0 Wi-Fi发送的消息
图9:显示来自Feather M0 Wi-Fi发送的消息的串行监视器。
一旦消息开始被Azure IoT Hub接受,您可以检查是否收到它们。图10显示了显示接收消息数的IoT设备摘要。
Microsoft Azure IoT Hub的图像显示消息摘要(点击放大)
图10:显示消息摘要的Microsoft Azure IoT Hub。
一旦Azure平台开始接收传感器数据,您就可以使用一些数据存储和分析功能进行调查,有关详细信息可以在Microsoft Azure网站上找到。
正如本文前面提到的,当使用电池作为电源时,节约能耗是非常重要的。Wi-Fi是一种特别耗电的协议,但如已经确定的那样,与其他方法相比具有许多优点。为此,必须注意优化传感器设计的操作,以便在不影响传感器性能的情况下实现低功耗特性。MCU和Wi-Fi模块都能够进入睡眠模式,这些模式一起可以显着延长电池寿命。
有关各种MCU省电模式的详细信息以及设备的电源管理功能控制这些模式的方式,请参阅SAM-D21数据表。在这里也可以找到一个应用笔记,其中介绍了MCU的外设接口和功能可以节省的功耗。
ATWINC1500也具有类似的节电资源数量,其中包括本应用笔记中的专用部分。在其Feather M0 Wi-Fi教程中,Adafruit展示了使用电源监视器来说明Wi-Fi模块消耗的变化(图11)。
羽毛M0 Wi-Fi板功耗的图像
图11:羽毛M0 Wi-Fi板的功耗。
图11的橙色线是羽毛M0 Wi-Fi板的整体功耗。紫色线表示LiPo电池的电源电压。请注意无线电操作引起的尖峰,包括与接入点建立的链路。在通讯之外,静态电流约为22 mA,表示MCU的电流约为10 mA,Wi-Fi模块的电流约为12 mA。了解预期最终产品的潜在用例将有助于确定可能的节能程度。例如,如果仅需要每分钟测量一次温度,则基于温度测量和与云应用的通信花费5秒钟,该设备可以保持至少55秒的睡眠状态,允许设备在91%的时间内处于最深度的睡眠模式。其他节能方法可能需要在通过Wi-Fi发送数据之前进行多次温度测量,或者也可能只在温度读数与之前的测量结果不同时发送。

结论

随时可用的SBC成为验证产品概念和创建初始原型设计的理想平台。仔细选择使用市场上流行的MCU和无线组件的SBC,可以确保原型一旦被证实可以迅速转化为最终设计,充分利用上市时间优势,开源资源和社区支持使用这种电路板通常提供。

用户喜欢...

Seeed BeagleBone Green Wireless物联网原型设计开发套件在贸泽亮相 为广大创客提供优质开发平台

BeagleBone Green Wireless 贸泽电子(Mouser Electronics), 宣布即日起开售Seeed Studio 适用于Google 云平台的BeagleBone Green Wireless物联网原型设计开发套件 。Seeed Studio 与BeagleBoard.org和Google联手推出的这款物...


NodeMCU 基于ESP8266的开源快速硬件物联网原型平台

NodeMCU是一款基于ESP8266的开源快速硬件原型平台,包括固件和开发板,用几行简单的Lua脚本就能开发物联网应用。...