- Požadované komponenty
- Propojení MLX90614 s Raspberry Pi
- Propojení kamery Pi s Raspberry Pi
- Nastavení e-mailu SMTP s Raspberry Pi
- Pythonský kód pro Pi ke čtení teploty z MLX90614 a odeslání e-mailu s obrázkem
- Měření teploty a zasílání upozornění na poštu pomocí PI
Od vypuknutí koróny je velmi obtížné identifikovat ty, kteří jsou virem zasaženi nebo ne. K vyřešení tohoto problému se k měření tělesné teploty často používají teplotní přístroje. Tato zařízení mají bezkontaktní IR teplotní senzory, které mohou měřit tělesnou teplotu bez jakéhokoli fyzického kontaktu.
Na trhu je k dispozici mnoho teplotních pistolí, ale žádná z nich neposkytuje žádné výstrahy ani e-mailové oznámení vyšším úřadům, aby přijaly příslušná opatření, když teplota překročí určitý limit. V tomto projektu propojíme IR teplotní čidlo a pošleme e-mailová upozornění s obrázkem osoby, pokud teplota kterékoli konkrétní osoby překročí nastavenou hodnotu.
V dnešním světě přináší internet věcí revoluci v našem životě tím, že vyvíjí řadu systémů, které lze dálkově monitorovat a ovládat. V tomto projektu využijeme sílu IoT a postavíme zařízení pro monitorování teploty s e-mailovými upozorněními pomocí Raspberry Pi, MLX90614 a PiCamera.
Dříve jsme také postavili další podobné teploměry pro měření tělesné teploty, najdete je zde.
- Arduino digitální teploměr využívající MAX30205
- Bezkontaktní screening tělesné teploty pomocí RFID a Arduino s MLX90614
- Bezkontaktní infračervená teploměrová pistole využívající Arduino
- Bezkontaktní teploměr pro montáž na stěnu pomocí Arduina
- Inteligentní teploměr využívající Arduino s aplikací pro Android
Požadované komponenty
Zde používáme Raspberry Pi 3 Raspbian OS. Všechny základní hardwarové a softwarové požadavky jsou již dříve diskutovány, můžete si je vyhledat v Raspberry Pi Introduction a Raspberry PI LED Blinking pro začátek, kromě toho, co potřebujeme:
- Raspberry Pi 3 (jakákoli verze by byla v pořádku).
- Fotoaparát Pi.
- MLX90614 - IR teplotní senzor.
- Připojovací vodiče.
- Nepájivá deska.
- Napájení (5V, 2A / 3A)
Tento projekt je jednoduchý, pokud ho rozdělíme na části.
- Porozumění a propojení MLX90614 s Raspberry pi.
- Začínáme s Pi Camera.
- Nastavení e-mailu SMTP s Raspberry pi.
- Konečný vývoj kódu a porozumění.
Raspberry Pi: Raspberry Pi je počítač velikosti kreditní karty, který byl navržen pro vzdělávací účely. Díky své ceně a úžasným specifikacím, jako je integrovaná wifi, Bluetooth a programovatelná hlavička GPIO, a množství možných možností pro vytvoření aplikace, byla přijata vývojáři a fandy elektroniky. Chcete-li začít s procesem bootování, můžete si jej vyhledat v Raspberry Pi Introduction a Raspberry PI LED Blinking.
MLX90614 IR teplotní senzor: Na trhu je k dispozici mnoho senzorů, které nám mohou poskytnout teplotu a vlhkost. Tím, co se tento senzor liší od všech ostatních senzorů, je to, že nám může poskytnout teplotu objektu a ostatní senzory udávají teplotu okolí. Senzory DHT11 a LM35 jsme rozsáhle používali pro mnoho aplikací, kde je třeba měřit vlhkost vzduchu nebo teplotu.
Ale tady pro výrobu teplotní pistole, která nepotřebuje fyzický kontakt a může měřit teplotu objektu namísto teploty okolí, používáme IR na bázi MLX90614. Chcete-li se dozvědět více o obvodech infračervených a infračervených senzorů, klikněte na odkaz.
Senzor MLX90614 je vyráběn integrovanými systémy Melexis Microelectronics, pracuje na principu termočlánkového senzoru InfraRed pro měření teploty. Tyto senzory se skládají ze dvou jednotek zabudovaných interně, které poskytují výstup teploty. První jednotka je snímací jednotka, která má infračervený detektor, za nímž následuje druhá jednotka, která provádí výpočet dat pomocí digitálního zpracování signálu (DSP). Tento senzor pracuje na základě zákona Stefana-Boltzmanna, který vysvětluje výkon vyzařovaný černým tělesem z hlediska jeho teploty. Jednoduše řečeno, jakýkoli objekt emituje infračervenou energii a jeho intenzita bude přímo úměrná teplotě daného objektu. Senzor MLX90614 převádí výpočetní hodnotu na 17bitový ADCa ke kterému lze přistupovat pomocí komunikačního protokolu I2C. Tyto senzory měří teplotu okolí i teplotu objektu s kalibrací rozlišení 0,02 ° C. Další informace o funkcích senzoru MLX90614 najdete v datovém listu MLX90614.
Vlastnosti MLX90614:
- Provozní napětí: 3,6 V až 5 V.
- Rozsah okolní teploty: -40 ° C až 125 ° C
- Teplotní rozsah objektu: -70 ° C až -382,2 ° C
- Rozlišení / kalibrace: 0,02 ° C
- 17bitový ADC.
- Komunikace I2C.
Propojení MLX90614 s Raspberry Pi
Nejprve si stáhneme knihovnu a balíčky potřebné k úspěšnému propojení MLX90614.
Krok 1: Povolení nastavení I2C z Raspberry Pi.
Zadejte sudo raspi-config a přejděte na možnosti rozhraní.
Přejděte na možnost I2C a povolte ji.
Krok 2: Stáhněte si balíček / knihovnu MLX90614 na https://pypi.org/project/PyMLX90614/#files, poté klikněte pravým tlačítkem a zkopírujte adresu odkazu.
Přejděte na terminál RPI a zadejte wget a vložte odkaz zkopírovaný níže.
Wget
Stáhne knihovnu v názvu souboru zip „PyMLX90614-0.0.3.tar.gz“ . poté rozbalte složku s příponou tar -xf název souboru nebo použijte stejný příkaz níže.
tar -xf PyMLX90614-0.0.3.tar.gz
Pak musíme nainstalovat některé požadované balíčky pomocí níže uvedených příkazů.
sudo apt-get install python-setuptools sudo apt-get install -y i2c-tools
Poté přejděte do extrahované složky pomocí cd PyMLX90614-0.0.3 / a spusťte příkaz.
sudo python setup.py nainstalovat
Jakmile budete hotovi podle pokynů, propojte senzor MLX90614 s Raspberry pi pomocí níže uvedeného obvodu. Níže uvedený obvod Raspberry Pi MLX90614 byl navržen pomocí fritování.
Pokud je připojení a instalace provedena správně, můžeme pomocí příkazu i2cdetect -y 1 zkontrolovat, zda dostaneme hodnotu adresy senzoru na sběrnici I2C .
Pokud vše funguje podle očekávání, můžeme vidět níže uvedený výstup na našem terminálu.
0x5A představuje adresu snímače uvedenou v datovém listu. Níže uvedený úryvek datového listu, který ukazuje to samé, je uveden níže.
Nyní spustíme vytvoření nového názvu souboru mlxread.py a napíšeme ukázkový program ke kontrole dat ze senzoru. Kód pro stejný je uveden níže.
ze smbus2 import SMBus z mlx90614 import MLX90614 sběrnice = SMBus (1) senzor = MLX90614 (sběrnice, adresa = 0x5A) tisk "Teplota okolí:", sensor.get_ambient () tisk "Teplota objektu:", senzor.get_object_1 () sběrnice. zavřít()
Jakmile je soubor vytvořen, spustíme jej s příponou pythonu python mlxread.py. Výstup, který jsem obdržel, je uveden níže. Spustil jsem program několikrát, abych zkontroloval, zda se hodnoty mění, když přes něj pohybuji rukou.
Woah, úspěšně jsme propojili MLX90614 s naší Raspberry Pi, jak můžete potvrdit z výše uvedeného obrázku.
Propojení kamery Pi s Raspberry Pi
Krok 1: Povolení nastavení kamery z Raspberry Pi.
Zadejte sudo raspi-config a přejděte na možnosti rozhraní.
Přejděte na Fotoaparát a povolte fotoaparát.
Nyní připojte modul kamery, jak je znázorněno níže.
Krok 2: Chcete-li zkontrolovat, zda je kamera správně připojena, pořídíme testovací obrázek a uložíme jej na plochu (používáme verzi s plným GUI Raspbian OS)
raspistill -o Desktop / image.jpg
Fotoaparát tak bude moci kliknout na obrázek se jménem a uložit jej na plochu.
Nastavení e-mailu SMTP s Raspberry Pi
V této části pochopíme, jak můžeme nastavit náš účet GMAIL tak, aby odesílal varovné e-maily, jakmile teplota překročí předdefinovanou nastavenou hodnotu.
SMTP je protokol Simple Mail Transfer Protocol, což je protokol aplikační vrstvy odpovědný za e-mailovou službu využívající TCP / IP. Poskytuje schopnost odesílat a přijímat e-mailové zprávy a je spravován Internet Engineering Task Force (IETF).
Tento výukový program funguje pouze s účty GMAIL. Abyste se vyhnuli možným chybám, doporučujeme vám, pokud používáte nový účet Gmail.
Ve výchozím nastavení Google neumožňuje uživatelům odesílat e-maily pomocí skriptu python. Aby to fungovalo, musíme povolit některé méně zabezpečené aplikace v nastavení účtu.
Krok 1: Přejděte do pravého rohu a klikněte na můj Spravovat váš účet Google.
Krok 2: Klikněte na Zabezpečení a přejděte dolů na „Méně zabezpečený přístup k aplikacím“.
Krok 3: Povolte méně zabezpečenou aplikaci.
Krok 4: Opakujte také s druhým ID e-mailu, abyste mohli odesílat / přijímat e-maily ze skriptu python.
Krok 5: Stáhněte si požadované balíčky.
sudo apt-get install ssmtp sudo apt-get install mailutils
Pokud se vám při spuštění příkazu zobrazuje chyba při vkládání kopírování, zadejte jej ručně.
Krok 6: Po dokončení instalace všech knihoven musíme provést změny v souboru ssmtp.conf, kde musíme zadat e-mailové údaje odesílatele
Přejděte na sudo nano /etc/ssmtp/ssmtp.conf
Přejděte dolů na konec a vložte to, mailhub = smtp.gmail.com: 587 AuthUser = YourEmailAddress AuthPass = YourEmailPassword UseSTARTTLS = ANO UseTLS = ANO
Pro vaši informaci jsem také sdílel snímek obrazovky mých terminálů.
Když jsem připojil MLX90614 a kameru, použil jsem k propojení připojení prkénko. Moje hardwarové nastavení vypadá jako jeho.
Pythonský kód pro Pi ke čtení teploty z MLX90614 a odeslání e-mailu s obrázkem
Program python provádí všechny nezbytné operace ke čtení dat senzoru, jejich porovnání s prahovou hodnotou, autorizaci e-mailu a následném odeslání e-mailu s připojeným obrázkem. Nejprve budeme vyžadovat e-mailové prohlášení knihoven, odesílatele a příjemce. E-mail může být odeslán smtplibem, ale my jen chceme, aby byl e-mail organizován s předmětem, tělem a dalšími přílohami, to se děje pomocí Multipurpose Internet Mail Extensions (MIME). Celý kód naleznete ve spodní části této stránky.
import RPi.GPIO jako 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 kodérů z email.mime.image import MIMEImage import smbus2 import SMBus z mlx90614
Poté definujeme e-mailovou adresu odesílatele, e-mailovou adresu příjemce, předmět e-mailu, tělo a přílohu zprávy.
fromaddr = "[email protected]" # odpovídajícím způsobem změňte e-mailovou adresu toaddr = "[email protected]" mail = MIMEMultipart () mail = fromaddr mail = toaddr mail = "Teplota překračuje výstrahu" body = "Naleznete v příloze obraz"
Poté vytvoříme funkci, pomocí které můžeme poslat e-mail.
def sendMail (data): mail.attach (MIMEText (tělo, 'obyčejný')) tisk dat dat = '% s.jpg'% dat tisk dat přílohy = otevřeno (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 ()
Poté vytvoříme funkci pro zachycení obrázku, který je odeslán e-mailem, a také obrázek uloží s daty a časem.
def capture_image (): data = time.strftime ("% d_% b_% Y-% H:% M:% S") camera.start_preview () time.sleep (5) tisk dat camera.capture ('% s. jpg '% data) camera.stop_preview () time.sleep (1) sendMail (data)
Poté provedeme některá nastavení pomocí PiCamera.
camera = picamera.PiCamera () camera.rotation = 0 camera.awb_mode = 'auto' camera.brightness = 55
A konečně máme smyčku while (1), která poběží nekonečně. To bude číst data z teplotního čidla MLX90614 a pokud teplota přesáhne nastavenou hodnotu, pak capture_image () funkce je volána, který pak volá sendmail (data), funkce pro odeslání snímání obrazu prostřednictvím e-mailu.
Měření teploty a zasílání upozornění na poštu pomocí PI
Když je hardware a software připraven, stačí na vašem pi spustit kód pythonu (uveďte níže). Vytiskne hodnotu teploty načtenou ze snímače, jak je uvedeno níže.
Pokud teplota objektu překročí prahovou teplotu, náš program v pythonu pořídí obraz z kamery, uloží jej na malinu pi a také jej sdílí prostřednictvím e-mailu. Níže je uveden ukázkový e-mail odeslaný z maliny Pi.
Kompletní fungování projektu najdete také ve videu, na které odkazujete níže. Doufám, že se vám článek líbil, pokud máte nějaké dotazy, nechte je prosím v níže uvedených komentářích nebo můžete také použít naše fóra k odeslání vašich otázek a kontaktování komunity.