Mundarija:

Raspberry Pi nazorat qilinadigan xonadagi haroratni Gnuplot tasvirini chiqarish va elektron pochta orqali ogohlantirish qobiliyati: 7 qadam
Raspberry Pi nazorat qilinadigan xonadagi haroratni Gnuplot tasvirini chiqarish va elektron pochta orqali ogohlantirish qobiliyati: 7 qadam

Video: Raspberry Pi nazorat qilinadigan xonadagi haroratni Gnuplot tasvirini chiqarish va elektron pochta orqali ogohlantirish qobiliyati: 7 qadam

Video: Raspberry Pi nazorat qilinadigan xonadagi haroratni Gnuplot tasvirini chiqarish va elektron pochta orqali ogohlantirish qobiliyati: 7 qadam
Video: Как собрать ПЛК Raspberry Pi Pico || Редактор OpenPLC 2024, Noyabr
Anonim
Raspberry Pi nazorat qilinadigan xona haroratini Gnuplot tasvirini chiqarish va elektron pochta orqali ogohlantirish qobiliyati bilan
Raspberry Pi nazorat qilinadigan xona haroratini Gnuplot tasvirini chiqarish va elektron pochta orqali ogohlantirish qobiliyati bilan

Men ishlayotgan joyda juda ko'p kompyuterlar joylashgan juda muhim xona bor. Bu tizimlarning ishlashini optimallashtirish uchun bu xonadagi muhit harorati juda sovuq bo'lishi kerak. Menga bir nechta odamlarga bu xonadagi konditsionerda biror narsa noto'g'ri bo'lganligi to'g'risida xabar beradigan bir nechta ogohlantirish yuborish qobiliyatiga ega bo'lgan monitoring tizimini ishlab chiqish taklif qilindi. va USB harorat va namlik sensori. Kuzatuv uchun men Gnuplotdan uchta harorat grafigini tuzish va shu grafiklarning tasvirini yaratish uchun foydalanardim. Keyin men Raspberry pi -da joylashtiriladigan maxsus HTML -sahifani yaratdim, shuning uchun hozirgi sharoitni, gnuplot chiqish tasvirlarini tarmoqimizdagi veb -sahifadan kuzatib borish mumkin. Men Linux User jurnalida ba'zi misol kodlarini topdim. (Albatta, siz kerakli port topshiriqlarini bilganingizdan so'ng, har qanday pochta serveridan foydalanishingiz mumkin.) Buning uchun men bu ogohlantirishlar uchun maxsus Gmail elektron pochta hisobini yaratdim. Qo'shimcha xususiyat sifatida, ogohlantirish ishga tushirilganda, men elektron pochtaga bitta grafikni biriktiraman, shunda elektron pochtani olgan kishi ogohlantirishni keltirib chiqargani qanchalik keskin oshgani haqida tasavvurga ega bo'ladi.

1 -qadam: Uskuna sozlamalari

Uskuna sozlamalari
Uskuna sozlamalari

Uskunani sozlash uchun ko'p narsa yo'q. Raspberry pi Raspian bilan ishlaydi va USB harorat sensori to'g'ridan -to'g'ri USB portlaridan biriga ulanadi. Ushbu sensorning quvvat sarfi minimal va natijada men uni to'g'ridan -to'g'ri Raspberry pi -dan quvvatladim. Biroq, bir oz ko'proq quvvat sarflaydigan USB -quvvatlanadigan qurilmalar uchun, men ularni Raspberry pi -ning USB portidan emas, balki quvvatlanadigan USB -uyadan quvvatlantirishni tavsiya qilaman. Harorat sensori quvvat olgandan so'ng, harorat va hozirgi sharoitdagi namlik ko'rsatkichlari. harorat = 20,9 ° C namlik = 62,7% shudring nuqtasi = 13,0 ° CA python skript bu satrni tahlil qiladi va har besh daqiqada harorat va namlik qiymatlarini uchta matnli faylga saqlaydi; kundalik, 24 soat va 48 soatlik matnli fayllar (farqlar keyinchalik HTML bo'limida muhokama qilinadi). Bu fayllardan Gnuplot grafikalar va keyinchalik har bir fayldagi ma'lumotlar to'plamining rasmlarini yaratadi. Python skriptini muhokama qilishdan oldin men Raspberry pi tayyorlash haqida gaplashaman. Monitoring onlayn tarzda o'tkazilishi kerakligi sababli, veb -server o'rnatilishi kerak. Men o'z vaqtida Raspberry pi -da bir nechtasini sinab ko'rdim, lekin biroz kattaroq bo'lsa -da, men Apache -ni afzal ko'raman. Apache-ni Raspberry pi-ga o'rnatish uchun quyidagini yozing: sudo apt-get install apache2 Bu sizga o'rnatishdan oldin ko'rsatma beradi, ha uchun "y" tugmasini bosing va Apache Raspberry pi-ga qarab bir necha daqiqada o'rnatiladi. Bajarildi, siz ikkita python plaginini o'rnatishingiz kerak: python-serial va python-gnuplot vilkasi. (Garchi men yaqinda Raspian tuzilmalarida python-seriyali plagin standarti borligini bilsam-da, faqat xavfsiz bo'lishi uchun.) Siz yozganlarni o'rnatish uchun: sudo apt-get install python-serial python-gnuplotOnce ko'rsatmalarni tan olgandan keyin yana. -kirishlar o'rnatiladi. Va shu bilan jihozni sozlash tugallandi.

2 -qadam: dasturiy ta'minotni sozlash - elektron pochtani sozlash va qabul qiluvchilar

E -pochta manzilini yarating Biz dasturiy ta'minotga kirishdan oldin, elektron pochta xabarlarini yuborish uchun Gmail hisobini yaratish uchun yaxshi vaqt bo'ladi. (Bu misolda GMail ishlatiladi, lekin smtp port sozlamalarini bilganimizda har qanday pochta serveridan foydalanish mumkin) Python kodi juda aniq, lekin kerakli import juda muhim. Ularsiz hech narsa bo'lmaydi. Albatta, biz elektron pochta qabul qiluvchilarni qo'shishimiz kerak. Har bir elektron pochta manzili o'zgaruvchiga saqlanadi.

3 -qadam: Dasturiy ta'minotni sozlash - ketma -ket sozlash va ajratish

Endi biz ketma -ket sozlashni ko'rib chiqamiz, bu sensorning ketma -ket chiqishiga mos keladigan parametrlarni sozlash. Sensor ketma -ket ketma -ketlikni standart formatdagi 9600 8 N 1 da chiqaradi. Qator qabul qilingandan so'ng, bu satrni pythonda va, ehtimol, yanada ishonchli tarzda tahlil qilishning bir necha usullari mavjud. Buni qilish usuli ketma -ketlikdagi "temp" belgilarini izlashdir. Joylashgandan so'ng, keyingi 46 ta ketma -ket belgini satrga o'qish kifoya. Endi yig'ilgan satrni qator elementlari kabi hal qilish mumkin. Kerakli ma'lumotlar satrdan ajratiladi va tegishli vaqt markasi bilan birga uchta faylga saqlanadi.timestamp = strftime ("%d%b%Y%H:%M:%S", localtime ())

4 -qadam: Dasturiy ta'minotni sozlash - Gnuplot

Dasturiy ta'minotni sozlash - Gnuplot
Dasturiy ta'minotni sozlash - Gnuplot
Dasturiy ta'minotni sozlash - Gnuplot
Dasturiy ta'minotni sozlash - Gnuplot
Dasturiy ta'minotni sozlash - Gnuplot
Dasturiy ta'minotni sozlash - Gnuplot

Gnuplot - buyruq satrining grafik vositasi. Agar siz asoslarni bilib olsangiz, bu ma'lumotlar to'plamini grafik tarzda ko'rsatish uchun juda kuchli vosita bo'lishi mumkin. Gnuplot to'g'ridan -to'g'ri formatlangan matnli fayldan tuzishi mumkin, va bizda shunday bo'ladiki, avvalgi tahlil bosqichidan. Ma'lumot qaerda joylashganligini gnuplot -ga ko'rsatgandan so'ng, biz kerakli qiymatlarni chizishimiz mumkin. Men X o'qida vaqtni va Y o'qida haroratimizni ishlatmoqchiman. Gnuplot -dagi vaqt formatini matnli fayl formatiga moslashtirish kerak, chunki barcha grafik variantlari to'liq va sizning xohishingizga ko'ra, Gnuplot bu grafik tasvirini yaratishi mumkin. Bu tasvirni biz keyinroq veb -sahifamizda ishlatamiz. Men-p.webp

5 -qadam: Dasturiy ta'minotni sozlash - chegarani sozlash va elektron pochta orqali yuborish

Ogohlantirish chegarasi sozlash paytida sinov va xato bilan bajarilishi kerak. tizim joylashgan xonada derazalar yo'q, shuning uchun konditsioner to'xtaganda, u juda tez qizib ketishi mumkin. Dastlab, men bir necha kun davomida ma'lumotlar to'plamiga qaradim va 30 daraja S darajasidagi ogohlantirish qiymatini tanlashdan oldin haroratning o'zgarishini kuzatdim. Bu unchalik baland emasdek tuyulishi mumkin, lekin ogohlantirish ishga tushirilgach, siz haligacha muammoni hal qilish uchun vaqt berishni xohlaysiz.

Oddiylik uchun, men shaxsiy ro'yxatlar ro'yxatini elektron pochta orqali yuboraman. Yuborish ro'yxati qisqa bo'lgani uchun, men hech qachon bir nechta qabul qiluvchilarga bitta elektron pochta xabarini yuborish bilan ovora bo'lmaganman. Bu erda bir narsani ta'kidlash kerak, chunki men bu skriptni har 5 daqiqada cron ishi sifatida ishlayotganim uchun, chegara ishga tushirilgandan so'ng har 5 daqiqada elektron pochta xabarlarini yuborishni xohlamaysiz. Buning oldini olish uchun men ogohlantirish sanasi va vaqtini faylga yozaman va elektron pochta jo'natishdan oldin bu faylni tekshiraman, chunki tizim allaqachon ogohlantirish holatida. Ogohlantirish holatida, u tizim ishga tushgan va ogohlantirish holatida bo'lganida, elektron pochtani faqat birinchi tetiklagandan keyin har soatda yuboradi. Shunday qilib, Gmail sizning elektron pochtangizni qisqa vaqt ichida juda ko'p elektron pochta xabarlarini yuborishiga to'sqinlik qilmaydi.

6 -qadam: dasturiy ta'minotni sozlash - HTML

Butun tizimni kuzatish veb -sahifa orqali amalga oshiriladi va buning uchun juda oddiy HTML skript kerak. Gnuplot yaratgan tasvirlar men shunchaki tasvirning bir xil o'lchamlarini ishlataman. Men ishonamanki, men bu tasvirlar uchun taxminan 3 o'lchovni bosib o'tdim, bu mening ekranimga eng yaxshi moslikni berdi. HTML skriptini yaratishdan oldin, unga papka yarataylik. Odatiy bo'lib, veb -xosting papkasi/var/www/manzilida joylashgan. Garchi bu Raspberry pi -ning yagona maqsadi bu xonani kuzatib borish va elektron pochta orqali ogohlantirish berish bo'lsa -da, uyni yaxshi saqlash uchun men/var/www/papkasida alohida papka yaratdim. Bu papka asosiy foydalanuvchiga tegishli bo'lgani uchun, bu joyni jild yaratish uchun sudo -dan foydalanish kerak. sudo mkdir/var/www/temperatureBu misolda men haroratni papkaning nomi sifatida ishlatardim, lekin siz bu erda istalgan nomni ishlatishingiz mumkin, lekin esda tutingki, bu sahifani ko'rish uchun manzil satriga kiritish kerak bo'ladi. Bu yo'l python skriptidagi o'zgaruvchida saqlanadi. Xosting joyini o'zgartirish yoki boshqa tizim uchun skriptni o'zgartirish kerak bo'lsa ham, uni faqat shu joydan o'zgartirish mumkin, endi biz bu papkada html skriptini yaratishimiz mumkin. bu erda ijro etishni xohlayman. Men sizga html skriptini "index.html" deb nomlashni maslahat berardim, chunki bu sahifani topishga harakat qilganda, buni soddalashtiradi. Muhimi, tasvirning o'lchami Gnuplot -dan olingan rasm o'lchamiga mos kelishiga ishonch hosil qilishdir. Bu sahifani ko'rish uchun., siz shunchaki Raspberry Pi -ning IP -manzilini /haroratini (yoki sizning papkangizga nima deb nomlaganingizni) kiritishingiz kerak, menda har xil narsalarni kuzatadigan bir nechta tizimlar bor va ularning barchasi grafik natijalarini beradi. Shunday qilib, men ushbu sahifalarga havolalari bo'lgan sahifani yaratdim, shuning uchun har safar bu sahifalarga kirishni xohlaganimda manzilni kiritishdan xavotir olmang.

7 -qadam: Men tirikman …

Men buni kompyuter xonasidagi haroratni kuzatish uchun ishlatganman, lekin bu har qanday manbadan olingan ma'lumotlar bo'lishi mumkin. U matnli faylda saqlanishi mumkin va siz uning formatini bilsangiz, qolganini Gnuplot bajarishi mumkin. Men bu loyihaga yaqinda qo'shgan narsam - "yurak urishi" elektron pochta xabarlarini yuborish. Bu oyning birinchi kuni, ertalab soat 9 da menda skript bor, u elektron pochta ro'yxatini elektron pochta orqali yuboradi, ular tizim kerakli darajada ishlayotganini va xonada hamma narsa yaxshi ekanligini bildiradi.

Cronjob ro'yxatini quyidagicha ishlatish:

Tavsiya: