Mündəricat:
- Addım 1: Hardware Setup
- Addım 2: Proqram Quraşdırması - E -poçt Ayarları və Alıcılar
- Addım 3: Proqram Quraşdırması - Serial Quraşdırma və Ayrılma
- Addım 4: Proqram Quraşdırması - Gnuplot
- Addım 5: Proqram Quraşdırması - Eşik Ayarı və E -poçt
- Addım 6: Proqram Quraşdırması - HTML
- Addım 7: Mən diriyə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
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:48
İş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 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
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ə:
Əllərsiz Otaq İşıqlarına Nəzarət: 10 addım
Əllər Sərbəst Otaq İşıqlarına Nəzarət: Filmdəki kimi " Mümkün olmayan Missiya " deyir " Çarəsiz vaxtlar çarəsiz tədbirlərə çağırır " 10 -cu sinifdə oxuyan qardaşım, açarları yox, telefonu istifadə edərək mətbəxin işıqlarını idarə etmək fikrinə düşdü
ESP32 və AskSensors Bulud ilə Otaq İstiliyinin və Rütubətin İzlənməsi: 6 Addım
ESP32 və AskSensors Bulud ilə Otaq İstiliyinin və Nəmlik Monitorinqi: Bu dərslikdə DHT11 və buludla əlaqəli ESP32 istifadə edərək otağınızın və ya masanızın temperaturunu və rütubətini necə izləyə biləcəyinizi öyrənəcəksiniz. Xüsusiyyətlər: DHT11 sensoru temperaturu ölçə bilir
Arduino Uno ilə LM35 Temperatur Sensorundan İstifadə İstiliyinin Oxunması: 4 Addım
Arduino Uno ilə LM35 Temperatur Sensorundan İstifadə İstiliyinin Oxunması: Salam uşaqlar bu təlimatlarda LM35 -in Arduino ilə necə istifadə olunacağını öyrənəcəyik. Lm35, -55 ° C ilə 150 ° C arasındakı temperatur dəyərlərini oxuya bilən bir temperatur sensoru. İstiliklə mütənasib olaraq analog gərginlik verən 3 terminallı bir cihazdır. Yüksək
IOT əsaslı otaq istiliyinə nəzarət: 5 addım
IOT Əsaslı Otaq İstiliyinə Nəzarət: Bu, IOT əsaslı otaq istiliyinə nəzarət layihəsində göstərişlidir. Xüsusiyyətlər: -1. Fanı avtomatik olaraq göstərilən otaq istiliyindən yuxarı açın. Fanı avtomatik olaraq göstərilən otaq istiliyinin altında söndürün. İstənilən vaxt əl ilə idarəetmə
LM35 Sensoru və Maşın Öyrənməsi ilə Otaq İstiliyinin Proqnozlaşdırılması: 4 Addım
LM35 Sensor və Maşın Öyrənməsi ilə Otaq Temperaturu Proqnozu: Giriş Bu gün, polinom reqressiyası vasitəsilə temperaturu proqnozlaşdıran bir maşın öyrənmə layihəsi qurmağa yönəlmişik