Memantau Boiler Pemanas Sentral Saya
Perangkat Keras
Karena saya mengganti PC dengan Pi, saya hanya mencantumkan perangkat keras khusus Pi di sini karena unit relai tetap sama:
- Model B Pi
- Kartu antarmuka Digital Piface
- Adaptor USB 1-Kabel Dallas Semikonduktor (Maxim) DS9490R
- Termometer 1-Kabel Dallas Semiconductor (Maxim) DS18S20
Diagram blok di bawah ini menunjukkan susunan umum perangkat keras. Antarmuka ke modem GSM untuk mengirim peringatan teks dapat ditambahkan di kemudian hari.
Perangkat Lunak
Program Raspberry Pi terdiri dari:
- Event logger – berkomunikasi dengan kartu PiFace Digital dan mencatat status tiga input:daya listrik, pompa berjalan, dan pembakaran burner. Itu menulis data acara ke file harian.
- Temperature logger – berkomunikasi dengan jaringan 1-Wire dan mencatat suhu di berbagai titik pada boiler dan menulis data ke file harian.
- Program CGI – program ini dipanggil oleh Apache dan menghasilkan kalender serta menampilkan grafik peristiwa dan suhu boiler.
Semua program awalnya ditulis dalam C untuk Windows dan dijalankan pada PC Dell GX11 yang menjalankan Windows/2000 Server. Event logger asli berkomunikasi dengan kartu antarmuka USB Velleman K8055 tetapi karena pemrogramannya benar-benar berbeda dengan PiFace, saya menulis ulang sebagian besar program.
Pencatat suhu 1-Wire asli menggunakan DalSemi DLL tetapi perangkat lunak OWFS menyembunyikan semua kerumitan sehingga program ini sebagian besar ditulis ulang kecuali untuk bagian I/O.
Program CGI adalah yang paling kompleks karena menghasilkan kalender sendiri dan SVG in-line untuk diagram batang dan grafik, tetapi ternyata menjadi yang paling mudah untuk dikonversi hanya dengan beberapa perubahan pengkodean. Perubahan ini menggantikan definisi fungsi dan panggilan ke _stat() (Windows) dengan statfs() (Linux) untuk statistik sistem file. Saya juga membuat beberapa koreksi pada kode yang terbaca dalam string karakter.
Struktur sistem file ditampilkan di sini. Direktori Linux dan Apache standar ditampilkan dengan warna kuning; direktori khusus dengan warna biru. Semuanya berjalan di bawah /1-wire dengan file sumber, data peristiwa, dan data suhu masuk ke sub-direktori mereka sendiri bersama dengan daemon yang mengumpulkan data.
Langkah 1
Buat struktur direktori:
sudo su
cd /
mkdir /1-kawat
mkdir /1-wire/src
mkdir /1-wire/events
mkdir /1-kawat/suhu
Langkah 2
Unduh dan kompilasi program:
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
Langkah 3
Download beberapa contoh file konfigurasi dan file 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
Langkah 4
File 1-wire.conf berisi informasi konfigurasi untuk program 1-wire dan untuk program CGI yang membuat grafik. Setiap entri dijelaskan di bawah ini (urutan catatan yang sebenarnya tidak penting):
- [Interval]=n – interval polling dalam hitungan detik, tetapi lihat catatan di bawah
- [DataDirectory]=direktori tempat Anda ingin file data ditulis (dengan tanda /)
- Untuk setiap sensor:[DevicePath]=full-path-to-OWFS-directory-(with-trailing-/) plot-color sensor-description
plot-color adalah warna web standar sebagai #RRGGBB, warna #RGB CSS.
deskripsi sensor adalah frasa singkat yang akan muncul di plot suhu
Interval polling bisa beberapa detik tetapi Anda harus ingat bahwa OWFS biasanya membutuhkan dua detik untuk mendapatkan suhu dari setiap sensor. Program menghitung ulang interval waktu aktual berdasarkan waktu mulai dan selesai proses pengumpulan data sehingga waktu mulai pengumpulan tidak menyimpang.
Untuk detail lebih lanjut:Memantau Boiler Pemanas Sentral Saya