Turinys:
- 1 žingsnis: Aparatūros sąranka
- 2 veiksmas: programinės įrangos sąranka - el. Pašto sąranka ir gavėjai
- 3 žingsnis: Programinės įrangos sąranka - nuosekli sąranka ir analizė
- 4 žingsnis: Programinės įrangos sąranka - „Gnuplot“
- 5 veiksmas: programinės įrangos sąranka - slenksčio nustatymas ir el
- 6 veiksmas: programinės įrangos sąranka - HTML
- 7 žingsnis: aš gyvas …
Video: „Raspberry Pi“kontroliuojamas kambario temperatūros stebėjimas naudojant „Gnuplot“vaizdo išvestį ir el. Pašto įspėjimo galimybes: 7 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:49
Ten, kur aš dirbu, yra labai svarbi patalpa, kurioje yra daug kompiuterių. Norint optimizuoti šių sistemų veikimą, šios patalpos aplinkos temperatūra turi būti labai šalta. Manęs paprašė sukurti stebėjimo sistemą, galinčią nusiųsti tam tikrus įspėjimus keliems žmonėms, kurie praneš, kad kažkas negerai su oro kondicionieriumi toje patalpoje. Šios konstrukcijos aparatūra naudojau „Raspberry pi“ir USB temperatūros ir drėgmės jutiklis. Stebėjimui aš naudoju „Gnuplot“, norėdamas sudaryti tris temperatūros grafikus ir sukurti šių grafikų vaizdą. Tada sukūriau specialų HTML puslapį, kuris bus priglobtas „Raspberry pi“, todėl dabartines sąlygas, tuos „gnuplot“išvesties vaizdus, galima stebėti iš mūsų tinklo tinklalapio. Įspėjimui pasirinkau naudoti „Gmail“. „Linux User“žurnale radau kodo pavyzdį. (Žinoma, žinodami būtinas uosto priskyrimus, galite naudoti bet kurį pašto serverį.) Tam aš sukūriau specialią „Gmail“el. Pašto paskyrą šiems įspėjimams. Taip pat kaip papildoma funkcija, kai buvo suaktyvintas įspėjimas, prie el. Laiško pridedu vieną diagramą, kad el. Laišką gaunantis asmuo galėtų suprasti, kaip smarkiai padidėjo įspėjimas.
1 žingsnis: Aparatūros sąranka
Techninės įrangos nustatymui nėra daug. „Raspberry pi“veikia „Raspian“, o USB temperatūros jutiklis tiesiog prijungiamas tiesiai prie vieno iš USB prievadų. Šio jutiklio energijos suvartojimas yra minimalus, todėl maitinau jį tiesiai iš „Raspberry pi“. Tačiau naudojant USB maitinamus įrenginius, kurių energijos suvartojimas yra šiek tiek didesnis, rekomenduočiau juos maitinti per maitinamą USB šakotuvą, o ne tiesiai iš „Raspberry pi“USB prievado. Įjungus temperatūros jutiklį, jis pateikia nuoseklią eilutę, kurioje yra temperatūra ir dabartinių sąlygų drėgmės rodmenys. temperatūra = 20,9 ° C drėgmė = 62,7% rasos taškas = 13,0 ° CA python scenarijus analizuoja šią eilutę ir kas penkias minutes saugo temperatūros ir drėgmės vertes į tris tekstinius failus; kasdien, 24 valandas ir 48 valandas teksto failai (skirtumai bus aptarti vėliau HTML skiltyje). Iš šių failų „Gnuplot“sukurs diagramas ir vėliau kiekvieno failo duomenų rinkinio vaizdus. Prieš aptardamas python scenarijų, pakalbėsiu apie Raspberry pi paruošimą. Kadangi stebėjimas turi būti atliekamas internetu, reikia įdiegti žiniatinklio serverį. Aš keletą kartų išbandžiau „Raspberry pi“, tačiau, nors ir šiek tiek didelis, man labiau patinka „Apache“. Norėdami įdiegti „Apache“savo „Raspberry pi“, tiesiog įveskite: sudo apt-get install apache2 Prieš diegiant bus pateikta raginimas, paspauskite „y“, kad patvirtintumėte, ir „Apache“bus įdiegta kelias minutes, priklausomai nuo jūsų „Raspberry pi“. baigtas, turite įdiegti du „python“papildinius: „python-serial“ir „python-gnuplot“kištuką. (Nors supratau, kad naujausiose „Raspian“versijose yra „python“serijos papildinių standartas, bet tik tam, kad būtų saugu.) Norėdami įdiegti tuos, kuriuos įvedate: sudo apt-get install python-serial python-gnuplot Dar kartą patvirtinę raginimus, -bus įdiegta. Ir su tuo aparatūros sąranka baigta.
2 veiksmas: programinės įrangos sąranka - el. Pašto sąranka ir gavėjai
Prieš įsitraukdami į programinę įrangą, dabar būtų tinkamas laikas sukurti „Gmail“paskyrą, iš kurios būtų siunčiami jūsų el. pašto įspėjimai. (Šiame pavyzdyje naudojamas „GMail“, tačiau žinant smtp prievado nustatymus galima naudoti bet kurį pašto serverį.) „Python“kodas yra gana paprastas, tačiau būtinas importas. Be jų niekas neveiks. Nuo laiko importas *importavimo laikas importas serijinis importas smtplib importas „Gnuplot“importas os importas Žinoma, turime pridėti el. Laiško gavėjus. Kiekvienas el. Pašto adresas išsaugomas kintamajame.
3 žingsnis: Programinės įrangos sąranka - nuosekli sąranka ir analizė
Toliau žiūrime į serijinę sąranką. Tai tik parametrų nustatymas, atitinkantis serijinę išvestį iš jutiklio. Jutiklis išleidžia serijinę eilutę esant 9600 8 N 1 standartiniam formatui. Po to, kai eilutė buvo gauta, yra keli būdai, kaip išanalizuoti šią eilutę „python“ir galbūt patikimiau. Aš tai darau tai, kad serijinėje eilutėje ieškau „temp“simbolių. Kai jis bus rastas, tiesiog reikia perskaityti kitus 46 nuoseklius simbolius į eilutę. Dabar surinkta eilutė gali būti adresuojama kaip masyvo elementai. Norimi duomenys išanalizuojami iš eilutės ir išsaugomi trijuose failuose kartu su atitinkama laiko žyma.timestamp = strftime ("%d%b%Y%H:%M:%S", vietos laikas ())
4 žingsnis: Programinės įrangos sąranka - „Gnuplot“
„Gnuplot“yra komandinės eilutės grafinis įrankis. Kai suprasite pagrindus, tai gali būti gana galingas įrankis grafiniam duomenų rinkinių rodymui. „Gnuplot“gali brėžti tiesiai iš suformatuoto teksto failo, o mes tiesiog turime vieną iš ankstesnio analizavimo veiksmo. Gnuplot nurodę, kur faile yra duomenys, galime nubraižyti norimas reikšmes. Aš panaudosiu laiką X ašyje ir mūsų temperatūrą Y ašyje. Skaičiuoti laiką iš mano patirties yra sunkiausia, nes jūs turite gauti laiko formatą „gnuplot“, kad jis atitiktų teksto failo formatą. Kai visos grafiko parinktys bus baigtos ir jūsų pageidavimai, „Gnuplot“gali sukurti šios diagramos vaizdą. Tai bus vaizdas, kurį vėliau naudosime savo tinklalapyje. Aš nusprendžiau naudoti-p.webp
5 veiksmas: programinės įrangos sąranka - slenksčio nustatymas ir el
Įspėjimo slenkstis turi būti nustatytas bandant ir klaidingai. patalpoje, kurioje yra sistemos, nėra langų, todėl sustojus oro kondicionieriui jis gali labai greitai įkaisti. Iš pradžių keletą dienų žiūrėjau į duomenų rinkinį ir stebėjau temperatūros svyravimus, kol nusprendžiau apie įspėjimo vertę 30 laipsnių C. Tai nustatoma kaip kintamasis python scipt. Tai gali atrodyti ne per daug, tačiau suaktyvinus įspėjimą vis tiek norite skirti laiko problemai išspręsti, kol ji tampa kritiška.
Paprastumo dėlei siunčiu atskirus el. Laiškus į adresatų sąrašą. Kadangi adresatų sąrašas yra trumpas, aš niekada nesivarginau išsiųsti vieno el. Laiško keliems gavėjams. Čia reikia atkreipti dėmesį į vieną dalyką: kadangi aš naudoju šį scenarijų kaip „cron“užduotis kas 5 minutes, jūs nenorite siųsti el. Laiškų kas 5 minutes, kai tik suaktyvinama riba. Kad tai išvengčiau, į failą įrašau įspėjimo datą ir laiką ir prieš siųsdamas el. Laiškus patikrinu šį failą, norėdamas pamatyti, ar sistema jau yra įspėjimo būsenos. Kai būsite įspėjamojoje būsenoje, el. Laiškas bus siunčiamas tik kas valandą po pirmojo paleidimo, kol sistema yra ir įspėjimo būsena. Tokiu būdu „Gmail“netrukdo jūsų el. Laiškams per trumpą laiką išsiųsti per daug el. Laiškų.
6 veiksmas: programinės įrangos sąranka - HTML
Visos sistemos stebėjimas atliekamas per tinklalapį ir tam reikalingas labai paprastas html scenarijus. Gnuplot sukurti vaizdai tiesiog naudoju tuos pačius vaizdo matmenis. Manau, kad peržiūrėjau maždaug 3 šių vaizdų dydžius, kurie geriausiai atitiko mano ekraną. Prieš kurdami html scenarijų, sukurkime jam aplanką. Pagal numatytuosius nustatymus žiniatinklio prieglobos aplankas yra adresu/var/www/. Nors šis vienintelis „Raspberry pi“tikslas yra stebėti šį kambarį ir siųsti įspėjimus el. Paštu, norėdamas gerai išlaikyti namus, sukūriau atskirą aplanką/var/www/aplanke. Kadangi šis aplankas priklauso pagrindiniam vartotojui, turite naudoti sudo, kad sukurtumėte aplanką. Sudo mkdir/var/www/Temperature Šis kelias saugomas kintamajame „python“scenarijuje. Net jei prieglobos vieta turi būti pakeista arba scenarijus turi būti pakeistas kitai sistemai, jis gali būti tiesiog pakeistas iš šios vienos vietos. Dabar mes galime sukurti savo html scenarijų šiame aplanke, nepamiršdami naudoti sudo prieš visas komandas nori vykdyti čia. Rekomenduočiau pavadinti html scenarijų „index.html“, nes tai supaprastintų bandant rasti šį puslapį. Svarbiausia yra įsitikinti, kad vaizdo dydis yra toks pat kaip „Gnuplot“vaizdo dydis. Norėdami peržiūrėti šį puslapį, jūs tiesiog turite įvesti „Raspberry Pi“IP adresą, po to /temperatūrą (arba kaip jūs kada nors pavadinote savo aplanką). Turiu kelias sistemas, kurios stebi skirtingus dalykus, ir jos visos pateikia tam tikrą grafinį rezultatų rezultatą. Taigi sukūriau puslapį, kuriame yra nuorodos į visus šiuos puslapius, todėl man nereikia jaudintis, kad kiekvieną kartą norėdamas pasiekti šiuos puslapius įvesiu adresą.
7 žingsnis: aš gyvas …
Aš naudoju tai kompiuterių kambario temperatūrai stebėti, tačiau tai galėjo būti beveik bet kokio šaltinio duomenys. Kai jį galima išsaugoti teksto faile ir žinote, kad jo formatas „Gnuplot“gali padaryti visa kita. Vienas dalykas, kurį neseniai pridėjau prie šio projekto, yra atsiųsti „širdies plakimo“el. Laišką. Tai yra mėnesio pirmąją, 9 val., Turiu scenarijų, kuris paleidžiamas el. Paštu adresatų sąrašui, kad jie žinotų, jog sistema veikia taip, kaip turėtų, ir kambaryje viskas gerai.
Naudojant „cronjob“sąrašą:
Rekomenduojamas:
Kambario temperatūros ir drėgmės stebėjimas naudojant ESP32 ir „AskSensors Cloud“: 6 žingsniai
Kambario temperatūros ir drėgmės stebėjimas naudojant ESP32 ir „AskSensors Cloud“: Šioje pamokoje sužinosite, kaip stebėti kambario ar stalo temperatūrą ir drėgmę naudojant DHT11 ir ESP32, prijungtus prie debesies. Mūsų mokymo vadovų atnaujinimus rasite čia. Specifikacijos: DHT11 jutiklis gali matuoti temperatūrą
Sukurkite įspėjimo apie kalbėjimą / balsu įspėjimo sistemą: 4 žingsniai
Sukurkite įspėjimo apie kalbėjimą / balsu įspėjimo sistemą: Šiame projekte mes sukūrėme pranešimo apie kalbą / įspėjimo sistemą. Šiame projekte galima naudoti mažiausiai du jutiklius
ESP8266 „Nodemcu“temperatūros stebėjimas naudojant DHT11 vietiniame tinklalapyje - Patvirtinkite kambario temperatūrą ir drėgmę naršyklėje: 6 žingsniai
ESP8266 „Nodemcu“temperatūros stebėjimas naudojant DHT11 vietiniame tinklalapyje | Naršyklėje nustatykite kambario temperatūrą ir drėgmę: Sveiki, vaikinai, šiandien mes gaminsime drėgmę ir temperatūros stebėjimo sistema, naudojant ESP 8266 NODEMCU & DHT11 temperatūros jutiklis. Temperatūra ir drėgmė bus nustatyti naudojant DHT11 jutiklį & tai galima pamatyti naršyklėje, kuris tinklalapis bus valdomas
El. Pašto įspėjimų apie NCD belaidį temperatūros ir drėgmės jutiklį kūrimas naudojant raudoną mazgą: 22 žingsniai
El. Pašto įspėjimų apie NCD belaidį temperatūros ir drėgmės jutiklį kūrimas naudojant raudoną mazgą: čia mes naudojame NCD temperatūros ir drėgmės jutiklį, tačiau bet kurio ncd produkto veiksmai išlieka vienodi, taigi, jei turite kitų belaidžių jutiklių, išbandykite nemokamai stebėti šalia. Sustabdydami šį tekstą turite
„Tfcd 3D“judesio stebėjimas naudojant talpinį jutiklį ir LED išvestį: 6 žingsniai (su paveikslėliais)
„Tfcd 3D“judesio sekimas naudojant talpinį jutiklį ir šviesos diodų išvestį: Šioje instrukcijoje paaiškinama, kaip galima stebėti rankos judesį 3D erdvėje, naudojant talpinio jutimo principą. Pakeitus atstumą tarp įkrautos aliuminio folijos ir jūsų rankos, kondensatoriaus talpa skirsis