Adafruit IO 数据速率限制
Adafruit IO data rate limit
我正在尝试将数据从多个 ESP-8266 发送到我的 Adafruit IO 帐户上的提要。
问题是,当我尝试发送新值时,我面临发布禁令,因为当我的两个或多个 MCU 碰巧同时发送数据时,违反了 2 秒的时间限制(我无法同步他们避免这种情况)。
这个问题有什么可能的解决方案吗?
我建议考虑这三个选项:
从一个 ESp 发送到下一个 ESp 的发送令牌。所以基本上所有的 ESP 都不允许发送。如果收到令牌,则允许发送 - 等待适当的时间限制,将令牌交给下一个 ESP。该解决方案让所有 Arduinos 通过 AP/router 连接,并将使用客户端到客户端通信。
它可以设置故障安全,因此如果下一个 ESP 不可用(reset/out 电池等),您可以选择列表中的下一个并向服务器发出额外警告
第二种解决方案可能是(更灵活和动态但 SPO - 单点故障)设置一个 ESP 作为数据收集器来进行发送。
如果 ESps 位于不同的位置,您必须将它们设置为满足以下要求:
If you have a free Adafruit IO Account, the rate limit is 30 data
points per minute.
If you exceed this limit, a notice will be sent to the
{username}/throttle MQTT topic. You can subscribe to the topic if you
wish to know when the Adafruit IO rate limit has been exceeded for
your user account. This limit applies to all Data record modification
actions over the HTTP and MQTT APIs, so if you have multiple devices
or clients publishing data, be sure to delay their updates enough that
the total rate is below your account limit.
所以它不是 2 秒限制而是 30/分钟(如果专业版则为 60/分钟)所以你限制将每个 ESP 发送到公式:
30 / Number of ESPs sending to I/O -> 30 / 5 = 6 ==> 5 incl. saftey margin
表示每个ESP在一分钟内只允许发送5次。 重要 如果 5 次发送限制已达到,则必须在下一次发送前等待一分钟。
答案很简单,就是不要发送那么频繁。
物联网世界
- 如果数据需要频繁更新(例如motor/servo、加速度计等),通常您希望将其保存在本地而不是want/need将其发送到云端。
- 如果数据需要在云端,往往不需要更新那么频繁(比如temperature/humidity)。
或者,如果您仍然认为您的数据非常重要,需要如此频繁地更新,请将一个 ESP 作为您的边缘网关,从传感器节点收集数据,并立即将其发送到云端,那实际上是具有多个传感器节点的物联网网络设计的正确方法。
如果这仍然不适合您,您仍然可以选择支付高级服务以提高速率限制,或者构建您自己的云服务并将其与您的 Edge Gateway 集成。
我正在尝试将数据从多个 ESP-8266 发送到我的 Adafruit IO 帐户上的提要。 问题是,当我尝试发送新值时,我面临发布禁令,因为当我的两个或多个 MCU 碰巧同时发送数据时,违反了 2 秒的时间限制(我无法同步他们避免这种情况)。 这个问题有什么可能的解决方案吗?
我建议考虑这三个选项:
从一个 ESp 发送到下一个 ESp 的发送令牌。所以基本上所有的 ESP 都不允许发送。如果收到令牌,则允许发送 - 等待适当的时间限制,将令牌交给下一个 ESP。该解决方案让所有 Arduinos 通过 AP/router 连接,并将使用客户端到客户端通信。
它可以设置故障安全,因此如果下一个 ESP 不可用(reset/out 电池等),您可以选择列表中的下一个并向服务器发出额外警告
第二种解决方案可能是(更灵活和动态但 SPO - 单点故障)设置一个 ESP 作为数据收集器来进行发送。
如果 ESps 位于不同的位置,您必须将它们设置为满足以下要求:
If you have a free Adafruit IO Account, the rate limit is 30 data points per minute. If you exceed this limit, a notice will be sent to the {username}/throttle MQTT topic. You can subscribe to the topic if you wish to know when the Adafruit IO rate limit has been exceeded for your user account. This limit applies to all Data record modification actions over the HTTP and MQTT APIs, so if you have multiple devices or clients publishing data, be sure to delay their updates enough that the total rate is below your account limit.
所以它不是 2 秒限制而是 30/分钟(如果专业版则为 60/分钟)所以你限制将每个 ESP 发送到公式:
30 / Number of ESPs sending to I/O -> 30 / 5 = 6 ==> 5 incl. saftey margin
表示每个ESP在一分钟内只允许发送5次。 重要 如果 5 次发送限制已达到,则必须在下一次发送前等待一分钟。
答案很简单,就是不要发送那么频繁。
物联网世界
- 如果数据需要频繁更新(例如motor/servo、加速度计等),通常您希望将其保存在本地而不是want/need将其发送到云端。
- 如果数据需要在云端,往往不需要更新那么频繁(比如temperature/humidity)。
或者,如果您仍然认为您的数据非常重要,需要如此频繁地更新,请将一个 ESP 作为您的边缘网关,从传感器节点收集数据,并立即将其发送到云端,那实际上是具有多个传感器节点的物联网网络设计的正确方法。
如果这仍然不适合您,您仍然可以选择支付高级服务以提高速率限制,或者构建您自己的云服务并将其与您的 Edge Gateway 集成。