- Szükséges alkatrészek
- Az MLX90614 összekapcsolása a Raspberry Pi-vel
- Pi kamera összekapcsolva a Raspberry Pi-vel
- Az SMTP e-mail beállítása a Raspberry Pi alkalmazással
- Python kód a Pi számára a hőmérséklet leolvasásához az MLX90614-ből és e-mail küldése képpel
- Hőmérséklet mérése és riasztás küldése PI-vel
A korona kitörése óta nagyon nehéz meghatározni azokat, akiket érint a vírus, vagy sem. A probléma megoldására a hőmérsékleti eszközöket gyakran használják a testhőmérséklet mérésére. Ezek az eszközök érintés nélküli IR hőmérséklet-érzékelőkkel rendelkeznek, amelyek fizikai érintkezés nélkül képesek mérni a test hőmérsékletét.
Számos hőmérsékleti fegyver kapható a piacon, de egyikük sem küld riasztást vagy e-mail értesítést a felsőbb hatóságoknak, hogy tegyenek megfelelő intézkedéseket, ha a hőmérséklet meghaladja az adott határértéket. Ebben a projektben összekapcsoljuk az IR hőmérséklet-érzékelőt, és e-mailben értesítjük az ember képét, ha valamelyik személy hőmérséklete meghaladja a beállított értéket.
A mai világban a tárgyak internete forradalmasítja az életünket számos olyan rendszer fejlesztésével, amelyek távvezérelhetők és felügyelhetők. Ebben a projektben kiaknázzuk az IoT erejét, és felépítünk egy Hőmérsékletfigyelő eszközt e-mail figyelmeztetésekkel a Raspberry Pi, az MLX90614 és a PiCamera segítségével.
Korábban más hasonló hőmérőket is építettünk a testhőmérséklet mérésére, ezeket itt találja.
- Arduino alapú digitális hőmérő a MAX30205 segítségével
- Érintés nélküli testhőmérséklet-szűrés RFID és Arduino segítségével az MLX90614 segítségével
- Érintés nélküli infravörös hőmérő pisztoly Arduino segítségével
- Falra szerelhető érintés nélküli hőmérő Arduino segítségével
- Intelligens hőmérő Arduino segítségével Android alkalmazással
Szükséges alkatrészek
Itt a Raspberry Pi 3 Raspbian operációs rendszert használjuk. Az összes alapvető hardver- és szoftverkövetelményt korábban megbeszéltük. Megtekintheti a Raspberry Pi bevezetőjében és a Raspberry PI LED villog a kezdéshez, azon kívül, amire szükségünk van:
- Raspberry Pi 3 (bármelyik verzió jó lenne).
- Pi kamera.
- MLX90614 - IR hőmérséklet-érzékelő.
- Csatlakozó vezetékek.
- Kenyérlemez.
- Tápegység (5V, 2A / 3A)
Ez a projekt egyszerű, ha a projektet részekre osztjuk.
- Az MLX90614 megértése és összekapcsolása a Raspberry pi-vel.
- A Pi Camera használatának megkezdése.
- Az SMTP e-mail beállítása a Raspberry pi alkalmazással.
- A végső kód kidolgozása és megértése.
Raspberry Pi: A Raspberry Pi egy hitelkártya méretű számítógép, amelyet oktatási célokra terveztek. Árának és elképesztő specifikációinak, például a fedélzeti wifi, a Bluetooth és a programozható GPIO fejlécnek, valamint az alkalmazás létrehozásának lehetséges lehetőségeinek köszönhetően a fejlesztők és az elektronikai hobbisták elfogadták. Megtekintheti a Raspberry Pi bevezetésében és a Raspberry PI LED villogásában, hogy elkezdhesse az indítást.
MLX90614 IR hőmérséklet-érzékelő: A piacon sok olyan érzékelő áll rendelkezésre, amelyek hőmérsékletet és páratartalmat adhatnak nekünk. Ez az érzékelő különbözik az összes többi érzékelőtől, hogy megadhatja az objektum hőmérsékletét, más érzékelők pedig a környezeti hőmérsékletet. A DHT11 érzékelőt és az LM35-et széles körben alkalmaztuk számos olyan alkalmazáshoz, ahol meg kell mérni a légköri páratartalmat vagy a hőmérsékletet.
De itt egy hőmérsékleti pisztoly készítéséhez, amely nem igényel fizikai érintkezést és képes mérni az objektum hőmérsékletét a környezeti hőmérséklet helyett, IR alapú MLX90614-et használunk. Ha többet szeretne megtudni az infravörös és IR érzékelő áramkörökről, kövesse a linket.
Az MLX90614 érzékelőt a Melexis Microelectronics Integrated Systems gyártja, az InfraRed termopile érzékelő elvén működik a hőmérséklet mérésére. Ezek az érzékelők két egységből állnak, amelyek belül vannak beágyazva a hőmérséklet kimenetének megadásához. Az első egység az érzékelő egység, amely rendelkezik infravörös detektorral, amelyet a második egység követ, amely elvégzi az adatok kiszámítását digitális jelfeldolgozással (DSP). Ez az érzékelő a Stefan-Boltzmann-törvény alapján működik, amely megmagyarázza a fekete test által kisugárzott energiát a hőmérséklete szempontjából. Egyszerűbben fogalmazva: bármely tárgy infravörös energiát bocsát ki, és ennek intenzitása egyenesen arányos lesz az adott objektum hőmérsékletével. Az MLX90614 érzékelő a számítási értéket 17 bites ADC- vé alakítjaés amely az I2C kommunikációs protokollal érhető el. Ezek az érzékelők 0,02 ° C felbontás kalibrációval mérik a környezeti hőmérsékletet, valamint az objektum hőmérsékletét. Ha többet szeretne megtudni az MLX90614 érzékelő funkcióiról, olvassa el az MLX90614 adatlapját.
Az MLX90614 jellemzői:
- Üzemi feszültség: 3,6 V - 5 V
- Környezeti hőmérséklet-tartomány: -40 ° C és 125 ° C között
- Az objektum hőmérsékleti tartománya: -70 ° C és -382,2 ° C között van
- Felbontás / kalibrálás: 0,02 ° C
- 17 bites ADC.
- I2C kommunikáció.
Az MLX90614 összekapcsolása a Raspberry Pi-vel
Először letöltjük az MLX90614 sikeres interfészéhez szükséges könyvtárat és csomagokat.
1. lépés: Az I2C engedélyezése a Raspberry Pi beállításból.
Írja be a sudo raspi-config parancsot , majd lépjen az interfészbeállításokhoz.
Lépjen az I2C opcióra és engedélyezze.
2. lépés: Töltse le az MLX90614 csomagját / könyvtárát a https://pypi.org/project/PyMLX90614/#files webhelyre kattintva, majd kattintson a jobb gombbal, és másolja a hivatkozás címét.
Lépjen az RPI terminálra, írja be a wget parancsot, és illessze be az alábbiak szerint másolt linket.
Wget
Letölti a könyvtárat a 'PyMLX90614-0.0.3.tar.gz' zip fájlnévben. majd bontsa ki a tar -xf fájlnév kiterjesztésű mappát, vagy használja ezt az alábbi paranccsal.
tar -xf PyMLX90614-0.0.3.tar.gz
Ezután telepítenünk kell néhány szükséges csomagot az alábbi parancsok használatával.
sudo apt-get install python-setuptools sudo apt-get install -y i2c-tools
Ezután lépjen a kibontott mappába a cd PyMLX90614-0.0.3 / segítségével, és futtassa a parancsot.
sudo python setup.py telepítés
Miután végzett a lépések végrehajtásával, egyszerűen csatlakoztassa az MLX90614 érzékelőt a Raspberry pi-hez az alábbi áramkör segítségével. Az alábbi Raspberry Pi MLX90614 áramkört fritteléssel tervezték.
Ha a kapcsolatok és a telepítés megfelelően történik, akkor az i2cdetect -y 1 paranccsal ellenőrizhetjük, hogy megkapjuk-e az érzékelő címértékét az I2C buszon .
Ha minden a várakozásoknak megfelelően működik, akkor az alábbi kimenetet láthatjuk a terminálunkon.
A 0x5A az érzékelő címét jelöli, amint azt az adatlap is említi. Az alábbiakban bemutatjuk az ugyanezt bemutató adatlaprészletet.
Most futtatunk egy új fájlnevet mlxread.py, és írunk egy mintaprogramot az érzékelő adatainak ellenőrzésére. Az alábbiakban a kódot adjuk meg.
smbus2-ből SMBus importálása mlx90614-ből MLX90614-busz importálása = SMBus (1) érzékelő = MLX90614 (busz, cím = 0x5A) nyomtatás "Környezeti hőmérséklet:", sensor.get_ambient () print "Objektum hőmérséklet:", sensor.get_object_1 () busz. Bezárás()
A fájl létrehozása után futtatjuk a python kiterjesztésű python mlxread.py programmal. Az általam kapott kimenet az alábbiakban látható. Többször futtattam a programot, hogy ellenőrizzem, változnak-e az értékek, miközben a kezemet fölé mozgatom.
Hú, sikeresen összekötöttük az MLX90614-et a Raspberry Pi-vel, amint ezt a fenti képen is megerősítheti.
Pi kamera összekapcsolva a Raspberry Pi-vel
1. lépés: A kamera engedélyezése a Raspberry Pi beállításból.
Írja be a sudo raspi-config parancsot , majd lépjen az interfészbeállításokhoz.
Lépjen a Kamera elemre, és engedélyezze a kamerát.
Most csatlakoztassa a kamera modult az alábbiak szerint.
2. lépés: Annak ellenőrzéséhez, hogy a kamera megfelelően van-e csatlakoztatva, készítünk egy tesztképet, és elmentjük azt az Asztalunkra (a teljes felhasználói felület Raspbian OS verzióját használjuk)
raspistill -o Desktop / image.jpg
Ez lehetővé teszi, hogy a fényképezőgép rákattintjon egy képre a névképpel, és eltárolja azt az Asztalon.
Az SMTP e-mail beállítása a Raspberry Pi alkalmazással
Ebben a részben megértjük, hogyan állíthatjuk be GMAIL-fiókunkat riasztási levelek küldésére, ha a hőmérséklet meghaladja az előre meghatározott beállított értéket.
Az SMTP egy egyszerű levélátviteli protokoll, amely egy olyan alkalmazásréteg-protokoll, amely felelős a TCP / IP-t használó e-mail szolgáltatásért. Lehetőséget nyújt e-mailek küldésére és fogadására, és az Internet Engineering Task Force (IETF) kezeli.
Ez az oktatóanyag csak a GMAIL-fiókoknál működik, és az esetleges hibák elkerülése érdekében javasoljuk, ha friss Gmail-fiókot használ.
Alapértelmezés szerint a Google nem engedélyezi a felhasználóknak e-mail küldését python szkript segítségével. Ennek működéséhez engedélyeznünk kell néhány kevésbé biztonságos alkalmazást a fiókbeállítások megadásával.
1. lépés: Menjen a jobb sarokba, és kattintson a Saját Google-fiók kezelése elemre.
2. lépés: Kattintson a Biztonság elemre, és görgessen le a „Kevésbé biztonságos alkalmazáshoz való hozzáférés” részhez.
3. lépés: Engedélyezze a kevésbé biztonságos alkalmazást.
4. lépés: Ismételje meg a másik e-mail azonosítóval is, hogy elküldje / megkapja az e-mailt a python szkriptből.
5. lépés: Töltse le a szükséges csomagokat.
sudo apt-get install ssmtp sudo apt-get install mailutils
Ha hibát tapasztal a parancs másolás-beillesztéssel történő futtatásakor, írja be kézzel.
6. lépés: Miután az összes könyvtár telepítése megtörtént, változtatásokat kell végrehajtanunk az ssmtp.conf fájlban, ahol meg kell adnunk a feladó e-mail adatait
Nyissa meg a sudo nano /etc/ssmtp/ssmtp.conf fájlt
Görgessen le a végéig, és illessze be ezt, mailhub = smtp.gmail.com: 587 AuthUser = YourEmailAddress AuthPass = YourEmailPassword HasználjaSTARTTLS = IGEN HasználjaTLS = IGEN
Megosztottam egy képet a termináljaimról, az Ön esetére.
Éppen kenyérlapot használtam a kapcsolódáshoz, a hardveres beállításom az övéhez hasonlít, amikor az MLX90614 és a kamera csatlakoztatva van.
Python kód a Pi számára a hőmérséklet leolvasásához az MLX90614-ből és e-mail küldése képpel
A python program elvégzi az összes szükséges műveletet az érzékelő adatok kiolvasásához, összehasonlításához a küszöbértékkel, az e-mail engedélyezéséhez, majd a csatolt képpel történő elküldéséhez. Eleinte könyvtárakra, feladó és fogadó e-mail nyilatkozatra lesz szükségünk. Az e-maileket smtplib is küldheti, de mi csak azt szeretnénk, hogy az e-maileket tantárgyakkal, törzsekkel és egyéb mellékletekkel rendezzük, ez a Többcélú internetes levélkiterjesztések (MIME) segítségével történik. A teljes kód az oldal alján található.
importálja az RPi.GPIO-t gpio-ként importálja az importáló kamerát az smtplib importálásakor az e-mailből. MIMEMultipart importálja a MIMEMultipart e-mailből. MIMEText importálja a MIMEText e-mailből.
Ezt követően meghatározzuk a feladó e-mail címét, a címzett e-mail címét, az e-mail tárgyát, törzsét és a melléklet üzenetét.
fromaddr = "[email protected]" # ennek megfelelően módosítsa az e-mail címet toaddr = "[email protected]" mail = MIMEMultipart () mail = fromaddr mail = toaddr mail = "A hőmérséklet meghaladja a riasztást" body = "Kérjük, találja meg a csatolt fájlt kép"
Ezután létrehozunk egy funkciót, amellyel e-mailt küldhetünk.
def sendMail (adatok): mail.attach (MIMEText (törzs, 'sima')) adatok nyomtatása dat = '% s.jpg'% adatok nyomtatási adat csatolása = nyitott (dat, 'rb') kép = MIMEImage (melléklet.olvasott ()) attach.close () mail.attach (image) szerver = smtplib.SMTP ('smtp.gmail.com', 587) server.starttls () server.login (fromaddr, "test12345 @") text = mail. as_string () server.sendmail (fromaddr, toaddr, text) server.quit ()
Ezután létrehozunk egy funkciót az e-mailben elküldött kép rögzítésére, és tároljuk a képet adatokkal és idővel.
def capture_image (): data = time.strftime ("% d_% b_% Y-% H:% M:% S") camera.start_preview () time.sleep (5) adatok nyomtatása camera.capture ('% s. jpg '% data) camera.stop_preview () time.sleep (1) sendMail (adatok)
Ezután elvégezünk néhány beállítást a PiCamerával.
camera = picamera.PiCamera () camera.rotation = 0 camera.awb_mode = 'auto' camera.brightness = 55
És végre van egy kis idő (1), amely végtelenül fog futni. Beolvassa az adatokat az MLX90614 hőmérséklet-érzékelőből, és ha a hőmérséklet meghaladja a beállított értéket, akkor a capture_image () függvényt hívják meg, amely ekkor felhívja a sendMail (adatok) függvényt, hogy e-mailben küldje el a képrögzítést.
Hőmérséklet mérése és riasztás küldése PI-vel
Amikor a hardver és a szoftver készen áll, futtassa a python kódot (adja meg alább) a pi-n. Kinyomtatja az érzékelőből leolvasott hőmérséklet értékét az alábbiak szerint.
Ha az objektum hőmérséklete meghaladja a küszöbértéket, akkor a python programunk képet készít a kameráról, elmenti a málna pi-re, és e-mailben is megosztja. Az alábbiakban a málna Pi-től küldött e-mail minta látható.
A projekt teljes működése megtalálható az alább linkelt videóban is. Remélem, hogy tetszett a cikk, ha bármilyen kérdése van, kérjük, hagyja meg őket az alábbi megjegyzésekben, vagy fórumunkon is feltöltheti kérdéseit, és felveheti a kapcsolatot a közösséggel.