- Komponenter, der kræves
- Interfacing MLX90614 med Raspberry Pi
- Pi-kamerainterfacing med Raspberry Pi
- Opsætning af SMTP-e-mail med Raspberry Pi
- Python-kode for Pi til at læse temperatur fra MLX90614 og sende e-mail med billede
- Måling af temperatur og afsendelse af mailalarm med PI
Siden koronaudbruddet er det blevet meget vanskeligt at identificere dem, der er ramt af virussen eller ej. For at løse dette problem bruges temperaturenheder ofte til at måle kropstemperaturen. Disse enheder har IR-temperatursensorer, der ikke er kontakt, der kan måle kropstemperaturen uden nogen fysisk kontakt.
Der er mange temperaturkanoner tilgængelige på markedet, men ingen af dem giver nogen advarsel eller e-mail-meddelelse til højere myndigheder for at træffe passende handlinger, når temperaturen overstiger en bestemt grænse. I dette projekt vil vi interface en IR-temperaturføler og sende e-mail-alarmer med billedet af personen, hvis temperaturen hos en bestemt person overstiger den indstillede værdi.
I nutidens verden revolutionerer tingenes internet vores liv ved at udvikle et antal systemer, der kan overvåges og styres eksternt. I dette projekt vil vi udnytte kraften i IoT, og vi vil opbygge en temperaturovervågningsenhed med e-mail-alarmer ved hjælp af Raspberry Pi, MLX90614 og PiCamera.
Tidligere har vi også bygget andre lignende termometre til måling af kropstemperatur, du kan finde dem her.
- Arduino-baseret digitalt termometer ved hjælp af MAX30205
- Kontaktløs kropstemperatur screening ved hjælp af RFID og Arduino med MLX90614
- Berøringsfri infrarød termometerpistol ved hjælp af Arduino
- Vægmonteret berøringsfrit termometer ved hjælp af Arduino
- Smart termometer ved hjælp af Arduino med Android-applikation
Komponenter, der kræves
Her bruger vi Raspberry Pi 3 Raspbian OS. Alle de grundlæggende hardware- og softwarekrav er tidligere diskuteret, du kan slå det op i Raspberry Pi Introduktion og Raspberry PI LED Blinker for at komme i gang, bortset fra at vi har brug for:
- Raspberry Pi 3 (enhver version ville være fint).
- Pi-kamera.
- MLX90614 - IR temperaturføler.
- Tilslutning af ledninger.
- Brødbræt.
- Strømforsyning (5V, 2A / 3A)
Dette projekt er simpelt, hvis vi deler projektet op i dele.
- Forståelse og grænseflade MLX90614 med Raspberry pi.
- Kom godt i gang med Pi Camera.
- Opsætning af SMTP-e-mail med Raspberry pi.
- Endelig kodeudvikling og forståelse.
Raspberry Pi: Raspberry Pi er en computer med kreditkortstørrelse, der er designet til uddannelsesmæssige formål. På grund af sin pris og fantastiske specifikationer som indbygget wifi, Bluetooth og programmerbar GPIO-header og antallet af mulige muligheder for at oprette en applikation blev den vedtaget af udviklere og elektronikhobbyister. Du kan slå det op i Raspberry Pi Introduktion og Raspberry PI LED Blinker for at komme i gang med opstartsprocessen.
MLX90614 IR-temperatursensor: Der er mange sensorer tilgængelige på markedet, som kan give os temperatur og fugtighed. Hvad der adskiller denne sensor fra alle andre sensorer er, at den kan give os objekttemperatur, og andre sensorer giver omgivelsestemperatur. Vi har brugt DHT11-sensoren og LM35 i vid udstrækning til mange applikationer, hvor luftfugtighed eller temperatur skal måles.
Men her til fremstilling af en temperaturpistol, der ikke har brug for fysisk kontakt og kan måle objektets temperatur i stedet for omgivelsestemperatur, bruger vi IR-baseret MLX90614. For at lære mere om infrarøde og IR-sensorkredsløb, følg linket.
MLX90614-sensoren er produceret af Melexis Microelectronics Integrated-systemer, den fungerer på princippet om infrarød termopil-sensor til temperaturmåling. Disse sensorer består af to enheder indlejret internt for at give temperaturudgangen. Den første enhed er sensorenheden, der har en infrarød detektor, der efterfølges af den anden enhed, der udfører beregningen af dataene med Digital signalbehandling (DSP). Denne sensor fungerer på Stefan-Boltzmann-loven, der forklarer strøm udstrålet af en sort krop med hensyn til dens temperatur. Enkelt sagt udsender ethvert objekt IR-energi, og intensiteten deraf vil være direkte proportional med temperaturen på objektet. MLX90614-sensor konverterer beregningsværdien til 17-bit ADCog der kan tilgås ved hjælp af I2C-kommunikationsprotokollen. Disse sensorer måler den omgivende temperatur såvel som objekttemperaturen med en opløsningskalibrering på 0,02 ° C. For at vide mere om funktionerne i MLX90614-sensoren henvises til MLX90614-databladet.
Funktioner i MLX90614:
- Driftsspænding: 3,6V til 5V
- Omgivelsestemperaturområde: -40 ° C til 125 ° C
- Objekt temperaturområde: -70 ° C til -382,2 ° C
- Opløsning / kalibrering: 0,02 ° C
- 17-bit ADC.
- I2C kommunikation.
Interfacing MLX90614 med Raspberry Pi
Først downloader vi det bibliotek og de pakker, der kræves for at kunne interface MLX90614.
Trin 1: Aktivering af I2C fra Raspberry Pi-indstillingen.
Skriv sudo raspi-config, og gå derefter til grænsefladesindstillinger.
Gå til I2C-indstillingen, og aktiver den.
Trin 2: Download pakken / biblioteket til MLX90614 ved at gå til https://pypi.org/project/PyMLX90614/#files, højreklik derefter og kopier linkadressen.
Gå til RPI-terminalen, og skriv wget, og indsæt det kopierede link som nedenfor.
Wget
Det downloader biblioteket i zip-filnavnet 'PyMLX90614-0.0.3.tar.gz' . udpak derefter mappen med udvidelsen af tar -xf- filnavnet, eller brug nedenstående kommando til at gøre det samme.
tjære -xf PyMLX90614-0.0.3.tar.gz
Derefter skal vi installere nogle nødvendige pakker ved hjælp af nedenstående kommandoer.
sudo apt-get install python-setuptools sudo apt-get install -y i2c-tools
Gå derefter til den udpakkede mappe ved hjælp af cd PyMLX90614-0.0.3 / og kør kommandoen.
sudo python setup.py installation
Når du er færdig med at følge trinnene, skal du bare interface MLX90614-sensoren med Raspberry pi ved hjælp af nedenstående kredsløb. Nedenstående Raspberry Pi MLX90614 kredsløb blev designet ved hjælp af fritzing.
Hvis forbindelserne og installationen udføres korrekt, kan vi kontrollere, om vi får sensorens adresseværdi på I2C-bussen ved hjælp af kommandoen i2cdetect -y 1 .
Hvis alt fungerer som forventet, kan vi se nedenstående output på vores terminal.
0x5A repræsenterer adressen på sensoren som nævnt i databladet. Dataarkuddraget, der viser det samme, er angivet nedenfor.
Nu kører vi et nyt filnavn mlxread.py og skriver et prøveprogram for at kontrollere dataene fra sensoren. Koden for det samme er angivet nedenfor.
fra smbus2 import SMBus fra mlx90614 import MLX90614 bus = SMBus (1) sensor = MLX90614 (bus, adresse = 0x5A) udskriv "Omgivelsestemperatur:", sensor.get_ambient () udskriv "Objekt temperatur:", sensor.get_object_1 () bus. tæt()
Når filen er oprettet, kører vi den med python-udvidelse python mlxread.py. Det output, jeg modtog, er vist nedenfor. Jeg kørte programmet flere gange for at kontrollere, om værdierne ændres, når jeg bevæger min hånd over det.
Woah, vi har med succes grænsefladen MLX90614 med vores Raspberry Pi, som du kan bekræfte fra ovenstående billede.
Pi-kamerainterfacing med Raspberry Pi
Trin 1: Aktivering af kameraet fra Raspberry Pi-indstillingen.
Skriv sudo raspi-config, og gå derefter til grænsefladesindstillinger.
Gå til kamera, og aktiver kameraet.
Tilslut nu kameramodulet som vist nedenfor.
Trin 2: For at kontrollere, om kameraet er tilsluttet korrekt, tager vi et testbillede og gemmer det på vores skrivebord (vi bruger Fuld GUI Raspbian OS-version)
raspistill -o Desktop / image.jpg
Dette gør det muligt for dit kamera at klikke på et billede med navnebilledet og gemme det på dit skrivebord.
Opsætning af SMTP-e-mail med Raspberry Pi
I dette afsnit vil vi forstå, hvordan vi kan indstille vores GMAIL-konto til at sende alarmer, når temperaturen overstiger den foruddefinerede indstillede værdi.
SMTP er en simpel mailoverførselsprotokol, som er en applikationslagsprotokol, der er ansvarlig for e-mail-service ved hjælp af TCP / IP. Det giver mulighed for at sende og modtage e-mail-meddelelser og styres af Internet Engineering Task Force (IETF).
Denne vejledning fungerer kun med GMAIL-konti, og for at undgå eventuelle fejl anbefales det, hvis du bruger en ny Gmail-konto.
Som standard tillader Google ikke brugere at sende e-mail ved hjælp af python-script. For at få dette til at fungere, er vi nødt til at aktivere nogle mindre sikre apps ved at gå til kontoindstillinger.
Trin 1: Gå til højre hjørne og klik på min Administrer din Google-konto.
Trin 2: Klik på Sikkerhed og rul ned til "Mindre sikker appadgang".
Trin 3: Aktivér den mindre sikre app.
Trin 4: Gentag også med det andet e-mail-id for at sende / modtage e-mailen fra python-scriptet.
Trin 5: Download de nødvendige pakker.
sudo apt-get install ssmtp sudo apt-get install mailutils
Hvis du får en fejl i at køre kommandoen ved at kopiere og indsætte, skal du skrive den manuelt.
Trin 6: Når installationen af alle biblioteker er udført, skal vi foretage ændringer i ssmtp.conf-filen, hvor vi skal indtaste afsenderens e-mail-oplysninger
Gå til sudo nano /etc/ssmtp/ssmtp.conf
Rul ned til slutningen og indsæt dette, mailhub = smtp.gmail.com: 587 AuthUser = YourEmailAddress AuthPass = YourEmailPassword UseSTARTTLS = YES UseTLS = YES
Jeg har også delt et screenshot af mine terminaler til din reference.
Jeg brugte lige et brødbræt til at oprette forbindelse, min hardwareopsætning ligner hans, når MLX90614 og kameraet er tilsluttet.
Python-kode for Pi til at læse temperatur fra MLX90614 og sende e-mail med billede
Python-programmet udfører alle de nødvendige operationer for at læse sensordataene, sammenligne dem med tærskelværdien, godkende e-mailen og derefter sende e-mailen med det vedhæftede billede. Først vil vi kræve biblioteker, afsender og e-mail-erklæring. E-mail kan sendes med smtplib, men vi vil bare have, at e-mailen organiseres med et emne, en krop og en anden vedhæftet fil, dette gøres ved hjælp af Multipurpose Internet Mail Extensions (MIME). Den komplette kode findes nederst på denne side.
importer RPi.GPIO som gpio import picamera importtid import smtplib fra email.MIMEMultipart import MIMEMultipart fra email.MIMEText import MIMEText fra email.MIMEBase import MIMEBase fra email import kodere fra email.mime.image import MIMEImage fra smbus2 import SMBus fra mlx90614 import MLX906
Derefter definerer vi afsenderens e-mail-adresse, modtagerens e-mail-adresse, emnet på e-mailen, brødtekst og vedhæftede meddelelse.
fromaddr = "[email protected]" # skift e-mail-adresse i overensstemmelse hermed tiladdr = "[email protected]" mail = MIMEMultipart () mail = fromaddr mail = toaddr mail = "Temperaturværdi overstiger alarm" body = "Find vedhæftet fil billede"
Derefter opretter vi en funktion, hvor vi kan sende en e-mail.
def sendMail (data): mail.attach (MIMEText (body, 'plain')) print data dat = '% s.jpg'% data print dat vedhæftet fil = 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 ()
Derefter opretter vi en funktion til at fange billedet, der sendes via e-mail, og gemmer billedet også 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)
Derefter foretager vi nogle indstillinger med PiCamera.
camera = picamera.PiCamera () camera.rotation = 0 camera.awb_mode = 'auto' camera.brightness = 55
Og til sidst har vi et stykke tid (1), der løber uendeligt. Det læser dataene fra MLX90614 temperatursensoren, og hvis temperaturen overstiger den indstillede værdi, kaldes funktionen capture_image () , som derefter kalder sendMail (data) -funktionen for at sende billedoptagelsen via e-mail.
Måling af temperatur og afsendelse af mailalarm med PI
Når hardware og software er klar, skal du bare køre python-koden (nedenfor) på din pi. Den udskriver værdien af temperatur, der er aflæst fra sensoren som vist nedenfor.
Hvis objekttemperaturen overstiger tærskeltemperaturen, tager vores python-program et billede fra kameraet, gemmer det på hindbær pi og deler det også via e-mail. En prøve-e-mail sendt fra raspberry Pi er vist nedenfor.
Den komplette bearbejdning af projektet kan også findes i den linkede video nedenfor. Håber du nød artiklen. Hvis du har spørgsmål, bedes du lade dem være i kommentarerne nedenfor, eller du kan også bruge vores fora til at sende dine spørgsmål og komme i kontakt med samfundet.