- Потрібні компоненти
- Зв'язок MLX90614 з Raspberry Pi
- Взаємодія камери Pi з Raspberry Pi
- Налаштування SMTP-електронної пошти за допомогою Raspberry Pi
- Код Python для Pi для зчитування температури з MLX90614 та надсилання електронного листа із зображенням
- Вимірювання температури та надсилання повідомлення про пошту за допомогою PI
З моменту спалаху корони стало дуже важко виявити тих, кого вірус вражає чи ні. Для вирішення цього питання часто використовують температурні прилади для вимірювання температури тіла. Ці пристрої мають безконтактні ІЧ-датчики температури, які можуть вимірювати температуру тіла без будь-якого фізичного контакту.
На ринку доступно багато температурних пістолетів, але жоден з них не надсилає жодних сповіщень або повідомлень по електронній пошті до вищих органів влади щодо вжиття відповідних заходів, коли температура перевищує певний межа. У цьому проекті ми встановимо інтерфейс ІЧ-датчика температури та надішлемо сповіщення електронною поштою із зображенням людини, якщо температура якоїсь конкретної людини перевищує встановлене значення.
У сучасному світі Інтернет речей робить революцію в нашому житті, розробляючи ряд систем, які можна контролювати та контролювати віддалено. У цьому проекті ми використаємо потужність 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 (будь-яка версія буде в порядку).
- Пі-камера.
- 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, він працює за принципом інфрачервоного термодатчика для вимірювання температури. Ці датчики складаються з двох блоків, вбудованих всередину для отримання вихідної температури. Перший блок - це блок зондування, який має інфрачервоний детектор, за яким слідує другий блок, який виконує обчислення даних за допомогою цифрової обробки сигналів (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, перейшовши на 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 була розроблена з використанням фритування.
Якщо підключення та установка зроблені належним чином, ми можемо перевірити, чи отримуємо значення адреси датчика на шині I2C, використовуючи команду i2cdetect -y 1 .
Якщо все працює належним чином, ми бачимо наведений нижче результат на нашому терміналі.
0x5A представляє адресу датчика, як згадується в таблиці даних. Фрагмент таблиці даних, що показує те саме, наведено нижче.
Тепер ми запустимо створити нову назву файлу mlxread.py і напишемо зразок програми для перевірки даних з датчика. Код для цього наведено нижче.
від smbus2 імпорт SMBus від mlx90614 імпорт шина MLX90614 = SMBus (1) датчик = MLX90614 (шина, адреса = 0x5A) друк "Температура навколишнього середовища:", sensor.get_ambient () print "Температура об'єкта:", сенсор.get_object_1 () шина. закрити ()
Після створення файлу ми запустимо його із розширенням python python mlxread.py. Результат, який я отримав, показаний нижче. Я запускав програму кілька разів, щоб перевірити, чи змінюються значення, коли я навожу на неї руку.
Ого, ми успішно зв’язали MLX90614 з нашим Raspberry Pi, як ви можете підтвердити з наведеного вище зображення.
Взаємодія камери Pi з Raspberry Pi
Крок 1: Увімкнення камери з налаштування Raspberry Pi.
Введіть sudo raspi-config, а потім перейдіть до параметрів взаємодії.
Перейдіть до Камера та увімкніть камеру.
Тепер підключіть модуль камери, як показано нижче.
Крок 2: Щоб перевірити, чи правильно підключена камера, ми робимо тестове зображення і зберігаємо його на нашому робочому столі (ми використовуємо повну версію графічного інтерфейсу Raspbian OS)
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). Повний код можна знайти внизу цієї сторінки.
імпорт RPi.GPIO як gpio імпорт пікамера час імпорту імпорт smtplib з електронної пошти. MIMEMultipart імпорт MIMEMultipart з електронної пошти. MIMEText імпорт MIMEText з електронної пошти. MIMEBase імпорт MIMEBase з коду імпорту електронної пошти з email.mime.
Після цього ми визначаємо адресу електронної пошти відправника, адресу електронної пошти одержувача, тему електронного листа, тіло та повідомлення вкладення.
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 = 'авто' camera.brightness = 55
І нарешті, у нас є цикл while (1), який працюватиме нескінченно. Він буде зчитувати дані з датчика температури MLX90614 і якщо температура перевищує задане значення, то capture_image () викликається функція, яка потім викликає Sendmail (дані) функцію для відправки захоплення зображення по електронній пошті.
Вимірювання температури та надсилання повідомлення про пошту за допомогою PI
Коли апаратне та програмне забезпечення готові, просто виконайте код python (дайте нижче) на вашому pi. На ньому буде надруковано значення температури, зчитане з датчика, як показано нижче.
Якщо температура об’єкта перевищує порогову температуру, наша програма python візьме зображення з камери, збереже його на малиновому пі, а також поділиться ним по електронній пошті. Зразок електронного листа, надісланого від Raspberry Pi, показаний нижче.
Повну роботу проекту також можна знайти у відео, наведеному нижче. Сподіваємось, вам сподобалась стаття. Якщо у вас виникли запитання, залиште їх у коментарях нижче, або ви також можете скористатися нашими форумами, щоб розмістити свої запитання та зв’язатись із спільнотою.