Мазмуну:

Gnuplot Image Output жана Email Alert Жөндөмдүүлүгү менен Raspberry Pi көзөмөлдөгөн бөлмө температурасын көзөмөлдөө: 7 кадам
Gnuplot Image Output жана Email Alert Жөндөмдүүлүгү менен Raspberry Pi көзөмөлдөгөн бөлмө температурасын көзөмөлдөө: 7 кадам

Video: Gnuplot Image Output жана Email Alert Жөндөмдүүлүгү менен Raspberry Pi көзөмөлдөгөн бөлмө температурасын көзөмөлдөө: 7 кадам

Video: Gnuplot Image Output жана Email Alert Жөндөмдүүлүгү менен Raspberry Pi көзөмөлдөгөн бөлмө температурасын көзөмөлдөө: 7 кадам
Video: Google Colab and GNU Octave! 2024, Ноябрь
Anonim
Gnuplot Image Output жана Email Alert жөндөмдүүлүгү менен Raspberry Pi көзөмөлдөгөн бөлмө температурасын көзөмөлдөө
Gnuplot Image Output жана Email Alert жөндөмдүүлүгү менен Raspberry Pi көзөмөлдөгөн бөлмө температурасын көзөмөлдөө

Мен иштеген жерде компьютерлер көп болгон абдан маанилүү бөлмө бар. Бул системанын иштешин оптималдаштыруу үчүн бул бөлмөдө айлана -чөйрөнүн температурасы абдан салкын болушу керек. Мен бир бөлмөгө кондиционер туура эмес экенин билдире турган бир нече кишиге кандайдыр бир деңгээлде эскертүү жөнөтүү мүмкүнчүлүгүнө ээ болгон мониторинг системасын иштеп чыгууну суранышты. жана USB температура жана нымдуулук сенсору. Мониторинг үчүн мен Gnuplotтун жардамы менен үч температура графигин түзүп, ошол графиктердин сүрөтүн түздүм. Мен андан кийин Raspberry piде жайгаштырыла турган атайын HTML баракчасын түздүм, ошондуктан азыркы шарттарды, ошол gnuplot чыгаруу сүрөттөрүн биздин тармактын ичиндеги веб -баракчадан көзөмөлдөсө болот. Эскертүү үчүн мен Gmail менен барууну чечтим. Мен Linux User журналынан кээ бир коддорду таптым. (Албетте, сиз керектүү порт дайындарын билгенден кийин каалаган почта серверин колдоно аласыз.) Бул үчүн мен бул эскертүүлөр үчүн атайын Gmail электрондук почта эсебин түздүм. Кошумча функция катары, эскертүү берилгенде, мен электрондук почтага бир графаны тиркеп коем, ошондо электрондук катты алган адам бул эскертүүнүн кескин өсүшү жөнүндө түшүнүк алат.

1 -кадам: Аппараттык орнотуу

Аппараттык орнотуу
Аппараттык орнотуу

Аппаратты орнотуу үчүн көп нерсе жок. Raspberry pi Raspian менен иштейт жана USB температурасы сенсору жөн эле USB портторунун бирине туташат. Бул сенсордун энергия керектөөсү минималдуу жана натыйжада мен аны түздөн -түз Raspberry piден иштеттим. Бирок, бир аз көбүрөөк энергия керектөөчү USB менен иштеген түзмөктөр үчүн, мен аларды Raspberry piнин USB портунан эмес, USB кубаты аркылуу иштетүүнү сунуштаар элем. нымдуулук көрсөткүчтөрү учурдагы шарттар. температура = 20.9 ° C нымдуулук = 62.7% шүүдүрүм чекити = 13.0 ° CA python скрипти бул сапты талдайт жана температура менен нымдуулуктун маанилерин ар бир беш мүнөттө үч тексттик файлга сактайт; күнүмдүк, 24 саат жана 48 сааттык текст файлдары (айырмачылыктар HTML бөлүмүндө кийинчерээк талкууланат). Бул файлдардан Gnuplot графиктерди жана андан кийин ар бир файлдагы маалыматтардын сүрөттөрүн түзөт. Питон скриптин талкуулоодон мурун мен Raspberry pi даярдоо жөнүндө сүйлөшөм. Мониторинг онлайнда жүргүзүлө тургандыктан, веб -сервер орнотулушу керек. Мен алардын бир нечесин Raspberry piде сынап көрдүм, бирок бир аз чоң болсо да мен Apacheди жакшы көрөм. Apache'ди Raspberry piге орнотуу үчүн жөн эле териңиз: sudo apt-get install apache2 Ал орнотуудан мурун сизге ишарат берет, ооба үчүн "y" баскычын басыңыз жана Apache сиздин Raspberry piге жараша бир нече мүнөттө орнотулат. Бүткөндөн кийин, сиз эки питон плагинин орнотушуңуз керек: python-serial жана python-gnuplot plug. (Мен акыркы Raspian структураларында питон-сериялык плагин стандарты бар экенин түшүндүм, бирок коопсуз болушу үчүн.) Сиз тергендерди орнотуу үчүн: sudo apt-get install python-serial python-gnuplotOnce эскертмелерди кабыл алгандан кийин, бул сайгыч -орнотулат. Жана муну менен аппараттык орнотуу аяктады.

2 -кадам: Программаны орнотуу - Электрондук почтаны орнотуу жана алуучулар

Биз программалык камсыздоого өтө алыстай электе, электрондук почта эскертмелериңизди жөнөтүү үчүн Gmail каттоо эсебин түзүү үчүн жакшы убакыт болмок. (Бул мисал GMailди колдонот, бирок smtp портунун жөндөөлөрүн билгенден кийин каалаган почта серверин колдонсо болот) Python коду абдан түз, бирок керектүү импорт өтө маанилүү. Аларсыз эч нерсе иштебейт. Албетте, биз электрондук кат алуучуларды кошуубуз керек. Ар бир электрондук почта дареги өзгөрмөсүндө сакталат.from_address ='[email protected]'to_address1 = 'алуучу1.mail.com' to_address2 = 'алуучу2.mail.com'username =' [email protected] 'пароль =' custom_email_password '

3 -кадам: Программаны орнотуу - Сериялык орнотуу жана талдоо

Андан кийин биз сериялык орнотууну карайбыз, бул сенсордун сериялык чыгарылышына дал келген параметрлерди орнотуу жөнүндө. Сенсор стандарттык формат болгон 9600 8 N 1 сериялык сап чыгарат. Сап алынгандан кийин, бул сапты pythonдо талдоонун бир нече жолдору бар жана, балким, дагы ишенимдүү. Менин жасоом - сериялык саптан "темп" белгилерин издөө. Бир жолу жайгашкандан кийин, кийинки 46 сериялык белгини сапка окуу гана калды. Эми чогултулган сапты массивдеги элементтер сыяктуу чечүүгө болот. Каалаган маалыматтар саптан талданат жана тиешелүү файлдар менен бирге үч файлга сакталат. Timestamp = strftime ("%d%b%Y%H:%M:%S", localtime ())

4 -кадам: Программаны орнотуу - Gnuplot

Программалык камсыздоону орнотуу - Gnuplot
Программалык камсыздоону орнотуу - Gnuplot
Программалык камсыздоону орнотуу - Gnuplot
Программалык камсыздоону орнотуу - Gnuplot
Программалык камсыздоону орнотуу - Gnuplot
Программалык камсыздоону орнотуу - Gnuplot

Gnuplot - буйрук сабынын графикалык куралы. Негиздерди түшүнгөндөн кийин, бул маалымат топтомдорун графикалык түрдө көрсөтүү үчүн абдан күчтүү курал болушу мүмкүн. Файлда маалыматтар кайда экенин gnuplotко көрсөткөндөн кийин, биз каалаган баалуулуктарды түзө алабыз. Мен X огунда убакытты жана Y огунда биздин температураны колдонгону жатам. Менин тажрыйбам боюнча убакытты пландоо эң кыйын, анткени сиз gnuplot форматындагы текст файлынын форматына дал келишиңиз керек. Бардык графикалык варианттар толук жана сиздин каалооңуз боюнча, Gnuplot анда бул графиктин сүрөтүн түзө алат. Бул кийинчерээк веб -баракчабызда колдонула турган сүрөт болот. Мен-p.webp

5 -кадам: Программалык камсыздоону орнотуу - Босогону коюу жана электрондук кат

Эскертүүнүн босогосу орнотууңуз үчүн сыноо жана ката аркылуу жасалышы керек. системалар жайгашкан бөлмөдө терезе жок, андыктан кондиционер токтогондон кийин абдан тез ысыйт. Башында мен маалымат топтомун бир нече күн карап, температуранын өзгөрүүсүн байкадым, 30 градус C. эскертүү маанисине чечим чыгарардан мурун, бул python скриптинин ичинде өзгөрмө катары коюлган. Бул анча деле чоң көрүнбөшү мүмкүн, бирок эскертүү ишке киргизилгенден кийин, сиз көйгөйдү чечүү үчүн өзүңүзгө дагы убакыт бергиңиз келет.

Жөнөкөйлүк үчүн мен жеке каттарды жөнөтүү тизмесине жөнөтүп жатам. Почта тизмеси кыска болгондуктан, мен бир нече алуучуларга бир электрондук кат жөнөтүү менен убара болгон эмесмин. Бул жерде белгилей кетүүчү бир нерсе, мен бул скриптти 5 мүнөт сайын cron жумуш катары иштетип жүргөндүктөн, босого киргизилгенден кийин ар 5 мүнөт сайын электрондук кат жөнөтүүнү каалабайсың. Муну айланып өтүү үчүн, мен файлга эскертүүнүн датасын жана убактысын жазам жана электрондук почтаны жөнөтүүдөн мурун бул файлды текшерип, система мурунтан эле сергек абалда экенин билем. Бир жолу сергек абалда болгондо, ал тутум жана сергек абалда турганда, биринчи триггерден кийин саат сайын электрондук кат жөнөтөт. Ошентип, Gmail сиздин электрондук почтаңызды кыска убакыттын ичинде өтө көп кат жөнөтүүсүнө бөгөт койбойт.

6 -кадам: Программаны орнотуу - HTML

Бүт системанын мониторинги веб -баракча аркылуу жүргүзүлөт жана бул үчүн эң негизги html скрипти керек. Gnuplot жараткан сүрөттөр мен жөн эле сүрөттүн бирдей өлчөмдөрүн колдоном. Мен ишенем, бул экранда эң туура келген бул сүрөттөр үчүн болжол менен 3 өлчөмдү басып өттүм. HTML скриптин түзүүдөн мурун анын папкасын түзөлү. Демейки боюнча хостинг папкасы/var/www/дарегинде жайгашкан. Бул Raspberry pi'нин бирден -бир максаты бул бөлмөнү көзөмөлдөө жана электрондук почта эскертүүлөрүн берүү болсо да, үйдү жакшы кармоо үчүн/var/www/папкасында өзүнчө папка түздүм. Бул папка түпкү колдонуучуга таандык болгондуктан, бул жерди папка түзүү үчүн sudo колдонушуңуз керек. Бул мисалда мен папканын аталышы катары температураны колдондум, бирок сиз бул жерде каалаган атты колдонсоңуз болот, бирок бул баракты көрүү үчүн дарек тилкесине киргизилиши керек экенин унутпаңыз. Бул жол python скриптинин ичиндеги өзгөрмөлөрдө сакталат. Хостинг жайгашкан жерди өзгөртүү керек болсо же башка системанын сценарийи өзгөртүлүшү керек болсо да, аны ушул жерден өзгөртсө болот. Эми биз бул папкада биздин html скриптин түзө алабыз жана сиз каалаган буйруктарыңызды колдонгонуңузду унутпаңыз. бул жерде аткаргым келет. Мен сизге html скриптин "index.html" деп атоону сунуштаар элем, бул бул баракчаны табууга аракет кылып жатканда муну жөнөкөйлөштүрөт. Эң негизгиси, сүрөттүн өлчөмү Gnuplotтун сүрөтүнүн өлчөмү менен бирдей экенине ынануу., сиз жөн гана Raspberry Piнин IP дарегин /температурасын киргизишиңиз керек (же сиз папкаңызды качан атадыңыз) Менде ар кандай нерселерди көзөмөлдөөчү бир нече системалар бар жана алардын бардыгы графикалык жыйынтыктарын чыгарат. Ошентип, мен бул барактардын баарына шилтемелери бар баракчаны түздүм, ошондуктан бул баракчаларга киргим келген сайын даректи киргизүүдөн коркпойм.

7 -кадам: Мен тирүүмүн …

Мен муну компьютер бөлмөсүндөгү температураны көзөмөлдөө үчүн колдондум, бирок бул кандайдыр бир булактан алынган маалымат болушу мүмкүн. Ал тексттик файлда сакталгандан кийин жана анын форматын Gnuplot жасай аларын билсеңиз болот. Мен бул долбоорго жакында кошкон нерсе - "жүрөктүн кагышы" деген электрондук кат жөнөтүү. Бул айдын биринчи күнү, эртең мененки саат 9да, менде системанын иштеши керектигин жана бөлмөдө баары жакшы экенин билдирүү үчүн почта тизмесин электрондук почта аркылуу жөнөтүүчү скрипт бар.

Cronjob тизмесин колдонуу:

Сунушталууда: