亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

基于树莓派 2 和 Arduino 的全功能泳池控制器套件:继电器板、温度传感器与配件

项目概述

作者因泳池泵定时器在三个月内两次故障,且更换成本高达 120 美元且功能有限,决定自行开发一套低成本、高扩展性的自动化泳池控制系统。该系统基于运行 Windows 10 IoT Core 的树莓派 2,配合 Arduino Pro Mini 读取多路 DS18B20 防水温度传感器,通过固态继电器板控制交流设备(水泵、瀑布泵、泳池灯、庭院灯),并通过直流继电器控制太阳能加热阀门。整套系统成本远低于原有定时器与传感器的更换费用,并实现了远程监控与多变量智能控制。

核心硬件清单

软件与服务

系统架构与关键模块

1. 交流设备控制 (固态继电器 + 树莓派 GPIO)

树莓派通过 GPIO 驱动 4 路固态继电器,再控制原有 30A 交流中间继电器,实现对泳池泵、瀑布泵、泳池灯、庭院灯的远程开关。所有交流接线均在专用外壳内完成,符合户外防护要求。

2. 3D 打印外壳

外壳由作者儿子设计,容纳树莓派、固态继电器板及接线端子,提供良好的固定与散热。所有 STL 文件可在项目 GitHub 仓库获取。

3. 多点温度监测 (Arduino Pro Mini + I²C)

三个 DS18B20 传感器分别安装于:室外空气、泳池回水管、太阳能集热器回水管。Arduino Pro Mini 每秒轮询一次三路温度,通过 I²C (地址 0x40) 以字符串格式 "PoolTemp|SolarTemp|OutsideTemp" 向树莓派上报。树莓派端每 4 秒读取一次 I²C 数据并缓存,供 Web API 调用。

4. 传感器安装工艺要点

5. 太阳能阀门控制 (直流继电器)

太阳能集热器使用直流电磁阀,树莓派通过另一路直流继电器驱动。控制逻辑:仅当室外温度 > 60°F 且太阳能回水比泳池水高 ≥ 2°F 时开启阀门,否则关闭,避免无效循环浪费能源。

6. 应用开发与部署

树莓派运行无头的 Windows 10 IoT Core 后台应用,内置简易 HTTP 服务器 (端口 8888) 响应 GET/POST 请求:

部署关键经验:不能直接从 Visual Studio "Release" 部署,需先删除旧部署,再通过 AppX Manager 安装 .appx 包;采用 "Blinky Web Server" 模式 (前台 UI 应用启动后台 HTTP 服务) 可避免首次请求后进程崩溃。

7. 用户界面

自制 HTML5 单页应用,兼容手机/平板/电脑浏览器,实时显示三路温度、六路设备状态并提供开关按钮。后期接入 openHAB,配置 Sitemap 与 Items,获得原生移动 App 体验与规则引擎支持。

核心代码片段

Arduino 固件 (I²C 从机读温度)

#include <OneWire.h>
#include <DallasTemperature.h>
#include <Wire.h>
#define SLAVE_ADDRESS 0x40
const int POOL_PIN = 3, SOLAR_PIN = 5, OUTSIDE_PIN = 7;
OneWire poolTemp(POOL_PIN), solarTemp(SOLAR_PIN), outsideTemp(OUTSIDE_PIN);
DallasTemperature poolSensor(&poolTemp), solarSensor(&solarTemp), outsideSensor(&outsideTemp);
char data[24]; String temperatureData; long prevMillis = 0, interval = 1000;

void setup() {
  poolSensor.begin(); solarSensor.begin(); outsideSensor.begin();
  Wire.begin(SLAVE_ADDRESS); Wire.onRequest(requestEvent);
}
void loop() {
  if (millis() - prevMillis > interval) { prevMillis = millis(); readTemperatures(); }
}
void readTemperatures() {
  poolSensor.requestTemperatures(); solarSensor.requestTemperatures(); outsideSensor.requestTemperatures();
  temperatureData = String(poolSensor.getTempFByIndex(0)) + "|" +
                    String(solarSensor.getTempFByIndex(0)) + "|" +
                    String(outsideSensor.getTempFByIndex(0));
  while (temperatureData.length() < 24) temperatureData += " ";
}
void requestEvent() {
  temperatureData.toCharArray(data, 24); Wire.write(data);
}

树莓派 C# 关键类 (节选)

原理图与 3D 模型

项目提供三张原理图:交流继电器接线、直流太阳能阀门接线、树莓派–Arduino–传感器 I²C 接线。所有 3D 打印件 (外壳、空气温度支架、水温传感器支架) STL 文件托管于 GitHub。

项目地址

完整 Visual Studio 2015 解决方案、Arduino 固件、openHAB 配置、STL 文件均可在 GitHub 获取:
https://github.com/mmackes/Windows-10-IoT-PoolController

制造工艺

  1. 树莓派专业温度监测:基于 DS18B20 传感器的完整指南
  2. 树莓派 2 搭建户外气象站:接入 ADS‑WS1 串口气象站
  3. 树莓派精准监测机柜温度:DS18B20 多点部署实战
  4. 基于 Sensorflare 与树莓派的 433 MHz 智能家居控制器构建指南
  5. 树莓派 OpenCV 乒乓球追踪进阶教程
  6. 树莓派 LIRC 通用红外遥控器专业构建指南
  7. 树莓派 PIR 运动传感器控制 LED 实战指南
  8. 树莓派射频转直流:包络检波器构建与故障排查
  9. Cycle Chaser:树莓派让自行车变身夜间光影秀
  10. 树莓派低成本土壤湿度传感器:智能灌溉 DIY 指南
  11. 树莓派防窃报警器 DIY:压力触发播放警报声
  12. 精通树莓派传感器:电子与通信协议实战指南