- Būtini komponentai
- MLX90614 sąsaja su Raspberry Pi
- „Pi“ kamera sąveikauja su „Raspberry Pi“
- SMTP el. Pašto nustatymas naudojant „Raspberry Pi“
- „Python“ kodas, skirtas Pi nuskaityti temperatūrą iš MLX90614 ir siųsti el. Laišką su paveikslėliu
- Temperatūros matavimas ir pašto perspėjimo siuntimas naudojant PI
Nuo vainiko protrūkio tapo labai sunku nustatyti tuos, kuriuos paveikė virusas, ar ne. Norėdami išspręsti šią problemą, kūno temperatūrai matuoti dažnai naudojami temperatūros įtaisai. Šie prietaisai turi bekontaktinius IR temperatūros jutiklius, kurie gali matuoti kūno temperatūrą be jokio fizinio kontakto.
Rinkoje yra daugybė temperatūros pistoletų, tačiau nė vienas iš jų nepateikia jokio įspėjimo ar el. Pašto pranešimo aukštesnėms institucijoms, kad jie imtųsi atitinkamų veiksmų, kai temperatūra viršija tam tikrą ribą. Šiame projekte mes susiesime IR temperatūros jutiklį ir išsiųsime įspėjimus el. Paštu su asmens atvaizdu, jei kurio nors asmens temperatūra viršija nustatytą vertę.
Šiuolaikiniame pasaulyje daiktų internetas keičia mūsų gyvenimą sukurdamas daugybę sistemų, kurias galima stebėti ir valdyti nuotoliniu būdu. Šiame projekte pasitelksime IoT galią ir sukursime temperatūros stebėjimo įrenginį su el. Pašto įspėjimais, naudodami „Raspberry Pi“, MLX90614 ir „PiCamera“.
Anksčiau mes taip pat sukūrėme kitus panašius termometrus kūno temperatūros matavimui, juos galite rasti čia.
- „Arduino“ pagrindu pagamintas skaitmeninis termometras, naudojant MAX30205
- Bekontaktis kūno temperatūros patikrinimas naudojant RFID ir „Arduino“ su MLX90614
- Bekontaktis infraraudonųjų spindulių termometro pistoletas naudojant „Arduino“
- Sieninis nekontaktinis termometras naudojant „Arduino“
- Išmanusis termometras naudojant „Arduino“ su „Android“ programa
Būtini komponentai
Čia mes naudojame „ Raspberry Pi 3 Raspbian“ OS. Visi pagrindiniai aparatinės ir programinės įrangos reikalavimai buvo aptarti anksčiau, jų galite rasti „Raspberry Pi“ įvade ir mirksi „Raspberry PI“ šviesos diodas, išskyrus tai, ko mums reikia:
- Avietė Pi 3 (bet kokia versija būtų gerai).
- Pi kamera.
- MLX90614 - IR temperatūros jutiklis.
- Jungiamieji laidai.
- Bandomoji Lenta.
- Maitinimo šaltinis (5V, 2A / 3A)
Šis projektas yra paprastas, jei projektą padalijame į dalis.
- MLX90614 supratimas ir sąveika su aviečių pi.
- Darbo su „Pi Camera“ pradžia.
- SMTP el. Pašto nustatymas naudojant „Raspberry pi“.
- Galutinio kodo kūrimas ir supratimas.
„Raspberry Pi“: „ Raspberry Pi“ yra kreditinės kortelės dydžio kompiuteris, sukurtas švietimo tikslais. Dėl savo kainos ir nuostabių specifikacijų, tokių kaip „Wi-Fi“, „Bluetooth“ ir programuojamos GPIO antraštės, ir dėl galimų programos sukūrimo galimybių skaičiaus, ją priėmė kūrėjai ir elektronikos mėgėjai. Norėdami tai pradėti, paleiskite „Raspberry Pi“ įvadą ir mirksi „Raspberry PI“ šviesos diodas.
MLX90614 IR temperatūros jutiklis: Rinkoje yra daugybė jutiklių, kurie gali mums suteikti temperatūrą ir drėgmę. Šis jutiklis skiriasi nuo visų kitų jutiklių tuo, kad jis gali mums suteikti objekto temperatūrą, o kiti jutikliai - aplinkos temperatūrą. DHT11 Sensor ir LM35 intensyviai naudojome daugelyje programų, kuriose reikia matuoti oro drėgmę ar temperatūrą.
Bet čia norėdami pagaminti temperatūros pistoletą, kuriam nereikia fizinio kontakto ir kuris gali matuoti objekto temperatūrą, o ne aplinkos temperatūrą, mes naudojame IR pagrindu pagamintą MLX90614. Norėdami sužinoti daugiau apie infraraudonųjų spindulių ir IR jutiklių grandines, spustelėkite nuorodą.
MLX90614 jutiklį gamina integruotos „ Melexis Microelectronics“ sistemos, temperatūros matavimui jis veikia „InfraRed“ termopilies jutiklio principu. Šie jutikliai susideda iš dviejų vienetų, įdėtų į vidų, kad gautų temperatūros išėjimą. Pirmasis blokas yra jutimo blokas, turintis infraraudonųjų spindulių detektorių, po kurio seka antrasis blokas, kuris atlieka duomenų skaičiavimą naudodamas skaitmeninį signalo apdorojimą (DSP). Šis jutiklis veikia pagal Stefano-Boltzmanno dėsnį, kuris paaiškina juodo kūno skleidžiamą galią pagal jo temperatūrą. Paprasčiau tariant, bet kuris objektas skleidžia IR energiją ir jos intensyvumas bus tiesiogiai proporcingas to objekto temperatūrai. MLX90614 jutiklis skaičiavimo vertę paverčia 17 bitų ADCir prie jo galima prisijungti naudojant I2C ryšio protokolą. Šie jutikliai matuoja aplinkos temperatūrą, taip pat objekto temperatūrą, skiriant 0,02 ° C skiriamąją gebą. Norėdami sužinoti daugiau apie MLX90614 jutiklio funkcijas, žr. MLX90614 duomenų lapą.
MLX90614 ypatybės:
- Darbinė įtampa: nuo 3,6 V iki 5 V
- Aplinkos temperatūros diapazonas: nuo -40 ° C iki 125 ° C
- Objekto temperatūros diapazonas: nuo -70 ° C iki -382,2 ° C
- Skiriamoji geba / kalibravimas: 0,02 ° C
- 17 bitų ADC.
- I2C komunikacija.
MLX90614 sąsaja su Raspberry Pi
Pirmiausia atsisiųsime biblioteką ir paketus, reikalingus sėkmingai sąsajai su MLX90614.
1 žingsnis: Įgalinkite „I2C“ iš „Raspberry Pi“ nustatymo.
Įveskite sudo raspi-config ir eikite į sąsajos parinktis.
Eikite į „I2C“ parinktį ir ją įgalinkite.
2 žingsnis: Atsisiųskite MLX90614 paketą / biblioteką apsilankę https://pypi.org/project/PyMLX90614/#files, tada dešiniuoju pelės mygtuku spustelėkite ir nukopijuokite nuorodos adresą.
Eikite į RPI terminalą ir įveskite wget ir įklijuokite nukopijuotą nuorodą, kaip nurodyta toliau.
„Wget“
Ji atsisiųs biblioteką ZIP failo pavadinimu „PyMLX90614-0.0.3.tar.gz“ . tada išskleiskite aplanką su tar -xf failo pavadinimo plėtiniu arba naudokite toliau pateiktą komandą, kad padarytumėte tą patį.
degutas -xf PyMLX90614-0.0.3.tar.gz
Tada mes turime įdiegti keletą reikalingų paketų naudodami toliau pateiktas komandas.
sudo apt-get install python-setuptools sudo apt-get install -y i2c-tools
Tada eikite į išgautą aplanką naudodami CD PyMLX90614-0.0.3 / ir paleiskite komandą.
sudo python setup.py įdiegti
Atlikę nurodytus veiksmus, tiesiog susiekite MLX90614 jutiklį su „Raspberry pi“ naudodami toliau pateiktą grandinę. Žemiau esanti „ Raspberry Pi MLX90614“ grandinė buvo sukurta naudojant fritzing.
Jei jungtys ir įdiegimas atliktas tinkamai, galime patikrinti, ar jutiklio adreso reikšmę gauname I2C magistralėje, naudodami komandą i2cdetect -y 1 .
Jei viskas veiks taip, kaip tikėtasi, galime pamatyti žemiau pateiktą mūsų terminalo išvestį.
0x5A nurodo jutiklio adresą, nurodytą duomenų lape. Tą patį pateikiantis duomenų lapo fragmentas pateiktas žemiau.
Dabar paleisime naują failo pavadinimą mlxread.py ir parašysime programos pavyzdį, kad patikrintume duomenis iš jutiklio. To paties kodas pateiktas žemiau.
iš smbus2 importuoti SMBus iš mlx90614 importuoti MLX90614 magistralę = SMBus (1) jutiklis = MLX90614 (magistralė, adresas = 0x5A) spausdinti „Aplinkos temperatūra:“, sensor.get_ambient () spausdinti „Objekto temperatūra:“, sensor.get_object_1 () magistralė. Uždaryti()
Kai failas bus sukurtas, paleisime jį su python plėtiniu python mlxread.py. Gauta išvestis rodoma žemiau. Kelis kartus vykdžiau programą, norėdama patikrinti, ar vertės keičiasi, kai perkeliu ranką virš jos.
Voi, mes sėkmingai susiejome „MLX90614“ su mūsų „Raspberry Pi“, kaip galite patvirtinti iš aukščiau pateikto paveikslėlio.
„Pi“ kamera sąveikauja su „Raspberry Pi“
1 žingsnis: įjunkite fotoaparatą iš „Raspberry Pi“ nustatymo.
Įveskite sudo raspi-config ir eikite į sąsajos parinktis.
Eikite į „Camera“ ir įgalinkite kamerą.
Dabar prijunkite fotoaparato modulį, kaip parodyta žemiau.
2 žingsnis: Norėdami patikrinti, ar fotoaparatas tinkamai prijungtas, mes darome bandomąjį vaizdą ir išsaugome jį savo darbalaukyje (mes naudojame „Full GUI Raspbian OS“ versiją).
raspistill -o Desktop / image.jpg
Tai leis jūsų fotoaparatui spustelėti paveikslėlį su pavadinimo atvaizdu ir išsaugoti jį darbalaukyje.
SMTP el. Pašto nustatymas naudojant „Raspberry Pi“
Šiame skyriuje suprasime, kaip mes galime nustatyti savo GMAIL paskyrą siųsti įspėjimo laiškus, kai temperatūra viršys iš anksto nustatytą vertę.
SMTP yra paprastas pašto perdavimo protokolas, kuris yra programos sluoksnio protokolas, atsakingas už el. Pašto paslaugą naudojant TCP / IP. Tai suteikia galimybę siųsti ir gauti el. Pašto pranešimus ir yra valdoma interneto inžinerijos darbo grupės (IETF).
Ši pamoka veikia tik su GMAIL paskyromis, todėl, norint išvengti galimų klaidų, rekomenduojama naudoti naują „Gmail“ paskyrą.
Pagal numatytuosius nustatymus „Google“ neleidžia vartotojams siųsti el. Laiškų naudojant „Python“ scenarijų. Kad tai veiktų, turime įgalinti keletą mažiau saugių programų, eidami į paskyros nustatymus.
1 veiksmas: eikite į dešinįjį kampą ir spustelėkite „Mano„ Google “paskyros valdymas“.
2 žingsnis: Spustelėkite Sauga ir slinkite žemyn iki „Mažiau saugi prieiga prie programos“.
3 žingsnis: įjunkite mažiau saugią programą.
4 žingsnis: Pakartokite su kitu el. Pašto ID taip pat, jei norite siųsti / gauti el. Laišką iš python scenarijaus.
5 žingsnis: Atsisiųskite reikiamus paketus.
sudo apt-get install ssmtp sudo apt-get install mailutils
Jei gaunate klaidą vykdant komandą įklijuojant kopiją, įveskite ją rankiniu būdu.
6 žingsnis: Įdiegę visas bibliotekas, turime atlikti pakeitimus faile ssmtp.conf, kur turime įvesti siuntėjo el. Pašto adresą
Eikite į sudo nano /etc/ssmtp/ssmtp.conf
Slinkite žemyn iki pabaigos ir įklijuokite tai, mailhub = smtp.gmail.com: 587 AuthUser = YourEmailAddress AuthPass = YourEmailPassword UseSTARTTLS = YES UseTLS = YES
Aš taip pat pasidalinau savo terminalų ekrano nuotrauka jūsų nuoroda.
Aš tiesiog naudoju skydą, kad užmegzčiau ryšį, mano aparatinės įrangos sąranka atrodo kaip jo, kai prijungtas MLX90614 ir fotoaparatas.
„Python“ kodas, skirtas Pi nuskaityti temperatūrą iš MLX90614 ir siųsti el. Laišką su paveikslėliu
„Python“ programa atlieka visas būtinas operacijas, kad nuskaitytų jutiklio duomenis, palygintų juos su slenksčio verte, patvirtintų el. Laišką ir išsiųstų laišką su pridėtu atvaizdu. Iš pradžių mums reikės bibliotekų, siuntėjo ir gavėjo el. Pašto deklaracijos. El. Laišką galima siųsti smtplib, bet mes tiesiog norime, kad el. Laiškas būtų sutvarkytas su tema, turiniu ir kitu priedu. Tai daroma naudojant daugiafunkcinius interneto pašto plėtinius (MIME). Visą kodą galite rasti šio puslapio apačioje.
importuoti RPi.GPIO kaip „gpio“ importuoti „picamera“ importavimo laiką importuoti smtplib iš el. pašto. MIMEMultipart importuoti MIMEMultipart iš el. pašto. MIMEText importuoti MIMEText iš el. pašto.
Po to mes apibrėžiame siuntėjo el. Pašto adresą, gavėjo el. Pašto adresą, el. Laiško temą, turinį ir priedo pranešimą.
fromaddr = "[email protected]" # atitinkamai pakeiskite el. pašto adresą toaddr = "[email protected]" mail = MIMEMultipart () mail = fromaddr mail = toaddr mail = "Temperatūros vertė viršija perspėjimą" body = "Prašome rasti pridedamą vaizdas "
Tada mes sukuriame funkciją, kuria naudodamiesi galime išsiųsti el. Laišką.
def sendMail (duomenys): mail.attach (MIMEText (body, 'plain')) spausdinti duomenis dat = '% s.jpg'% data print dat attachment = open (dat, 'rb') image = MIMEImage (attachment.read ()) attachment.close () mail.attach (image) serveris = smtplib.SMTP ('smtp.gmail.com', 587) server.starttls () server.login (fromaddr, "test12345 @") text = paštas. as_string () server.sendmail (fromaddr, toaddr, text) server.quit ()
Tada mes sukuriame funkciją, kad užfiksuotume vaizdą, kuris siunčiamas el. Paštu, taip pat saugo vaizdą su duomenimis ir laiku.
def capture_image (): data = time.strftime ("% d_% b_% Y-% H:% M:% S") camera.start_preview () time.sleep (5) spausdinti duomenų camera.capture ('% s. jpg '% data) camera.stop_preview () time.sleep (1) sendMail (duomenys)
Tada mes nustatome kai kuriuos nustatymus naudodami „PiCamera“.
camera = picamera.PiCamera () camera.rotation = 0 camera.awb_mode = 'auto' camera.brightness = 55
Pagaliau mes turime tam tikrą laiką (1), kuris veiks be galo. Jis nuskaitys duomenis iš temperatūros jutiklio „MLX90614“ ir, jei temperatūra viršija nustatytą vertę, iškviečiama funkcija „ capture_image () “, kuri paskui iškviečia „ sendMail“ (duomenų) funkciją ir siunčia vaizdo fiksavimą el. Paštu.
Temperatūros matavimas ir pašto perspėjimo siuntimas naudojant PI
Kai aparatinė ir programinė įranga bus paruošta, tiesiog paleiskite „python“ kodą (nurodykite toliau) savo pi. Jis atspausdins iš jutiklio nuskaitytos temperatūros vertę, kaip parodyta žemiau.
Jei objekto temperatūra viršija slenkstinę temperatūrą, mūsų „python“ programa ims vaizdą iš fotoaparato, išsaugos jį aviečių pi ir taip pat pasidalins el. Paštu. Žemiau pateiktas el. Pašto pavyzdys, išsiųstas iš aviečių Pi.
Visą projekto darbą taip pat galite rasti žemiau esančiame vaizdo įraše. Tikimės, kad jums patiko straipsnis. Jei turite klausimų, palikite juos toliau pateiktose pastabose. Taip pat galite naudoti mūsų forumus savo klausimams paskelbti ir susisiekti su bendruomene.