- Súčasti sú povinné
- Prepojenie MLX90614 s Raspberry Pi
- Fotoaparát Pi Prepojenie s Raspberry Pi
- Nastavenie e-mailu SMTP s Raspberry Pi
- Pythonský kód pre Pi na čítanie teploty z MLX90614 a odosielanie e-mailov s obrázkom
- Meranie teploty a zasielanie upozornení pomocou PI
Od vypuknutia koróny je veľmi ťažké identifikovať tých, ktorí sú vírusom zasiahnutí alebo nie. Na vyriešenie tohto problému sa na meranie telesnej teploty často používajú teplotné prístroje. Tieto zariadenia majú bezkontaktné IR snímače teploty, ktoré dokážu merať teplotu tela bez akéhokoľvek fyzického kontaktu.
Na trhu je k dispozícii veľa teplotných pištolí, ale žiadna z nich neposkytne varovanie ani e-mailové upozornenie vyšším orgánom, aby podnikli príslušné kroky, keď teplota prekročí určitý limit. V tomto projekte prepojíme IR snímač teploty a pošleme e-mailové výstrahy s obrázkom osoby, ak teplota ktorejkoľvek konkrétnej osoby prekročí nastavenú hodnotu.
V dnešnom svete predstavuje internet vecí revolúciu v našom živote vyvinutím mnohých systémov, ktoré je možné monitorovať a ovládať na diaľku. V tomto projekte využijeme silu IoT a postavíme zariadenie na monitorovanie teploty s e-mailovými upozorneniami pomocou Raspberry Pi, MLX90614 a PiCamera.
Predtým sme tiež zostavili ďalšie podobné teplomery na meranie telesnej teploty, nájdete ich tu.
- Digitálny teplomer na báze Arduino využívajúci MAX30205
- Bezkontaktný skríning telesnej teploty pomocou RFID a Arduino s MLX90614
- Bezkontaktná infračervená teplomerová pištoľ pomocou Arduina
- Bezkontaktný teplomer na stenu pomocou Arduina
- Inteligentný teplomer využívajúci Arduino s aplikáciou pre Android
Súčasti sú povinné
Tu používame Raspberry OS Raspberry Pi 3. Všetky základné hardvérové a softvérové požiadavky sú už predtým diskutované. Môžete si ich vyhľadať v úvode Raspberry Pi a blikaní Raspberry PI LED, okrem toho, čo potrebujeme:
- Raspberry Pi 3 (akákoľvek verzia by bola v poriadku).
- Kamera Pi.
- MLX90614 - IR teplotný senzor.
- Pripojovacie vodiče.
- Nepál.
- Napájanie (5V, 2A / 3A)
Tento projekt je jednoduchý, ak ho rozdelíme na časti.
- Porozumenie a prepojenie MLX90614 s malinou pi.
- Začíname s kamerou Pi.
- Nastavenie e-mailu SMTP s Raspberry pi.
- Vývoj a pochopenie konečného kódu.
Raspberry Pi: Raspberry Pi je počítač veľkosti kreditnej karty, ktorý bol navrhnutý na vzdelávacie účely. Vďaka svojej cene a úžasným špecifikáciám, ako je integrovaná sieť Wi-Fi, Bluetooth a programovateľná hlavička GPIO, a množstvu možností na vytvorenie aplikácie si ju osvojili vývojári a vyznávači elektroniky. Ak chcete začať s procesom bootovania, môžete si ich vyhľadať v Raspberry Pi Introduction a Raspberry PI LED Blinking.
MLX90614 IR teplotný senzor: Na trhu je k dispozícii veľa senzorov, ktoré nám môžu poskytnúť teplotu a vlhkosť. Čím sa tento snímač líši od všetkých ostatných snímačov, je to, že nám môže dať teplotu objektu a iné snímače majú teplotu okolia. Senzory DHT11 a LM35 sme často používali pre mnoho aplikácií, pri ktorých sa musí merať vzdušná vlhkosť alebo teplota.
Ale tu na výrobu teplotnej pištole, ktorá nepotrebuje fyzický kontakt a dokáže merať teplotu objektu namiesto teploty okolia, používame IR na báze MLX90614. Ak sa chcete dozvedieť viac informácií o obvodoch infračervených a infračervených senzorov, kliknite na odkaz.
Senzor MLX90614 vyrába spoločnosť Melexis Microelectronics Integrated systems, pracuje na princípe infračerveného senzora InfraRed pre meranie teploty. Tieto snímače pozostávajú z dvoch jednotiek zabudovaných interne, ktoré poskytujú výstup teploty. Prvá jednotka je snímacia jednotka, ktorá má infračervený detektor, za ktorým nasleduje druhá jednotka, ktorá vykonáva výpočet dát pomocou digitálneho spracovania signálu (DSP). Tento snímač pracuje na základe zákona Stefana-Boltzmanna, ktorý vysvetľuje výkon vyžarovaný čiernym telesom z hľadiska jeho teploty. Jednoducho povedané, akýkoľvek objekt vyžaruje infračervenú energiu a jej intenzita bude priamo úmerná teplote daného objektu. Senzor MLX90614 prevádza výpočtovú hodnotu na 17-bitový ADCa ku ktorému je možné pristupovať pomocou komunikačného protokolu I2C. Tieto snímače merajú teplotu okolia aj teplotu objektu s kalibráciou rozlíšenia 0,02 ° C. Ak sa chcete dozvedieť viac informácií o funkciách snímača MLX90614, pozrite si technický list MLX90614.
Vlastnosti MLX90614:
- Prevádzkové napätie: 3,6 V až 5 V.
- Rozsah teploty okolia: -40 ° C až 125 ° C
- Teplotný rozsah objektu: -70 ° C až -382,2 ° C
- Rozlíšenie / kalibrácia: 0,02 ° C
- 17-bitový ADC.
- I2C komunikácia.
Prepojenie MLX90614 s Raspberry Pi
Najskôr si stiahneme knižnicu a balíčky potrebné na úspešné prepojenie MLX90614.
Krok 1: Povolenie nastavenia I2C z Raspberry Pi.
Zadajte príkaz sudo raspi-config a potom prejdite na možnosti rozhrania.
Prejdite na možnosť I2C a povoľte ju.
Krok 2: Stiahnite si balík / knižnicu MLX90614 na https://pypi.org/project/PyMLX90614/#files, potom kliknite pravým tlačidlom myši a skopírujte adresu odkazu.
Prejdite na terminál RPI a zadajte wget a vložte odkaz skopírovaný ako nižšie.
Wget
Stiahne knižnicu s názvom zip súboru „PyMLX90614-0.0.3.tar.gz“ . potom rozbaľte priečinok s príponou názvu súboru tar -xf alebo to urobte pomocou nižšie uvedeného príkazu.
tar -xf PyMLX90614-0.0.3.tar.gz
Potom musíme nainštalovať niektoré požadované balíčky pomocou nižšie uvedených príkazov.
sudo apt-get install python-setuptools sudo apt-get install -y i2c-tools
Potom choďte do extrahovaného priečinka pomocou cd PyMLX90614-0.0.3 / a spustite príkaz.
sudo python setup.py nainštalovať
Keď skončíte s vykonaním týchto krokov, stačí senzor MLX90614 prepojiť s Raspberry pi pomocou nižšie uvedeného obvodu. Nižšie uvedený obvod Raspberry Pi MLX90614 bol navrhnutý s použitím fritovania.
Ak sú pripojenia a inštalácia vykonaná správne, môžeme skontrolovať, či dostaneme hodnotu adresy snímača na zbernici I2C pomocou príkazu i2cdetect -y 1 .
Ak všetko funguje podľa očakávaní, na našom termináli vidíme výstup uvedený nižšie.
0x5A predstavuje adresu snímača uvedenú v údajovom liste. Ďalej uvedený úryvok z údajového listu, ktorý sa zobrazuje rovnako.
Teraz spustíme vytvorenie nového názvu súboru mlxread.py a napíšeme vzorový program na kontrolu údajov zo senzora. Jeho kód je uvedený nižšie.
zo smbus2 import SMBus z mlx90614 import MLX90614 bus = senzor SMBus (1) = MLX90614 (bus, adresa = 0x5A) tlač „Teplota okolia:“, sensor.get_ambient () tlač „Teplota objektu:“, senzor.get_object_1 () zbernica. Zavrieť()
Po vytvorení súboru ho spustíme s príponou python python mlxread.py. Výstup, ktorý som dostal, je uvedený nižšie. Program som spustil viackrát, aby som skontroloval, či sa hodnoty menia, keď po ňom prechádzam rukou.
Woah, úspešne sme prepojili MLX90614 s našou Raspberry Pi, ako môžete potvrdiť z vyššie uvedeného obrázka.
Fotoaparát Pi Prepojenie s Raspberry Pi
Krok 1: Povolenie nastavenia kamery z Raspberry Pi.
Zadajte príkaz sudo raspi-config a potom prejdite na možnosti rozhrania.
Prejdite na Fotoaparát a povoľte fotoaparát.
Teraz pripojte modul kamery podľa obrázka nižšie.
Krok 2: Aby sme skontrolovali, či je kamera správne pripojená, urobíme testovací obraz a uložíme ho na našu plochu (používame verziu s plným GUI Raspbian OS)
raspistill -o Desktop / image.jpg
Fotoaparát tak bude môcť kliknúť na obrázok s menom a uložiť ho na pracovnú plochu.
Nastavenie e-mailu SMTP s Raspberry Pi
V tejto časti pochopíme, ako môžeme nastaviť náš účet GMAIL tak, aby posielal varovné e-maily, keď teplota prekročí vopred definovanú nastavenú hodnotu.
SMTP je protokol Simple Mail Transfer Protocol, čo je protokol aplikačnej vrstvy zodpovedný za e-mailovú službu pomocou protokolu TCP / IP. Poskytuje schopnosť odosielať a prijímať e-mailové správy a je spravovaný internetovou technickou jednotkou (IETF).
Táto príručka funguje iba s účtami GMAIL. Ak chcete zabrániť možným chybám, odporúčame vám, ak používate nový účet Gmail.
Google predvolene neumožňuje používateľom odosielať e-maily pomocou skriptu python. Aby to fungovalo, musíme v nastaveniach účtu povoliť niektoré menej bezpečné aplikácie.
Krok 1: Choďte do pravého rohu a kliknite na môj Spravovať váš účet Google.
Krok 2: Kliknite na Zabezpečenie a posuňte sa nadol na „Menej zabezpečený prístup k aplikáciám“.
Krok 3: Povoľte menej bezpečnú aplikáciu.
Krok 4: Opakujte tiež s ďalším ID e-mailu, aby ste mohli odoslať / prijať e-mail zo skriptu python.
Krok 5: Stiahnite si požadované balíčky.
sudo apt-get install ssmtp sudo apt-get install mailutils
Ak sa vám pri spustení príkazu prilepením kopírovania zobrazuje chyba, zadajte ju ručne.
Krok 6: Po dokončení inštalácie všetkých knižníc musíme vykonať zmeny v súbore ssmtp.conf, kde musíme zadať e-mailové údaje odosielateľa
Prejdite na sudo nano /etc/ssmtp/ssmtp.conf
Posuňte zobrazenie nadol na koniec a prilepte ho, mailhub = smtp.gmail.com: 587 AuthUser = YourEmailAddress AuthPass = YourEmailPassword UseSTARTTLS = YES UseTLS = YES
Pre vašu informáciu som tiež zdieľal snímku obrazovky mojich terminálov.
Pripojenie som uskutočnil iba pomocou kontaktného poľa. Moje hardvérové nastavenie vyzerá ako jeho, keď je pripojený model MLX90614 a fotoaparát.
Pythonský kód pre Pi na čítanie teploty z MLX90614 a odosielanie e-mailov s obrázkom
Program python vykoná všetky potrebné operácie na to, aby prečítal údaje senzora, porovnal ich s prahovou hodnotou, autorizoval e-mail a potom poslal e-mail s pripojeným obrázkom. Najskôr budeme vyžadovať e-mailové vyhlásenia knižníc, odosielateľa a príjemcu. E-mail môže posielať smtplib, ale my chceme iba to, aby bol e-mail organizovaný s predmetom, telom a inými prílohami, čo sa deje pomocou Multipurpose Internet Mail Extensions (MIME). Celý kód nájdete v spodnej časti tejto stránky.
import RPi.GPIO ako gpio import picamera čas importu import smtplib z e-mailu. MIMEMultipart import MIMEMultipart z e-mailu. MIMEText import MIMEText z e-mailu. MIMEBase import MIMEBase z e-mailu import kódovačov z email.mime.image import MIMEImage import zo smbus2 import SMBus z mlx90614
Potom definujeme e-mailovú adresu odosielateľa, e-mailovú adresu príjemcu, predmet e-mailu, telo a správu v prílohe.
fromaddr = "[email protected]" # zodpovedajúcim spôsobom zmeniť e-mailovú adresu toaddr = "[email protected]" mail = MIMEMultipart () mail = fromaddr mail = toaddr mail = "Teplota prekračuje výstrahu" body = "Nájdete v prílohe obrázok "
Potom vytvoríme funkciu, pomocou ktorej môžeme poslať e-mail.
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 (obrázok) server = smtplib.SMTP ('smtp.gmail.com', 587) server.starttls () server.login (fromaddr, "test12345 @") text = mail. as_string () server.sendmail (fromaddr, toaddr, text) server.quit ()
Potom vytvoríme funkciu na snímanie obrázkov, ktoré sa odosielajú e-mailom, a tiež ich ukladáme spolu s údajmi a č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 '% data) camera.stop_preview () time.sleep (1) sendMail (data)
Potom urobíme nejaké nastavenia pomocou PiCamery.
camera = picamera.PiCamera () camera.rotation = 0 camera.awb_mode = 'auto' camera.brightness = 55
A konečne máme chvíľu (1) slučku, ktorá pobeží nekonečne dlho. Načíta údaje z teplotného snímača MLX90614 a ak teplota prekročí nastavenú hodnotu, zavolá sa funkcia capture_image (), ktorá potom zavolá funkciu sendMail (data), aby poslala snímku e-mailom.
Meranie teploty a zasielanie upozornení pomocou PI
Keď je hardvér a softvér pripravený, stačí na vašom pi spustiť kód pythonu (uveďte nižšie). Vytlačí hodnotu teploty načítanú zo snímača, ako je uvedené nižšie.
Ak teplota objektu prekročí prahovú teplotu, náš program v jazyku python urobí obraz z kamery, uloží ho na malinovú pí a tiež ho bude zdieľať prostredníctvom e-mailu. Nižšie je uvedený príklad e-mailu odoslaného z maliny Pi.
Kompletné fungovanie projektu nájdete tiež vo videu, na ktoré odkazujete nižšie. Dúfam, že sa vám článok páčil, ak máte akékoľvek otázky, nechajte ich prosím v komentároch nižšie, alebo môžete použiť naše fóra na uverejnenie svojich otázok a kontakt s komunitou.