system_sensors 项目教程
1. 项目介绍
system_sensors
是一个用于 Raspberry Pi(RPI)的简单 Python 脚本,它每 60 秒运行一次,并将多个系统数据通过 MQTT 协议发送到 MQTT 代理。该项目特别适用于 Home Assistant,因为它使用了 MQTT Discovery 功能,使得在 Home Assistant 中无需手动配置即可自动发现传感器数据。
该脚本目前记录的数据包括:
- CPU 使用率
- CPU 温度
- CPU 时钟速度
- 风扇速度
- 磁盘使用情况
- 内存使用情况
- RPI 的电源状态
- 上次启动时间
- 上次接收消息的时间戳
- 交换分区使用情况
- WiFi 信号强度
- WiFi 连接的 SSID
- 待升级的数量
- 外部磁盘的磁盘使用情况
- 主机名
- 主机本地 IP
- 主机操作系统发行版和版本
- CPU 负载(1 分钟、5 分钟和 15 分钟)
- 网络下载和上传吞吐量
2. 项目快速启动
安装依赖
首先,确保你的系统上安装了 Python 3.6 或更高版本。然后,按照以下步骤进行安装:
# 克隆项目仓库
git clone https://github.com/Sennevds/system_sensors.git
cd system_sensors
# 安装必要的系统依赖
sudo apt-get install python3-dev
sudo apt-get install python3-apt
# 安装 Python 依赖
pip3 install -r requirements.txt
配置 MQTT 和传感器
编辑 settings_example.yaml
文件,配置你的 MQTT 代理信息和传感器设置,并将其保存为 settings.yaml
:
mqtt:
hostname: "your_mqtt_broker_hostname"
port: 1883
user: "your_mqtt_user"
password: "your_mqtt_password"
client_id: "your_client_id"
ha_status: "hass"
timezone: "Your/Timezone"
update_interval: 60
sensors:
cpu_usage: true
cpu_temperature: true
# 其他传感器配置...
启动脚本
运行以下命令启动脚本:
python3 src/system_sensors.py src/settings.yaml
创建系统服务(可选)
如果你想让脚本在系统启动时自动运行,可以创建一个系统服务:
sudo systemctl edit --force --full system_sensors.service
将 example_system_sensors.service
文件的内容复制到编辑器中,并根据你的路径和用户名进行修改。然后启用并启动服务:
sudo systemctl daemon-reload
sudo systemctl enable --now system_sensors.service
sudo systemctl status system_sensors.service
3. 应用案例和最佳实践
应用案例
- 家庭自动化系统:将
system_sensors
集成到 Home Assistant 中,实时监控 Raspberry Pi 的系统状态,如 CPU 温度、内存使用情况等,确保系统稳定运行。 - 远程监控:通过 MQTT 协议将传感器数据发送到远程服务器,实现对 Raspberry Pi 的远程监控和管理。
最佳实践
- 优化传感器配置:根据实际需求启用或禁用特定的传感器,避免不必要的资源消耗。
- 定期更新:定期检查项目仓库,获取最新的功能和修复,确保系统的稳定性和安全性。
4. 典型生态项目
- Home Assistant:一个开源的家庭自动化平台,支持通过 MQTT 协议集成各种传感器和设备。
- Mosquitto:一个轻量级的开源 MQTT 代理,适用于各种物联网设备和应用场景。
- Raspberry Pi OS:Raspberry Pi 的官方操作系统,支持多种硬件和软件扩展,适用于各种嵌入式系统和物联网项目。
通过这些生态项目的集成,system_sensors
可以更好地发挥其功能,为用户提供全面的系统监控和自动化解决方案。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考