gpt4 book ai didi

python - 从 RaspberryPi 传感器向 Django 后端发送数据(频率、批量更新、鲁棒性)

转载 作者:行者123 更新时间:2023-12-01 01:26:59 26 4
gpt4 key购买 nike

我目前正在开发一个 Raspberry Pi/Django 项目,该项目比我习惯的稍微复杂一些。 (我要么做本地树莓派项目,要么做简单的 Django 网站;从来没有将两者结合起来!)

这个想法是两个 Raspberry Pi 收集运行本地 Python 脚本的信息,每个脚本都使用图像处理从一个 HDMI 源获取输入(我已经弄清楚了所有这部分 - 我想)。现在我希望这两个 Raspberry Pi(彼此不通信)连接到后端服务器,该服务器将组合、存储(和处理)我的两个 Raspberry Pi 收集的信息

我期望每个 Pi 每秒处理一帧,将其与前一秒的帧进行比较(只有他正在寻找的一些不同的东西)隔离任何新事件,并将其发送到服务器。因此,我预计每秒不会超过十几个带时间戳的二进制数据点。

现在,明智的做法是什么?

  • 我每秒都会联系后端吗?每 10 秒一次?
  • 我如何制作这些批量 HttpRequest?通过 POST 请求?通过我发送给 Django 后端处理的简单文本文件? (我找到了一些关于 django 的“批量更新”的信息,但我不确定是否完全涵盖了它)
  • 如何使其稳健?在本地删除日志之前如何确保所有数据已成功传输? (如果一个调用因某种原因失败或延迟,我如何确保下一个调用能够补偿丢失的信息?

基本上,我正在询问制作一个基于物联网的项目的建议,其中传感器收集大量信息并希望将其发送到后端服务器进行处理,以及应该如何设计归档过程。

PS:我希望图像处理部分(每秒 1 帧)在我的 Pi Zero 上足够快(因为它非常简单);该级别的积压不应成为问题。

PPS:我正在使用 django 后端(即使看起来有点矫枉过正) a/因为我已经非常了解这个框架了 b/因为我希望使用 django 从收集的组合数据点构建实时性能指标,并将它们(几乎)实时地显示在网页上。

非常感谢!

最佳答案

这部分取决于您需要它的弹性程度。如果你真的无法承受单个更新的丢失,我会考虑使用消息队列,例如 RabbitMQ - 客户端将直接将内容添加到队列中,服务器将依次弹出它们,无需涉及根本没有 HTTP 请求。

否则,以某种序列化格式(即 JSON)发布每个帧的数据会更简单,Django 会简单地反序列化并迭代列表,将每个条目保存到数据库中。对于您描述的速率来说,这应该足够快 - 我预计保存十几个数据库条目只需不到半秒的时间 - 但这仍然留下了如果事情挂起该怎么办的问题由于某种原因。在服务器上设置超短超时会有所帮助,就像在确认数据已保存之前保持要发布的数据一样,并在客户端中创建唯一的 ID 以确保请求是幂等的。

关于python - 从 RaspberryPi 传感器向 Django 后端发送数据(频率、批量更新、鲁棒性),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53249599/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com