Სარჩევი:

Raspberry Pi კონტროლირებადი ოთახის ტემპერატურის მონიტორინგი Gnuplot გამოსახულების გამომავალი და ელ.ფოსტის გაფრთხილების უნარი: 7 ნაბიჯი
Raspberry Pi კონტროლირებადი ოთახის ტემპერატურის მონიტორინგი Gnuplot გამოსახულების გამომავალი და ელ.ფოსტის გაფრთხილების უნარი: 7 ნაბიჯი

ვიდეო: Raspberry Pi კონტროლირებადი ოთახის ტემპერატურის მონიტორინგი Gnuplot გამოსახულების გამომავალი და ელ.ფოსტის გაფრთხილების უნარი: 7 ნაბიჯი

ვიდეო: Raspberry Pi კონტროლირებადი ოთახის ტემპერატურის მონიტორინგი Gnuplot გამოსახულების გამომავალი და ელ.ფოსტის გაფრთხილების უნარი: 7 ნაბიჯი
ვიდეო: У кого растут усы, как у проклятой лисы? ► 3 Прохождение Super Mario Galaxy 2 (Nintendo Wii) 2024, ივნისი
Anonim
ჟოლო Pi კონტროლირებადი ოთახის ტემპერატურის მონიტორინგი Gnuplot გამოსახულების გამომუშავებით და ელ.ფოსტის გაფრთხილების უნარით
ჟოლო Pi კონტროლირებადი ოთახის ტემპერატურის მონიტორინგი Gnuplot გამოსახულების გამომუშავებით და ელ.ფოსტის გაფრთხილების უნარით

სადაც მე ვმუშაობ, არის ძალიან მნიშვნელოვანი ოთახი, სადაც განთავსებულია უამრავი კომპიუტერი. ამ ოთახის გარემოს ტემპერატურა ძალიან გრილი უნდა იყოს ამ სისტემების მუშაობის ოპტიმიზაციისთვის. მთხოვეს მოვიდე მონიტორინგის სისტემა, რომელსაც აქვს უნარი გაუგზავნოს სიგნალი რამდენიმე ადამიანს, რომელიც შეატყობინებს მათ, რომ რაღაც არ არის კონდიციონერი იმ ოთახში. და USB ტემპერატურის და ტენიანობის სენსორი. მონიტორინგისთვის, მე გამოვიყენე გნუპლოტი სამი ტემპერატურის გრაფიკის დასადგენად და ამ გრაფიკების გამოსახულების შესაქმნელად. შემდეგ მე შევქმენი გამოყოფილი HTML გვერდი, რომელიც განთავსდება Raspberry pi– ზე, ასე რომ არსებული პირობები, ეს gnuplot გამომავალი სურათები, შეიძლება მონიტორინგი იყოს ჩვენი ქსელის ვებ გვერდიდან. გაფრთხილებისათვის მე Gmail– თან ერთად წასვლა არჩია. მე ვიპოვნე მაგალითი კოდი Linux მომხმარებლის ჟურნალში. (რა თქმა უნდა, შეგიძლიათ გამოიყენოთ ნებისმიერი ფოსტის სერვერი მას შემდეგ რაც გაიგებთ პორტის აუცილებელ დავალებებს.) ამისთვის მე შევქმენი გამოყოფილი ელ.ფოსტის Gmail ელ.წერილი ამ სიგნალებისთვის. ასევე, როგორც დამატებითი ფუნქცია, როდესაც განგაშის გააქტიურება ხდება, მე ვამაგრებ ერთ გრაფას ელ.წერილს, რათა ელ.ფოსტის მიმღებმა პირმა მიიღოს იდეა, თუ რამდენად მკვეთრმა ზრდამ გამოიწვია გაფრთხილება.

ნაბიჯი 1: აპარატურის დაყენება

აპარატურის დაყენება
აპარატურის დაყენება

ტექნიკის დაყენება ბევრი არაფერია. Raspberry pi მუშაობს Raspian– ით და USB ტემპერატურის სენსორი უბრალოდ უერთდება პირდაპირ ერთ USB პორტს. ამ სენსორის ენერგიის მოხმარება მინიმალურია და შედეგად ის პირდაპირ Raspberry pi– დან დავამუშავე. თუმცა, USB- ზე მომუშავე მოწყობილობებისთვის ცოტა მეტი ენერგიის მოხმარებით, მე გირჩევთ მათ იკვებოთ კვების ბლოკზე და არა უშუალოდ Raspberry pi- ს USB პორტიდან. მას შემდეგ, რაც ტემპერატურის სენსორი იკვებება, ის უზრუნველყოფს სერიულ სტრიქონს, რომელიც შეიცავს ტემპერატურას და ტენიანობის მაჩვენებლები მიმდინარე პირობებში. ტემპერატურა = 20.9 ° C ტენიანობა = 62.7% dewpoint = 13.0 ° CA პითონის სკრიპტი აანალიზებს ამ სტრიქონს და ინახავს ტემპერატურისა და ტენიანობის მნიშვნელობებს სამ ტექსტურ ფაილში ყოველ ხუთ წუთში; ყოველდღიური, 24 საათი და 48 საათი ტექსტური ფაილები (განსხვავებები მოგვიანებით იქნება განხილული HTML განყოფილებაში). ამ ფაილებიდან Gnuplot გამოიმუშავებს გრაფიკებს და შემდგომში თითოეულ ფაილში არსებული მონაცემების სურათებს. სანამ პითონის დამწერლობას განვიხილავ მე ვისაუბრებ ჟოლოს პიის მომზადებაზე. ვინაიდან მონიტორინგი უნდა მოხდეს ონლაინ რეჟიმში, ვებ სერვერი უნდა იყოს დაინსტალირებული. მე ვცადე რამდენიმე მათგანი თავის დროზე Raspberry pi– ზე, მაგრამ მიუხედავად იმისა, რომ ის ცოტა დიდია, მე მირჩევნია Apache. Apache– ს თქვენს Raspberry pi– ზე დასაყენებლად თქვენ უბრალოდ აკრიფებთ: sudo apt-get install apache2 ის მოგცემთ მოთხოვნას ინსტალაციის დაწყებამდე, დააჭირეთ ღილაკს „y“დიახ და და Apache დაინსტალირდება რამდენიმე წუთის განმავლობაში თქვენი ჟოლოს პიიდან გამომდინარე. მას შემდეგ რაც დასრულებულია, თქვენ უნდა დააინსტალიროთ ორი პითონის დანამატი: პითონის სერიული და პითონ-გნუპლოტის დანამატი. (მიუხედავად იმისა, რომ მივხვდი, რომ Raspian– ის ბოლო შენობებს აქვს პითონის სერიული დანამატი სტანდარტული, მაგრამ მხოლოდ უსაფრთხოდ რომ იყოს). -ინები დაინსტალირდება. და ამით ტექნიკის დაყენება დასრულებულია.

ნაბიჯი 2: პროგრამული უზრუნველყოფის დაყენება - ელ.ფოსტის დაყენება და მიმღებები

ელექტრონული ფოსტის მისამართის შექმნამდე, სანამ ჩვენ ძალიან შორს მივდივართ პროგრამულ უზრუნველყოფაში, კარგი დრო იქნება Gmail ანგარიშის შესაქმნელად, საიდანაც გამოვაგზავნოთ თქვენი ელ.ფოსტის შეტყობინებები. (ეს მაგალითი იყენებს GMail- ს, მაგრამ ნებისმიერი ფოსტის სერვერი შეიძლება გამოყენებულ იქნას მას შემდეგ რაც ჩვენ ვიცით smtp პორტის პარამეტრები) პითონის კოდი საკმაოდ სწორია, მაგრამ იმპორტის საჭიროება კრიტიკულია. მათ გარეშე არაფერი იმუშავებს. დროული იმპორტიდან *იმპორტის დრო იმპორტი სერიული იმპორტი smtplib იმპორტი Gnuplot იმპორტი os იმპორტი sys საბოლოოდ, საფოსტო სია. რა თქმა უნდა, ჩვენ უნდა დავამატოთ ელ.ფოსტის მიმღებები. თითოეული ელ.ფოსტის მისამართი ინახება ცვლადში.

ნაბიჯი 3: პროგრამული უზრუნველყოფის დაყენება - სერიული დაყენება და ანალიზი

შემდეგი ჩვენ გადავხედავთ სერიულ კონფიგურაციას. ეს მხოლოდ პარამეტრის დაყენებაა, რომელიც შეესაბამება სენსორის სერიულ გამომუშავებას. სენსორი გამოსცემს სერიულ სტრიქონს 9600 8 N 1 სტანდარტულ ფორმატში. მას შემდეგ, რაც სტრიქონი მიიღება, არსებობს რამდენიმე გზა ამ სტრიქონის გაანალიზებისთვის პითონში და შესაძლოა უფრო საიმედოდ. მე ამას ვაკეთებ არის სერიული სტრიქონის "ტემპის" სიმბოლოების ძებნა. როდესაც ის განთავსდება, უბრალოდ უნდა წაიკითხოთ შემდეგი 46 სერიული პერსონაჟი სტრიქონში. შეგროვებული სტრიქონი ახლა შეიძლება მიმართული იყოს მასივის ელემენტების მსგავსად. სასურველი მონაცემები ამოიკითხება სტრიქონიდან და ინახება სამ ფაილში, შესაბამისი დროის მარკირებასთან ერთად.

ნაბიჯი 4: პროგრამული უზრუნველყოფის დაყენება - Gnuplot

პროგრამული უზრუნველყოფის დაყენება - Gnuplot
პროგრამული უზრუნველყოფის დაყენება - Gnuplot
პროგრამული უზრუნველყოფის დაყენება - Gnuplot
პროგრამული უზრუნველყოფის დაყენება - Gnuplot
პროგრამული უზრუნველყოფის დაყენება - Gnuplot
პროგრამული უზრუნველყოფის დაყენება - Gnuplot

Gnuplot არის ბრძანების ხაზის გრაფიკული ინსტრუმენტი. მას შემდეგ რაც გაარკვევთ საფუძვლებს, ეს შეიძლება იყოს საკმაოდ მძლავრი ინსტრუმენტი მონაცემთა ნაკრების გრაფიკული ჩვენებისათვის. Gnuplot– ს შეუძლია შეადგინოს უშუალოდ ფორმატირებული ტექსტური ფაილი და ჩვენ შემთხვევით გვექნება ერთი ადრე ანალიზის საფეხურიდან. მას შემდეგ რაც gnuplot– ს მივუთითებთ სად ფაილში არის მონაცემები ჩვენ შეგვიძლია დავხატოთ სასურველი მნიშვნელობები. მე ვაპირებ გამოვიყენო დრო X ღერძზე და ჩვენი ტემპერატურა Y ღერძზე. ჩემი გამოცდილებიდან დროის შედგენა ყველაზე რთულია, რადგან თქვენ უნდა მიიღოთ დროის ფორმატი gnuplot- ში, რათა შეესაბამებოდეს ტექსტური ფაილის ფორმატს. მას შემდეგ, რაც ყველა გრაფიკული ვარიანტი დასრულებულია და თქვენი შეხედულებისამებრ, Gnuplot- ს შეუძლია შექმნას ამ გრაფის სურათი. ეს იქნება სურათი, რომელსაც ჩვენ მოგვიანებით გამოვიყენებთ ჩვენს ვებ გვერდზე. მე ავირჩიე წასვლა-p.webp

ნაბიჯი 5: პროგრამული უზრუნველყოფის დაყენება - ბარიერის დაყენება და გაგზავნა

გაფრთხილების ბარიერი უნდა გაკეთდეს საცდელი და შეცდომით თქვენი კონფიგურაციისთვის. ოთახში, სადაც განთავსებულია სისტემები, არ აქვს ფანჯრები, ასე რომ კონდიციონერის გაჩერებისთანავე ის ძალიან სწრაფად ცხელდება. თავდაპირველად მე შევხედე მონაცემთა ნაკრებებს რამდენიმე დღის განმავლობაში და დავაკვირდი ტემპერატურის ცვალებადობას, სანამ მე მივიღებდი გადაწყვეტილებას 30 გრადუსი ცელსიუს ტემპერატურაზე. ეს შეიძლება არც ისე მაღალი ჩანდეს, მაგრამ როდესაც გაფრთხილება ამოქმედდა, თქვენ კვლავ გინდათ დრო დაუთმოთ საკუთარ თავს პრობლემის გამოსასწორებლად, სანამ ის გახდება კრიტიკული.

სიმარტივისთვის, მე ვაგზავნი ინდივიდუალურ წერილებს საფოსტო სიაში. მას შემდეგ, რაც საფოსტო სია არის მოკლე მე არასოდეს შეაწუხებს გაგზავნის ერთი წერილი რამდენიმე მიმღები. ერთი რამ უნდა აღვნიშნო, რადგან მე ვიყენებ ამ სკრიპტს, როგორც ყოველ 5 წუთში ერთხელ, თქვენ არ გსურთ წერილების გაგზავნა ყოველ 5 წუთში ერთხელ, როდესაც ბარიერი ამოქმედდება. ამის თავიდან ასაცილებლად, მე ვწერ გაფრთხილების თარიღს და დროს ფაილს და ვამოწმებ ამ ფაილს ელ.წერილის გაგზავნამდე, რომ ნახოთ არის თუ არა სისტემა უკვე განგაშის მდგომარეობაში. როგორც კი გაფრთხილების მდგომარეობაშია, ის მხოლოდ ხელახლა გამოაგზავნის ელ.წერილს პირველი ჩახშობის შემდეგ ყოველ საათში, სანამ სისტემა იმყოფება და გაფრთხილების მდგომარეობაში. ამგვარად Gmail არ დაბლოკავს თქვენს ელ.წერილს მოკლე დროში ძალიან ბევრი წერილის გაგზავნისგან.

ნაბიჯი 6: პროგრამული უზრუნველყოფის დაყენება - HTML

მთელი სისტემის მონიტორინგი ხდება ვებ გვერდის საშუალებით და ამისათვის საჭიროა ძალიან ძირითადი html სკრიპტი. გნუპლოტის მიერ შექმნილი სურათები მე უბრალოდ ვიყენებ სურათის იმავე ზომებს. მე მჯერა, რომ მე გადავიტანე დაახლოებით 3 ზომა ამ სურათებისთვის, რამაც ჩემი ეკრანის საუკეთესო მორგება მისცა. სანამ შევქმნით html სკრიპტს, შევქმნათ საქაღალდე მისთვის. სტანდარტულად ვებ ჰოსტინგის საქაღალდე მდებარეობს/var/www/. მიუხედავად იმისა, რომ ეს Raspberry pi 'ერთადერთი მიზანია ამ ოთახის მონიტორინგი და ელ.ფოსტის შეტყობინებების გაცემა, კარგი სახლის მოვლისთვის მე შევქმენი ცალკე საქაღალდე/var/www/საქაღალდეში. ვინაიდან ეს საქაღალდე ეკუთვნის ძირითად მომხმარებელს, თქვენ უნდა გამოიყენოთ sudo საქაღალდის შესაქმნელად. sudo mkdir/var/www/temperature ამ მაგალითში მე გამოვიყენე ტემპერატურა, როგორც საქაღალდის სახელი, მაგრამ თქვენ შეგიძლიათ გამოიყენოთ ნებისმიერი სახელი აქ, მაგრამ გახსოვდეთ, რადგან ეს უნდა შეიყვანოთ მისამართების ზოლში ამ გვერდის სანახავად. ეს გზა ინახება ცვლადში პითონის სკრიპტში. მას შემდეგ რაც ჰოსტინგის ადგილმდებარეობა უნდა შეიცვალოს ან სკრიპტი უნდა შეიცვალოს სხვა სისტემისთვის, ის შეიძლება შეიცვალოს ამ ერთი ადგილიდან. ახლა ჩვენ შეგვიძლია შევქმნათ ჩვენი html სკრიპტი ამ საქაღალდეში და გავიხსენოთ sudo ნებისმიერი ბრძანების წინ მინდა აქ აღსრულება მე გირჩევთ დაასახელოთ html სკრიპტი "index.html", რადგან ეს გაამარტივებს ამ გვერდის პოვნას. კრიტიკული ის არის, რომ დარწმუნდეთ, რომ სურათის ზომა იგივეა, რაც Gnuplot- ის ზომა. ამ გვერდის სანახავად თქვენ უბრალოდ უნდა ჩაწეროთ Raspberry Pi– ს IP მისამართი, რასაც მოყვება /ტემპერატურა (ან რა სახელი დაარქვით თქვენს საქაღალდეს) მე მაქვს რამდენიმე სისტემა, რომლებიც სხვადასხვა საკითხებს აკონტროლებენ და ისინი ყველა აწარმოებენ თავიანთი შედეგების გარკვეულ გრაფიკულს. ასე რომ, მე შევქმენი გვერდი, რომელსაც აქვს ბმულები ყველა ამ გვერდზე, ასე რომ მე არ უნდა ვიწუწუნო მისამართის შეყვანისას ყოველ ჯერზე, როდესაც მსურს ამ გვერდებზე წვდომა.

ნაბიჯი 7: მე ცოცხალი ვარ…

მე ეს გამოვიყენე კომპიუტერის ოთახში ტემპერატურის მონიტორინგისთვის, მაგრამ ეს შეიძლება იყოს ნებისმიერი წყაროს მონაცემები. მას შემდეგ რაც შეინახება ტექსტურ ფაილში და თქვენ იცით მისი ფორმატი Gnuplot– ს შეუძლია გააკეთოს დანარჩენი. ერთი რამ, რაც ამ პროექტს ახლახანს დავამატე არის ერთგვარი „გულისცემის“ელ.ფოსტის გაგზავნა. ეს არის პირველი თვის დილის 9 საათზე, მე მაქვს სკრიპტი, რომელიც აგზავნის ელ.წერილს, რათა მათ აცნობონ, რომ სისტემა მუშაობს ისე, როგორც უნდა და ყველაფერი კარგად არის ოთახში.

Cronjob ჩამონათვალის გამოყენება როგორც:

გირჩევთ: