#proxy #sensor #web-server #iot #service #raspberry-pi-pico #pixy

bin+lib pixy-server

Pixy 服务实现的 Web 服务器

4 个版本

0.2.2 2024年4月29日
0.2.1 2023年8月24日
0.2.0 2023年8月4日
0.1.8 2023年7月28日

#943 in 硬件支持

每月41次下载
用于 pixy

MIT 许可证

46KB
738

Pixy

Build Release Crates.io

Pixy 是一个用于与 IoT 设备配合使用,以默认安全方式中继传感器数据的 Web 服务器。它最初是为与 Pimoroni Enviro Pico 配合使用而构建的,所以可以说它是一个 Raspberry Pi Pico proxy

概览

Pixy 是一个基于 Rust 的代理,用于将传感器消息中继到简单 YAML 配置文件中定义的多个目标。它作为 IoT 设备的单个写入入口点,减少了配置开销,并使向许多独立系统分发数据变得更加容易。

对 Pixy 有建议?请为功能请求打开一个 问题,或开始一个 讨论

动机

在设置好 Enviro Pico 并将其通过 MQTT 连接到我的 Home Assistant 实例后,我开始考虑它的其他用途。我一直在思考如何将其连接到其他自动化平台(如 IFTTT),如何将数据传输到公民科学项目,或如何构建更强大的警报系统、提高容错性等,这些在尽可能延长 Pico 电池寿命时似乎是不可能实现的。

在浏览一些论坛和 GitHub 仓库后,我发现使用该板的其他人也对上传到多个目标以及增加目标列表有类似的想法。然而,多个上传目标 = 花费更多时间上传 = 使用更多电池,因此似乎没有从 Pico 本身执行此操作的好主意。我决定编写某种传感器代理来处理多目标上传,这样 Pico 就只需要上传到一个目标。

我对这个代理的目标是

  1. 代理应该 快速,因此 HTTP 服务器监听器应在完成传感器数据的重新导出之前返回。
  2. 代理应该 小巧,因此它最好能在 Raspberry Pi Zero 上运行。
  3. 代理应该 简单,因此编写配置文件应该是直截了当的。
  4. 代理应该 灵活,因此应该有多种安装/运行它的方法。
  5. 代理应该具有可扩展性,因此它应该能够处理您投递的任意数量的板或更少的板。

安装

根据您的偏好和平台,Pixy 可以以多种方式进行安装。有关更多信息,请参阅安装文档。

如果您希望在大名 Pi 或 Pi Zero 上运行 Pixy,则应首选使用 Debian/Ubuntu/Raspian 指令,这些指令设置 systemd 服务在后台运行。

目前,Windows 和 Mac OS 支持仅通过 Docker 安装提供。

配置 Pixy

运行相关的安装步骤后,请阅读配置文档。

许可证

本项目主要使用 MIT 许可证。有关所有条款,请参阅LICENSE文件。

pkg/debian目录中的某些脚本基于 MPL 2.0 许可的代码,因此这些脚本也使用 MPL 2.0 许可。任何此类脚本都将

  1. 包含说明脚本使用 MPL 2.0 许可的通知,完整的文本可在LICENSE-MPL文件中找到
  2. 包含对 MPL 2.0 FAQ 的链接
  3. 包含对创建现有脚本的原始脚本的链接

路线图

有关 Pixy 当前计划的快照,请参阅 GitHub 上的里程碑页面。

依赖项

~20–33MB
~535K SLoC