В наші дні вірус covid19 змушує людей приділяти більше уваги своєму здоров’ю. Одним з найбільш важливих параметрів, на які впливає вірус, є рівень кисню в крові. Пульсоксиметр вимірює цей показник можна придбати, благо він коштує не дорого, а можна зробити самостійно.інструменти та матеріали: – esp32 або будь-який інший mcu, який працює з arduino ide, такий як плати esp8266 або ардуіно; – модуль пульсоксиметра max30100; – oled-дисплей ssd1306;

-перемички;

Крок перший: підготовка модуля мах30100принцип роботи модуля наступний: він посилає червоне і інфрачервоне світло через кінчик пальця користувача, потім вимірює відбите світло і виконує деяку обробку сигналів. Чим більше кисню міститься в крові, тим більше інфрачервоного випромінювання вона поглинає, а також більшу кількість кисню в крові пропустить через неї більше червоного світла.цей модуль відправляє дані на мікроконтролер через з’єднання i2c. У продажу є дві версії max30100: зелений і фіолетовий.фіолетовий вже готовий до використання, зелений необхідно доопрацювати.коротко, i2c цього модуля має високий рівень 1,8 в, в той час як arduino розглядає як мінімум 2 в як високий. Отже, вони не можуть правильно обмінюватися даними.на схемі max30100 можна побачити, що sda і scl підтягнуті до 1,8 в резистором. Тому, якщо відключити резистори від 1,8 в і підключити їх до бортового стабілізатора 3,3 в, проблема буде вирішена.для цього розриваємо доріжку зазначену червоною лінією. Далі перемикаємо два контакти відмічені синім кольором.якщо ці два кроки виконані правильно, то модуль готовий до використання.

Крок другий: схема і сборкасхема пристрою нескладна.esp32 d22 —->max30100 sclesp32 d21 —->max30100 sdaesp32 gnd —->max30100 gndesp32 3,3 в —–>max30100 vinoled vdd —–>esp32 3,3 вoled gnd —–>esp32 gndoled scl —–>esp32 d22oled sda —->esp d21збирає пристрій майстер на макетній платі. В принципі цього достатньо для його повноцінної роботи, але при бажанні можна помістити пульсоксиметра в відповідний корпус.

Щоб запрограмувати esp32 за допомогою arduino ide, спочатку потрібно додати в додаток плати esp32. Для цього потрібно виконати наступні дії: 1) відкрийте arduino ide, перейдіть в меню файл>налаштування>додаткові url-адреси диспетчера плат і вставте це посилання: https://dl.espressif.com/dl/package_esp32_index.jsonподтвердите дія “ок”.2) у ide перейдіть до інструментів>дошка>менеджер дошки.введіть esp32 в поле пошуку і виберіть установку для esp32 від espressif systems.3) тепер esp32 доданий в середу ide, і можна вибрати плату в якості цільового пристрою для завантаження програми.для цього:перейдіть до інструменти>плата>esp32 arduino>модуль esp32 devякщо все зроблено правильно, у правому нижньому кутку буде написаний тип плати (esp32 dev module) як на картинці.

Тепер потрібно додати необхідні бібліотеки в arduino ide.щоб використовувати модуль max30100, додаємо max30100_pulseoximeter.h, а для oled-дисплея додаємо adafruit_ssd1306.h і adafruit_gfx.для цього потрібно перейти в інструменти>управління бібліотеками, знайти там ці бібліотеки і встановити.

За допомогою бібліотеки adafruit_ssd1306.h і бібліотеки adafruit_gfx.h разом можна керувати екраном.щоб створити момент ssd1306, який визначено в бібліотеці (ім’я «oled» може бути будь-яким, але воно буде використовуватися в іншій частині коду), він повинен бути поза розділу налаштування або розділу циклу:

Показати / приховати текст

128 і 64 – це ширина і довжина дисплейщоб ініціалізувати екран він повинен бути в розділі налаштування:

Показати / приховати текст

0x3c – це i2c-адреса дисплея за замовчуванням.щоб помістити курсор в потрібне місце:

Показати / приховати текст

Наприклад, щоб поставити курсор в середнє положення:

Показати / приховати текст

Щоб роздрукувати що-небудь на екрані:

Показати / приховати текст

Щоб змінити розмір шрифту:

oled.settextsize(2); it can be 1 or 2

Щоб очистити буфер:

Показати / приховати текст

(все, що ви хочете надрукувати на екрані, спочатку поміщається в буфер) щоб оновити екран:

Показати / приховати текст

Тепер розглянемо бібліотеку max30100.створити об’єкт пульсоксиметра для використання в коді з бажаним ім’ям (наприклад, max_sensor):

Показати / приховати текст

Щоб дати команду модулю на вимір:

max_sensor.update ();

Щоб отримати дані пульсу:

Показати / приховати текст

Щоб дізнатися рівень кисню в крові:

Показати / приховати текст

Крок четвертий: кодв цьому кроці майстер роз’яснює код і які в нього необхідно внести зміни при необхідності.перш за все, потрібно включити бібліотеки:

Показати / приховати текст

Звітний період max30100 може бути визначений в коді. Наприклад, 100 означає, що кожні 100 мс частота пульсу і рівень кисню будуть оновлюватися.

Показати / приховати текст

Створюємо змінну для запису часу між читаннями max30100:

Показати / приховати текст

Визначаємо функцію onbeatdetected:

Показати / приховати текст

Згідно з попереднім кроком налаштування наступні:

Показати / приховати текст

Весь код можна завантажити нижче.

Показати / приховати текст

Після програмування можна користуватися приладом.джерело (source)

Ставайте автором сайту, публікуйте власні статті, описи саморобок з оплатою за текст.детальніше тут.