INHOUDSOPGAWE:
- Stap 1: Die hardeware -opstelling
- Stap 2: sagteware -opstelling - e -posopstelling en ontvangers
- Stap 3: sagteware -opstelling - reeksopstelling en ontleding
- Stap 4: Sagteware -opstelling - Gnuplot
- Stap 5: sagteware -opstelling - drempelinstelling en e -pos
- Stap 6: Sagteware -opstelling - HTML
- Stap 7: Ek is lewendig …
Video: Raspberry Pi -beheerde kamertemperatuurmonitering met Gnuplot -beelduitvoer en e -poswaarskuwingsvermoë: 7 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
Waar ek werk, is daar 'n baie belangrike kamer met baie rekenaars. Die kamertemperatuur van hierdie kamer moet baie koel wees om die werkverrigting van hierdie stelsels te optimaliseer. Ek is gevra om 'n moniteringstelsel op te stel wat die moontlikheid het om 'n paar waarskuwings na 'n paar mense te stuur wat hulle in kennis stel dat daar iets fout is met die lugversorging in die kamer. en 'n USB -temperatuur- en humiditeitsensor. Vir monitering het ek Gnuplot gebruik om drie temperatuurgrafieke te teken en 'n beeld van die grafieke te skep. Ek het toe 'n spesiale HTML -bladsy geskep wat op die Raspberry pi aangebied word, sodat die huidige toestande, die gnuplot -afbeeldings, vanaf 'n webwerf in ons netwerk gemonitor kan word. Ek het 'n voorbeeldkode in 'n Linux User -tydskrif gevind. (U kan natuurlik enige posbediener gebruik sodra u die nodige poortopdragte ken.) Hiervoor het ek 'n spesiale Gmail -e -posrekening vir hierdie waarskuwings geskep. As 'n ekstra funksie, heg ek 'n grafiek aan die e -pos as 'n waarskuwing geaktiveer word, sodat die persoon wat die e -pos ontvang, 'n idee kan kry van die drastiese toename wat die waarskuwing veroorsaak het.
Stap 1: Die hardeware -opstelling
Daar is nie veel om die hardeware op te stel nie. Die Raspberry pi werk met Raspian en die USB -temperatuursensor kan eenvoudig direk in een van die USB -poorte gekoppel word. Die kragverbruik van hierdie sensor is minimaal, en daarom het ek dit direk vanaf die Framboos -pi aangedryf. Vir toestelle met 'n bietjie meer kragverbruik op USB -toestelle, sou ek aanbeveel om dit deur 'n aangedrewe USB -hub aan te dryf en nie direk vanaf die Raspberry pi se USB -poort nie. humiditeitsmetings van die huidige toestande. temperatuur = 20,9 ° C humiditeit = 62,7% dauwpunt = 13,0 ° CA python -skrip ontleed hierdie string en stoor elke vyf minute die temperatuur- en humiditeitswaardes in drie tekslêers; daagliks, 24 uur en 48 uur tekslêers (die verskille word later in die HTML -afdeling bespreek). Uit hierdie lêers sal Gnuplot die grafieke en daarna die beelde van die datastel in elke lêer genereer. Voordat ek die luislangskrif bespreek, sal ek praat oor die voorbereiding van die framboos -pi. Aangesien die monitering aanlyn gedoen moet word, moet 'n webbediener geïnstalleer word. Ek het al 'n paar daarvan in my tyd op die Raspberry pi probeer, maar hoewel dit 'n bietjie groot is, verkies ek Apache. Om Apache op u Raspberry pi te installeer, tik u eenvoudig: sudo apt-get install apache2 Dit sal u 'n aanwysing gee voordat dit geïnstalleer word, druk "y" vir ja en dan word Apache 'n paar minute geïnstalleer, afhangende van u framboos pi. As u klaar is, moet u twee python-inproppe installeer: python-serial en die python-gnuplot-prop. (Alhoewel ek besef het dat die onlangse Raspian-builds die standaard vir python-seriële inproppe het, maar net om dit veilig te maak.) Om diegene wat u tik, te installeer: sudo apt-get install python-serial python-gnuplot Sodra u die instruksies erken het, moet u -ins sal geïnstalleer word. En daarmee is die hardeware -opstelling voltooi.
Stap 2: sagteware -opstelling - e -posopstelling en ontvangers
skep 'n e -posadres Voordat ons nou te ver in die sagteware kom, is dit 'n goeie tyd om 'n Gmail -rekening te skep om u e -poswaarskuwings van te stuur. (Hierdie voorbeeld gebruik GMail, maar enige e -posbediener kan gebruik word sodra ons die smtp -poortinstellings ken) Die python -kode is redelik eenvoudig, maar die nodige invoer is van kritieke belang. Sonder hulle sou niks werk nie. Van tyd af invoer *invoer tyd invoer reeks invoer smtplib invoer Gnuplot invoer os invoer stelsel Uiteindelik die poslys. Natuurlik moet ons die ontvangers van die e -pos byvoeg. Elke e -posadres word gestoor in 'n variable.from_address = '[email protected]'to_address1 =' recipient1.mail.com 'to_address2 =' recipient2.mail.com'username = '[email protected]' wagwoord = 'custom_email_password'
Stap 3: sagteware -opstelling - reeksopstelling en ontleding
Vervolgens kyk ons na die reeksopstelling: dit is net 'n kwessie om parameters op te stel wat pas by die seriële uitset van die sensor. Die sensor gee 'n seriële string uit by 9600 8 N 1, wat 'n standaardformaat is. Nadat die string ontvang is, is daar verskeie maniere om hierdie string in python te ontleed en heel moontlik meer betroubaar. Die manier waarop ek dit doen, is om na die 'temp' -karakters in die reeksreeks te soek. As dit eers gevind is, is dit eenvoudig om die volgende 46 reekskarakters in 'n string te lees. Die versamelde string kan nou soos elemente in 'n skikking aangespreek word. Die gewenste data word uit die string ontleed en in die drie lêers saam met die ooreenstemmende tydstempel.tydstempel = strftime ("%d%b%Y%H:%M:%S", localtime ()) gestoor
Stap 4: Sagteware -opstelling - Gnuplot
Gnuplot is 'n opdragreël grafiese hulpmiddel. Sodra u die basiese beginsels uitgevind het, kan dit 'n redelik kragtige instrument wees vir die grafiese vertoning van datastelle. Gnuplot kan direk uit 'n geformateerde tekslêer plot, en ons het toevallig een van die ontledingsstappe hiervoor. Sodra ons vir gnuplot aandui waar in die lêer die data geleë is, kan ons die gewenste waardes teken. Ek gaan tyd op die X -as en ons temperatuur op die Y -as gebruik. Dit is die moeilikste om tyd uit my ervaring op te stel, aangesien u die tydformaat in gnuplot moet kry om by die formaat van die tekslêer te pas. Nadat al die grafiese opsies voltooi is en na u voorkeur, kan Gnuplot 'n beeld van hierdie grafiek skep. Dit is die prentjie wat ons later op ons webwerf sal gebruik. Ek het gekies om met 'n-p.webp
Stap 5: sagteware -opstelling - drempelinstelling en e -pos
Die drempel vir die waarskuwing moet gedoen word deur proef en fout vir u opstelling. Die kamer met die stelsels het geen vensters nie, sodra die lugversorging stop, kan dit baie vinnig warm word. Aanvanklik het ek 'n paar dae na die datastel gekyk en die temperatuurvariasies gekyk voordat ek op 'n waarskuwingswaarde van 30 grade C. besluit het. Dit lyk miskien nie baie hoog nie, maar sodra die waarskuwing geaktiveer is, wil u uself nog tyd gee om die probleem reg te stel voordat dit krities word.
Vir die eenvoud stuur ek individuele e -posse na die poslys. Aangesien die poslys kort is, het ek nooit moeite gehad om een e -pos aan verskeie ontvangers te stuur nie. Een ding om hier op te let, aangesien ek hierdie skrip elke 5 minute as 'n cron -taak uitvoer, wil u nie elke 5 minute e -pos stuur nie, sodra die drempelwaarde geaktiveer is. Om dit te vermy, skryf ek die datum en tyd van die waarskuwing na 'n lêer en kyk na hierdie lêer voordat ek e -posse stuur om te sien of die stelsel reeds in 'n waarskuwingstoestand is. Sodra die stelsel in 'n waarskuwingstoestand is, stuur dit slegs 'n e -pos elke uur na die eerste sneller, solank die stelsel in 'n waarskuwingstoestand is. Op hierdie manier blokkeer Gmail u e -pos om te veel e -posse binne 'n kort tydjie te stuur.
Stap 6: Sagteware -opstelling - HTML
Die monitering van die hele stelsel word via 'n webblad gedoen, en 'n baie basiese html -script is hiervoor nodig. Die beelde wat Gnuplot geskep het, gebruik ek net dieselfde dimensies van die beeld. Ek glo ek het ongeveer 3 groottes deurgegaan vir hierdie beelde wat die beste pas op my skerm. Voordat ons die html -script skep, moet ons 'n gids daarvoor skep. Die gids vir webhosting is standaard geleë op/var/www/. Alhoewel hierdie Raspberry pi se enigste doel is om hierdie kamer te monitor en e -poswaarskuwings uit te reik, het ek 'n aparte vouer in die/var/www/gids vir goeie huishouding geskep. Aangesien hierdie gids aan die wortelgebruiker behoort, moet u sudo gebruik om 'n gids te skep. sudo mkdir/var/www/temperature In hierdie voorbeeld het ek temperatuur as die naam van die gids gebruik, maar u kan enige naam hier gebruik, maar onthou dit moet in die adresbalk ingevoer word om hierdie bladsy te sien. Hierdie pad word gestoor in 'n veranderlike in die python -script. Selfs as die hosting -ligging verander moet word of die script vir 'n ander stelsel gewysig moet word, kan dit net van hierdie een plek verander word. wil hier uitvoer. Ek beveel aan dat u die html -script "index.html" noem, aangesien dit dit sou vereenvoudig as u hierdie bladsy probeer vind. Die belangrikste ding is om seker te maak dat die grootte van die prent dieselfde is as die beeldgrootte van Gnuplot. U moet eenvoudig die IP -adres van die Raspberry Pi invoer, gevolg deur /temperatuur (of wat u ook al u gids genoem het). Ek het dus 'n bladsy geskep met skakels na al hierdie bladsye, sodat ek my nie hoef te bekommer oor die invoer van die adres elke keer as ek toegang tot hierdie bladsye wil kry nie.
Stap 7: Ek is lewendig …
Ek het dit gebruik om die temperatuur in 'n rekenaarkamer te monitor, maar dit kon redelik veel data van enige bron wees. Sodra dit in 'n tekslêer gestoor kan word en u weet dat dit die formaat is, kan Gnuplot die res doen. Een ding wat ek onlangs by hierdie projek gevoeg het, is om 'n soortgelyke 'hartklop' -e -pos te stuur. Dit is op die eerste van die maand om 09:00. Ek het 'n skrif wat die e -poslys stuur om hulle te laat weet dat die stelsel werk soos dit moet, en alles is goed in die kamer.
Gebruik die cronjob -lys as:
Aanbeveel:
Raspberry Pi -boks met koelventilator met CPU -temperatuuraanwyser: 10 stappe (met foto's)
Raspberry Pi Box of Cooling FAN Met CPU Temperature Indicator: Ek het framboos pi (Hierna as RPI) CPU temperatuur aanwyser stroombaan in die vorige projek bekendgestel. Die kring wys eenvoudig RPI 4 verskillende CPU temperatuur vlakke soos volg.- Groen LED aangeskakel wanneer CPU temperatuur is binne 30 ~
Spel met 4 knoppies met een analoog invoer: 6 stappe (met foto's)
Spel met 4 knoppies met een analoog invoer: hierdie instruksies fokus op die gebruik van een analoog invoerlyn vir verskeie knoppies wat onafhanklik van mekaar opgespoor kan word. Al die speletjies (8 in t
Platformer met oneindige vlakke op GameGo met Makecode Arcade: 5 stappe (met foto's)
Platformer met oneindige vlakke op GameGo met Makecode Arcade: GameGo is 'n Microsoft Makecode -versoenbare retro -draagbare konsole wat ontwikkel is deur TinkerGen STEM -onderwys. Dit is gebaseer op die STM32F401RET6 ARM Cortex M4 -chip en is gemaak vir STEM -opvoeders of net mense wat daarvan hou om pret te hê om retro -videospeletjies te skep
Raspbian Buster op Raspberry Pi 3 - Aan die gang met Raspbian Buster Met Raspberry Pi 3b / 3b+: 4 stappe
Raspbian Buster op Raspberry Pi 3 | Aan die gang met Raspbian Buster Met Raspberry Pi 3b / 3b+: Hallo ouens, onlangs het Raspberry pi -organisasie 'n nuwe Raspbian OS bekendgestel wat Raspbian Buster genoem word. Dit is 'n nuwe weergawe van Raspbian vir framboos pi's. So vandag leer ons in hierdie instruksies hoe om Raspbian Buster OS op u Raspberry pi 3 te installeer
Draadlose afstandsbediening met 2,4 GHz NRF24L01 -module met Arduino - Nrf24l01 4 -kanaals / 6 -kanaals sender -ontvanger voor quadcopter - Rc Helikopter - Rc -vliegtuig met Arduino: 5 stappe (met foto's)
Draadlose afstandsbediening met 2,4 GHz NRF24L01 -module met Arduino | Nrf24l01 4 -kanaals / 6 -kanaals sender -ontvanger voor quadcopter | Rc Helikopter | Rc -vliegtuig met Arduino: om 'n Rc -motor te bestuur | Quadcopter | Drone | RC -vliegtuig | RC -boot, ons het altyd 'n ontvanger en sender nodig, veronderstel dat ons vir RC QUADCOPTER 'n 6 -kanaals sender en ontvanger nodig het en dat die tipe TX en RX te duur is, so ons maak een op ons