Sadržaj:
- Korak 1: Postavljanje hardvera
- Korak 2: Postavljanje softvera - Postavljanje e -pošte i primatelji
- Korak 3: Postavljanje softvera - Serijsko postavljanje i raščlanjivanje
- Korak 4: Postavljanje softvera - Gnuplot
- Korak 5: Postavljanje softvera - postavljanje praga i slanje e -pošte
- Korak 6: Postavljanje softvera - HTML
- Korak 7: Živ sam…
Video: Raspberry Pi kontrolirano praćenje sobne temperature s Gnuplot izlazom slike i mogućnošću upozorenja e -poštom: 7 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
Tamo gdje ja radim, postoji jedna vrlo važna prostorija u kojoj se nalazi mnogo računara. Temperatura okoline ove prostorije mora biti vrlo hladna da bi se optimizirale performanse ovih sistema. Zamoljen sam da smislim sistem za nadgledanje koji ima mogućnost slanja nekog oblika upozorenja nekolicini ljudi koji će ih obavijestiti da nešto nije u redu s klima uređajem u toj prostoriji. Hardver za ovu izgradnju koristio sam Raspberry pi i USB senzor temperature i vlažnosti. Za praćenje, koristio sam Gnuplot za crtanje tri temperaturna grafikona i kreiranje slike tih grafikona. Zatim sam stvorio namjensku HTML stranicu koja će biti smještena na Raspberry pi -ju tako da se trenutni uslovi, te slike gnuplot -a, mogu nadzirati s web stranice unutar naše mreže. Za upozorenje sam se odlučio na Gmail. Našao sam neki primjer koda u korisničkom časopisu za Linux. (Naravno da možete koristiti bilo koji poslužitelj pošte ako znate potrebne dodjele portova.) Za to sam stvorio namjenski Gmail račun e -pošte za ova upozorenja. Također, kao dodatna funkcija, kada se aktivira upozorenje, e -poruci prilažem jedan grafikon tako da osoba koja prima e -poruku može steći dojam o tome koliko je drastično povećanje uzrokovalo upozorenje.
Korak 1: Postavljanje hardvera
Nema mnogo za postavljanje hardvera. Raspberry pi pokreće Raspian, a USB senzor temperature jednostavno se priključuje direktno na jedan od USB priključaka. Potrošnja energije ovog senzora je minimalna i kao rezultat toga napajao sam ga izravno iz Raspberry pi. Međutim, za USB uređaje s malo većom potrošnjom energije, preporučio bih da se napajaju putem USB čvorišta s napajanjem, a ne izravno s USB priključka Raspberry pi. Nakon što se senzor temperature uključi, on pruža serijski niz koji sadrži temperaturu i očitavanja vlažnosti trenutnih uslova. temperatura = 20,9 ° C vlažnost = 62,7% tačke rose = 13,0 ° CA python skripta raščlanjuje ovaj niz i pohranjuje vrijednosti temperature i vlažnosti u tri tekstualne datoteke svakih pet minuta; tekstualne datoteke dnevno, 24 sata i 48 sati (o razlikama će biti riječi kasnije u odjeljku HTML). Iz ovih datoteka, Gnuplot će generirati grafikone, a zatim i slike skupa podataka u svakoj datoteci. Prije nego što razgovaram o python skripti govorit ću o pripremi Raspberry pi. Budući da će se nadzor vršiti na mreži, potrebno je instalirati web server. Nekad sam ih isprobao na Raspberry pi, ali iako je malo veći, više volim Apache. Da biste instalirali Apache na svoj Raspberry pi, jednostavno upišite: sudo apt-get install apache2 Dat će vam upit prije instalacije, pritisnite "y" za da i i Apache će se instalirati nekoliko minuta ovisno o vašem Raspberry pi. je završeno, morate instalirati dva dodatka za python: python-serial i dodatak python-gnuplot. (Iako sam shvatio da novija Raspian verzija ima standard za dodatak python-serial, ali samo radi sigurnosti.) Da biste instalirali one koje otkucate: sudo apt-get install python-serial python-gnuplotJoš jednom nakon što potvrdite upite, ovi dodaci -in će biti instaliran. Time je hardversko postavljanje završeno.
Korak 2: Postavljanje softvera - Postavljanje e -pošte i primatelji
kreirajte adresu e -poštePrije nego što sada previše zađemo u softver, bilo bi dobro vrijeme za kreiranje Gmail računa za slanje upozorenja putem e -pošte. (Ovaj primjer koristi GMail, ali bilo koji poslužitelj pošte može se koristiti kada saznamo postavke smtp porta) Python kôd je prilično jasan, ali je potreban uvoz kritičan. Bez njih ništa ne bi funkcioniralo. Od vremena import *vrijeme uvoza uvoz serijski uvoz smtplib uvoz Gnuplot uvoz ili uvoz sysFinally, mailing lista. Naravno, moramo dodati primatelje e -pošte. Svaka adresa e -pošte je spremljena u varijablu.from_address ='[email protected]'to_address1 = 'primatelj1.mail.com' to_address2 = 'primatelj2.mail.com'username =' [email protected] 'lozinka =' custom_email_password '
Korak 3: Postavljanje softvera - Serijsko postavljanje i raščlanjivanje
Zatim gledamo serijsko postavljanje. Samo je pitanje postavljanja parametara koji odgovaraju serijskom izlazu sa senzora. Senzor daje serijski niz na 9600 8 N 1 koji je standardni format. Nakon što je niz primljen, postoji nekoliko načina raščlanjivanja ovog niza u pythonu i vrlo vjerojatno pouzdanije. Način na koji ja to radim je da tražim "temp" znakove u serijskom nizu. Jednom locirano jednostavno je čitanje sljedećih 46 serijskih znakova u niz. Prikupljeni niz se sada može adresirati kao elementi u nizu. Željeni podaci se raščlanjuju iz niza i spremaju u tri datoteke zajedno s odgovarajućom vremenskom oznakom.timestamp = strftime ("%d%b%Y%H:%M:%S", localtime ())
Korak 4: Postavljanje softvera - Gnuplot
Gnuplot je grafički alat komandne linije. Nakon što ste shvatili osnove, to može biti prilično moćan alat za grafički prikaz skupova podataka. Gnuplot može iscrtati izravno iz formatirane tekstualne datoteke, a mi ga slučajno imamo prije iz koraka raščlanjivanja. Nakon što označimo gnuplotu gdje se u datoteci nalaze podaci možemo iscrtati željene vrijednosti. Koristit ću vrijeme na osi X, a našu temperaturu na osi Y. Iscrtavanje vremena iz mog iskustva je najteže jer morate dobiti format vremena u gnuplotu kako bi odgovarao formatu tekstualne datoteke. Nakon što su sve opcije grafikona potpune i prema vašim željama, Gnuplot tada može stvoriti sliku ovog grafikona. Ovo će biti slika koju ćemo kasnije koristiti na našoj web stranici. Odlučio sam se za-p.webp
Korak 5: Postavljanje softvera - postavljanje praga i slanje e -pošte
Prag upozorenja mora se izvršiti pokušajem i greškom za vaše postavljanje. prostorija u kojoj se nalaze sistemi nema prozore, pa kad se klima uređaj zaustavi, vrlo brzo se može jako zagrijati. U početku sam nekoliko dana gledao skup podataka i posmatrao varijacije temperature pre nego što sam se odlučio za upozoravajuću vrednost od 30 stepeni C. Ovo je postavljeno kao promenljiva u okviru python scipta. Ovo se možda ne čini jako visokim, ali nakon što se upozorenje aktivira, i dalje želite dati sebi vremena da ispravite problem prije nego što postane kritičan.
Radi jednostavnosti, šaljem pojedinačne e -poruke na mailing listu. Pošto je lista slanja kratka, nikada se nisam zamarao slanjem jedne e -pošte nekolicini primalaca. Ovdje treba napomenuti jednu stvar. Budući da ovu skriptu pokrećem kao cron posao svakih 5 minuta, ne želite slati e -poštu svakih 5 minuta nakon što se aktivira prag. Da bih to zaobišao, zapisujem datum i vrijeme upozorenja u datoteku i provjeravam ovu datoteku prije slanja bilo kakve e -pošte da vidim je li sistem već u stanju upozorenja. Jednom u stanju upozorenja, samo će ponovo slati e -poštu svakih sat vremena nakon prvog okidača, sve dok je sistem u stanju upozorenja. Na taj način Gmail ne blokira slanje previše e -poruka u kratkom vremenskom periodu.
Korak 6: Postavljanje softvera - HTML
Nadzor cijelog sistema vrši se putem web stranice i za to je potrebna vrlo osnovna html skripta. Slike koje je Gnuplot stvorio jednostavno koristim iste dimenzije slike. Vjerujem da sam prošao kroz približno 3 veličine za ove slike koje su se najbolje uklopile na moj ekran. Prije nego stvorimo html skriptu, napravimo mapu za nju. Mapa web hostinga se prema zadanim postavkama nalazi na/var/www/. Iako je jedina svrha ovog Raspberry pi -a nadziranje ove prostorije i izdavanje upozorenja putem e -pošte, za dobro održavanje kuće stvorio sam zasebnu mapu u/var/www/folderu. Budući da ova mapa pripada root korisniku, morate koristiti sudo za stvaranje mape na ovoj lokaciji. sudo mkdir/var/www/temperatureU ovom primjeru sam koristio temperaturu kao naziv foldera, ali ovdje možete koristiti bilo koji naziv, ali zapamtite jer će to biti potrebno unijeti u traku za adresu da biste vidjeli ovu stranicu. Ova putanja je pohranjena u varijabli unutar python skripte. Čak i ako se lokacija hostinga mora promijeniti ili skripta mora biti promijenjena za drugi sistem, može se jednostavno promijeniti s ove lokacije. Sada možemo stvoriti našu html skriptu u ovoj mapi sjećajući se da koristite sudo ispred svih naredbi koje želite izvršiti ovdje. Preporučio bih vam da imenujete html skriptu "index.html" jer bi to pojednostavilo pokušaj pronalaženja ove stranice. Najvažnije je osigurati da veličina slike bude ista kao veličina slike iz Gnuplot -a. Da biste pogledali ovu stranicu, jednostavno morate unijeti IP adresu Raspberry Pi -a iza koje slijedi /temperature (ili kako ste već nazvali svoju mapu). Imam nekoliko sistema na poslu koji nadgledaju različite stvari i svi oni daju neke grafičke rezultate svojih rezultata. Stoga sam stvorio stranicu koja ima veze do svih ovih stranica tako da ne moram brinuti o unosu adrese svaki put kad želim pristupiti tim stranicama.
Korak 7: Živ sam…
Koristio sam ovo za praćenje temperature u računarskoj prostoriji, ali to su mogli biti prilično podaci iz bilo kojeg izvora. Jednom kada se može pohraniti u tekstualnu datoteku, a vi znate da je format Gnuplot može učiniti ostalo. Jedna stvar koju sam nedavno dodao ovom projektu je da pošaljem svojevrsnu poruku "heartbeat". To je prvog u mjesecu u 9 sati ujutro. Imam skriptu koja se pokreće putem e -pošte dopisnoj listi kako bi im javila da sistem radi kako treba i da je sve u redu u prostoriji.
Koristeći cronjob listu kao:
Preporučuje se:
Nadzor sobne temperature i vlažnosti sa ESP32 i AskSensors Cloud: 6 koraka
Nadzor sobne temperature i vlažnosti pomoću ESP32 i AskSensors Cloud -a: U ovom vodiču naučit ćete kako nadzirati temperaturu i vlažnost vaše sobe ili stola pomoću DHT11 i ESP32 spojenih na oblak. Naša ažuriranja vodiča možete pronaći ovdje.DHT11 Specifikacije: DHT11 senzor može mjeriti temperaturu
Obrada slike s Raspberry Pi: Instaliranje OpenCV -a i Razdvajanje boja slike: 4 koraka
Obrada slike pomoću Raspberry Pi -a: Instaliranje OpenCV -a i odvajanje boja slike: Ovaj je post prvi od nekoliko vodiča za obradu slika koji slijede. Pažljivije ćemo pogledati piksele koji čine sliku, naučiti kako instalirati OpenCV na Raspberry Pi, a takođe ćemo napisati i testne skripte za snimanje slike, a takođe i
IOT kontrola sobne temperature: 5 koraka
Kontrola sobne temperature zasnovana na IOT-u: Ovo je uputstvo za projekat kontrole sobne temperature zasnovano na IOT-u. Karakteristike: -1. Automatski uključite ventilator iznad navedene sobne temperature.2. Automatski isključite ventilator ispod navedene sobne temperature.3. Ručna kontrola u bilo kojem trenutku
Predviđanje sobne temperature putem LM35 senzora i mašinskog učenja: 4 koraka
Predviđanje sobne temperature putem LM35 senzora i mašinskog učenja: Uvod Danas smo fokusirani na izradu projekta strojnog učenja koji predviđa temperaturu pomoću polinomske regresije. Mašinsko učenje je aplikacija umjetne inteligencije (AI) koja sistemima omogućava automatsko učenje
Monitor sobne temperature i vlažnosti: 6 koraka
Monitor sobne temperature i vlažnosti: Moj projekt, QTempair, mjeri sobnu temperaturu, vlažnost i kvalitetu zraka. Ovaj projekt čita podatke sa senzora, šalje te podatke u bazu podataka i ti će se podaci prikazati na web stranici. Temperaturu možete sačuvati u postavkama na