- Komponenter krävs
- Gränssnitt MLX90614 med Raspberry Pi
- Pi Camera Interfacing with Raspberry Pi
- Konfigurera SMTP-e-post med Raspberry Pi
- Python-kod för Pi för att läsa temperatur från MLX90614 och skicka e-post med bild
- Mäta temperatur och skicka e-postvarning med PI
Sedan koronautbrottet har det blivit mycket svårt att identifiera de som påverkas av viruset eller inte. För att lösa detta problem används ofta temperaturenheter för att mäta kroppstemperatur. Dessa enheter har IR-temperatursensorer utan kontakt som kan mäta kroppstemperaturen utan någon fysisk kontakt.
Det finns många temperaturpistoler tillgängliga på marknaden, men ingen av dem ger någon varning eller e-postmeddelande till högre myndigheter för att vidta lämpliga åtgärder när temperaturen överstiger en viss gräns. I det här projektet kommer vi att ansluta en IR-temperatursensor och skicka e-postvarningar med bilden av personen om temperaturen hos en viss person överstiger det inställda värdet.
I dagens värld revolutionerar sakernas internet vårt liv genom att utveckla ett antal system som kan övervakas och fjärrstyras. I det här projektet kommer vi att utnyttja kraften i IoT och vi kommer att bygga en temperaturövervakningsenhet med e-postvarningar med Raspberry Pi, MLX90614 och PiCamera.
Tidigare har vi också byggt andra liknande termometrar för kroppstemperaturmätning, du hittar dem här.
- Arduino-baserad digital termometer med MAX30205
- Kontaktfri kroppstemperatur screening med RFID och Arduino med MLX90614
- Beröringsfri infraröd termometerpistol med Arduino
- Väggmonterad beröringsfri termometer med Arduino
- Smart termometer med Arduino med Android-applikation
Komponenter krävs
Här använder vi Raspberry Pi 3 Raspbian OS. Alla grundläggande hårdvaru- och mjukvarukrav har tidigare diskuterats, du kan slå upp det i Raspberry Pi Introduction och Raspberry PI LED Blinking för att komma igång, annat än vad vi behöver:
- Raspberry Pi 3 (vilken version som helst skulle vara bra).
- Pi-kamera.
- MLX90614 - IR-temperatursensor.
- Anslutande ledningar.
- Bakbord.
- Strömförsörjning (5V, 2A / 3A)
Detta projekt är enkelt om vi delar upp projektet i delar.
- Förståelse och gränssnitt MLX90614 med hallon pi.
- Komma igång med Pi Camera.
- Konfigurera SMTP-e-post med Raspberry pi.
- Slutlig kodutveckling och förståelse.
Raspberry Pi: Raspberry Pi är en dator med kreditkortsstorlek som designades för utbildningsändamål. På grund av dess pris och fantastiska specifikationer som wifi ombord, Bluetooth och programmerbar GPIO-rubrik, och antalet möjliga alternativ för att skapa en applikation, antogs den av utvecklare och elektronikhobbyister. Du kan slå upp det i Raspberry Pi Introduction och Raspberry PI LED Blinkande för att komma igång med startprocessen.
MLX90614 IR Temperatursensor: Det finns många sensorer tillgängliga på marknaden som kan ge oss temperatur och fuktighet. Vad som skiljer den här sensorn från alla andra sensorer är att den kan ge oss objekttemperatur och andra sensorer ger omgivningstemperatur. Vi har använt DHT11-sensorn och LM35 i stor utsträckning för många applikationer där luftfuktighet eller temperatur måste mätas.
Men här för att skapa en temperaturpistol som inte behöver fysisk kontakt och som kan mäta föremålstemperaturen istället för omgivningstemperaturen använder vi IR-baserad MLX90614. För att lära dig mer om IR-sensorkretsar, följ länken.
MLX90614-sensorn är tillverkad av Melexis Microelectronics Integrated-system, den fungerar enligt principen om infraröd termopilssensor för temperaturmätning. Dessa sensorer består av två enheter inbäddade internt för att ge temperatureffekten. Den första enheten är avkänningsenheten som har en infraröd detektor som följs av den andra enheten som utför beräkningen av data med digital signalbehandling (DSP). Denna sensor fungerar enligt Stefan-Boltzmann-lagen som förklarar kraft som utstrålas av en svart kropp när det gäller dess temperatur. Enkelt uttryckt avger varje objekt IR-energi och intensiteten av det kommer att vara direkt proportionell mot temperaturen på det objektet. MLX90614-sensor omvandlar beräkningsvärdet till 17-bitars ADCoch det kan nås med hjälp av I2C-kommunikationsprotokollet. Dessa sensorer mäter både omgivningstemperaturen och objekttemperaturen med en upplösningskalibrering på 0,02 ° C. Mer information om funktionerna i MLX90614-sensorn finns i MLX90614-databladet.
Funktioner i MLX90614:
- Driftspänning: 3,6V till 5V
- Omgivningstemperaturområde: -40 ° C till 125 ° C
- Objektets temperaturintervall: -70 ° C till -382,2 ° C
- Upplösning / kalibrering: 0,02 ° C
- 17-bitars ADC.
- I2C-kommunikation.
Gränssnitt MLX90614 med Raspberry Pi
Först laddar vi ner biblioteket och de paket som krävs för att lyckas gränssnittet mellan MLX90614.
Steg 1: Aktivera I2C från Raspberry Pi-inställningen.
Skriv sudo raspi-config och gå sedan till gränssnittsalternativen.
Gå till I2C-alternativet och aktivera det.
Steg 2: Ladda ner paketet / biblioteket för MLX90614 genom att gå till https://pypi.org/project/PyMLX90614/#files, högerklicka och kopiera sedan länkadressen.
Gå till RPI-terminalen och skriv wget och klistra in den kopierade länken som nedan.
Wget
Det hämtar biblioteket i zip-filnamnet 'PyMLX90614-0.0.3.tar.gz' . extrahera sedan mappen med filnamnstillägget tar -xf eller använd kommandot nedan för att göra detsamma.
tjära -xf PyMLX90614-0.0.3.tar.gz
Sedan måste vi installera några obligatoriska paket med hjälp av kommandona nedan.
sudo apt-get install python-setuptools sudo apt-get install -y i2c-tools
Gå sedan till den extraherade mappen med cd PyMLX90614-0.0.3 / och kör kommandot.
sudo python setup.py installera
När du är klar med att följa stegen, kopplar du bara MLX90614-sensorn med Raspberry pi med hjälp av kretsen nedan. Nedanstående Raspberry Pi MLX90614-krets designades med hjälp av fritzing.
Om anslutningarna och installationen görs ordentligt kan vi kontrollera om vi får sensoradressvärdet på I2C-bussen med kommandot i2cdetect -y 1 .
Om allt fungerar som förväntat kan vi se nedanstående utdata på vår terminal.
0x5A representerar sensorns adress som nämns i databladet. Databladavsnittet som visar detsamma ges nedan.
Nu ska vi köra skapa ett nytt filnamn mlxread.py och skriva ett exempelprogram för att kontrollera data från sensorn. Koden för detsamma ges nedan.
från smbus2 import SMBus från mlx90614 import MLX90614 buss = SMBus (1) sensor = MLX90614 (buss, adress = 0x5A) skriv ut "Omgivningstemperatur:", sensor.get_ambient () skriv ut "Objekt temperatur:", sensor.get_object_1 () buss. stänga()
När filen har skapats kör vi den med python-tillägget python mlxread.py. Utgången jag fick visas nedan. Jag körde programmet flera gånger för att kontrollera om värdena ändras när jag flyttar handen över det.
Woah, vi har framgångsrikt gränssnitt MLX90614 med vår Raspberry Pi som du kan bekräfta från bilden ovan.
Pi Camera Interfacing with Raspberry Pi
Steg 1: Aktivera kameran från Raspberry Pi-inställningen.
Skriv sudo raspi-config och gå sedan till gränssnittsalternativen.
Gå till Kamera och aktivera kameran.
Anslut nu kameramodulen enligt nedan.
Steg 2: För att kontrollera om kameran är korrekt ansluten tar vi en testbild och sparar den på vårt skrivbord (vi använder fullständig GUI Raspbian OS-version)
raspistill -o Desktop / image.jpg
Detta gör att din kamera kan klicka på en bild med namnbilden och lagra den på skrivbordet.
Konfigurera SMTP-e-post med Raspberry Pi
I det här avsnittet kommer vi att förstå hur vi kan ställa in vårt GMAIL-konto för att skicka varningsmeddelanden när temperaturen överstiger det fördefinierade inställda värdet.
SMTP är ett Simple Mail Transfer Protocol som är ett applikationslagerprotokoll som ansvarar för e-posttjänster med TCP / IP. Det ger möjlighet att skicka och ta emot e-postmeddelanden och hanteras av Internet Engineering Task Force (IETF).
Denna handledning fungerar bara med GMAIL-konton och för att undvika eventuella fel rekommenderas det om du använder ett nytt Gmail-konto.
Som standard tillåter Google inte användare att skicka e-post med python-skript. För att detta ska fungera måste vi aktivera några mindre säkra appar genom att gå till kontoinställningar.
Steg 1: Gå till höger och klicka på min Hantera ditt Google-konto.
Steg 2: Klicka på Säkerhet och rulla ner till "Mindre säker appåtkomst".
Steg 3: Aktivera den mindre säkra appen.
Steg 4: Upprepa med det andra e-post-idet för att skicka / ta emot e-postmeddelandet från python-skriptet.
Steg 5: Ladda ner nödvändiga paket.
sudo apt-get install ssmtp sudo apt-get install mailutils
Om du får ett fel när du kör kommandot genom att kopiera och klistra in skriver du det manuellt.
Steg 6: När installationen av alla bibliotek är klar måste vi göra ändringar i filen ssmtp.conf där vi måste ange avsändarens e-postinformation
Gå till sudo nano /etc/ssmtp/ssmtp.conf
Rulla ner till slutet och klistra in det här, mailhub = smtp.gmail.com: 587 AuthUser = YourEmailAddress AuthPass = YourEmailPassword UseSTARTTLS = YES UseTLS = YES
Jag har också delat en skärmdump av mina terminaler för din referens.
Jag använde bara en bräda för att göra min anslutning, min hårdvaruuppsättning ser ut som hans när MLX90614 och kameran är anslutna.
Python-kod för Pi för att läsa temperatur från MLX90614 och skicka e-post med bild
Python-programmet gör alla nödvändiga åtgärder för att läsa sensordata, jämföra dem med tröskelvärdet, auktorisera e-postmeddelandet och skicka sedan e-postmeddelandet med bilden bifogad. Först kommer vi att kräva att bibliotek, avsändare och mottagare e-postdeklaration. E-post kan skickas med smtplib, men vi vill bara att e-postmeddelandet ska organiseras med ett ämne, kropp och annan bilaga, detta görs med hjälp av Multipurpose Internet Mail Extensions (MIME). Den fullständiga koden finns längst ner på denna sida.
importera RPi.GPIO som gpio importera picamera importtid importera smtplib från e-post.MIMEMultipart importera MIMEMultipart från e-post.MIMEText importera MIMEText från e-post.MIMEBase importera MIMEBase från e-post importera kodare från email.mime.image import MIMEImage från smbus2 importera SMBus från mlx90614 importera MLX906
Därefter definierar vi avsändarens e-postadress, mottagarens e-postadress, ämnet för e-postmeddelandet, brödtexten och bilagan.
fromaddr = "[email protected]" # ändra e-postadressen i enlighet därmed tilladdr = "[email protected]" mail = MIMEMultipart () mail = fromaddr mail = toaddr mail = "Temperaturvärde överstiger varning" body = "Hitta bifogade bild"
Sedan skapar vi en funktion med vilken vi kan skicka ett e-postmeddelande.
def sendMail (data): mail.attach (MIMEText (body, 'plain')) print data dat = '% s.jpg'% data print dat attachment = 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 ()
Sedan skapar vi en funktion för att fånga bilden som skickas via e-post och lagrar också bilden med data och 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)
Sedan gör vi några inställningar med PiCamera.
camera = picamera.PiCamera () camera.rotation = 0 camera.awb_mode = 'auto' camera.brightness = 55
Och äntligen har vi en stund (1) loop som går oändligt. Det kommer att läsa data från MLX90614 temperatursensor och om temperaturen överstiger det inställda värdet kallas capture_image () -funktionen som sedan ringer till sendMail (data) -funktionen för att skicka bildinsamlingen via e-post.
Mäta temperatur och skicka e-postvarning med PI
När hårdvaran och mjukvaran är redo, kör bara pythonkoden (ge nedan) på din pi. Det kommer att skriva ut temperaturvärdet som lästs ut från sensorn enligt nedan.
Om objekttemperaturen överskrider tröskelvärdet, tar vårt pythonprogram en bild från kameran, sparar den på hallon pi och delar den också via e-post. Ett exempel på e-post skickat från raspberry Pi visas nedan.
Det fullständiga arbetet med projektet finns också i videon som länkas nedan. Hoppas att du gillade artikeln, om du har några frågor vänligen lämna dem i kommentarerna nedan eller så kan du också använda våra forum för att skicka dina frågor och komma i kontakt med samhället.