- Potrebne komponente
- Povezava MLX90614 z Raspberry Pi
- Povezava kamere Pi z Raspberry Pi
- Nastavitev e-pošte SMTP z Raspberry Pi
- Koda Pythona za Pi za branje temperature iz MLX90614 in pošiljanje e-pošte s sliko
- Merjenje temperature in pošiljanje opozorila po pošti s PI
Od izbruha korone je postalo zelo težko prepoznati tiste, ki jih virus prizadene ali ne. Da bi rešili to težavo, se pogosto uporabljajo temperaturne naprave za merjenje telesne temperature. Te naprave imajo brezkontaktne IR temperaturne senzorje, ki lahko merijo telesno temperaturo brez fizičnega stika.
Na trgu je na voljo veliko temperaturnih pištol, vendar nobena od njih ne opozori ali pošlje e-pošte višjim organom, da sprejmejo ustrezne ukrepe, če temperatura preseže določeno mejo. V tem projektu bomo povezali IR senzor temperature in poslali e-poštna opozorila s sliko osebe, če temperatura katere koli osebe preseže nastavljeno vrednost.
V današnjem svetu internet stvari revolucionira naše življenje z razvojem številnih sistemov, ki jih je mogoče nadzorovati in nadzorovati na daljavo. V tem projektu bomo izkoristili moč interneta stvari in zgradili napravo za spremljanje temperature z opozorili po e-pošti z uporabo Raspberry Pi, MLX90614 in PiCamera.
Prej smo zgradili tudi druge podobne termometre za merjenje telesne temperature, ki jih najdete tukaj.
- Digitalni termometer na osnovi Arduina z uporabo MAX30205
- Brezkontaktni pregled telesne temperature z uporabo RFID in Arduino z MLX90614
- Brezkontaktna pištola za infrardeči termometer z uporabo Arduina
- Brezkontaktni termometer na steno z uporabo Arduina
- Pametni termometer z uporabo Arduina z aplikacijo Android
Potrebne komponente
Tu uporabljamo Raspberry Pi 3 Raspbian OS. Vse osnovne zahteve glede strojne in programske opreme so že obravnavane, za začetek si jih lahko ogledate v Uvodu Raspberry Pi in Utripajoči LED Raspberry PI, razen tistega, kar potrebujemo:
- Raspberry Pi 3 (katera koli različica bi bila v redu).
- Pi kamera.
- MLX90614 - IR temperaturni senzor.
- Priključne žice.
- Breadboard.
- Napajanje (5V, 2A / 3A)
Ta projekt je preprost, če ga razdelimo na dele.
- Razumevanje in povezovanje MLX90614 z Raspberry pi.
- Uvod v Pi Camera.
- Nastavitev e-pošte SMTP z Raspberry pi.
- Razvoj in razumevanje končne kode.
Raspberry Pi: Raspberry Pi je računalnik z velikostjo kreditne kartice, ki je bil zasnovan za izobraževalne namene. Zaradi svoje cene in neverjetnih specifikacij, kot so vgrajeni wifi, Bluetooth in programabilna glava GPIO ter število možnih možnosti za ustvarjanje aplikacije, so ga sprejeli razvijalci in ljubitelji elektronike. Za začetek postopka zagona si ga lahko ogledate v Uvodu Raspberry Pi in Utripa LED Raspberry PI.
MLX90614 IR temperaturni senzor: Na trgu je na voljo veliko senzorjev, ki nam lahko dajo temperaturo in vlago. Ta senzor se razlikuje od vseh drugih senzorjev, saj nam lahko daje temperaturo predmeta, drugi senzorji pa temperaturo okolice. Senzor DHT11 in LM35 smo pogosto uporabljali za številne aplikacije, kjer je treba meriti atmosfersko vlažnost ali temperaturo.
Toda tukaj za izdelavo temperaturne pištole, ki ne potrebuje fizičnega stika in lahko meri temperaturo predmeta namesto temperature okolja, uporabljamo MLX90614 na osnovi IR. Če želite izvedeti več o vezjih infrardečega in IR senzorja, sledite povezavi.
Senzor MLX90614 izdeluje integrirani sistem Melexis Microelectronics, deluje po principu InfraRed termopilotnega senzorja za merjenje temperature. Ti senzorji so sestavljeni iz dveh notranje vgrajenih enot, ki zagotavljajo izhodno temperaturo. Prva enota je senzorska enota, ki ima infrardeči detektor, ki ji sledi druga enota, ki izvaja izračun podatkov z digitalno obdelavo signalov (DSP). Ta senzor deluje po zakonu Štefana-Boltzmanna, ki razlaga moč, ki jo oddaja črno telo, glede na njegovo temperaturo. Preprosto povedano, kateri koli predmet oddaja IR energijo in njegova intenzivnost bo neposredno sorazmerna s temperaturo tega predmeta. Senzor MLX90614 pretvori računsko vrednost v 17-bitni ADCdo njega je mogoče dostopati s pomočjo komunikacijskega protokola I2C. Ti senzorji merijo temperaturo okolice in temperaturo predmeta s kalibracijo ločljivosti 0,02 ° C. Če želite izvedeti več o funkcijah senzorja MLX90614, si oglejte podatkovni list MLX90614.
Značilnosti MLX90614:
- Delovna napetost: 3,6 V do 5 V
- Območje temperature okolice: -40 ° C do 125 ° C
- Območje temperatur objekta: -70 ° C do -382,2 ° C
- Ločljivost / kalibracija: 0,02 ° C
- 17-bitni ADC.
- I2C komunikacija.
Povezava MLX90614 z Raspberry Pi
Najprej bomo prenesli knjižnico in pakete, potrebne za uspešen vmesnik MLX90614.
1. korak: omogočite I2C iz nastavitve Raspberry Pi.
Vnesite sudo raspi-config in pojdite na možnosti povezovanja.
Pojdite na možnost I2C in jo omogočite.
2. korak: Prenesite paket / knjižnico MLX90614, tako da obiščete https://pypi.org/project/PyMLX90614/#files, nato z desno miškino tipko kliknete in kopirate naslov povezave.
Pojdite na terminal RPI in vnesite wget ter prilepite kopirano povezavo, kot spodaj.
Wget
Knjižnica bo prenesla v datoteko zip "PyMLX90614-0.0.3.tar.gz" . nato izvlecite mapo s končnico imena datoteke tar -xf ali uporabite spodnji ukaz, da naredite enako.
tar -xf PyMLX90614-0.0.3.tar.gz
Nato moramo z uporabo spodnjih ukazov namestiti nekaj zahtevanih paketov.
sudo apt-get install python-setuptools sudo apt-get install -y i2c-tools
Nato s pomočjo cd PyMLX90614-0.0.3 / pojdite na izvlečeno mapo in zaženite ukaz.
sudo python setup.py namestite
Ko končate s koraki, samo povežite senzor MLX90614 z Raspberry pi s pomočjo spodnjega vezja. Spodnje vezje Raspberry Pi MLX90614 je bilo zasnovano s fritzingom.
Če so povezave in namestitev opravljeni pravilno, lahko z ukazom i2cdetect -y 1 preverimo, ali dobimo vrednost naslova senzorja na vodilu I2C .
Če vse deluje po pričakovanjih, lahko na našem terminalu vidimo spodnji izhod.
0x5A predstavlja naslov senzorja, kot je omenjeno v obrazcu. Delček podatkovnega lista, ki prikazuje enako, je podan spodaj.
Zdaj bomo zagnali novo ime datoteke mlxread.py in napisali vzorčni program za preverjanje podatkov s senzorja. Koda za isto je navedena spodaj.
iz smbus2 uvozi SMBus iz mlx90614 uvozi vodilo MLX90614 = SMBus (1) senzor = MLX90614 (vodilo, naslov = 0x5A) natisni "Ambient Temperature:", sensor.get_ambient () print "Object Temperature:", sensor.get_object_1 () bus. zapri ()
Ko je datoteka ustvarjena, jo bomo zagnali s pripono python python mlxread.py. Rezultat, ki sem ga prejel, je prikazan spodaj. Program sem večkrat zagnal, da preverim, ali se vrednosti spreminjajo, ko premikam roko po njem.
Woah, MLX90614 smo uspešno povezali z našo Raspberry Pi, kar lahko potrdite na zgornji sliki.
Povezava kamere Pi z Raspberry Pi
Korak 1: Omogočanje nastavitve kamere iz Raspberry Pi.
Vnesite sudo raspi-config in pojdite na možnosti povezovanja.
Pojdite na Kamera in omogočite kamero.
Zdaj priključite modul kamere, kot je prikazano spodaj.
2. korak : Če želimo preveriti, ali je kamera pravilno priključena, naredimo testno sliko in jo shranimo na namizje (uporabljamo polno različico grafičnega uporabniškega vmesnika Raspbian OS)
raspistill -o Desktop / image.jpg
Tako bo fotoaparat lahko kliknil sliko z imensko sliko in jo shranil na namizje.
Nastavitev e-pošte SMTP z Raspberry Pi
V tem razdelku bomo razumeli, kako lahko nastavimo naš račun GMAIL tako, da pošilja opozorilna sporočila, ko temperatura preseže vnaprej določeno vrednost.
SMTP je preprost protokol za prenos pošte, ki je protokol aplikacijske plasti, odgovoren za e-poštne storitve z uporabo TCP / IP. Omogoča pošiljanje in prejemanje e-poštnih sporočil, upravlja pa ga projektna skupina za internetni inženiring (IETF).
Ta vadnica deluje samo z računi GMAIL in da bi se izognili morebitnim napakam, priporočamo, da uporabljate nov račun Gmail.
Google privzeto ne dovoljuje uporabnikom pošiljanja e-pošte s pomočjo skripta python. Da bi to delovalo, moramo v nastavitvah računa omogočiti nekatere manj varne aplikacije.
1. korak: Pojdite v desni kot in kliknite moj Upravljaj svoj Google Račun.
2. korak: Kliknite Varnost in se pomaknite navzdol do »Manj varen dostop do aplikacij«.
3. korak: omogočite manj varno aplikacijo.
Korak 4: Ponovite z drugim e-poštnim ID-jem, da pošljete / prejmete e-pošto iz skripta python.
5. korak: prenesite zahtevane pakete.
sudo apt-get namestite ssmtp sudo apt-get install mailutils
Če se pri zagonu ukaza s kopiranjem prikaže napaka, ga vnesite ročno.
6. korak: Po namestitvi vseh knjižnic moramo spremeniti datoteko ssmtp.conf, kamor moramo vnesti podatke o e-pošti pošiljatelja
Pojdite na sudo nano /etc/ssmtp/ssmtp.conf
Pomaknite se navzdol do konca in prilepite to, mailhub = smtp.gmail.com: 587 AuthUser = YourEmailAddress AuthPass = YourEmailPassword UporabaSTARTTLS = DA UseTLS = DA
Za vašo referenco sem delil tudi posnetek zaslona svojih terminalov.
Pravkar sem uporabil ploščo za povezavo, moja nastavitev strojne opreme je videti kot njegova, ko sta MLX90614 in kamera povezana.
Koda Pythona za Pi za branje temperature iz MLX90614 in pošiljanje e-pošte s sliko
Program python opravi vse potrebne postopke za branje podatkov senzorja, primerjavo z vrednostjo praga, avtorizacijo e-pošte in nato pošlje e-pošto s priloženo sliko. Sprva bomo potrebovali knjižnico, izjavo o e-pošti pošiljatelja in prejemnika. E-pošto lahko pošljete s smtplib, želimo pa le, da je e-pošta organizirana s temo, telesom in drugo prilogo, to storimo s pomočjo večnamenskih razširitev internetne pošte (MIME). Popolno kodo najdete na dnu te strani.
import RPi.GPIO as gpio import picamera import time import smtplib from email.MIMEMultipart import MIMEMultipart from email.MIMEText import MIMEText from email.MIMEBase import MIMEBase from email import encoders from email.mime.image import MIMEImage from smbus2 import SMBus from mlx90614 import MLX
Po tem določimo e-poštni naslov pošiljatelja, e-poštni naslov prejemnika, predmet e-pošte, telo in priponko.
fromaddr = "[email protected]" # ustrezno spremenite e-poštni naslov toaddr = "[email protected]" mail = MIMEMultipart () mail = fromaddr mail = toaddr mail = "Vrednost temperature presega opozorilo" body = "Priložite slika "
Nato ustvarimo funkcijo, s katero lahko pošljemo e-pošto.
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 ()
Nato ustvarimo funkcijo za zajemanje slike, ki se pošlje po e-pošti, in jo shrani tudi s podatki in časom.
def capture_image (): data = time.strftime ("% d_% b_% Y-% H:% M:% S") camera.start_preview () time.sleep (5) print data camera.capture ('% s. jpg '% podatkov) camera.stop_preview () time.sleep (1) sendMail (data)
Nato s PiCamero naredimo nekaj nastavitev.
camera = picamera.PiCamera () camera.rotation = 0 camera.awb_mode = 'auto' camera.brightness = 55
In končno imamo zanko while (1), ki bo delovala neskončno. To bo prebral podatke iz senzorja temperature MLX90614 in če temperatura preseže nastavljeno vrednost, potem capture_image () je funkcija imenuje, ki nato pokliče sendmail (podatki) funkcijo za pošiljanje zajem slike prek e-pošte.
Merjenje temperature in pošiljanje opozorila po pošti s PI
Ko sta strojna in programska oprema pripravljeni, samo zapišite kodo python (podajte spodaj) na vašem pi. Natisnil bo vrednost temperature, odčitane s senzorja, kot je prikazano spodaj.
Če temperatura predmeta preseže mejno temperaturo, bo naš program python posnel sliko iz fotoaparata, jo shranil na Raspberry Pi in jo delil tudi po e-pošti. Vzorec e-poštnega sporočila, poslanega iz maline Pi, je prikazan spodaj.
Popolno delovanje projekta lahko najdete tudi v spodnjem videoposnetku. Upam, da vam je bil članek všeč, če imate kakršna koli vprašanja, jih pustite v spodnjih komentarjih ali pa uporabite naše forume, da objavite svoja vprašanja in stopite v stik s skupnostjo.