littlebot
Published on 2025-04-16 / 0 Visits
0

【源码】基于Raspberry Pi和Docker的家庭监控系统

项目简介

本项目是一个基于Raspberry Pi和Docker的家庭监控系统,以Raspberry Pi为硬件载体,采用Docker进行容器化部署。系统能通过HTTP或MQTT接收外部设备的监测数据,并将数据存储于Influxdb中,同时支持使用自定义Python脚本对数据进行处理及发送通知。

项目的主要特性和功能

  1. 数据接收与存储:可通过HTTP或MQTT接收包含数据点的JSON消息,并将其存储到Influxdb中。
  2. 自定义脚本执行:允许编写自定义Python脚本,利用Influxdb查询数据、通过Apprise发送警报、经MQTT发送命令等。
  3. 便捷管理:使用Docker Compose对项目进行管理,可下载最新版本、创建或更新项目、查看服务状态等。

安装使用步骤

安装依赖

  1. 确保已在SD卡上使用“Raspberry Pi Imager”软件烧录“Raspberry Pi OS Lite (64 - bit)”,并进行相关配置,如设置主机名、启用SSH、设置用户密码、配置网络和时区等。
  2. 登录到Raspberry Pi:ssh pi@pis_ip_address
  3. 安装项目的系统依赖和工具: sh sudo apt-get update sudo apt-get install -y git vim curl -sSL https://get.docker.com/ | sudo bash - sudo gpasswd -a pi docker
  4. .bashrc中添加别名: sh echo >> .bashrc echo 'alias d="docker"' >> .bashrc echo 'alias dc="docker compose"' >> .bashrc
  5. 限制系统日志大小: sh sudo nano /etc/systemd/journald.conf 在文件中设置SystemMaxUse = 50M,然后重启日志服务: sh sudo systemctl restart systemd-journald.service
  6. 重启SSH会话:Ctrl - Dexit,然后再次登录ssh pi@...

项目设置

  1. 复制项目仓库并进入目录: sh cd home - monitoring git config pull.ff only
  2. 填充.env文件: sh cp.env.example.env nano.env
  3. 填充dnsmasq.conf文件: sh cd docker-compose-resources/dns-server cp dnsmasq.conf.example dnsmasq.conf nano dnsmasq.conf cd -
  4. 创建custom_scripts.py文件: sh cd docker-compose-build/custom_scripts cp custom_scripts.py.example custom_scripts.py cd -
  5. 可更新路由器的DHCP设置,将Raspberry Pi的IP作为主DNS服务器,并设置1.1.1.1等作为辅助DNS服务器,之后重新连接计算机到网络。
  6. 启动Docker Compose项目: sh cd home - monitoring dc up -d --build

访问项目

项目启动完成后,可通过http://home - monitoring - pi(Windows使用http://home - monitoring - pi.local)访问项目的着陆页。

项目维护

home - monitoring文件夹中,可使用以下命令管理项目: - git pull && dc pull:下载最新项目版本。 - dc up -d --build:创建或更新项目并启动所有服务。 - dc down --remove - orphans:销毁项目(不删除持久存储)。 - dc ps -a:显示所有服务的状态。 - dc stop [service]:停止服务。 - dc start [service]:启动服务。 - dc logs -f [service]:查看服务日志。 - dc exec [service] [bash/sh/...]:在服务中打开shell。 - dc rm [service]:销毁服务(不删除持久存储)。

危险命令: - dc down --remove - orphans && sudo rm volumes/* -rf:删除所有持久存储,此操作不可恢复。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】