Բովանդակություն:

Raspberry Pi- ի վերահսկվող սենյակի ջերմաստիճանի մոնիտորինգ Gnuplot- ի պատկերի ելքով և էլ. Փոստով ահազանգելու ունակությամբ. 7 քայլ
Raspberry Pi- ի վերահսկվող սենյակի ջերմաստիճանի մոնիտորինգ Gnuplot- ի պատկերի ելքով և էլ. Փոստով ահազանգելու ունակությամբ. 7 քայլ

Video: Raspberry Pi- ի վերահսկվող սենյակի ջերմաստիճանի մոնիտորինգ Gnuplot- ի պատկերի ելքով և էլ. Փոստով ահազանգելու ունակությամբ. 7 քայլ

Video: Raspberry Pi- ի վերահսկվող սենյակի ջերմաստիճանի մոնիտորինգ Gnuplot- ի պատկերի ելքով և էլ. Փոստով ահազանգելու ունակությամբ. 7 քայլ
Video: Параплан и новый город ► 6 Прохождение Dying Light 2: Stay Human 2024, Հունիսի
Anonim
Raspberry Pi- ի վերահսկվող սենյակի ջերմաստիճանի մոնիտորինգ Gnuplot- ի պատկերի ելքով և էլ. Փոստի ահազանգման ունակությամբ
Raspberry Pi- ի վերահսկվող սենյակի ջերմաստիճանի մոնիտորինգ Gnuplot- ի պատկերի ելքով և էլ. Փոստի ահազանգման ունակությամբ

Այնտեղ, որտեղ ես աշխատում եմ, կա մի շատ կարևոր սենյակ, որտեղ տեղակայված են բազմաթիվ համակարգիչներ: Այս սենյակի շրջակա միջավայրի ջերմաստիճանը պետք է լինի շատ զով `այս համակարգերի աշխատանքը օպտիմալացնելու համար: Ինձ խնդրեցին հանդես գալ մոնիտորինգի համակարգով, որն ունի մի քանի մարդկանց ահազանգ ուղարկելու ունակություն, որը կտեղեկացնի նրանց, որ ինչ -որ բան այն չէ այդ սենյակի օդորակման հետ: Այս կառուցման սարքավորումները ես օգտագործեցի Raspberry pi և USB ջերմաստիճանի և խոնավության տվիչ: Մոնիտորինգի համար ես Gnuplot- ը օգտագործեցի երեք ջերմաստիճանի գրաֆիկներ գծելու և այդ գրաֆների պատկերը ստեղծելու համար: Այնուհետև ես ստեղծեցի նվիրված HTML էջ, որը տեղակայված կլինի Raspberry pi- ում, այնպես որ ներկա պայմանները, այդ gnuplot ելքային պատկերները, կարող են վերահսկվել մեր ցանցի վեբ էջից: Ահազանգելու համար ես նախընտրեցի գնալ Gmail- ի հետ: Ես գտա մի օրինակ կոդ Linux User ամսագրում: (Իհարկե, դուք կարող եք օգտագործել ցանկացած փոստի սերվեր, երբ իմանաք նավահանգստի անհրաժեշտ առաջադրանքները:) Դրա համար ես ստեղծել եմ հատուկ Gmail էլփոստի հաշիվ այս ահազանգերի համար: Նաև որպես լրացուցիչ գործառույթ, երբ ահազանգը գործարկվում է, ես նամակին կցում եմ մեկ գրաֆիկ, որպեսզի էլ.

Քայլ 1: Սարքաշարի տեղադրում

Սարքավորումների տեղադրում
Սարքավորումների տեղադրում

Սարքավորումը կարգավորելու շատ բան չկա: Raspberry pi- ն աշխատում է Raspian- ով, և USB ջերմաստիճանի տվիչը պարզապես միանում է անմիջապես USB պորտերից մեկին: Այս տվիչի էներգիայի սպառումը նվազագույն է, և արդյունքում ես այն սնուցեցի անմիջապես Raspberry pi- ից: Այնուամենայնիվ, USB- ով աշխատող սարքերի համար, որոնք մի փոքր ավելի շատ էներգիա են ծախսում, ես խորհուրդ կտայի դրանք միացնել USB հանգույցի միջոցով և ոչ թե անմիջապես Raspberry pi- ի USB պորտից: Երբ ջերմաստիճանի տվիչը սնուցվում է, այն տալիս է սերիական տող, որը պարունակում է ջերմաստիճանը և ընթացիկ պայմանների խոնավության ցուցանիշները: ջերմաստիճան = 20,9 ° C խոնավություն = 62,7% ցողման կետ = 13,0 ° CA պիթոնի սցենարը վերլուծում է այս տողը և յուրաքանչյուր հինգ րոպեն մեկ պահում է ջերմաստիճանի և խոնավության արժեքները երեք տեքստային ֆայլերի մեջ. օրական, 24 ժամ և 48 ժամ տեքստային ֆայլեր (Տարբերությունները կքննարկվեն ավելի ուշ HTML բաժնում): Այս ֆայլերից Gnuplot- ը կստեղծի գծապատկերներ և հետագայում յուրաքանչյուր ֆայլում տեղադրված տվյալների պատկերներ: Նախքան պիթոնի սցենարը քննարկելը, ես կխոսեմ Raspberry pi- ի պատրաստման մասին: Քանի որ մոնիտորինգը պետք է իրականացվի առցանց, անհրաժեշտ է տեղադրել վեբ սերվեր: Ես ժամանակին փորձել եմ դրանցից մի քանիսը Raspberry pi- ով, բայց չնայած այն մի փոքր մեծ է, ես նախընտրում եմ Apache- ը: Apache- ն ձեր Raspberry pi- ի վրա տեղադրելու համար պարզապես մուտքագրեք ՝ sudo apt-get install apache2 Այն տեղադրվելուց առաջ ձեզ հուշում կտա, այո սեղմեք «y», իսկ Apache- ն մի քանի րոպե կտեղադրվի ՝ կախված ձեր Raspberry pi- ից: ավարտված է, դուք պետք է տեղադրեք երկու python plug-ins ՝ python-serial և python-gnuplot plug: (Չնայած ես հասկացա, որ Raspian- ի վերջին կառուցումներն ունեն python-serial plug-in ստանդարտ, բայց պարզապես ապահով լինելու համար): Մուտքագրվածները տեղադրելու համար. -կտեղադրվեն ներս: Եվ դրանով սարքաշարի տեղադրումն ավարտված է:

Քայլ 2. Softwareրագրակազմի տեղադրում - էլփոստի կարգավորում և ստացողներ

Ստեղծեք էլփոստի հասցե Նախքան ծրագրային ապահովման մեջ շատ հեռու գնալը, լավ ժամանակ կլիներ ստեղծել Gmail հաշիվ ՝ ձեր էլ. փոստի ծանուցումները ուղարկելու համար: (Այս օրինակը օգտագործում է GMail- ը, բայց ցանկացած փոստի սերվեր կարող է օգտագործվել, երբ մենք իմանանք smtp նավահանգստի կարգավորումները) Պիթոնի ծածկագիրը բավականին ուղիղ է, բայց անհրաժեշտ ներմուծումները կարևոր են: Առանց նրանց ոչինչ չէր աշխատի: ժամանակի ներմուծումից *ներմուծման ժամանակի ներմուծում սերիական ներմուծում smtplib ներմուծում Gnuplot import os import sys Վերջապես, փոստային ցուցակը: Իհարկե, մենք պետք է ավելացնենք էլ. Հասցեատերերին: Յուրաքանչյուր էլփոստի հասցե պահվում է փոփոխականում:

Քայլ 3. Softwareրագրաշարի տեղադրում - Սերիայի կարգավորում և վերլուծում

Հաջորդը մենք նայում ենք սերիական կարգավորմանը: Պարզապես սենսորից սերիական ելքին համապատասխանող պարամետրերի ստեղծման խնդիր է: Սենսորը թողարկում է սերիական տող 9600 8 N 1 -ում, որը ստանդարտ ձևաչափ է: Լարը ստանալուց հետո կան պիթոնում այս տողը վերլուծելու մի քանի եղանակներ և, հավանաբար, ավելի հուսալի: Ինչպես ես դա անում եմ ՝ սերիալային տողի «տեմպ» կերպարներ փնտրելն է: Տեղակայվելուց հետո պարզապես պետք է հաջորդ 46 սերիական կերպարները կարդալ տողի մեջ: Հավաքված տողը այժմ կարող է հասցեագրվել զանգվածի տարրերի նման: Theանկալի տվյալները վերծանվում են տողից և պահվում են երեք ֆայլերում `համապատասխան ժամանակային դրոշմով:

Քայլ 4: Softwareրագրաշարի տեղադրում - Gnuplot

Softwareրագրաշարի տեղադրում - Gnuplot
Softwareրագրաշարի տեղադրում - Gnuplot
Softwareրագրաշարի տեղադրում - Gnuplot
Softwareրագրաշարի տեղադրում - Gnuplot
Softwareրագրաշարի տեղադրում - Gnuplot
Softwareրագրաշարի տեղադրում - Gnuplot

Gnuplot- ը հրամանի տողի գրաֆիկական գործիք է: Հիմնական տարրերը պարզելուց հետո այն կարող է լինել բավականին հզոր գործիք ՝ տվյալների հավաքածուների գրաֆիկական ցուցադրման համար: Gnuplot- ը կարող է գծագրել ուղղակիորեն ձևաչափված տեքստային ֆայլից, և մեզ պատահում է, որ մենք ունենք վերլուծության նախնական փուլից մեկը: Երբ gnuplot- ին նշենք, թե ֆայլում որտեղ են գտնվում տվյալները, կարող ենք գծել ցանկալի արժեքները: Ես պատրաստվում եմ օգտագործել ժամանակը X առանցքի վրա և մեր ջերմաստիճանը Y առանցքի վրա: Իմ փորձից ժամանակ գրելը ամենադժվարն է, քանի որ gnuplot- ում պետք է ստանաք ժամանակի ձևաչափ, որը կհամապատասխանի տեքստային ֆայլի ձևաչափին: Գրաֆիկական բոլոր ընտրանքներն ավարտվելուց և ձեր նախընտրությունից հետո, Gnuplot- ը կարող է ստեղծել այս գրաֆիկի պատկերը: Սա կլինի այն պատկերը, որը մենք հետագայում կօգտագործենք մեր վեբ էջում: Ես նախընտրեցի գնալ-p.webp

Քայլ 5. Softwareրագրաշարի տեղադրում - շեմի կարգավորում և էլ

Theգուշացման շեմը պետք է կատարվի փորձարկման և սխալի միջոցով ՝ ձեր տեղադրման համար: սենյակը, որտեղ տեղակայված են համակարգերը, չունի պատուհաններ, այնպես որ, երբ օդորակումը դադարի, այն կարող է շատ արագ տաքանալ: Սկզբում ես նայեցի տվյալների հավաքածուն մի քանի օր և դիտեցի ջերմաստիճանի տատանումները ՝ նախքան 30 աստիճան C- ի ազդանշանային արժեքը որոշելը: Սա կարող է շատ բարձր չթվալ, բայց ահազանգի գործարկումից հետո դուք դեռ ցանկանում եք ժամանակ տալ ձեզ ՝ խնդիրը շտկելուց առաջ այն շտկելու համար:

Պարզության համար ես անհատական նամակներ եմ ուղարկում փոստային ցուցակին: Քանի որ փոստային ցուցակը կարճ է, ես երբեք չեմ անհանգստացել մի քանի հասցեատերերին մեկ նամակ ուղարկելով: Այստեղ պետք է նշել մի բան. Քանի որ ես այս սցենարը աշխատում եմ որպես ամեն 5 րոպեն մեկ, շեմը գործարկելուց հետո չեք ցանկանում նամակներ ուղարկել 5 րոպեն մեկ: Այս խնդիրը լուծելու համար ես գրում եմ ահազանգի ամսաթիվը և ժամը ֆայլում և ստուգում եմ այս ֆայլը, նախքան որևէ նամակ ուղարկելը `տեսնելու համար, արդյոք համակարգը արդեն գտնվում է ահազանգի վիճակում: Anգուշացման վիճակում գտնվելուց հետո այն միայն մեկ անգամ մեկ նամակ կուղարկի առաջին գործարկումից հետո, քանի դեռ համակարգը գտնվում է զգոն վիճակում: Այդ կերպ Gmail- ը չի արգելափակում ձեր էլ.փոստը կարճ ժամանակահատվածում չափազանց շատ նամակներ ուղարկելուց:

Քայլ 6: Softwareրագրաշարի տեղադրում - HTML

Ամբողջ համակարգի մոնիտորինգը կատարվում է վեբ էջի միջոցով, և դրա համար անհրաժեշտ է շատ հիմնական HTML սցենար: Գնուպլոտի ստեղծած պատկերները ես պարզապես օգտագործում եմ պատկերի նույն չափերը: Կարծում եմ, որ ես անցել եմ մոտ 3 չափս այս պատկերների համար, որոնք իմ էկրանին լավագույնս համապատասխանեցրին: Նախքան html սցենարը ստեղծելը, եկեք դրա համար թղթապանակ ստեղծենք: Լռելյայն վեբ հոստինգի թղթապանակը գտնվում է/var/www/հասցեում: Թեև այս Raspberry pi- ի միակ նպատակն է վերահսկել այս սենյակը և էլփոստի մասին ահազանգեր տալ, բայց լավ տնային տնտեսության համար ես առանձին թղթապանակ ստեղծեցի/var/www/թղթապանակում: Քանի որ այս թղթապանակը պատկանում է արմատային օգտագործողին, այս վայրում պանակ ստեղծելու համար պետք է օգտագործել sudo: sudo mkdir/var/www/temperature Այս օրինակում ես օգտագործել եմ ջերմաստիճանը որպես թղթապանակի անուն, բայց այստեղ կարող եք օգտագործել ցանկացած անուն, բայց հիշեք, քանի որ սա պետք է մուտքագրվի հասցեի բարում ՝ այս էջը դիտելու համար: Այս ուղին պահվում է Python սցենարի փոփոխականի մեջ: Նույնիսկ այն դեպքում, երբ հոսթինգի վայրը պետք է փոխվի կամ սցենարը պետք է փոփոխվի մեկ այլ համակարգի համար, այն կարող է պարզապես փոխվել այս մեկ վայրից: Այժմ մենք կարող ենք ստեղծել մեր html սցենարը այս թղթապանակում ՝ հիշելով sudo- ի դիմաց ցանկացած հրամանի օգտագործումը: ուզում ես այստեղ կատարել: Ես խորհուրդ կտայի ձեզ անվանել html սցենարը «index.html», քանի որ դա կդյուրացներ դա, երբ փորձում եք գտնել այս էջը: Կարևորը համոզվելն է, որ պատկերի չափերը նույնն են, ինչ Gnuplot- ից: Այս էջը դիտելու համար, դուք պարզապես պետք է մուտքագրեք Raspberry Pi- ի IP հասցեն, որին հաջորդում է /ջերմաստիճանը (կամ ինչ անուն եք դրել ձեր թղթապանակին): Ես աշխատում եմ մի քանի համակարգով, որոնք վերահսկում են տարբեր իրեր, և դրանք բոլորը տալիս են իրենց արդյունքների գրաֆիկական ելք: Այսպիսով, ես ստեղծեցի մի էջ, որը պարունակում է այս բոլոր էջերի հղումներ, այնպես որ ես չպետք է անհանգստանամ ամեն անգամ, երբ ցանկանում եմ մուտք գործել այս էջերը:

Քայլ 7: Ես ողջ եմ…

Ես դա օգտագործել եմ համակարգչային սենյակում ջերմաստիճանը վերահսկելու համար, բայց դա կարող էր լինել շատ աղբյուրներ ՝ ցանկացած աղբյուրից: Երբ այն կարող է պահվել տեքստային ֆայլում և գիտեք, որ դրա ձևաչափն է, Gnuplot- ը կարող է անել մնացածը: Մի բան, որ վերջերս ավելացրել եմ այս նախագծին, այն է, որ ուղարկեմ մի տեսակ «սրտի բաբախում» էլ. Այսինքն ՝ ամսվա առաջին առավոտյան ժամը 9 -ին ես ունեմ մի սցենար, որն ուղարկում է փոստերի ցուցակ ՝ տեղեկացնելու նրանց, որ համակարգը աշխատում է այնպես, ինչպես պետք է, և ամեն ինչ կարգին է սենյակում:

Օգտագործելով cronjob ցուցակումը ՝

Խորհուրդ ենք տալիս: