监控我的中央供暖锅炉
硬件
由于我用 Pi 替换了 PC,我在这里只列出了 Pi 特定的硬件,因为继电器单元保持不变:
- B 型 Pi
- Piface 数字接口卡
- Dallas Semiconductor (Maxim) DS9490R 1-Wire USB 适配器
- Dallas Semiconductor (Maxim) DS18S20 1-Wire 温度计
下面的框图显示了硬件的一般安排。稍后可能会添加一个到 GSM 调制解调器的接口,用于发送文本警报。
软件
Raspberry Pi 程序包括:
- 事件记录器——与 PiFace 数字卡通信并记录三个输入的状态:主电源、泵运行和燃烧器点火。它将事件数据写入每日文件。
- 温度记录器 - 与 1-Wire 网络通信并记录锅炉各点的温度并将数据写入每日文件。
- CGI 程序 – 该程序由 Apache 调用并生成日历并显示锅炉事件和温度图表。
这些程序最初都是用 C 为 Windows 编写的,并在运行 Windows/2000 Server 的 Dell GX11 PC 上运行。最初的事件记录器与 Velleman K8055 USB 接口卡通信,但由于编程与 PiFace 完全不同,我重新编写了大部分程序。
最初的 1-Wire 温度记录器使用 DalSemi DLL,但 OWFS 软件隐藏了所有复杂性,因此除了 I/O 部分外,该程序大部分被重写。
CGI 程序是最复杂的,因为它为条形图和图形生成自己的日历和内嵌 SVG,但结果证明它是最容易转换的,只需更改几处编码。这些更改用 statfs() (Linux) 替换了函数定义和对 _stat() (Windows) 的调用,以获取文件系统统计信息。我还对读取字符串的代码做了一些更正。
此处显示了文件系统的结构。标准 Linux 和 Apache 目录以黄色显示;蓝色的自定义目录。一切都在 /1-wire 下,源文件、事件数据和温度数据与收集数据的守护进程一起进入它们自己的子目录。
步骤 1
创建目录结构:
须藤苏
cd /
mkdir /1-wire
mkdir /1-wire/src
mkdir /1-wire/events
mkdir /1-wire/温度
步骤 2
下载并编译程序:
wget http://www.noveldevices.co.uk/rpdl/logger.c -O /1-wire/src/logger.c
wget http://www.noveldevices.co.uk/rpdl/1-wire.c -O /1-wire/src/1-wire.c
wget http://www.noveldevices.co.uk/rpdl/server.c -O /1-wire/src/server.c
gcc -L/usr/local/lib -lpiface-1.0 -o /1-wire/events/logger /1-wire/src/logger.c -lm
gcc -L/usr/local/lib -o /1-wire/temperatures/1-wire /1-wire/src/1-wire.c -lm
gcc -L/usr/local/lib -o /usr/lib/cgi-bin/server /1-wire/src/server.c -lm
步骤 3
下载一些示例配置文件和 CSS 文件:
wget http://www.noveldevices.co.uk/rpdl/1-wire.conf -O /1-wire/temperatures/1-wire.conf
wget http://www.noveldevices.co.uk/rpdl/server.conf -O /usr/lib/cgi-bin/server.conf
wget http://www.noveldevices.co.uk/rpdl/boiler.css -O /var/www/boiler.css
步骤 4
1-wire.conf 文件包含 1-wire 程序和创建图形的 CGI 程序的配置信息。每个条目描述如下(记录的实际顺序无关紧要):
- [Interval]=n – 以秒为单位的轮询间隔,但请参阅下面的注释
- [DataDirectory]=您希望写入数据文件的目录(带有尾随 /)
- 对于每个传感器:[DevicePath]=full-path-to-OWFS-directory-(with-trailing-/) plot-color sensor-description
plot-color 是标准的网页颜色,如#RRGGBB、#RGB CSS 颜色。
sensor-description 是应该出现在温度图上的一个短语
轮询间隔可以是任意秒数,但您需要记住,OWFS 通常需要两秒钟才能从每个传感器获取温度。程序根据数据采集过程的开始和结束时间重新计算实际间隔时间,使采集开始时间不发生漂移。
更多详情:监控我的中央供暖锅炉
制造工艺