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

【源码】基于Arduino的IoT环境控制站

项目简介

本项目是以Lolin(Wemos)D1 mini(ESP8266)为核心,基于Arduino的IoT环境控制站。它能够对环境进行多项监测与控制,支持通过REST API进行远程监控与控制,并且提供了Prometheus兼容的指标,便于数据监控与分析。

项目的主要特性和功能

  1. 环境监测:可监测温度、湿度和光照强度。
  2. 时间同步:借助NTP实现时间同步。
  3. 设备控制:能控制多个电源继电器,也可控制12V水泵(可选)。
  4. 自动化操作:依据温度、湿度和预设时间表执行自动化操作。
  5. 数据监控:提供Prometheus兼容的指标,可使用Grafana进行数据可视化展示。
  6. 远程管理:通过REST API实现远程监控和控制。

安装使用步骤

前提条件

用户已下载本项目的源码文件。需安装VSCode及PlatformIO IDE扩展,硬件方面要准备Wemos D1 mini、HTU21D温湿度传感器、Songle 230V继电器开关、Omron 230V 2通道固态继电器、LDR传感器,12V水泵为可选硬件。

硬件配置

参考手绘电路图进行硬件连接。

软件配置

Web客户端(Kubernetes / K8S)

  1. 执行 kubectl apply -f client/grower-ui.yaml 进行部署。
  2. 运行 echo "http://$(kubectl get ingress grower-ui -ojsonpath='{.spec.rules[0].host}')" 获取Web客户端URL。

[过时] 通过Docker Compose部署

默认情况下,客户端Docker镜像版本从 include/version.h 获取。 - 执行 make client-deploy 部署Web客户端容器到 .circleci/ci.env 中定义的主机。 - 若要覆盖版本,执行 make APP_VERSION=x.y.z client-deploy

监控

Prometheus指标可在 /metrics 端点获取,可使用 示例Grafana仪表盘 进行数据可视化。

开发

Web客户端

  • 执行 make client-test 本地构建并运行Docker镜像来测试Web客户端。
  • 执行 make client-run 本地构建Web客户端Docker镜像并运行容器(无测试和自动清理),运行后可在 http://localhost:8080 访问。
  • 执行 make client-rm 停止并移除本地Web客户端容器。

发布流程

  1. include/version.h 中设置发布版本,提交并推送到 master 分支(若版本更新已包含在变更集中则无需此步骤)。
  2. 执行 make release,这将使用发布版本标记最新的 master 分支并推送到上游,然后触发编译和Web客户端Docker镜像发布的CI作业。

下载地址

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