slug on a leaf

我们都面临着挑战,尤其是物联网!

就技术挑战而言,物联网是艰难的:

  • 规模很大:一切都是巨大的。
  • 功率低:几乎没有可用。
  • 无线是奇怪的:它不断变化,它不是很好,开始。

今天,我们将详细介绍每个 IoT 平台必须面对的三个基本问题。作为如何在真实环境中解决这些问题的示例,我们来看看如何在Thingsquare IoT 平台中解决这些问题。

对于大量设备,即使通常不太可能发生的问题也可能发生。

您可能还喜欢:
比较 11 个 IoT 开发平台

比例:当一切很大时,所有投注都关闭

许多 IoT 部署涉及数百或数千个单独的设备。对于大量设备,即使通常不太可能发生的问题也可能发生。

大型网络在现场难以监控。但在开发过程中,要处理这些工作更具挑战性。

在 Thingsquare,当我们谈论物联网网络的发展时,我们使用以下类别:

  • 开发人员规模:1-2 台设备。当您面前有 1 或 2 台无线设备时,相对容易理解它们在做什么。您可以添加在事情发生时闪烁的打印件或 LED,作为开发人员,您可以放心自己处于控制状态。甚至可以停止在其中一个设备上执行软件,并单步执行程序。
  • 桌面比例:2-5台设备。在此阶段,您无法再自行控制每台设备,但必须将它们视为一个单元。他们仍然很少能够监控,但你必须使用的东西,如视觉闪烁LED,让你看到他们是怎么回事。
  • 办公规模:5-10台设备。现在,您已经用完了空间,将设备放在一张办公桌上,并且必须将它们分散到开始难以监控的区域。使用新程序编程开始成为一项实际挑战,因为您必须将每台设备物理连接并断开到闪存编程器。
  • 地板秤:10-100台设备。现在,在单个办公室中查找所有设备的空间开始变得困难,您需要分散在整个楼层空间。这使得很难直观地看到所有设备,因此查看当前情况的唯一方法是通过无线通信进行操作 ,除非每个设备都与有线后通道相连,而有线后通道本身需要设置大量工作。此外,在这种规模下,硬件问题开始被看到:硬件的制造可能有些片面,并且有 100 台设备,产量为 99%,一个或多个设备可能物理损坏。
  • 部署规模:100-500 台设备

用于原型测试和验证的概念验证的推出很常见。在这种情况下,互联网连接问题开始影响系统。如果系统的部分具有与其他部分不同的连接(例如,因为系统的某些部分与 WiFi 连接,而其他部分使用 3G 连接),则网络的不同部分的行为会有所不同。

  • 城市规模:500-1000+设备。在此比例下,需要自动化工具来跟踪系统的行为。此外,如果所有设备都包含在单个网络中,则简单的操作开始需要大量时间。例如,由于无线网络的物理速度,向所有设备发送 ping 消息需要几分钟时间。
  • 我们在 Thingsquare 用于应对这些挑战的策略包括:

    • 模拟.我们模拟一切,从物理无线层到微处理器层,到网络和设备的高级仿真。
    • 测试台开发。每个功能都在一组测试基中开发,最大的是 100 个节点。
    • 轻量级崩溃报告。如果代码崩溃,设备将提供简短但有用的崩溃报告。
    • 回归测试.代码中的每个更改都经过我们的模拟器中严格的自动测试。

    仿真

    在处理大型系统时,您很少了解正在发生的事情。

    当处理 IoT 设备时,这些设备是无线的,并且无法存储和传输日志,因此可见性更低。

    模拟是规避这种情况的重要工具。我们在多个层使用仿真:

    • 无线网络模拟:我们模拟了系统的无线网络行为,从而能够看到在任意给定时间空气中发生的情况。
    • 微处理器仿真:我们模拟运行代码的处理器,从而使我们能够大规模地测量功率和执行时间。
    • 功率模拟:在我们的网络模拟器和处理器仿真器中,我们跟踪代码和通信的功耗,这样我们就不需要测量硬件上的所有内容。
    • 高级仿真:我们通过以高级语言(大多数是 Javascript)实现 IoT 设备的行为来模拟其行为,这使我们能够以仿真或测试台难以进行的规模来测试系统。

    测试台开发

    仿真是一个强大的工具,但它不能取代实际硬件上的开发。

    有时您需要为物理传感器或执行器进行开发。然后,您需要真正的硬件来与之交互。

    但更重要的是,模拟器不会以与现实世界完全相同的方式进行。如果您完全在模拟中开发解决方案,那么当面对现实时,它很可能会中断。

    在 Thingsquare 办公室,我们有一套规模越来越大的测试台:

    • 两个测试台,每个测试台有 10 个和 20 台设备。
    • 一个测试台,有 100 台设备。

    我们使用测试台来开发新的机制和持续测试我们的系统。我们可以使用它们来复制我们在客户安装中看到的行为。我们还可以在测试拍片中使用它们来运行比我们实际适合办公室更大的网络。

    wireless network topology

    轻量级崩溃报告

    软件崩溃。特别是在开发期间。当代码崩溃时,崩溃报告可以帮助开发人员了解代码崩溃的位置和原因。

    对于低功耗 IoT 设备,存储和传输完整崩溃转储的空间不大wikipedia.org/wiki/Executable_and_Linkable_Format”rel=”nofollow”目标=”_blank”=ELF二进制文件被存储,并带有该构建的git提交ID。

  • 如果设备崩溃,则崩溃时的程序计数器存储在非易失性存储器中。
  • 当设备在崩溃后重新启动时,崩溃站点的提交 ID 和程序计数器将报告给后端。
  • 这样就可以构建导致崩溃的内存地址和导致崩溃的特定代码修订的数据库。这允许开发人员调查和识别导致崩溃的原因,并修复问题。

    回归测试

    回归测试是一种标准软件开发技术,可确保软件在开发时不会中断。

    IoT 平台由多种类型的组件组成,从后端软件到无线设备。要执行回归测试,每个组件都需要自己和整个组件进行测试。

    在 Thingsquare,我们使用模拟器对系统进行的每个更改执行全平台回归测试。回归测试为绿色后,我们将在测试基中测试系统。回归测试套件旨在捕获致命错误,这些错误可能导致测试台无法使用。

    Image titleOutput from a typical regression test run.

    IoT 可能功能强大,但很少有东西像 IoT 设备那样无能为力。

    权力:没有太多

    IoT 可能功能强大,但很少有东西像 IoT 设备那样无能为力。

    它们是无线的,物联网设备需要使用电池或太阳能电池运行。这些电源很弱。真的很虚弱

    功耗通常必须与电池的自发放电一样低。

    将功耗降低到如此低的低水平,既是一门科学,也是一门艺术。科学是测量和理解功耗,无论是使用软件或硬件。艺术是知道如何很好地利用这些信息。

    功耗既是硬件和软件问题,也是一个软件问题。硬件需要以正确的方式进行调整,并支持尽可能关闭组件。该软件需要知道什么关闭和时间 – 以及何时安全这样做。

    在物联网中,最棘手的部分是无线通信。收音机消耗了大量的电量,但它是至关重要的,所以不能盲目关闭。收音机在收听时消耗的电量与发送时一样多。随着网络规模的扩大,这变得越来越重要。

    在 Thingsquare 平台中,我们使用一系列技术来处理电源问题:

    • 基于硬件的功率测量:我们使用出色的工具测量硬件的功率。
    • 基于软件的功率测量:每个节点跟踪功耗,并定期报告。
    • 寿命估计:根据测得的功率数据,我们可以估计每个设备的寿命。
    • 电源跟踪与异常检测:在大型系统中,我们使用异常检测来查看任何设备是否碰巧使用比预期更多的功率。

    基于硬件的功率测量

    第一步是确定原始硬件的功耗。执行此操作的最佳方法之一是使用名为基于软件的功率测量

    基于软件的功率测量使我们能够持续跟踪每个设备的功耗。

    由于软件完全控制了硬件,我们只需要测量每个组件的打开时间,就能很好地估计总功耗。每个设备都会定期报告此数据。

    寿命估算

    由于我们现在跟踪每个设备的功耗,我们可以用它来估计每个设备的生存期。

    power consumption estimate graph
    带异常检测的电源跟踪

    当设备数量增加时,监控单个设备的功耗变得越来越困难。然后,我们需要引入自动化工具。

    我们从每个设备收集电源数据,我们可以使用异常检测来突出显示功耗异常高的设备。需要仔细查看这些设备 – 可能存在导致此问题的错误。如果我们能在开发过程中找到它,在部署解决方案时它不会击中我们。

    an error message

    一旦我们确定了有问题的设备,我们可以深入了解详细信息,并查看历史功耗。我们发现,在几个时间尺度上平均功耗是很有用的:1 小时平均值可用于发现在一天中重复的问题,而 24 小时平均值则便于发现每周发生的问题。

    Variable rdc-24 graph

    上图显示了设备功耗的 24 小时平均值。这种装置在4月的几天内显然增加了功耗。

    一旦我们确定存在问题,我们可以更深入地研究为什么会发生这种情况。如果没有这种识别存在问题的能力,这个问题就不会被发现,并偷偷地投入生产。

    思考无线通信的一个方法是像光一样思考它:它反弹,以意想不到的方式被遮蔽。

    无线:这很奇怪

    许多物联网与无线网络有关。无线通信很奇怪

    思考无线通信的一个方法是像光一样思考它:它反弹,以意想不到的方式被遮蔽。无线覆盖可能擅长于一个地点,但糟糕的只是一步之遥。就像灯的光可以遮挡,甚至靠近灯。

    如果某些东西挡住了他们,无线信号可能会停止。许多 IoT 解决方案部署在事物移动的位置。如果通信路径上发生了很大的变化,则通信路径将堵塞。

    无线通信也受到其他无线通信的严重影响。不同的频率有不同的干扰量4 GHz 频段,包括 WiFi 和蓝牙,是一个特别难以适应的空间。这就是为什么许多使用其他频率,如亚GHz通信。

    以下是我们在 Thingsquare 系统中应对这些挑战的方式:

    • 网状网络:我们使用IPv6网状网络来绕过障碍物。
    • 跳频:我们使用跳频通道来避免无线干扰。

    网状网络

    网状网络是一种技术,通过重复来自其他设备的消息,设备帮助其他设备到达更远的位置。

    无需要求每个设备都在接入点范围内,而是允许将设备分散到更大的区域。它还允许网络自动绕过障碍物。

    Thingsquare平台使用IPv6网络与RPL网格路由协议。所有节点持续测量与其相邻节点的连接质量,如果找到质量更好的链接,可能会重新排列路由图。

    网状物的形成和维护过程是完全自动的。因此,只需将扩展器放入网络即可扩展网络。

    跳 频

    跳频是避免在特定无线信道上花费太多时间的一种方式。这是需要的,因为该信道可能被其他通信使用。

    对于某些频率范围,跳频是一项法规要求。不能部署未正确切换通道的设备。

    Thingsquare 平台使用跳频来遵守法规,并在同一位置启用多个网络。每个网络都有自己的跃点计划,这使得网络相互干扰尽可能少。单独的网络也有不同的安全密钥,但保持频率分开会使系统更高效。

    结论

    由于部署规模庞大、电源要求和无线通信,物联网是一个重大的技术挑战。

    幸运的是,通过使用 IoT 平台,您无需直接面对这些挑战。它们应该已经被平台解决了。

    进一步阅读

    物联网 (IoT) 的 11 大云平台

    用于构建 IoT 解决方案的顶级物联网博客

    12 个物联网平台,用于构建 IoT 项目

    Comments are closed.