- Необходимые компоненты
- Взаимодействие MLX90614 с Raspberry Pi
- Подключение камеры Pi к Raspberry Pi
- Настройка электронной почты SMTP с Raspberry Pi
- Код Python для Pi для считывания температуры из MLX90614 и отправки электронной почты с изображением
- Измерение температуры и отправка почтовых уведомлений с помощью PI
После вспышки короны стало очень сложно идентифицировать тех, кто пострадал от вируса или нет. Для решения этой проблемы часто используются температурные приборы для измерения температуры тела. Эти устройства оснащены бесконтактными ИК-датчиками температуры, которые могут измерять температуру тела без какого-либо физического контакта.
На рынке доступно множество температурных пистолетов, но ни одно из них не отправляет никаких предупреждений или уведомлений по электронной почте вышестоящим органам, чтобы предпринять соответствующие действия, когда температура превышает определенный предел. В этом проекте мы подключим инфракрасный датчик температуры и будем отправлять оповещения по электронной почте с изображением человека, если температура любого конкретного человека превышает установленное значение.
В современном мире Интернет вещей революционизирует нашу жизнь, создавая ряд систем, которые можно контролировать и управлять удаленно. В этом проекте мы будем использовать возможности Интернета вещей и создадим устройство мониторинга температуры с оповещениями по электронной почте с использованием 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 Camera.
- MLX90614 - ИК датчик температуры.
- Соединительные провода.
- Макетная плата.
- Источник питания (5 В, 2 А / 3 А)
Этот проект прост, если разделить его на части.
- Понимание и взаимодействие MLX90614 с Raspberry pi.
- Начало работы с Pi Camera.
- Настройка электронной почты SMTP с Raspberry pi.
- Окончательная разработка и понимание кода.
Raspberry Pi: Raspberry Pi - это компьютер размером с кредитную карту, который был разработан для образовательных целей. Благодаря его цене и удивительным характеристикам, таким как встроенный Wi-Fi, Bluetooth и программируемый заголовок GPIO, а также количеству возможных вариантов создания приложения, он был принят разработчиками и любителями электроники. Вы можете найти его в разделе «Введение в Raspberry Pi» и «Мигание светодиода Raspberry PI», чтобы начать процесс загрузки.
MLX90614 ИК-датчик температуры: на рынке доступно множество датчиков, которые могут определять температуру и влажность. Что отличает этот датчик от всех других датчиков, так это то, что он может определять температуру объекта, а другие датчики - температуру окружающей среды. Мы широко использовали датчик DHT11 и LM35 для многих приложений, где необходимо измерять влажность или температуру воздуха.
Но здесь для изготовления термометра, который не требует физического контакта и может измерять температуру объекта, а не температуру окружающей среды, мы используем MLX90614 на основе ИК- излучения. Чтобы узнать больше о схемах инфракрасных и инфракрасных датчиков, перейдите по ссылке.
Датчик MLX90614 производится компанией Melexis Microelectronics Integrated systems, он работает по принципу инфракрасного датчика термобатареи для измерения температуры. Эти датчики состоят из двух модулей, встроенных внутрь, для вывода температуры. Первый блок - это чувствительный блок, который имеет инфракрасный детектор, за которым следует второй блок, который выполняет вычисление данных с помощью цифровой обработки сигналов (DSP). Этот датчик работает по закону Стефана-Больцмана, который объясняет мощность, излучаемую черным телом, с точки зрения его температуры. Проще говоря, любой объект излучает инфракрасную энергию, и ее интенсивность прямо пропорциональна температуре этого объекта. Датчик MLX90614 преобразует вычисленное значение в 17-битный АЦПи доступ к нему можно получить с помощью протокола связи I2C. Эти датчики измеряют температуру окружающей среды, а также температуру объекта с калибровкой разрешения 0,02 ° C. Чтобы узнать больше об особенностях датчика MLX90614, см. Техническое описание MLX90614.
Особенности MLX90614:
- Рабочее напряжение: от 3,6 В до 5 В
- Диапазон температуры окружающей среды: от -40 ° C до 125 ° C
- Диапазон температур объекта: от -70 ° C до -382,2 ° C
- Разрешение / калибровка: 0,02 ° C
- 17-битный АЦП.
- Связь I2C.
Взаимодействие MLX90614 с Raspberry Pi
Сначала мы загрузим библиотеку и пакеты, необходимые для успешного взаимодействия с MLX90614.
Шаг 1. Включение I2C в настройках Raspberry Pi.
Введите sudo raspi-config и перейдите к параметрам взаимодействия.
Перейдите к опции I2C и включите ее.
Шаг 2. Загрузите пакет / библиотеку MLX90614, перейдя по ссылке, затем щелкните правой кнопкой мыши и скопируйте адрес ссылки.
Перейдите в терминал 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 была разработана с использованием фритзинга.
Если подключения и установка выполнены правильно, мы можем проверить, получаем ли мы значение адреса датчика на шине I2C, используя команду i2cdetect -y 1 .
Если все работает, как ожидалось, мы можем увидеть следующий вывод на нашем терминале.
0x5A представляет адрес датчика, как указано в таблице данных. Фрагмент таблицы, показывающий то же самое, приведен ниже.
Теперь мы запустим новый файл с именем mlxread.py и напишем пример программы для проверки данных с датчика. Код для этого приведен ниже.
из smbus2 импортировать SMBus из mlx90614 импортировать MLX90614 bus = SMBus (1) sensor = MLX90614 (bus, address = 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 с полным графическим интерфейсом).
raspistill -o Рабочий стол / image.jpg
Это позволит вашей камере щелкнуть изображение с именем изображения и сохранить его на рабочем столе.
Настройка электронной почты SMTP с Raspberry Pi
В этом разделе мы поймем, как мы можем настроить нашу учетную запись GMAIL на отправку писем с предупреждениями, когда температура превышает предопределенное установленное значение.
SMTP - это простой протокол передачи почты, который представляет собой протокол прикладного уровня, отвечающий за службу электронной почты с использованием TCP / IP. Он предоставляет возможность отправлять и получать сообщения электронной почты и управляется Инженерной группой Интернета (IETF).
Это руководство работает только с учетными записями GMAIL, и во избежание возможных ошибок рекомендуется использовать новую учетную запись Gmail.
По умолчанию Google не позволяет пользователям отправлять электронную почту с помощью скрипта Python. Чтобы это работало, мы должны включить некоторые менее безопасные приложения, войдя в настройки учетной записи.
Шаг 1. Перейдите в правый угол и нажмите «Моя учетная запись Google».
Шаг 2: Нажмите «Безопасность» и прокрутите вниз до «Менее безопасный доступ к приложениям».
Шаг 3. Включите менее безопасное приложение.
Шаг 4: Повторите эти действия с другим идентификатором электронной почты, чтобы отправить / получить электронное письмо из скрипта python.
Шаг 5: Загрузите необходимые пакеты.
Sudo APT-получить установку SSMTP SUDO APT-получить установку 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). Полный код можно найти внизу этой страницы.
import RPi.GPIO as gpio import picamera import time import smtplib from email.MIMEMultipart import MIMEMultipart from email.MIMEText import MIMEText from email.MIMEBase import MIMEBase from email import encoders from email.mime.image import MIMEImage from smbus2 import SMBus from mlx90614 import MLX90614
После этого мы определяем адрес электронной почты отправителя, адрес электронной почты получателя, тему письма, тело и вложение.
fromaddr = "[email protected]" # измените адрес электронной почты на addr = "[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 (изображение) server = smtplib.SMTP ('smtp.gmail.com', 587) server.starttls () server.login (fromaddr, "test12345 @") text = mail. as_string () server.sendmail (fromaddr, toaddr, текст) server.quit ()
Затем мы создаем функцию для захвата изображения, которое отправляется по электронной почте, а также сохраняет изображение с данными и временем.
def capture_image (): data = time.strftime ("% d_% b_% Y-% H:% M:% S") camera.start_preview () time.sleep (5) данные печати camera.capture ('% s. jpg '% data) 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 (приведенный ниже) на свой пи. Он напечатает значение температуры, считываемое с датчика, как показано ниже.
Если температура объекта превышает пороговую температуру, тогда наша программа на Python возьмет изображение с камеры, сохранит его на raspberry pi, а также отправит его по электронной почте. Ниже показан образец электронного письма, отправленного с Raspberry Pi.
Полную работу проекта также можно найти в видео по ссылке ниже. Надеюсь, вам понравилась статья. Если у вас есть какие-либо вопросы, оставьте их в комментариях ниже или вы также можете использовать наши форумы, чтобы задать свои вопросы и связаться с сообществом.