项目简介
本项目是以Lolin(Wemos)D1 mini(ESP8266)为核心,基于Arduino的IoT环境控制站。它能够对环境进行多项监测与控制,支持通过REST API进行远程监控与控制,并且提供了Prometheus兼容的指标,便于数据监控与分析。
项目的主要特性和功能
- 环境监测:可监测温度、湿度和光照强度。
- 时间同步:借助NTP实现时间同步。
- 设备控制:能控制多个电源继电器,也可控制12V水泵(可选)。
- 自动化操作:依据温度、湿度和预设时间表执行自动化操作。
- 数据监控:提供Prometheus兼容的指标,可使用Grafana进行数据可视化展示。
- 远程管理:通过REST API实现远程监控和控制。
安装使用步骤
前提条件
用户已下载本项目的源码文件。需安装VSCode及PlatformIO IDE扩展,硬件方面要准备Wemos D1 mini、HTU21D温湿度传感器、Songle 230V继电器开关、Omron 230V 2通道固态继电器、LDR传感器,12V水泵为可选硬件。
硬件配置
参考手绘电路图进行硬件连接。
软件配置
Web客户端(Kubernetes / K8S)
- 执行
kubectl apply -f client/grower-ui.yaml
进行部署。 - 运行
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客户端容器。
发布流程
- 在 include/version.h 中设置发布版本,提交并推送到
master
分支(若版本更新已包含在变更集中则无需此步骤)。 - 执行
make release
,这将使用发布版本标记最新的master
分支并推送到上游,然后触发编译和Web客户端Docker镜像发布的CI作业。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】