- Wymagane składniki
- Łączenie MLX90614 z Raspberry Pi
- Interfejs kamery Pi z Raspberry Pi
- Konfiguracja poczty SMTP z Raspberry Pi
- Kod Pythona dla Pi, aby odczytać temperaturę z MLX90614 i wysłać e-mail ze zdjęciem
- Pomiar temperatury i wysyłanie ostrzeżeń mailowych za pomocą PI
Od czasu wybuchu korony bardzo trudno jest zidentyfikować osoby, które są dotknięte wirusem lub nie. Aby rozwiązać ten problem, do pomiaru temperatury ciała często stosuje się urządzenia do pomiaru temperatury. Urządzenia te są wyposażone w bezkontaktowe czujniki temperatury na podczerwień, które mogą mierzyć temperaturę ciała bez fizycznego kontaktu.
Na rynku dostępnych jest wiele pistoletów temperaturowych, ale żaden z nich nie wysyła żadnych ostrzeżeń ani powiadomień e-mailowych do wyższych władz, aby podjąć odpowiednie działania, gdy temperatura przekroczy określony limit. W tym projekcie połączymy czujnik temperatury na podczerwień i wyślemy powiadomienia e-mail ze zdjęciem osoby, jeśli temperatura danej osoby przekroczy ustawioną wartość.
W dzisiejszym świecie Internet przedmiotów rewolucjonizuje nasze życie, opracowując szereg systemów, które można zdalnie monitorować i sterować. W tym projekcie wykorzystamy możliwości IoT i zbudujemy urządzenie do monitorowania temperatury z alertami e-mailowymi przy użyciu Raspberry Pi, MLX90614 i PiCamera.
Wcześniej zbudowaliśmy również inne podobne termometry do pomiaru temperatury ciała, znajdziesz je tutaj.
- Cyfrowy termometr oparty na Arduino wykorzystujący MAX30205
- Bezkontaktowe badanie temperatury ciała za pomocą RFID i Arduino z MLX90614
- Bezdotykowy pistolet termometryczny na podczerwień wykorzystujący Arduino
- Termometr bezkontaktowy do montażu na ścianie przy użyciu Arduino
- Inteligentny termometr wykorzystujący Arduino z aplikacją na Androida
Wymagane składniki
Tutaj używamy Raspberry Pi 3 Raspbian OS. Wszystkie podstawowe wymagania sprzętowe i programowe zostały wcześniej omówione, możesz je sprawdzić we wprowadzeniu do Raspberry Pi i Miga dioda LED Raspberry PI, aby rozpocząć, poza tym, czego potrzebujemy:
- Raspberry Pi 3 (dowolna wersja byłaby dobra).
- Kamera Pi.
- MLX90614 - czujnik temperatury na podczerwień.
- Przewody łączące.
- Płytka prototypowa.
- Zasilanie (5 V, 2 A / 3 A)
Ten projekt jest prosty, jeśli podzielimy projekt na części.
- Zrozumienie i połączenie MLX90614 z Raspberry pi.
- Pierwsze kroki z Pi Camera.
- Konfiguracja poczty SMTP z Raspberry pi.
- Opracowanie i zrozumienie końcowego kodu.
Raspberry Pi: Raspberry Pi to komputer wielkości karty kredytowej, który został zaprojektowany do celów edukacyjnych. Ze względu na cenę i niesamowite specyfikacje, takie jak wbudowane Wi-Fi, Bluetooth i programowalne złącze GPIO, a także liczbę możliwych opcji tworzenia aplikacji, została przyjęta przez programistów i hobbystów elektroniki. Możesz to sprawdzić w Raspberry Pi Wprowadzenie i Miga dioda LED Raspberry PI, aby rozpocząć proces uruchamiania.
MLX90614 Czujnik temperatury na podczerwień: Na rynku dostępnych jest wiele czujników, które mogą podać nam temperaturę i wilgotność. Tym, co odróżnia ten czujnik od wszystkich innych czujników, jest to, że może podawać nam temperaturę obiektu, a inne czujniki temperaturę otoczenia. Szeroko stosowaliśmy czujnik DHT11 i LM35 w wielu zastosowaniach, w których trzeba mierzyć wilgotność powietrza lub temperaturę.
Ale tutaj do wykonania pistoletu temperaturowego, który nie wymaga fizycznego kontaktu i może mierzyć temperaturę obiektu zamiast temperatury otoczenia, używamy MLX90614 na podczerwień. Aby dowiedzieć się więcej o obwodach czujników podczerwieni i IR, kliknij łącze.
Czujnik MLX90614 jest produkowany przez firmę Melexis Microelectronics Integrated systems, działa na zasadzie termopilowego czujnika podczerwieni do pomiaru temperatury. Czujniki te składają się z dwóch jednostek wbudowanych wewnętrznie, aby podawać temperaturę wyjściową. Pierwsza jednostka to jednostka wykrywająca, która ma detektor podczerwieni, po której następuje druga jednostka, która przeprowadza obliczenia danych z cyfrowym przetwarzaniem sygnału (DSP). Ten czujnik działa zgodnie z prawem Stefana-Boltzmanna, które wyjaśnia moc wypromieniowaną przez czarne ciało w kategoriach jego temperatury. Mówiąc prościej, każdy obiekt emituje energię IR, a jej intensywność będzie wprost proporcjonalna do temperatury tego obiektu. Czujnik MLX90614 konwertuje wartość obliczeniową na 17-bitowy przetwornik ADCi można uzyskać do niego dostęp za pomocą protokołu komunikacyjnego I2C. Czujniki te mierzą temperaturę otoczenia, jak również temperaturę obiektu z kalibracją rozdzielczości 0,02 ° C. Aby dowiedzieć się więcej o funkcjach czujnika MLX90614, zapoznaj się z arkuszem danych MLX90614.
Cechy MLX90614:
- Napięcie robocze: 3,6 V do 5 V.
- Zakres temperatury otoczenia: -40 ° C do 125 ° C
- Zakres temperatur obiektu: -70 ° C do -382,2 ° C
- Rozdzielczość / kalibracja: 0,02 ° C
- 17-bitowy ADC.
- Komunikacja I2C.
Łączenie MLX90614 z Raspberry Pi
Najpierw pobierzemy bibliotekę i pakiety wymagane do pomyślnego połączenia MLX90614.
Krok 1: Włączanie I2C z poziomu Raspberry Pi.
Wpisz sudo raspi-config, a następnie przejdź do opcji interfejsu.
Przejdź do opcji I2C i włącz ją.
Krok 2: Pobierz pakiet / bibliotekę MLX90614, przechodząc do https://pypi.org/project/PyMLX90614/#files, a następnie kliknij prawym przyciskiem myszy i skopiuj adres łącza.
Przejdź do terminala RPI, wpisz wget i wklej link skopiowany jak poniżej.
Wget
Pobierze bibliotekę w pliku ZIP o nazwie „PyMLX90614-0.0.3.tar.gz” . następnie wyodrębnij folder z rozszerzeniem nazwy pliku tar -xf lub użyj poniższego polecenia, aby zrobić to samo.
tar -xf PyMLX90614-0.0.3.tar.gz
Następnie musimy zainstalować wymagane pakiety za pomocą poniższych poleceń.
sudo apt-get install python-setuptools sudo apt-get install -y i2c-tools
Następnie przejdź do wyodrębnionego folderu za pomocą cd PyMLX90614-0.0.3 / i uruchom polecenie.
sudo python setup.py install
Gdy skończysz postępować zgodnie z instrukcjami, po prostu połącz czujnik MLX90614 z Raspberry pi za pomocą obwodu podanego poniżej. Poniższy obwodu Raspberry Pi MLX90614 został zaprojektowany przy użyciu fritzing.
Jeśli połączenia i instalacja zostały wykonane poprawnie, możemy sprawdzić, czy otrzymamy wartość adresu czujnika na magistrali I2C za pomocą polecenia i2cdetect -y 1 .
Jeśli wszystko działa zgodnie z oczekiwaniami, możemy zobaczyć poniższe dane wyjściowe na naszym terminalu.
0x5A reprezentuje adres czujnika, jak wspomniano w arkuszu danych. Fragment arkusza danych pokazujący to samo jest podany poniżej.
Teraz uruchomimy utworzenie nowej nazwy pliku mlxread.py i napiszemy przykładowy program do sprawdzania danych z czujnika. Kod tego samego podano poniżej.
z smbus2 import SMBus z mlx90614 import MLX90614 bus = SMBus (1) czujnik = MLX90614 (magistrala, adres = 0x5A) print "Ambient Temperature:", sensor.get_ambient () print "Object Temperature:", sensor.get_object_1 () bus. blisko()
Po utworzeniu pliku uruchomimy go z rozszerzeniem python python mlxread.py. Wynik, który otrzymałem, pokazano poniżej. Uruchomiłem program wiele razy, aby sprawdzić, czy wartości zmieniają się, gdy przesuwam po nim ręką.
Woah, pomyślnie połączyliśmy MLX90614 z naszym Raspberry Pi, jak możesz potwierdzić na powyższym obrazku.
Interfejs kamery Pi z Raspberry Pi
Krok 1: Włączanie kamery z ustawień Raspberry Pi.
Wpisz sudo raspi-config, a następnie przejdź do opcji interfejsu.
Przejdź do aparatu i włącz aparat.
Teraz podłącz moduł kamery, jak pokazano poniżej.
Krok 2: Aby sprawdzić, czy kamera jest prawidłowo podłączona, wykonujemy obraz testowy i zapisujemy go na naszym pulpicie (używamy pełnej wersji GUI Raspbian OS)
raspistill -o Desktop / image.jpg
Umożliwi to aparatowi kliknięcie zdjęcia z nazwą obrazu i zapisanie go na pulpicie.
Konfiguracja poczty SMTP z Raspberry Pi
W tej sekcji zrozumiemy, w jaki sposób możemy ustawić nasze konto GMAIL tak, aby wysyłało wiadomości e-mail z alertami, gdy temperatura przekroczy wstępnie zdefiniowaną wartość.
SMTP to Simple Mail Transfer Protocol, który jest protokołem warstwy aplikacji odpowiedzialnym za obsługę poczty e-mail przy użyciu protokołu TCP / IP. Zapewnia możliwość wysyłania i odbierania wiadomości e-mail i jest zarządzany przez Internet Engineering Task Force (IETF).
Ten samouczek działa tylko z kontami GMAIL i aby uniknąć ewentualnych błędów, zaleca się korzystanie z nowego konta Gmail.
Domyślnie Google nie zezwala użytkownikom na wysyłanie wiadomości e-mail przy użyciu skryptu w języku Python. Aby to zadziałało, musimy włączyć niektóre mniej bezpieczne aplikacje, przechodząc do ustawień konta.
Krok 1: Przejdź do prawego rogu i kliknij Moje Zarządzaj kontem Google.
Krok 2: Kliknij Bezpieczeństwo i przewiń w dół do „Dostęp do mniej bezpiecznych aplikacji”.
Krok 3: włącz mniej bezpieczną aplikację.
Krok 4: Powtórz z innym identyfikatorem e-mail, aby wysłać / odebrać wiadomość e-mail ze skryptu Pythona.
Krok 5: Pobierz wymagane pakiety.
sudo apt-get install ssmtp sudo apt-get install mailutils
Jeśli otrzymujesz błąd podczas uruchamiania polecenia przez kopiowanie i wklejanie, wpisz je ręcznie.
Krok 6: Po zakończeniu instalacji wszystkich bibliotek musimy wprowadzić zmiany w pliku ssmtp.conf, w którym musimy wprowadzić dane e-mail nadawcy
Przejdź do sudo nano /etc/ssmtp/ssmtp.conf
Przewiń w dół do końca i wklej to, mailhub = smtp.gmail.com: 587 AuthUser = YourEmailAddress AuthPass = YourEmailPassword UseSTARTTLS = YES UseTLS = YES
Udostępniłem również zrzut ekranu moich terminali w celach informacyjnych.
Właśnie użyłem płytki prototypowej, aby nawiązać połączenie, moja konfiguracja sprzętu wygląda jak jego, gdy MLX90614 i kamera są podłączone.
Kod Pythona dla Pi, aby odczytać temperaturę z MLX90614 i wysłać e-mail ze zdjęciem
Program w Pythonie wykonuje wszystkie niezbędne operacje, aby odczytać dane z czujnika, porównać je z wartością progową, autoryzować wiadomość e-mail, a następnie wysłać wiadomość e-mail z załączonym obrazem. Na początku będziemy wymagać deklaracji dotyczących bibliotek, nadawcy i odbiorcy wiadomości e-mail. E-mail może być wysyłany przez smtplib, ale chcemy, aby e-mail był uporządkowany z tematem, treścią i innymi załącznikami, odbywa się to za pomocą Multipurpose Internet Mail Extensions (MIME). Pełny kod można znaleźć na dole tej strony.
importuj RPi.GPIO jako gpio importuj picamera czas importu importuj smtplib z e-maila.MIMEMMultipart importuj MIMEMultipart z e-maila.MIMEText importuj MIMEText z e-mail.MIMEBase importuj MIMEBase z e-maili importuj kodery z e-mail.mime.image importuj MIMEImage z smbus2 importuj SMBus z mlx90614 import MLX90
Następnie definiujemy adres e-mail nadawcy, adres e-mail odbiorcy, temat wiadomości e-mail, treść i załącznik.
fromaddr = "[email protected]" # odpowiednio zmień adres e-mail toaddr = "[email protected]" mail = MIMEMultipart () mail = fromaddr mail = toaddr mail = "Alert przekroczenia wartości temperatury" body = "Proszę znaleźć załączony wizerunek"
Następnie tworzymy funkcję, za pomocą której możemy wysłać e-mail.
def sendMail (dane): mail.attach (MIMEText (body, 'plain')) print data dat = '% s.jpg'% data print dat attach = open (dat, 'rb') image = MIMEImage (załącznik.read ()) załącznik.close () mail.attach (obraz) server = smtplib.SMTP ('smtp.gmail.com', 587) server.starttls () server.login (fromaddr, "test12345 @") text = mail. as_string () server.sendmail (fromaddr, toaddr, text) server.quit ()
Następnie tworzymy funkcję przechwytywania obrazu, który jest wysyłany pocztą e-mail, a także przechowuje obraz z danymi i czasem.
def capture_image (): data = time.strftime ("% d_% b_% Y-% H:% M:% S") camera.start_preview () time.sleep (5) drukuj dane camera.capture ('% s. jpg '% data) kamera.stop_preview () time.sleep (1) sendMail (dane)
Następnie dokonujemy ustawień za pomocą PiCamera.
camera = picamera.PiCamera () camera.rotation = 0 camera.awb_mode = 'auto' camera.brightness = 55
I w końcu mamy pętlę while (1), która będzie działać w nieskończoność. Będzie to odczyt danych z czujnika temperatury MLX90614 a jeśli temperatura przekroczy ustawioną wartość, wówczas capture_image () wywoływana jest funkcja, która następnie wywołuje Sendmail (dane) funkcję wysyłania przechwytywanie obrazu za pośrednictwem poczty elektronicznej.
Pomiar temperatury i wysyłanie ostrzeżeń mailowych za pomocą PI
Kiedy sprzęt i oprogramowanie są gotowe, po prostu uruchom kod Pythona (podaj poniżej) na swoim pi. Wyświetli wartość temperatury odczytaną z czujnika, jak pokazano poniżej.
Jeśli temperatura obiektu przekroczy temperaturę progową, nasz program w Pythonie pobierze obraz z kamery, zapisze go na raspberry pi, a także udostępni e-mailem. Przykładowy e-mail wysłany z raspberry Pi jest pokazany poniżej.
Pełne działanie projektu można również znaleźć w filmie, do którego link znajduje się poniżej. Mamy nadzieję, że podobał Ci się artykuł. Jeśli masz jakieś pytania, zostaw je w komentarzach poniżej lub możesz też skorzystać z naszych forów, aby zadać pytania i skontaktować się ze społecznością.