- Komponenter kreves
- Grensesnitt MLX90614 med Raspberry Pi
- Pi-kamera-grensesnitt med Raspberry Pi
- Sette opp SMTP-e-post med Raspberry Pi
- Python-kode for Pi for å lese temperatur fra MLX90614 og sende e-post med bilde
- Måling av temperatur og sending av postvarsel med PI
Siden koronautbruddet har det blitt veldig vanskelig å identifisere de som er rammet av viruset eller ikke. For å løse dette problemet brukes ofte temperaturenheter til å måle kroppstemperaturen. Disse enhetene har berøringsfri IR-temperatursensorer som kan måle kroppstemperaturen uten fysisk kontakt.
Det er mange temperaturkanoner tilgjengelig i markedet, men ingen av dem gir varsler eller e-postvarsler til høyere myndigheter for å ta passende tiltak når temperaturen overstiger en bestemt grense. I dette prosjektet vil vi grensesnitt en IR-temperatursensor og sende e-postvarsler med bildet av personen hvis temperaturen til en bestemt person overstiger den innstilte verdien.
I dagens verden revolusjonerer tingenes internett vårt liv ved å utvikle en rekke systemer som kan overvåkes og fjernstyres. I dette prosjektet vil vi utnytte kraften til IoT, og vi vil bygge en temperaturovervåkingsenhet med e-postvarsler ved hjelp av Raspberry Pi, MLX90614 og PiCamera.
Tidligere har vi også laget andre lignende termometre for måling av kroppstemperatur, du finner dem her.
- Arduino-basert digitalt termometer ved bruk av MAX30205
- Kontaktløs kroppstemperatur screening med RFID og Arduino med MLX90614
- Berøringsfri infrarød termometerpistol ved bruk av Arduino
- Veggmontert berøringsfritt termometer ved hjelp av Arduino
- Smart termometer ved hjelp av Arduino med Android-applikasjon
Komponenter kreves
Her bruker vi Raspberry Pi 3 Raspbian OS. Alle de grunnleggende maskinvare- og programvarekravene er tidligere diskutert, du kan slå opp i Raspberry Pi Introduction og Raspberry PI LED Blinking for å komme i gang, annet enn det vi trenger:
- Raspberry Pi 3 (hvilken som helst versjon vil være bra).
- Pi-kamera.
- MLX90614 - IR temperaturføler.
- Koble ledninger.
- Brettbrett.
- Strømforsyning (5V, 2A / 3A)
Dette prosjektet er enkelt hvis vi deler prosjektet i deler.
- Forståelse og grensesnitt MLX90614 med Raspberry pi.
- Komme i gang med Pi Camera.
- Sette opp SMTP-e-post med Raspberry pi.
- Endelig kodeutvikling og forståelse.
Raspberry Pi: Raspberry Pi er en datamaskin med kredittkortstørrelse som er designet for pedagogiske formål. På grunn av sin pris og fantastiske spesifikasjoner som innebygd wifi, Bluetooth og programmerbar GPIO-header, og antall mulige alternativer for å lage et program, ble det vedtatt av utviklere og elektronikkhobbyister. Du kan slå opp det i Raspberry Pi Introduction og Raspberry PI LED Blinking for å komme i gang med oppstartsprosessen.
MLX90614 IR temperatursensor: Det er mange sensorer tilgjengelig i markedet som kan gi oss temperatur og fuktighet. Det som gjør denne sensoren forskjellig fra alle andre sensorer, er at den kan gi oss objekttemperatur og andre sensorer gir omgivelsestemperatur. Vi har brukt DHT11-sensor og LM35 mye for mange applikasjoner der luftfuktighet eller temperatur må måles.
Men her for å lage en temperaturpistol som ikke trenger fysisk kontakt og som kan måle objekttemperaturen i stedet for omgivelsestemperatur, bruker vi IR-basert MLX90614. For å lære mer om infrarøde og IR-sensorkretser, følg lenken.
MLX90614-sensoren er produsert av Melexis Microelectronics Integrated systems, den fungerer på prinsippet om InfraRed termopil-sensor for temperaturmåling. Disse sensorene består av to enheter innebygd internt for å gi temperaturutgangen. Den første enheten er avkjenningsenheten som har en infrarød detektor som etterfølges av den andre enheten som utfører beregningen av dataene med digital signalbehandling (DSP). Denne sensoren fungerer på Stefan-Boltzmann-loven som forklarer kraften som utstråles av en svart kropp når det gjelder temperaturen. Enkelt sagt sender ethvert objekt ut IR-energi og intensiteten av den vil være direkte proporsjonal med temperaturen til det objektet. MLX90614-sensor konverterer beregningsverdien til 17-biters ADCog det er tilgjengelig ved hjelp av I2C kommunikasjonsprotokoll. Disse sensorene måler omgivelsestemperaturen samt objekttemperaturen med en oppløsningskalibrering på 0,02 ° C. For å vite mer om funksjonene til MLX90614-sensoren, se MLX90614-databladet.
Funksjoner i MLX90614:
- Driftsspenning: 3,6V til 5V
- Omgivelsestemperaturområde: -40 ° C til 125 ° C
- Objektets temperaturområde: -70 ° C til -382,2 ° C
- Oppløsning / kalibrering: 0,02 ° C
- 17-biters ADC.
- I2C kommunikasjon.
Grensesnitt MLX90614 med Raspberry Pi
Først laster vi ned biblioteket og pakkene som kreves for å lykkes med å grense MLX90614.
Trinn 1: Aktivering av I2C fra Raspberry Pi-innstillingen.
Skriv inn sudo raspi-config, og gå deretter til grensesnittalternativene.
Gå til I2C-alternativet og aktiver det.
Trinn 2: Last ned pakken / biblioteket til MLX90614 ved å gå til https://pypi.org/project/PyMLX90614/#files, og høyreklikk og kopier deretter lenken.
Gå til RPI-terminalen og skriv wget og lim inn koblingen som er kopiert som nedenfor.
Wget
Den vil laste ned biblioteket i zip-filnavnet 'PyMLX90614-0.0.3.tar.gz' . trekk deretter ut mappen med filtypen tar -xf eller bruk kommandoen nedenfor for å gjøre det samme.
tjære -xf PyMLX90614-0.0.3.tar.gz
Deretter må vi installere noen nødvendige pakker ved hjelp av kommandoene nedenfor.
sudo apt-get install python-setuptools sudo apt-get install -y i2c-tools
Gå deretter til den ekstraherte mappen ved hjelp av cd PyMLX90614-0.0.3 / og kjør kommandoen.
sudo python setup.py install
Når du er ferdig med å følge trinnene, er det bare å koble MLX90614-sensoren til Raspberry pi ved å bruke kretsen nedenfor. Raspberry Pi MLX90614-kretsen nedenfor ble designet med frityr.
Hvis tilkoblingene og installasjonen er gjort riktig, kan vi sjekke om vi får sensoradresseverdien på I2C-bussen ved hjelp av kommandoen i2cdetect -y 1 .
Hvis alt fungerer som forventet, kan vi se utdataene nedenfor på terminalen vår.
0x5A representerer adressen til sensoren som nevnt i databladet. Dataarkutdraget som viser det samme er gitt nedenfor.
Nå vil vi kjøre lage et nytt filnavn mlxread.py og skrive et eksempelprogram for å sjekke dataene fra sensoren. Koden for det samme er gitt nedenfor.
fra smbus2 import SMBus fra mlx90614 import MLX90614 buss = SMBus (1) sensor = MLX90614 (buss, adresse = 0x5A) skriv ut "Omgivelsestemperatur:", sensor.get_ambient () skriv ut "Objekt temperatur:", sensor.get_object_1 () buss. Lukk()
Når filen er opprettet, kjører vi den med python-utvidelse python mlxread.py. Resultatet jeg mottok er vist nedenfor. Jeg kjørte programmet flere ganger for å sjekke om verdiene endres når jeg beveger hånden over det.
Woah, vi har vellykket grensesnitt MLX90614 med vår Raspberry Pi, som du kan bekrefte fra bildet ovenfor.
Pi-kamera-grensesnitt med Raspberry Pi
Trinn 1: Aktivere kameraet fra Raspberry Pi-innstillingen.
Skriv inn sudo raspi-config, og gå deretter til grensesnittalternativene.
Gå til Kamera og aktiver kameraet.
Koble nå kameramodulen som vist nedenfor.
Trinn 2: For å sjekke om kameraet er riktig tilkoblet, tar vi et testbilde og lagrer det på skrivebordet vårt (vi bruker Full GUI Raspbian OS-versjon)
raspistill -o Desktop / image.jpg
Dette gjør at kameraet ditt kan klikke på et bilde med navnebildet og lagre det på skrivebordet.
Sette opp SMTP-e-post med Raspberry Pi
I denne delen vil vi forstå hvordan vi kan stille inn GMAIL-kontoen vår til å sende varselmeldinger når temperaturen overstiger den forhåndsdefinerte innstilte verdien.
SMTP er en Simple Mail Transfer Protocol som er en applikasjonslagsprotokoll som er ansvarlig for e-posttjeneste ved bruk av TCP / IP. Det gir muligheten til å sende og motta e-postmeldinger og administreres av Internet Engineering Task Force (IETF).
Denne opplæringen fungerer bare med GMAIL-kontoer, og for å unngå mulige feil, anbefales det at du bruker en ny Gmail-konto.
Som standard tillater ikke Google brukere å sende e-post ved hjelp av python-skript. For å få dette til å fungere, må vi aktivere noen mindre sikre apper ved å gå inn på kontoinnstillinger.
Trinn 1: Gå til høyre hjørne og klikk på min Administrer Google-kontoen din.
Trinn 2: Klikk på Sikkerhet og bla ned til "Mindre sikker apptilgang".
Steg 3: Aktiver den mindre sikre appen.
Trinn 4: Gjenta også med den andre e-post-IDen for å sende / motta e-post fra python-skriptet.
Trinn 5: Last ned de nødvendige pakkene.
sudo apt-get install SSMTP sudo apt-get install mailutils
Hvis du får en feil i kjøringen av kommandoen ved å kopiere inn, skriver du den inn manuelt.
Trinn 6: Etter at installasjonen av alle bibliotekene er gjort, må vi gjøre endringer i ssmtp.conf-filen der vi må oppgi avsenderens e- postdetaljer
Gå til sudo nano /etc/ssmtp/ssmtp.conf
Rull ned til slutten og lim inn dette, mailhub = smtp.gmail.com: 587 AuthUser = YourEmailAddress AuthPass = YourEmailPassword UseSTARTTLS = YES UseTLS = YES
Jeg har også delt et skjermbilde av terminalene mine for din referanse.
Jeg brukte nettopp et brødbrett for å få forbindelse, maskinvareoppsettet mitt ser ut som hans når MLX90614 og kameraet er koblet til.
Python-kode for Pi for å lese temperatur fra MLX90614 og sende e-post med bilde
Python-programmet utfører alle nødvendige operasjoner for å lese sensordataene, sammenligne dem med terskelverdien, autorisere e-posten, og deretter sende e-posten med bildet vedlagt. Først vil vi kreve at biblioteker, avsender og mottaker e-postdeklarasjon. E-post kan sendes med smtplib, men vi vil bare at e-posten skal organiseres med et emne, kropp og annet vedlegg. Dette gjøres ved hjelp av Multipurpose Internet Mail Extensions (MIME). Den komplette koden finner du nederst på denne siden.
importer RPi.GPIO som gpio import picamera importtid import smtplib fra e-post.MIMEMultipart import MIMEMultipart fra e-post.MIMEText import MIMEText fra e-post.MIMEBase import MIMEBase fra e-post import kodere fra email.mime.image import MIMEImage fra smbus2 importer SMBus fra mlx90614 import MLX906
Etter det definerer vi avsenderens e-postadresse, mottakerens e-postadresse, emnet på e-posten, brødteksten og vedleggsmeldingen.
fromaddr = "[email protected]" # endre e-postadressen tilsvarende toaddr = "[email protected]" mail = MIMEMultipart () mail = fromaddr mail = toaddr mail = "Temperaturverdi overstiger varsel" body = "Vennligst finn vedlagte bilde"
Deretter oppretter vi en funksjon der vi kan sende en e-post.
def sendMail (data): mail.attach (MIMEText (body, 'plain')) print data dat = '% s.jpg'% data print dat vedlegg = open (dat, 'rb') image = MIMEImage (attachment.read ()) attachment.close () mail.attach (image) server = smtplib.SMTP ('smtp.gmail.com', 587) server.starttls () server.login (fromaddr, "test12345 @") text = mail. as_string () server.sendmail (fromaddr, toaddr, text) server.quit ()
Deretter oppretter vi en funksjon for å fange bildet som sendes via e-post og lagrer også bildet med data og tid.
def capture_image (): data = time.strftime ("% d_% b_% Y-% H:% M:% S") camera.start_preview () time.sleep (5) print data camera.capture ('% s. jpg '% data) camera.stop_preview () time.sleep (1) sendMail (data)
Deretter gjør vi noen innstillinger med PiCamera.
camera = picamera.PiCamera () camera.rotation = 0 camera.awb_mode = 'auto' camera.brightness = 55
Og til slutt har vi en stund (1) loop som vil gå uendelig. Den vil lese dataene fra MLX90614 temperatursensoren, og hvis temperaturen overstiger den innstilte verdien, blir capture_image () -funksjonen kalt som deretter kaller sendMail (data) -funksjonen for å sende bildeopptaket via e-post.
Måling av temperatur og sending av postvarsel med PI
Når maskinvaren og programvaren er klar, er det bare å kjøre python-koden (gi nedenfor) på pi-en. Den vil skrive ut verdien av temperaturen som er avlest fra sensoren som vist nedenfor.
Hvis objekttemperaturen overskrider terskeltemperaturen, tar vårt pythonprogram et bilde fra kameraet, lagrer det på bringebær-pi, og deler det også via e-post. Eksempel på e-post sendt fra bringebær Pi er vist nedenfor.
Fullstendig bearbeiding av prosjektet finner du også i videoen som er lenket nedenfor. Håper du likte artikkelen. Hvis du har spørsmål, kan du legge dem igjen i kommentarene nedenfor, eller du kan også bruke forumene våre til å legge ut spørsmål og komme i kontakt med samfunnet.