Daftar Isi:

Raspberry Pi Terkendali Pemantauan Suhu Kamar Dengan Output Gambar Gnuplot dan Kemampuan Peringatan Email: 7 Langkah
Raspberry Pi Terkendali Pemantauan Suhu Kamar Dengan Output Gambar Gnuplot dan Kemampuan Peringatan Email: 7 Langkah

Video: Raspberry Pi Terkendali Pemantauan Suhu Kamar Dengan Output Gambar Gnuplot dan Kemampuan Peringatan Email: 7 Langkah

Video: Raspberry Pi Terkendali Pemantauan Suhu Kamar Dengan Output Gambar Gnuplot dan Kemampuan Peringatan Email: 7 Langkah
Video: Tutorial: Membuat alat deteksi suhu untuk covid19 dengan Thermal Kamera di Raspberry PI 2024, Juni
Anonim
Pemantauan Suhu Ruangan Terkendali Raspberry Pi Dengan Output Gambar Gnuplot dan Kemampuan Peringatan Email
Pemantauan Suhu Ruangan Terkendali Raspberry Pi Dengan Output Gambar Gnuplot dan Kemampuan Peringatan Email

Di tempat saya bekerja, ada ruangan yang sangat penting yang menampung banyak komputer. Suhu sekitar ruangan ini harus sangat dingin untuk mengoptimalkan kinerja sistem ini. Saya diminta untuk membuat sistem pemantauan yang memiliki kemampuan untuk mengirimkan beberapa bentuk peringatan kepada beberapa orang yang akan memberi tahu mereka bahwa ada yang tidak beres dengan AC di ruangan itu. Perangkat keras untuk build ini, saya menggunakan Raspberry pi dan sensor suhu dan kelembaban USB. Untuk pemantauan, saya menggunakan Gnuplot untuk memplot tiga grafik suhu dan membuat gambar grafik tersebut. Saya kemudian membuat halaman HTML khusus yang akan di-host di Raspberry pi sehingga kondisi saat ini, gambar output gnuplot, dapat dipantau dari halaman web dalam jaringan kami. Untuk peringatan saya memilih untuk menggunakan Gmail. Saya telah menemukan beberapa contoh kode di majalah Pengguna Linux. (Tentu saja Anda dapat menggunakan server email apa pun setelah Anda mengetahui tugas port yang diperlukan.) Untuk itu saya membuat akun email Gmail khusus untuk peringatan ini. Juga sebagai fitur tambahan, ketika peringatan telah dipicu, saya melampirkan satu grafik ke email sehingga orang yang menerima email dapat mengetahui seberapa drastis peningkatan yang menyebabkan peringatan tersebut.

Langkah 1: Pengaturan Perangkat Keras

Pengaturan Perangkat Keras
Pengaturan Perangkat Keras

Tidak banyak yang perlu disiapkan untuk perangkat keras. Pi Raspberry menjalankan Raspian dan sensor suhu USB cukup dihubungkan langsung ke salah satu port USB. Konsumsi daya sensor ini minimal dan sebagai hasilnya saya menyalakannya langsung dari Raspberry pi. Namun, untuk perangkat bertenaga USB dengan konsumsi daya yang sedikit lebih banyak, saya akan merekomendasikan untuk menyalakannya melalui hub USB bertenaga dan tidak langsung dari port USB Raspberry pi. Setelah sensor suhu diaktifkan, ia menyediakan string serial yang berisi suhu dan pembacaan kelembaban dari kondisi saat ini. temperature=20.9°C kelembaban=62.7% titik embun=13.0°CA skrip python mengurai string ini dan menyimpan nilai suhu dan kelembapan ke dalam tiga file teks setiap lima menit; file teks harian, 24 jam dan 48 jam (Perbedaannya akan dibahas nanti di bagian HTML). Dari file-file ini, Gnuplot akan menghasilkan grafik dan kemudian gambar dari kumpulan data di setiap file. Sebelum saya membahas script python saya akan berbicara tentang mempersiapkan pi Raspberry. Karena pemantauan dilakukan secara online, server web perlu diinstal. Saya sudah mencoba beberapa dari mereka di waktu saya di pi Raspberry tetapi meskipun agak besar saya lebih suka Apache. Untuk menginstal Apache di Raspberry pi Anda, Anda cukup mengetik: sudo apt-get install apache2 Ini akan memberi Anda prompt sebelum menginstal, tekan "y" untuk ya dan dan Apache akan diinstal beberapa menit tergantung pada Raspberry pi Anda. selesai, Anda harus menginstal dua plug-in python: python-serial dan python-gnuplot plug. (Meskipun saya telah menyadari bahwa Raspian build baru-baru ini memiliki standar plug-in python-serial tetapi hanya untuk amannya.) Untuk menginstal yang Anda ketik: Sudo apt-get install python-serial python-gnuplotSekali lagi setelah menerima petunjuknya, plug ini -in akan diinstal. Dan dengan itu pengaturan perangkat keras selesai.

Langkah 2: Pengaturan Perangkat Lunak - Pengaturan dan Penerima Email

buat alamat email Sebelum kita masuk terlalu jauh ke dalam perangkat lunak sekarang akan menjadi saat yang tepat untuk membuat akun Gmail untuk mengirim email Anda. (Contoh ini menggunakan GMail tetapi server email apa pun dapat digunakan setelah kami mengetahui pengaturan port smtp) Kode python cukup mudah, tetapi impor yang diperlukan sangat penting. Tanpa mereka tidak akan ada yang berhasil.from time import *import time import serial import smtplib import Gnuplot import os import sysTerakhir, milis. Tentu saja kita harus menambahkan penerima email. Setiap alamat email disimpan dalam variabel.from_address = '[email protected]'to_address1 = 'recipient1.mail.com' to_address2 = 'recipient2.mail.com'username = '[email protected]' password = 'custom_email_password'

Langkah 3: Pengaturan Perangkat Lunak - Pengaturan Serial dan Parsing

Selanjutnya kita lihat pada serial setupnya. Tinggal pengaturan parameter yang sesuai dengan serial output dari sensor. Sensor mengeluarkan string serial pada 9600 8 N 1 yang merupakan format standar. Setelah string diterima, ada beberapa cara untuk menguraikan string ini dengan python dan sangat mungkin lebih andal. Cara saya melakukannya adalah dengan mencari karakter "temp" di string serial. Setelah ditemukan, itu hanyalah masalah membaca 46 karakter serial berikutnya menjadi sebuah string. String yang dikumpulkan sekarang dapat dialamatkan seperti elemen dalam array. Data yang diinginkan diurai dari string dan disimpan ke tiga file bersama dengan cap waktu yang sesuai.timestamp = strftime("%d%b%Y %H:%M:%S ", localtime())

Langkah 4: Pengaturan Perangkat Lunak - Gnuplot

Pengaturan Perangkat Lunak - Gnuplot
Pengaturan Perangkat Lunak - Gnuplot
Pengaturan Perangkat Lunak - Gnuplot
Pengaturan Perangkat Lunak - Gnuplot
Pengaturan Perangkat Lunak - Gnuplot
Pengaturan Perangkat Lunak - Gnuplot

Gnuplot adalah alat grafis baris perintah. Setelah Anda mengetahui dasar-dasarnya, itu bisa menjadi alat yang cukup kuat untuk tampilan grafis kumpulan data. Gnuplot dapat memplot langsung dari file teks yang diformat dan kami kebetulan memilikinya dari langkah penguraian sebelumnya. Setelah kami menunjukkan ke gnuplot di mana dalam file data berada, kami dapat memplot nilai yang diinginkan. Saya akan menggunakan waktu pada sumbu X dan suhu kita pada sumbu Y. Merencanakan waktu dari pengalaman saya adalah yang paling sulit karena Anda harus mendapatkan format waktu di gnuplot agar sesuai dengan format file teks. Setelah semua opsi grafik selesai dan sesuai keinginan Anda, Gnuplot kemudian dapat membuat gambar grafik ini. Ini akan menjadi gambar yang akan kita gunakan di halaman Web kita nanti. Saya memilih untuk menggunakan gambar-p.webp

Langkah 5: Pengaturan Perangkat Lunak - Pengaturan Ambang Batas dan Pengiriman Email

Ambang batas untuk peringatan harus dilakukan dengan coba-coba untuk pengaturan Anda. ruangan yang menampung sistem tidak memiliki jendela sehingga setelah AC berhenti, itu bisa menjadi sangat panas dengan sangat cepat. Awalnya saya melihat kumpulan data selama beberapa hari dan mengamati variasi suhu sebelum saya memutuskan nilai peringatan 30 derajat C. Ini ditetapkan sebagai variabel dalam scipt python. Ini mungkin tidak tampak terlalu tinggi tetapi setelah peringatan dipicu, Anda masih ingin memberi diri Anda waktu untuk memperbaiki masalah sebelum menjadi kritis.

Untuk kesederhanaan, saya mengirim email individu ke milis. Karena milisnya pendek, saya tidak pernah repot mengirim satu email ke beberapa penerima. Satu hal yang perlu diperhatikan di sini, Karena saya menjalankan skrip ini sebagai tugas cron setiap 5 menit, Anda tidak ingin mengirim email setiap 5 menit setelah ambang batas dipicu. Untuk menyiasatinya, saya menulis tanggal dan waktu peringatan ke file dan memeriksa file ini sebelum mengirim email apa pun untuk melihat apakah sistem sudah dalam status waspada. Setelah dalam status waspada, itu hanya akan mengirim ulang email setiap jam setelah pemicu pertama selama sistem dalam dan status waspada. Dengan begitu Gmail tidak memblokir email Anda agar tidak mengirim terlalu banyak email dalam waktu singkat.

Langkah 6: Pengaturan Perangkat Lunak - HTML

Pemantauan seluruh sistem dilakukan melalui halaman web dan skrip html yang sangat mendasar diperlukan untuk ini. Gambar yang dibuat Gnuplot saya cukup menggunakan kembali dimensi gambar yang sama. Saya yakin saya telah melalui sekitar 3 ukuran untuk gambar-gambar ini yang paling pas di layar saya. Sebelum kita membuat script html mari kita buat folder untuk itu. Secara default folder web hosting terletak di /var/www/. Meskipun Raspberry pi ' ini hanya bertujuan untuk memantau ruangan ini dan mengeluarkan peringatan email, untuk pemeliharaan rumah yang baik saya membuat folder terpisah di folder /var/www/. Karena folder ini milik pengguna root, Anda harus menggunakan Sudo untuk membuat folder di lokasi ini. sudo mkdir /var/www/temperature Dalam contoh ini saya menggunakan suhu sebagai nama folder tetapi Anda dapat menggunakan nama apa pun di sini tetapi ingat karena ini harus dimasukkan ke bilah alamat untuk melihat halaman ini. Jalur ini disimpan dalam variabel di dalam skrip python. Meskipun lokasi hosting harus diubah atau skrip harus dimodifikasi untuk sistem lain, itu dapat diubah dari satu lokasi ini. Sekarang kita dapat membuat skrip html di folder ini dengan mengingat untuk menggunakan sudo di depan perintah apa pun yang Anda ingin mengeksekusi di sini. Saya akan merekomendasikan Anda memberi nama skrip html "index.html" karena ini akan menyederhanakan ini ketika mencoba menemukan halaman ini. Yang penting adalah memastikan bahwa ukuran gambar sama dengan ukuran gambar dari Gnuplot. Untuk melihat halaman ini, Anda hanya perlu memasukkan alamat IP Raspberry Pi diikuti oleh /temperature (atau apa pun yang Anda beri nama folder Anda) Saya memiliki beberapa sistem yang memantau hal-hal yang berbeda dan semuanya menghasilkan beberapa output grafis dari hasilnya. Jadi saya membuat halaman yang memiliki tautan ke semua halaman ini sehingga saya tidak perlu khawatir memasukkan alamat setiap kali saya ingin mengakses halaman ini.

Langkah 7: Aku Hidup…

Saya telah menggunakan ini untuk memantau suhu di ruang komputer tetapi ini bisa jadi cukup banyak data dari sumber mana pun. Setelah itu dapat disimpan dalam file teks dan Anda tahu formatnya, Gnuplot dapat melakukan sisanya. Satu hal yang saya tambahkan baru-baru ini ke proyek ini adalah mengirim semacam email "detak jantung". Itu pada bulan pertama pada jam 9 pagi saya memiliki skrip yang berjalan yang mengirim email ke milis untuk memberi tahu mereka bahwa sistem berjalan sebagaimana mestinya dan semuanya baik-baik saja di ruangan itu.

Menggunakan daftar cronjob sebagai:

Direkomendasikan: