- Komponente potrebne
- Povezivanje MLX90614 s Raspberry Pi
- Povezivanje Pi kamere s Raspberry Pi
- Postavljanje SMTP e-pošte s Raspberry Pi
- Python kod za Pi za očitavanje temperature s MLX90614 i slanje e-pošte sa slikom
- Mjerenje temperature i slanje upozorenja poštom s PI
Od izbijanja korone postalo je vrlo teško identificirati one koji su pogođeni virusom ili ne. Da bi se riješio ovaj problem, temperaturni uređaji često se koriste za mjerenje tjelesne temperature. Ovi uređaji imaju beskontaktne IC senzore temperature koji mogu mjeriti tjelesnu temperaturu bez ikakvog fizičkog kontakta.
Na tržištu je dostupno mnogo temperaturnih pištolja, ali niti jedan od njih ne daje upozorenja ili obavijesti e-poštom višim vlastima da poduzmu odgovarajuće mjere kada temperatura prijeđe određeno ograničenje. U ovom ćemo projektu povezati IC senzor temperature i poslati upozorenja e-poštom sa slikom osobe ako temperatura neke određene osobe premaši zadanu vrijednost.
U današnjem svijetu Internet stvari revolucionira naš život razvojem niza sustava koji se mogu daljinski nadzirati i kontrolirati. U ovom ćemo projektu iskoristiti snagu IoT-a i izgradit ćemo uređaj za nadzor temperature s upozorenjima putem e-pošte pomoću Raspberry Pi, MLX90614 i PiCamere.
Prije smo izgradili i druge slične termometre za mjerenje tjelesne temperature, možete ih pronaći ovdje.
- Digitalni termometar na bazi Arduina koji koristi MAX30205
- Beskontaktni pregled tjelesne temperature pomoću RFID-a i Arduina s MLX90614
- Beskontaktna pištolj za infracrveni termometar koji koristi Arduino
- Zidni beskontaktni termometar pomoću Arduina
- Pametni termometar koji koristi Arduino s Android aplikacijom
Komponente potrebne
Ovdje koristimo Raspberry Pi 3 Raspbian OS. Svi osnovni hardverski i softverski zahtjevi su prethodno raspravljeni, možete ih potražiti u Uvodu Raspberry Pi i Trepćući LED Raspberry PI za početak, osim onoga što nam treba:
- Raspberry Pi 3 (bilo koja verzija bi bila u redu).
- Pi kamera.
- MLX90614 - IC senzor temperature.
- Spajanje žica.
- Breadboard.
- Napajanje (5V, 2A / 3A)
Ovaj je projekt jednostavan ako projekt podijelimo na dijelove.
- Razumijevanje i povezivanje MLX90614 s Raspberry pi.
- Početak rada s Pi Camera.
- Postavljanje SMTP e-pošte s Raspberry pi.
- Razvoj i razumijevanje konačnog koda.
Raspberry Pi: Raspberry Pi je računalo veličine kreditne kartice koje je dizajnirano u obrazovne svrhe. Zbog cijene i nevjerojatnih specifikacija poput ugrađenog WiFi-ja, Bluetootha i programabilnog GPIO zaglavlja te broja mogućih opcija za stvaranje aplikacije, prihvatili su ga programeri i hobisti elektronike. Možete ga potražiti u Uvodu Raspberry Pi i Trepćućem LED-u Raspberry PI kako biste započeli postupak pokretanja.
MLX90614 IR temperaturni senzor: Na tržištu je dostupno mnogo senzora koji nam mogu dati temperaturu i vlažnost. Ono što ovaj senzor razlikuje od svih ostalih senzora je što nam može dati temperaturu objekta, a drugi senzori temperaturu okoline. Opsežno smo koristili senzor DHT11 i LM35 za mnoge primjene u kojima se mora mjeriti atmosferska vlaga ili temperatura.
Ali ovdje za izradu temperaturne puške kojoj nije potreban fizički kontakt i koja može izmjeriti temperaturu objekta umjesto temperature okoliša, koristimo MLX90614 na bazi IR. Da biste saznali više o krugovima infracrvenog i infracrvenog senzora, slijedite vezu.

MLX90614 senzor proizvodi Melexis Microelectronics Integrirani sustavi, radi na principu infracrvenog senzora termopile za mjerenje temperature. Ti se senzori sastoje od dvije jedinice ugrađene iznutra da daju izlaznu temperaturu. Prva jedinica je senzorska jedinica koja ima infracrveni detektor nakon čega slijedi druga jedinica koja vrši izračunavanje podataka digitalnom obradom signala (DSP). Ovaj senzor radi na Stefan-Boltzmannovom zakonu koji objašnjava snagu koju zrači crno tijelo u smislu njegove temperature. Jednostavno rečeno, bilo koji objekt emitira IR energiju, a njegov intenzitet bit će izravno proporcionalan temperaturi tog objekta. MLX90614 senzor pretvara računsku vrijednost u 17-bitni ADCa tome se može pristupiti putem komunikacijskog protokola I2C. Ovi senzori mjere okolnu temperaturu kao i temperaturu objekta s kalibracijom razlučivosti od 0,02 ° C. Da biste saznali više o značajkama senzora MLX90614, pogledajte tablicu podataka MLX90614.
Značajke MLX90614:
- Radni napon: 3,6 V do 5 V
- Raspon temperature okoline: -40 ° C do 125 ° C
- Raspon temperatura objekta: -70 ° C do -382,2 ° C
- Razlučivost / kalibracija: 0,02 ° C
- 17-bitni ADC.
- I2C komunikacija.
Povezivanje MLX90614 s Raspberry Pi
Prvo ćemo preuzeti knjižnicu i pakete potrebne za uspješno povezivanje MLX90614.
Korak 1: Omogućavanje I2C iz postavke Raspberry Pi.
Upišite sudo raspi-config, a zatim idite na opcije povezivanja.

Idite na opciju I2C i omogućite je.

Korak 2: Preuzmite paket / biblioteku MLX90614 odlaskom na https://pypi.org/project/PyMLX90614/#files, a zatim desnom tipkom miša kliknite i kopirajte adresu veze.

Idite na RPI terminal i upišite wget i zalijepite kopiranu vezu kao dolje.
Wget
Preuzet će knjižnicu u zip datoteci pod nazivom "PyMLX90614-0.0.3.tar.gz" . zatim izvucite mapu s nastavkom imena datoteke tar -xf ili upotrijebite donju naredbu da učinite isto.
tar -xf PyMLX90614-0.0.3.tar.gz
Zatim moramo instalirati neke potrebne pakete pomoću naredbi u nastavku.
sudo apt-get install python-setuptools sudo apt-get install -y i2c-alati
Zatim idite u izvađenu mapu koristeći cd PyMLX90614-0.0.3 / i pokrenite naredbu.
sudo python setup.py instalirati

Nakon što završite s koracima, samo spojite MLX90614 senzor s Raspberry pi pomoću donjeg kruga. Dolje malina Pi MLX90614 kruga je dizajnirana korištenjem fritzing.

Ako su veze i instalacija pravilno izvedeni, možemo provjeriti dobivamo li vrijednost adrese senzora na I2C sabirnici pomoću naredbe i2cdetect -y 1 .
Ako sve funkcionira prema očekivanjima, na našem terminalu možemo vidjeti donji izlaz.

0x5A predstavlja adresu senzora kako je spomenuto u tehničkom listu. Isječak tablice podataka koji pokazuje isto naveden je u nastavku.

Sada ćemo pokrenuti izraditi novo ime datoteke mlxread.py i napisati uzorak programa za provjeru podataka sa senzora. Kôd za isti naveden je u nastavku.
from smbus2 import SMBus from mlx90614 import MLX90614 bus = SMBus (1) sensor = MLX90614 (bus, address = 0x5A) print "Ambient Temperature:", sensor.get_ambient () print "Object Temperature:", sensor.get_object_1 () bus. Zatvoriti()
Jednom kada je datoteka kreirana, pokrenut ćemo je s python nastavkom python mlxread.py. Izlaz koji sam dobio prikazan je u nastavku. Pokrenuo sam program više puta kako bih provjerio mijenjaju li se vrijednosti dok prelazim rukom po njemu.

Woah, uspješno smo povezali MLX90614 s našim Raspberry Pi što možete potvrditi na gornjoj slici.
Povezivanje Pi kamere s Raspberry Pi
Korak 1: Omogućavanje postavke Kamera iz Raspberry Pi.
Upišite sudo raspi-config, a zatim idite na opcije povezivanja.

Idite na Kamera i omogućite kameru.


Sada spojite modul kamere kao što je prikazano dolje.

Korak 2: Da bismo provjerili je li kamera pravilno spojena, napravimo testnu sliku i spremimo je na našu radnu površinu (koristimo punu verziju OS-a Raspbian za GUI)
raspistill -o Desktop / image.jpg
To će omogućiti vašoj kameri da klikne sliku s imenskom slikom i pohrani je na radnu površinu.
Postavljanje SMTP e-pošte s Raspberry Pi
U ovom ćemo odjeljku razumjeti kako možemo postaviti svoj GMAIL račun tako da šalje e-poštu upozorenja kada temperatura prijeđe unaprijed zadanu zadanu vrijednost.
SMTP je jednostavan protokol za prijenos pošte koji je protokol aplikacijskog sloja odgovoran za uslugu e-pošte koja koristi TCP / IP. Pruža mogućnost slanja i primanja poruka e-pošte, a njime upravlja Radna skupina za internetsko inženjerstvo (IETF).
Ovaj tutorial radi samo s GMAIL računima i kako biste izbjegli moguće pogreške, bilo bi preporučljivo ako koristite novi Gmail račun.
Google prema zadanim postavkama ne dopušta korisnicima slanje e-pošte pomoću python skripte. Da bismo to uspjeli, moramo omogućiti neke manje sigurne aplikacije ulazeći u postavke računa.
1. korak: Idite u desni kut i kliknite moj Upravljaj svojim Google računom.

Korak 2: Kliknite Sigurnost i pomaknite se prema dolje do "Manje siguran pristup aplikacijama".

Korak 3: Omogućite manje sigurnu aplikaciju.

Korak 4: Ponovite i s drugim ID-om e-pošte za slanje / primanje e-pošte iz python skripte.
Korak 5: Preuzmite potrebne pakete.
sudo apt-get install ssmtp sudo apt-get install mailutils
Ako se prilikom pokretanja naredbe kopiranjem lijepi pogreška, tada je ručno upišite.

6. korak: Nakon završetka instalacije svih knjižnica, moramo izvršiti promjene u datoteci ssmtp.conf gdje moramo unijeti podatke o e-pošti pošiljatelja
Idite na sudo nano /etc/ssmtp/ssmtp.conf
Pomaknite se do kraja i zalijepite ovo, mailhub = smtp.gmail.com: 587 AuthUser = YourEmailAddress AuthPass = YourEmailPassword UseSTARTTLS = DA UseTLS = YES
Također sam podijelio snimku zaslona svojih terminala radi vaše reference.

Upravo sam upotrijebio ploču za povezivanje, moja hardverska postavka izgleda poput njegove kad su povezani MLX90614 i kamera.

Python kod za Pi za očitavanje temperature s MLX90614 i slanje e-pošte sa slikom
Program python čini sve potrebne radnje za čitanje podataka senzora, usporedbu s vrijednošću praga, autorizaciju e-pošte i slanje e-pošte s priloženom slikom. Isprva ćemo trebati knjižnicu, deklaraciju e-pošte pošiljatelja i primatelja. E-poštu može poslati smtplib, ali samo želimo da e-pošta bude organizirana s temom, tijelom i drugim privitkom, to se radi uz višenamjenska proširenja internetske pošte (MIME). Kompletni kod nalazi se na dnu ove stranice.
import RPi.GPIO as gpio import picamera import 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
Nakon toga definiramo e-adresu pošiljatelja, e-adresu primatelja, predmet e-pošte, tijelo i poruku privitka.
fromaddr = "[email protected]" # u skladu s tim promijenite adresu e-pošte toaddr = "[email protected]" mail = MIMEMultipart () mail = fromaddr mail = toaddr mail = "Vrijednost temperature premašuje upozorenje" body = "U prilogu pronađite slika"
Zatim kreiramo funkciju pomoću koje možemo poslati e-poštu.
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 ()
Zatim kreiramo funkciju za snimanje slike koja se šalje e-poštom i također pohranjuje sliku s podacima i vremenom.
def capture_image (): data = time.strftime ("% d_% b_% Y-% H:% M:% S") camera.start_preview () time.sleep (5) print data camera.capture ('% s. jpg '% podataka) camera.stop_preview () time.sleep (1) sendMail (data)
Zatim izvršavamo neke postavke s PiCamerom.
camera = picamera.PiCamera () camera.rotation = 0 camera.awb_mode = 'auto' camera.brightness = 55
I na kraju, imamo neko vrijeme (1) petlju koja će se pokretati beskonačno. Čitat će podatke s temperaturnog senzora MLX90614, a ako temperatura prelazi zadanu vrijednost, tada se poziva funkcija capture_image () koja zatim poziva funkciju sendMail (podaci) za slanje snimke slike e-poštom.
Mjerenje temperature i slanje upozorenja poštom s PI
Kada su hardver i softver spremni, samo izvodite python kôd (navedite dolje) na vašem pi. Ispisat će vrijednost temperature očitane sa senzora, kao što je prikazano dolje.

Ako temperatura objekta prijeđe prag temperature, tada će naš program za python snimiti sliku s fotoaparata, spremiti je na Raspberry Pi i također podijeliti putem e-pošte. Uzorak e-pošte poslane s maline Pi prikazan je u nastavku.

Kompletni rad projekta također se može naći u videu dolje povezanom. Nadam se da vam se svidio članak, ako imate bilo kakvih pitanja, ostavite ih u komentarima ispod ili također možete koristiti naše forume da objavite svoja pitanja i stupite u kontakt sa zajednicom.
