Lakukan pemantauan suhu server sendiri

Ketika kami sekali lagi belajar tentang kegagalan AC di ruang server dari laporan marah dari pemantauan server built-in, keputusan kuat dibuat untuk mengajar Zabbix untuk memantau suhu di ruang server. Untuk mengambil tindakan ketika mengulangi situasi yang sama sebelum ruang server berubah menjadi pemandian.



Implementasinya cukup sederhana: sensor suhu disurvei oleh controller melalui bus 1wire, controller itu sendiri terhubung ke server yang tersedia melalui USB dan disurvei oleh perintah head -n1 / dev / cuaU, yang ditulis dalam konfigurasi zabbix agen sebagai berikut:

UserParameter=usbtemp,head -n1 /dev/cuaU0 

Pilihan sensor dengan antarmuka digital disebabkan oleh fakta bahwa ini adalah cadangan yang baik untuk masa depan untuk menambahkan selusin lebih sensor ke bus jika Anda perlu memantau suhu setiap rak secara terpisah, misalnya. Kontroler itu sendiri terhubung melalui USB dan agar tidak menemukan kembali driver-nya, ia berpura-pura menjadi emulator serial CDC biasa, yaitu port COM virtual biasa, dan tentu saja Anda juga bisa menggunakan kelas HID, karena secara ideologis lebih cocok dengan semua laporan HID terstruktur untuk interogasi semua jenis sensor. Namun demikian saya memutuskan untuk bergaul dengan CDC untuk kejelasan dan kemudahan implementasi.

Jadi, semua yang diperlukan untuk implementasi adalah: langsung sensor termal DS18B20, mikrokontroler dengan modul USB perangkat keras di papan, sepasang resistor, kapasitor dan kabel USB. PIC16F1454 MK digunakan sebagai mikrokontroler yang mengimplementasikan jembatan 1wire-USB, tetapi secara umum pembaca dapat menggunakan MK lain sesuai keinginannya (dengan menghubungkan beberapa perpustakaan - 1wire, USB-CDC), atau menghubungkan jembatan UART-USB eksternal seperti CP2102. Saya tidak begitu menyukai kruk seperti itu, jadi saya lebih suka solusi pada satu chip - saya mengambil pengontrol termurah dari USB, pada saat pembuatan perangkat itu PIC16F1454.



Proyek ini tidak menggunakan tumpukan USB siap pakai dari Microchip atau pihak ketiga, melainkan mereka menggunakan tumpukan yang ditulis sendiri yang dikembangkan sebelumnya untuk proyek lain. Namun, saya tidak akan membahas secara spesifik penerapan perpustakaan USB saya di artikel ini. Karena bekerja dengan bus USB berada di luar ruang lingkup artikel ini dan layak mendapatkan serangkaian artikel terpisah, atau bahkan. Yang mungkin saya ambil dalam waktu dekat, kecuali, tentu saja, pembaca tertarik pada topik ini.
Rangkaian ini sangat sederhana, sehingga papan segera diceraikan dalam tata letak sprint, namun saya memberikan gambar sirkuit.



Pengontrol tidak mendukung boot loader, jadi Anda hanya dapat menjahitnya melalui pemrogram menggunakan konektor ICSP. PICKIT2, misalnya, atau klonnya akan berfungsi.

Perangkat yang dipasang dengan benar mulai bekerja segera setelah daya disuplai dan tidak memerlukan penyesuaian. Perangkat tidak memerlukan driver karena menggunakan kelas CDC standar, untuk Windows 10 dan FreeBSD terdeteksi segera, untuk Windows 7 Anda harus menentukan file inf (lihat arsip untuk artikel), yang secara eksplisit menunjuk ke driver usbser.sys. Di bawah sistem operasi lain, perangkat tidak diuji. Ketika terhubung, itu harus didefinisikan sebagai / dev / cuaUx, di bawah FreeBSD, di mana x adalah nomor logis perangkat. Dengan menjalankan perintah #head -n1 / dev / cuaU0 Anda dapat memverifikasi bahwa sensor telah disurvei dengan benar dan suhu saat ini ditampilkan.



Di Windows, Anda dapat menggunakan program terminal apa saja untuk memeriksa, misalnya dempul.



Jika semuanya berfungsi dengan benar, Anda dapat melanjutkan. Selanjutnya, buat parameter baru (item) di mana, sebagai kunci, daftarkan UserParameter kami yang ditentukan dalam konfigurasi agen.



Nah, setelah itu tinggal membuat grafik baru dari parameter ini. Dan tambahkan pemicu misalnya pada 28-30 derajat.

Pada versi berikutnya, direncanakan untuk menambahkan kemampuan untuk polling beberapa sensor dan menampilkan suhu dari sensor yang dipilih pada tampilan pada perangkat itu sendiri. Arsipkan dengan bahan untuk artikel.

Source: https://habr.com/ru/post/id438836/


All Articles