Indholdsfortegnelse:
- Trin 1: Hardwareopsætningen
- Trin 2: Softwareopsætning - E -mailopsætning og modtagere
- Trin 3: Softwareopsætning - Seriel opsætning og analyse
- Trin 4: Softwareopsætning - Gnuplot
- Trin 5: Softwareopsætning - Tærskelindstilling og e -mail
- Trin 6: Softwareopsætning - HTML
- Trin 7: Jeg lever …
Video: Raspberry Pi -kontrolleret rumtemperaturovervågning med Gnuplot -billedoutput og e -mailalarm: 7 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
Hvor jeg arbejder, er der et meget vigtigt rum, der rummer masser af computere. Rumtemperaturen i dette rum skal være meget kølig for at optimere ydeevnen af disse systemer. Jeg blev bedt om at komme med et overvågningssystem, der har mulighed for at sende en form for advarsel til et par mennesker, der vil give dem besked om, at der er noget galt med klimaanlægget i det pågældende rum. Hardwaren til denne build, jeg brugte Raspberry pi og en USB temperatur- og fugtighedsføler. Til overvågning brugte jeg Gnuplot til at plotte tre temperaturgrafer og oprette et billede af disse grafer. Jeg oprettede derefter en dedikeret HTML -side, der vil blive hostet på Raspberry pi, så de nuværende betingelser, disse gnuplot -outputbilleder, kan overvåges fra en webside i vores netværk. Til advarsel valgte jeg at gå med Gmail. Jeg havde fundet en eksempelkode i et Linux -brugermagasin. (Selvfølgelig kan du bruge en hvilken som helst mailserver, når du kender de nødvendige portopgaver.) Til det oprettede jeg en dedikeret Gmail -e -mail -konto til disse advarsler. Også som en ekstra funktion, når en advarsel er blevet udløst, vedhæfter jeg en graf til e -mailen, så den person, der modtager e -mailen, kan få en idé om, hvor drastisk en stigning det var, der har forårsaget advarslen.
Trin 1: Hardwareopsætningen
Der er ikke meget at opsætte hardwaren. Raspberry pi kører Raspian, og USB -temperatursensoren tilsluttes ganske enkelt direkte til en af USB -portene. Strømforbruget til denne sensor er minimalt, og som et resultat drev jeg den direkte fra Raspberry pi. Men for USB -drevne enheder med lidt mere strømforbrug, vil jeg anbefale at drive dem via en drevet USB -hub og ikke direkte fra Raspberry pi's USB -port. Når temperatursensoren er tændt, giver den en seriel streng, der indeholder temperaturen og fugtighedsmålinger af de aktuelle forhold. temperatur = 20,9 ° C fugtighed = 62,7% dugpunkt = 13,0 ° CA python -script analyserer denne streng og gemmer temperatur- og fugtighedsværdierne i tre tekstfiler hvert femte minut; en daglig, 24 timer og 48 timer tekstfiler (Forskellene vil blive diskuteret senere i HTML -sektionen). Fra disse filer vil Gnuplot generere graferne og efterfølgende billederne af datasættet i hver fil. Inden jeg diskuterer python -scriptet, vil jeg tale om at forberede Raspberry pi. Da overvågningen skal udføres online, skal der installeres en webserver. Jeg har prøvet et par af dem i min tid på Raspberry pi, men selvom det er lidt stort, foretrækker jeg Apache. For at installere Apache på din Raspberry pi skriver du blot: sudo apt-get install apache2 Det giver dig en prompt, før den installeres, tryk på "y" for ja, og og Apache installeres et par minutter afhængigt af din Raspberry pi. Når det er udført, skal du installere to python-plug-ins: python-serial og python-gnuplot-stikket. (Selvom jeg har indset, at nylige Raspian-builds har python-seriel plug-in-standarden, men bare for at være sikker.) For at installere dem, du skriver: sudo apt-get install python-serial python-gnuplotNår du igen har anerkendt prompterne, plugger disse stik -ins installeres. Og dermed er hardwareopsætningen fuldført.
Trin 2: Softwareopsætning - E -mailopsætning og modtagere
oprette e -mail -adresse Inden vi kommer for langt ind i softwaren nu, ville det være et godt tidspunkt at oprette en Gmail -konto til at sende dine e -mailadvarsler fra. (Dette eksempel bruger GMail, men enhver mailserver kan bruges, når vi kender smtp -portindstillingerne) Python -koden er ret ligetil, men den nødvendige import er kritisk. Uden dem ville intet fungere. Fra tid import *import tid import seriel import smtplib import Gnuplot import os import sys Endelig postliste. Selvfølgelig skal vi tilføje modtagerne af e -mailen. Hver e -mail -adresse gemmes i en variable.from_address ='[email protected]'to_address1 = 'recipient1.mail.com' to_address2 = 'recipient2.mail.com'username =' [email protected] 'password =' custom_email_password '
Trin 3: Softwareopsætning - Seriel opsætning og analyse
Dernæst ser vi på den serielle opsætning. Det er bare et spørgsmål om at opsætte parametre, der matcher det serielle output fra sensoren. Sensoren udsender en seriel streng ved 9600 8 N 1, som er et standardformat. Efter at strengen er blevet modtaget, er der flere måder at analysere denne streng i python og muligvis mere pålideligt. Måden jeg gør det på er at lede efter "temp" -tegnene i seriestrengen. Når det er fundet, er det simpelthen et spørgsmål om at læse de næste 46 serielle tegn ind i en streng. Den indsamlede streng kan nu adresseres som elementer i en matrix. De ønskede data parses ud fra strengen og gemmes i de tre filer sammen med det tilhørende tidsstempel.timestamp = strftime ("%d%b%Y%H:%M:%S", localtime ())
Trin 4: Softwareopsætning - Gnuplot
Gnuplot er et grafisk værktøj til kommandolinjen. Når du har fundet ud af det grundlæggende, kan det være et ret kraftfuldt værktøj til grafisk visning af datasæt. Gnuplot kan plotte direkte fra en formateret tekstfil, og vi har tilfældigvis en fra analysetrinet før. Når vi angiver for gnuplot, hvor i filen dataene er placeret, kan vi plotte de ønskede værdier. Jeg vil bruge tiden på X -aksen og vores temperatur på Y -aksen. Det er det sværeste at planlægge tid ud fra min erfaring, da du er nødt til at få tidsformatet i gnuplot til at matche tekstfilens format. Dette er det billede, vi senere vil bruge på vores webside. Jeg valgte at gå med et-p.webp
Trin 5: Softwareopsætning - Tærskelindstilling og e -mail
Tærsklen for advarslen skal udføres ved forsøg og fejl i din opsætning. rummet, der huser systemerne, har ingen vinduer, så når klimaanlægget stopper, kan det blive meget varmt meget hurtigt. Oprindeligt kiggede jeg på datasættet i et par dage og så variationerne i temperatur, før jeg besluttede alarmværdien på 30 grader C. Dette er indstillet som en variabel inden for python scipt. Dette virker måske ikke særlig højt, men når advarslen er udløst, vil du stadig give dig tid til at rette op på problemet, før det bliver kritisk.
For enkelheds skyld sender jeg individuelle e -mails til mailinglisten. Da mailinglisten er kort, gider jeg aldrig sende en e -mail til flere modtagere. En ting at bemærke her, da jeg kører dette script som et cron -job hvert 5. minut, vil du ikke sende e -mails hvert 5. minut, når tærsklen er udløst. For at komme uden om dette skriver jeg datoen og klokkeslættet for advarslen til en fil og kontrollerer denne fil, før jeg sender nogen e -mails for at se, om systemet allerede er i en alarmtilstand. Når den er i en advarselstilstand, sender den kun en e -mail igen hver time efter den første trigger, så længe systemet er i og alarmtilstand. På den måde blokerer Gmail ikke din e -mail fra at sende for mange e -mails på kort tid.
Trin 6: Softwareopsætning - HTML
Overvågningen af hele systemet sker via en webside, og et meget grundlæggende html -script er nødvendigt til dette. De billeder, som Gnuplot skabte, bruger jeg ganske enkelt de samme dimensioner af billedet tilbage. Jeg tror, jeg har gennemgået omkring 3 størrelser for disse billeder, som gav den bedste pasform på min skærm. Inden vi opretter html -scriptet, lad os oprette en mappe til det. Som standard er webhostemappen placeret på/var/www/. Selvom dette hindbær pi 'eneste formål er at overvåge dette værelse og udsende e -mail -advarsler, oprettede jeg for god husholdning en separat mappe i mappen/var/www/. Da denne mappe tilhører rodbrugeren, skal du bruge sudo til at oprette en mappe, og denne placering er. sudo mkdir/var/www/temperature I dette eksempel brugte jeg temperatur som navnet på mappen, men du kan bruge et hvilket som helst navn her, men husk, da dette skal indtastes i adresselinjen for at se denne side. Denne sti er gemt i en variabel i python -scriptet. Selvom hostingplaceringen skal ændres, eller scriptet skal ændres til et andet system, kan det bare ændres fra dette ene sted. Nu kan vi oprette vores html -script i denne mappe og huske at bruge sudo foran alle kommandoer, du vil eksekvere herinde. Jeg vil anbefale dig at navngive html -scriptet "index.html", da dette ville forenkle dette, når du forsøger at finde denne side. Det afgørende er at sikre, at billedstørrelsen er den samme som billedstørrelsen fra Gnuplot. For at se denne side, du er simpelthen nødt til at indtaste IP -adressen på Raspberry Pi efterfulgt af /temperatur (eller hvad du nogensinde har navngivet din mappe) Jeg har flere systemer på arbejde, der overvåger forskellige ting, og de producerer alle nogle grafiske output af deres resultater. Så jeg oprettede en side, der har links til alle disse sider, så jeg ikke skal bekymre mig om at indtaste adressen hver gang, jeg vil have adgang til disse sider.
Trin 7: Jeg lever …
Jeg har brugt dette til at overvåge temperaturen i et computerrum, men dette kunne have været stort set data fra enhver kilde. Når det kan gemmes i en tekstfil, og du ved, at det er format, kan Gnuplot klare resten. En ting, jeg for nylig tilføjede til dette projekt, er at sende en slags "hjerteslag" -email. Det er den første i måneden kl. 9, jeg har et script, der kører, der sender mailinglisten med e -mail for at fortælle dem, at systemet kører som det skal, og alt er godt i rummet.
Brug af cronjob -listen som:
Anbefalede:
Raspberry Pi -æske med køleventilator med CPU -temperaturindikator: 10 trin (med billeder)
Raspberry Pi Box of Cooling FAN med CPU-temperaturindikator: Jeg havde introduceret hindbær pi (herefter RPI) CPU-temperaturindikator kredsløb i det forrige projekt. Kredsløbet viser simpelthen RPI 4 forskellige CPU-temperaturniveauer som følger.- Grøn LED tændt, når CPU -temperaturen er inden for 30 ~
Akustisk levitation med Arduino Uno trin for trin (8 trin): 8 trin
Akustisk levitation med Arduino Uno Step-by Step (8-trin): ultralyds lydtransducere L298N Dc kvindelig adapter strømforsyning med en han-DC-pin Arduino UNOBreadboard Sådan fungerer det: Først uploader du kode til Arduino Uno (det er en mikrokontroller udstyret med digital og analoge porte til konvertering af kode (C ++)
Installation af Raspbian Buster på Raspberry Pi 3. Kom godt i gang med Raspbian Buster Med Raspberry Pi 3b / 3b+: 4 trin
Installation af Raspbian Buster på Raspberry Pi 3. Kom godt i gang med Raspbian Buster Med Raspberry Pi 3b / 3b+: Hej fyre, for nylig lancerede Raspberry pi -organisationen nyt Raspbian OS kaldet Raspbian Buster. Det er en ny version af Raspbian til Raspberry pi's. Så i dag vil vi i denne instruktør lære at installere Raspbian Buster OS på din Raspberry pi 3
Installation af Raspbian i Raspberry Pi 3 B Uden HDMI - Kom godt i gang med Raspberry Pi 3B - Opsætning af din Raspberry Pi 3: 6 trin
Installation af Raspbian i Raspberry Pi 3 B Uden HDMI | Kom godt i gang med Raspberry Pi 3B | Opsætning af din Raspberry Pi 3: Som nogle af jer ved, er Raspberry Pi-computere ganske fantastiske, og du kan få hele computeren bare på et enkelt lille bord. Raspberry Pi 3 Model B har en quad-core 64-bit ARM Cortex A53 klokket til 1,2 GHz. Dette sætter Pi 3 cirka 50
Sådan styrer du husholdningsapparater med fjernsyn med fjernbetjening med timerfunktion: 7 trin (med billeder)
Sådan styrer du husholdningsapparater med fjernsyn med fjernbetjening med timerfunktion: Selv efter 25 års introduktion til forbrugermarkedet er infrarød kommunikation stadig meget relevant i de seneste dage. Uanset om det er dit 55 tommer 4K -fjernsyn eller dit billydsystem, har alt brug for en IR -fjernbetjening for at reagere på vores