Mündəricat:

Gnuplot Görüntü Çıxışı və E -poçt Xəbərdarlığı Bacarığı ilə Raspberry Pi Nəzarət olunan Otaq İstiliyinin İzlənməsi: 7 Addım
Gnuplot Görüntü Çıxışı və E -poçt Xəbərdarlığı Bacarığı ilə Raspberry Pi Nəzarət olunan Otaq İstiliyinin İzlənməsi: 7 Addım

Video: Gnuplot Görüntü Çıxışı və E -poçt Xəbərdarlığı Bacarığı ilə Raspberry Pi Nəzarət olunan Otaq İstiliyinin İzlənməsi: 7 Addım

Video: Gnuplot Görüntü Çıxışı və E -poçt Xəbərdarlığı Bacarığı ilə Raspberry Pi Nəzarət olunan Otaq İstiliyinin İzlənməsi: 7 Addım
Video: Dünyanın en gıcık ama en etkili grafik çizim programı: Gnuplot 2024, Iyun
Anonim
Gnuplot Şəkil Çıxışı və E -poçt Xəbərdarlığı Bacarığı ilə Raspberry Pi Nəzarət olunan Otaq İstiliyinin İzlənməsi
Gnuplot Şəkil Çıxışı və E -poçt Xəbərdarlığı Bacarığı ilə Raspberry Pi Nəzarət olunan Otaq İstiliyinin İzlənməsi

İşlədiyim yerdə çoxlu kompüterlərin yerləşdiyi çox vacib bir otaq var. Bu sistemlərin işini optimallaşdırmaq üçün bu otağın ətraf temperaturu çox sərin olmalıdır. Məndən bir neçə nəfərə o otaqdakı kondisionerdə bir problemin olduğunu bildirəcək bir növ xəbərdarlıq göndərmə qabiliyyətinə malik bir monitorinq sistemi hazırlamağımı istədilər. və USB temperatur və rütubət sensoru. Monitorinq üçün Gnuplot -dan üç temperatur qrafiki çəkmək və bu qrafiklərin görüntüsünü yaratmaq üçün istifadə etdim. Daha sonra Raspberry pi -də yerləşdiriləcək xüsusi bir HTML səhifəsi yaratdım ki, indiki şərtlər, bu gnuplot çıxış şəkilləri şəbəkəmizdəki bir veb səhifədən izlənilsin. Xəbərdarlıq üçün Gmail ilə getməyi seçdim. Linux İstifadəçi jurnalında bir nümunə kodu tapmışdım. (Əlbəttə ki, lazım olan liman təyinatlarını bildikdən sonra hər hansı bir poçt serverindən istifadə edə bilərsiniz.) Bunun üçün bu xəbərdarlıqlar üçün xüsusi bir Gmail e -poçt hesabı yaratdım. Əlavə bir xüsusiyyət olaraq, bir xəbərdarlıq işə salındıqda, e -poçtu bir şəxsə əlavə edirəm ki, e -poçt alan şəxs siqnala səbəb olan artımın nə qədər kəskin olduğu barədə fikir əldə edə bilsin.

Addım 1: Hardware Setup

Avadanlıq Quraşdırması
Avadanlıq Quraşdırması

Avadanlıq qurmaq üçün çox şey yoxdur. Raspberry pi Raspian ilə işləyir və USB temperatur sensoru sadəcə USB portlarından birinə qoşulur. Bu sensorun enerji istehlakı minimaldır və nəticədə onu birbaşa Raspberry pi -dən aldım. Bununla birlikdə, bir az daha çox enerji istehlakı olan USB ilə işləyən qurğular üçün onları Raspberry pi -nin USB portundan deyil, güclü bir USB mərkəzindən istifadə etməyi məsləhət görürəm. mövcud şəraitin rütubət göstəriciləri. temperatur = 20.9 ° C rütubət = 62.7% çiy nöqtəsi = 13.0 ° CA python skript bu sətri təhlil edir və hər beş dəqiqədə temperatur və rütubət dəyərlərini üç mətn sənədində saxlayır; gündəlik, 24 saat və 48 saatlıq mətn faylları (fərqlər daha sonra HTML hissəsində müzakirə ediləcək). Bu fayllardan Gnuplot, hər bir fayldakı məlumatların qrafiklərini və sonradan şəkillərini yaradacaq. Python skriptini müzakirə etməzdən əvvəl Raspberry pi hazırlamaqdan danışacağam. Monitorinq onlayn olaraq həyata keçiriləcəyi üçün bir veb server quraşdırılmalıdır. Vaxtında onlardan bir neçəsini Raspberry pi -də sınamışam, amma bir qədər böyük olmasına baxmayaraq Apache -yə üstünlük verirəm. Apache-ni Raspberry pi-yə quraşdırmaq üçün sadəcə yazın: sudo apt-get install apache2 Quraşdırmadan əvvəl sizə bir sorğu verəcək, bəli "y" düyməsini basın və Apache Raspberry pi-dən asılı olaraq bir neçə dəqiqə ərzində quraşdırılacaq. tamamlandıqda, iki python plug-ins quraşdırmalısınız: python-serial və python-gnuplot plug. (Hərçənd başa düşmüşəm ki, son Raspian quruluşlarında python-seriyalı plug-in standartı var, ancaq təhlükəsiz olmaq üçün.) Yazdığınızları quraşdırmaq üçün: sudo apt-get install python-serial python-gnuplotOrnamaları qəbul etdikdən sonra yenidən -girişlər quraşdırılacaq. Və bununla da cihaz quruluşu tamamlandı.

Addım 2: Proqram Quraşdırması - E -poçt Ayarları və Alıcılar

E -poçt ünvanı yaradın Proqram təminatına çox uzanmadan əvvəl, e -poçt xəbərdarlıqlarınızı göndərmək üçün bir Gmail hesabı yaratmaq üçün yaxşı bir vaxt olardı. (Bu nümunə GMail -dən istifadə edir, amma smtp port parametrlərini bildikdən sonra hər hansı bir poçt serveri istifadə edilə bilər) Python kodu olduqca düzdür, lakin lazım olan idxal çox vacibdir. Onsuz heç bir şey işləməyəcək. Vaxt idxalından *idxal vaxt idxal serial idxal smtplib idxal Gnuplot idxal os idxal sysFinal olaraq, poçt siyahısı. Əlbəttə ki, e -poçtun alıcılarını əlavə etməliyik. Hər bir e -poçt ünvanı dəyişkən olaraq saxlanılır.from_address ='[email protected]'to_address1 = 'alıcı1.mail.com' to_address2 = 'alıcı2.mail.com'username =' [email protected] 'parol =' custom_email_password '

Addım 3: Proqram Quraşdırması - Serial Quraşdırma və Ayrılma

Ardından serial quruluşuna baxırıq, sadəcə sensordan gələn serial çıxışına uyğun olan parametrlərin qurulması məsələsidir. Sensor standart bir format olan 9600 8 N 1 -də bir sıra simli çıxış edir. Sətir alındıqdan sonra bu sətirləri pythonda və bəlkə də daha etibarlı şəkildə təhlil etməyin bir neçə yolu var. Etdiyim yol serial serialında "temp" simvollarını axtarmaqdır. Yerləşdirildikdən sonra, növbəti 46 serial simvolunu bir sətirdə oxumaq kifayətdir. Toplanan sətir indi bir sıra elementləri kimi ünvanlana bilər. İstədiyiniz məlumatlar sətirdən ayrılır və müvafiq vaxt möhürü ilə birlikdə üç faylda saxlanılır.timestamp = strftime ("%d%b%Y%H:%M:%S", yerli vaxt ())

Addım 4: Proqram Quraşdırması - Gnuplot

Proqram Quraşdırması - Gnuplot
Proqram Quraşdırması - Gnuplot
Proqram Quraşdırması - Gnuplot
Proqram Quraşdırması - Gnuplot
Proqram Quraşdırması - Gnuplot
Proqram Quraşdırması - Gnuplot

Gnuplot, əmr satırı qrafik vasitəsidir. Əsasları anladıqdan sonra, məlumat dəstlərinin qrafik şəkildə göstərilməsi üçün olduqca güclü bir vasitə ola bilər. Gnuplot -a məlumatların harada yerləşdiyini göstərdikdən sonra istədiyiniz dəyərləri qura bilərik. X oxunda vaxtımızı və Y oxunda istiliyimizi istifadə edəcəyəm. Təcrübəmdən vaxt cızmaq ən çətindir, çünki mətn faylının formatına uyğun gnuplot -da vaxt formatını əldə etməlisiniz. Bütün qrafik seçimləri tamamlandıqdan və sizin istəyinizə görə Gnuplot sonra bu qrafikin görüntüsünü yarada bilər. Daha sonra veb səhifəmizdə istifadə edəcəyimiz görüntü bu olacaq. Mən bir-p.webp

Addım 5: Proqram Quraşdırması - Eşik Ayarı və E -poçt

Xəbərdarlıq ərəfəsi, quraşdırma üçün sınaq və səhvlə edilməlidir. sistemlərin yerləşdiyi otaqda pəncərələr yoxdur, buna görə kondisioner dayandıqda çox tez qıza bilər. Başlanğıcda bir neçə gün ərzində məlumat dəstinə baxdım və 30 dərəcə C xəbərdarlıq dəyərinə qərar verməzdən əvvəl temperaturun dəyişməsini izlədim. Bu, python skiptində dəyişən olaraq təyin edilir. Bu çox yüksək görünə bilməz, ancaq xəbərdarlıq işə salındıqdan sonra kritik hala gəlməzdən əvvəl özünüzə problemi həll etmək üçün vaxt vermək istəyirsiniz.

Sadəlik üçün, fərdi siyahıları poçt siyahısına göndərirəm. Göndərmə siyahısı qısa olduğu üçün bir neçə alıcıya bir e -poçt göndərməklə heç vaxt narahat olmuram. Burada qeyd etmək lazım olan bir şey, bu skripti hər 5 dəqiqədə bir cron işi olaraq işlədiyim üçün, eşik işə salındıqdan sonra hər 5 dəqiqədə bir e -poçt göndərmək istəmirsiniz. Bunun qarşısını almaq üçün xəbərdarlığın tarixini və vaxtını bir fayla yazıram və hər hansı bir e -poçt göndərmədən əvvəl bu faylı yoxlayıram ki, sistem artıq xəbərdarlıq vəziyyətindədir. Bir dəfə xəbərdarlıq vəziyyətində olduqda, sistemin həyəcan vəziyyətində olduğu müddətdə yalnız ilk tetikleyicidən sonra hər saat bir e -poçt göndərəcək. Bu yolla Gmail, e -poçtunuzun qısa müddətdə çoxlu e -poçt göndərməsinə mane olmur.

Addım 6: Proqram Quraşdırması - HTML

Bütün sistemin monitorinqi bir veb səhifəsi vasitəsilə aparılır və bunun üçün çox sadə bir html skriptinə ehtiyac var. Gnuplot -un yaratdığı şəkillər sadəcə görüntünün eyni ölçülərindən istifadə edirəm. Ekrana ən yaxşı uyğun gələn bu şəkillər üçün təxminən 3 ölçü keçdiyimi düşünürəm. HTML skriptini yaratmadan əvvəl bunun üçün bir qovluq yaradaq. Varsayılan olaraq veb hosting qovluğu/var/www/ünvanında yerləşir. Bu Raspberry pi -nin yeganə məqsədi bu otağı izləmək və e -poçt siqnalları vermək olsa da, evin yaxşı saxlanması üçün/var/www/qovluğunda ayrı bir qovluq yaratdım. Bu qovluq kök istifadəçiyə aid olduğu üçün bu qovluq yaratmaq üçün sudo istifadə etməlisiniz. sudo mkdir/var/www/temperaturBu nümunədə qovluğun adı olaraq temperaturdan istifadə etdim, ancaq burada hər hansı bir addan istifadə edə bilərsiniz, ancaq unutmayın ki, bu səhifəyə baxmaq üçün ünvan çubuğuna daxil edilməlidir. Bu yol python skriptində bir dəyişəndə saxlanılır. Hosting yerini dəyişdirmək və ya başqa bir sistem üçün skript dəyişdirmək lazım olsa belə, bu bir yerdən dəyişdirilə bilər, indi html skriptimizi bu qovluqda yarada bilərik ki, hər hansı bir əmrdən sudo istifadə etməyi unutmayın. burada icra etmək istəyirəm. Html skriptini "index.html" adlandırmağı məsləhət görürəm, çünki bu səhifəni tapmağa çalışarkən bunu asanlaşdıra bilərəm. Əsas odur ki, şəkil ölçüsünün Gnuplot -dan olan görüntü ölçüsü ilə eyni olduğundan əmin olun., sadəcə Raspberry Pi -nin IP ünvanını /temperaturunu (və ya qovluğunuza nə dediyinizi) daxil etməlisiniz, işdə fərqli şeyləri izləyən bir neçə sistemim var və hamısı nəticələrinin bəzi qrafik nəticələrini verir. Bu səhifələrin hamısına bağlantıları olan bir səhifə yaratdım, buna görə hər dəfə bu səhifələrə daxil olmaq istədikdə ünvanı daxil etməkdən narahat olmuram.

Addım 7: Mən diriyəm …

Bunu kompüter otağında istiliyi izləmək üçün istifadə etdim, amma bu, hər hansı bir mənbədən alınan məlumatlar ola bilərdi. Bir mətn sənədində saxlanıla biləcəyini və Gnuplot'un qalanını edə biləcəyini bildiyiniz zaman. Bu layihəyə bu yaxınlarda əlavə etdiyim bir şey "ürək döyüntüsü" tipli bir e -poçt göndərməkdir. Bu, ayın ilk 9 -da, sistemin lazım olduğu kimi işlədiyini və otaqdakı hər şeyin yaxşı olduğunu bildirmək üçün poçt siyahısına e -poçt göndərən bir skriptim var.

Cronjob siyahısını aşağıdakı kimi istifadə edin:

Tövsiyə: