- Необходими компоненти
- Връзка MLX90614 с Raspberry Pi
- Взаимодействие на Pi камера с Raspberry Pi
- Настройване на SMTP имейл с Raspberry Pi
- Python код за Pi за четене на температура от MLX90614 и изпращане на имейл със снимка
- Измерване на температурата и изпращане на предупреждение с PI
След избухването на короната стана много трудно да се идентифицират тези, които са засегнати от вируса или не. За да се реши този проблем, често се използват температурни устройства за измерване на телесната температура. Тези устройства имат безконтактни IR сензори за температура, които могат да измерват телесната температура без физически контакт.
На пазара се предлагат много температурни пистолети, но никой от тях не дава никакви предупреждения или известия по имейл до по-висши органи за предприемане на подходящи действия, когато температурата надвиши определена граница. В този проект ще свържем инфрачервен сензор за температура и ще изпратим предупреждения по имейл с изображението на човека, ако температурата на дадено лице надвиши зададената стойност.
В днешния свят Интернет на нещата революционизира живота ни, като разработи редица системи, които могат да бъдат наблюдавани и контролирани от разстояние. В този проект ще използваме силата на IoT и ще изградим устройство за наблюдение на температурата с предупреждения по имейл, използвайки Raspberry Pi, MLX90614 и PiCamera.
Преди това сме изградили и други подобни термометри за измерване на телесната температура, можете да ги намерите тук.
- Цифров термометър на базата на Arduino, използващ MAX30205
- Безконтактен скрининг на телесна температура с помощта на RFID и Arduino с MLX90614
- Безконтактен инфрачервен термометър с използване на Arduino
- Безконтактен термометър за стенен монтаж с използване на Arduino
- Интелигентен термометър, използващ Arduino с приложение за Android
Необходими компоненти
Тук използваме Raspberry Pi 3 Raspbian OS. Всички основни хардуерни и софтуерни изисквания са обсъдени по-рано, можете да ги потърсите във въведението на Raspberry Pi и мигащият индикатор Raspberry PI за начало, освен това, от което се нуждаем:
- Raspberry Pi 3 (всяка версия би била добре).
- Pi камера.
- MLX90614 - IR сензор за температура.
- Свързващи проводници.
- Макет.
- Захранване (5V, 2A / 3A)
Този проект е прост, ако разделим проекта на части.
- Разбиране и взаимодействие на MLX90614 с Raspberry pi.
- Първи стъпки с Pi Camera.
- Настройване на SMTP имейл с Raspberry pi.
- Разработване и разбиране на крайния код.
Raspberry Pi: Raspberry Pi е компютър с размер на кредитна карта, който е проектиран с образователна цел. Поради своята цена и невероятни спецификации като вграден wifi, Bluetooth и програмируем заглавие GPIO и броя на възможните опции за създаване на приложение, той беше приет от разработчиците и любителите на електрониката. Можете да го потърсите във въведението на Raspberry Pi и LED мигащия Raspberry PI за начало с процеса на зареждане.
MLX90614 IR сензор за температура: На пазара се предлагат много сензори, които могат да ни дадат температура и влажност. Това, което прави този сензор различен от всички други сензори, е, че може да ни даде температура на обекта, а другите сензори дават околната температура. Използвахме сензора DHT11 и LM35 широко за много приложения, където трябва да се измерва атмосферната влажност или температура.
Но тук за създаване на температурен пистолет, който не се нуждае от физически контакт и може да измерва температурата на обекта вместо температурата на околната среда, ние използваме MLX90614, базиран на IR. За да научите повече за инфрачервените и инфрачервените схеми на сензора, следвайте връзката.
MLX90614 сензорът се произвежда от интегрирани системи Melexis Microelectronics, той работи на принципа на инфрачервения термопилесен сензор за измерване на температурата. Тези сензори се състоят от два блока, вградени вътре, за да дадат изходната температура. Първият блок е сензорният блок, който има инфрачервен детектор, който е последван от втория блок, който извършва изчисляването на данните с цифрова обработка на сигнала (DSP). Този сензор работи по закона на Стефан-Болцман, който обяснява мощността, излъчвана от черно тяло, по отношение на неговата температура. С прости думи, всеки обект излъчва IR енергия и интензивността му ще бъде пряко пропорционална на температурата на този обект. Сензорът MLX90614 преобразува изчислителната стойност в 17-битов ADCи до него може да се достигне чрез комуникационния протокол I2C. Тези сензори измерват околната температура, както и температурата на обекта с калибриране на разделителната способност 0,02 ° C. За да научите повече за характеристиките на сензора MLX90614, вижте таблицата с данни MLX90614.
Характеристики на MLX90614:
- Работно напрежение: 3.6V до 5V
- Диапазон на околната температура: -40 ° C до 125 ° C
- Диапазон на температурата на обекта: -70 ° C до -382,2 ° C
- Разделителна способност / калибриране: 0,02 ° C
- 17-битов ADC.
- I2C комуникация.
Връзка MLX90614 с Raspberry Pi
Първо ще изтеглим библиотеката и пакетите, необходими за успешен интерфейс на MLX90614.
Стъпка 1: Активиране на настройката I2C от Raspberry Pi.
Въведете sudo raspi-config и след това отидете на опциите за взаимодействие.
Отидете до опцията I2C и я активирайте.
Стъпка 2: Изтеглете пакета / библиотеката на MLX90614, като отидете на https://pypi.org/project/PyMLX90614/#files, след това щракнете с десния бутон и копирайте адреса на връзката.
Отидете до RPI терминал и напишете wget и поставете копираната връзка, както по-долу.
Wget
Той ще изтегли библиотеката в името на zip файла „PyMLX90614-0.0.3.tar.gz“ . след това извлечете папката с разширението на името на файла tar -xf или използвайте командата по-долу, за да направите същото.
tar -xf PyMLX90614-0.0.3.tar.gz
След това трябва да инсталираме някои необходими пакети, като използваме командите по-долу.
sudo apt-get install python-setuptools sudo apt-get install -y i2c-tools
След това отидете в извлечената папка с помощта на cd PyMLX90614-0.0.3 / и изпълнете командата.
sudo python setup.py инсталиране
След като приключите със стъпките, просто свържете сензора MLX90614 с Raspberry pi, като използвате схемата, дадена по-долу. В по-долу Raspberry Pi MLX90614 верига се конструират при използване fritzing.
Ако връзките и инсталацията са извършени правилно, можем да проверим дали получаваме стойността на адреса на сензора на I2C шината с помощта на командата i2cdetect -y 1 .
Ако всичко работи както се очаква, можем да видим изхода по-долу на нашия терминал.
0x5A представлява адреса на сензора, както е споменато в листа с данни. Фрагментът от листа с данни, показващ същото, е даден по-долу.
Сега ще стартираме създаване на ново име на файл mlxread.py и ще напишем примерна програма за проверка на данните от сензора. Кодът за същото е даден по-долу.
от smbus2 импортиране SMBus от mlx90614 импортиране MLX90614 шина = SMBus (1) сензор = MLX90614 (шина, адрес = 0x5A) print "Ambient Temperature:", sensor.get_ambient () print "Object Temperature:", sensor.get_object_1 () bus. близо()
След като файлът бъде създаден, ние ще го стартираме с разширение на python python mlxread.py. Получените резултати са показани по-долу. Пуснах програмата няколко пъти, за да проверя дали стойностите се променят, докато движа ръката си върху нея.
Уау, успешно свързваме MLX90614 с нашата Raspberry Pi, както можете да потвърдите от горното изображение.
Взаимодействие на Pi камера с Raspberry Pi
Стъпка 1: Активиране на настройката на камерата от Raspberry Pi.
Въведете sudo raspi-config и след това отидете на опциите за взаимодействие.
Отидете на Камера и активирайте камерата.
Сега свържете модула на камерата, както е показано по-долу.
Стъпка 2: За да проверим дали камерата е свързана правилно, правим тестово изображение и го запазваме в нашия работен плот (използваме пълната версия на графичния интерфейс Raspbian OS)
raspistill -o Desktop / image.jpg
Това ще позволи на камерата ви да щракне върху снимка с името на изображението и да я съхрани на вашия работен плот.
Настройване на SMTP имейл с Raspberry Pi
В този раздел ще разберем как можем да настроим нашия GMAIL акаунт да изпраща предупредителни писма, след като температурата надвиши предварително зададената стойност.
SMTP е прост протокол за прехвърляне на поща, който е протокол от приложен слой, отговорен за услугата за електронна поща, използваща TCP / IP. Той предоставя възможност за изпращане и получаване на имейл съобщения и се управлява от Internet Engineering Task Force (IETF).
Този урок работи само с акаунти в GMAIL и за да се избегнат евентуални грешки, би било препоръчително да използвате нов акаунт в Gmail.
По подразбиране Google не позволява на потребителите да изпращат имейли с помощта на python скрипт. За да работи това, трябва да активираме някои по-малко сигурни приложения, като влезем в настройките на акаунта.
Стъпка 1: Отидете в десния ъгъл и кликнете върху моя Управление на вашия акаунт в Google.
Стъпка 2: Щракнете върху Сигурност и превъртете надолу до „По-малко сигурен достъп до приложения“.
Стъпка 3: Активирайте по-несигурното приложение.
Стъпка 4: Повторете и с другия имейл идентификатор, за да изпратите / получите имейла от скрипта на python.
Стъпка5: Изтеглете необходимите пакети.
ап-да инсталирате SSMTP ап-да инсталирате mailutils
Ако получавате грешка при изпълнението на командата чрез копиране, поставете я ръчно.
Стъпка 6: След като инсталацията на всички библиотеки приключи, трябва да направим промени във файла ssmtp.conf, където трябва да въведем имейл данните на подателя
Отидете на sudo nano /etc/ssmtp/ssmtp.conf
Превъртете надолу до края и поставете това, mailhub = smtp.gmail.com: 587 AuthUser = YourEmailAddress AuthPass = YourEmailPassword UseSTARTTLS = YES UseTLS = YES
Също така споделих екранна снимка на моите терминали за ваша справка.
Току-що използвах макет, за да направя връзката си, хардуерната ми настройка изглежда като неговата, когато MLX90614 и камерата са свързани.
Python код за Pi за четене на температура от MLX90614 и изпращане на имейл със снимка
Програмата python прави всички необходими операции за четене на данните от сензора, сравняване с праговата стойност, упълномощаване на имейла и след това изпращане на имейла с прикачено изображение. Отначало ще изискваме библиотеки, декларация за имейл на подател и получател. Имейлът може да се изпраща чрез smtplib, но ние просто искаме имейлът да бъде организиран с предмет, тяло и друг прикачен файл, това се прави с помощта на многофункционални разширения за интернет поща (MIME). Пълният код може да бъде намерен в долната част на тази страница.
импортиране на RPi.GPIO като gpio импортиране на пикамера време за импортиране импортиране на smtplib от имейл.
След това определяме имейл адреса на подателя, имейл адреса на получателя, темата на имейла, тялото и съобщението за прикачен файл.
fromaddr = "[email protected]" # променете съответно имейл адреса toaddr = "[email protected]" mail = MIMEMultipart () mail = fromaddr mail = toaddr mail = "Температурата надвишава предупреждението" body = "Моля, намерете приложеното образ"
След това създаваме функция, използвайки която можем да изпратим имейл.
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 ()
След това създаваме функция за заснемане на изображението, което се изпраща по имейл и също съхранява изображението с данни и време.
def capture_image (): data = time.strftime ("% d_% b_% Y-% H:% M:% S") camera.start_preview () time.sleep (5) print data camera.capture ('% s. jpg '% данни) camera.stop_preview () time.sleep (1) sendMail (данни)
След това правим някои настройки с PiCamera.
camera = picamera.PiCamera () camera.rotation = 0 camera.awb_mode = 'auto' camera.brightness = 55
И накрая имаме цикъл while (1), който ще работи безкрайно. Той ще прочете данните от температурния сензор MLX90614 и ако температурата надвиши зададената стойност, тогава се извиква функцията capture_image (), която след това извиква функцията sendMail (данни), за да изпрати заснемането на изображението по имейл.
Измерване на температурата и изпращане на предупреждение с PI
Когато хардуерът и софтуерът са готови, просто изкарайте кода на python (дайте по-долу) на вашия pi. Той ще отпечата стойността на температурата, отчетена от сензора, както е показано по-долу.
Ако температурата на обекта надвиши праговата температура, тогава нашата програма python ще вземе изображение от камерата, ще го запише на малинов пи и също ще го сподели по имейл. Примерен имейл, изпратен от Raspberry Pi, е показан по-долу.
Цялостната работа на проекта може да бъде намерена и във видеото, свързано по-долу. Надявам се, че статията ви е харесала, ако имате въпроси, оставете ги в коментарите по-долу или можете също да използвате нашите форуми, за да публикувате вашите въпроси и да се свържете с общността.