Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Health Band - умный помощник для пожилых людей

Компоненты и расходные материалы

Infineon DPS310
× 1
Arduino Nano R3
× 1
Espressif ESP8266 ESP-01
× 1
Перемычки (общие)
× 1
Литий-полимерная батарея 3,7 В
× 1

Необходимые инструменты и машины

Паяльник (общий)

Приложения и онлайн-сервисы

IDE Arduino
Блинк

Об этом проекте

Ваш любимый человек стар и живет один? Не о чем беспокоиться. Используя датчик давления Infineon DPS310, мы разработали виртуального помощника, который аккуратно надевается на вашу руку в виде браслета, который выполняет эту трудоемкую работу, оставляя ваших близких в надежных руках!

"В настоящее время пожилые люди составляют около 14,5 процента населения США , а к 2030 году там будет около 74 миллионов пожилых людей. Поскольку расходы на здравоохранение возрастают и на медицинские учреждения оказывается давление с целью обеспечения надлежащего ухода, необходимы новые решения для управления здоровьем пожилых людей ".

После быстрого поиска и просмотра шокирующих цифр это наша попытка помочь пожилым людям!

ИСТОРИЯ

Прошло несколько лет с тех пор, как моя бабушка страдала от первых признаков болезни Альцгеймера, и, к сожалению, ее состояние, похоже, ухудшается. Это привело к ряду неожиданных проблем, таких как

1) бродить по работе (хотя ей и не советовали)

2) пропуски приемов пищи или иногда двойное питание

3) не делает зарядку

Все это из-за нехватки памяти, а также из-за того, что она не знала о своем состоянии.

Это привело к тому, что моей матери пришлось проводить с ней почти весь день, семь дней в неделю. Эта задача оказалась очень утомительной и трудоемкой. Тогда у нас возникла идея сделать виртуального помощника, который мог бы отслеживать поведение и действия моей бабушки и, при необходимости, предупреждать члена семьи в случае возникновения чрезвычайной ситуации. Дать маме передышку и в то же время сохранить пациента в надежных руках!

КОМПОНЕНТЫ СИСТЕМЫ / КОНЦЕПЦИИ

Хотя эта система в основном ориентирована на проблемы, с которыми сталкивается пациент с болезнью Альцгеймера, мы внедрили в наш проект много других систем, которые влияют на жизнь всех пожилых людей, помогая им самостоятельно преодолевать препятствия в повседневной жизни.

Одна из главных особенностей датчика давления Infineon - это его размер! Это делает ключевой компонент портативным и универсальным. В основе нашей системы лежит Arduino Nano, который затем подключается к датчику давления DPS310 через шину I2C. Действия и поведение будут закодированы для имитации живого движения пациента. Используя эти графики или значения, мы определяем состояние пациента и предупреждаем члена в случае возникновения чрезвычайной ситуации. Сгенерированные данные будут затем представлены в небольшом приложении с помощью Blynk.

Вся эта система будет интегрирована в компактный, но красивый носимый браслет, что органично впишется в жизнь пациента.

ФУНКЦИИ И ВОЗМОЖНОСТИ

Вот основные функции и движения, которые наша группа сможет анализировать / обнаруживать:

Осень - Исследования показывают, что самая большая проблема со старшими - это потеря равновесия и падение. Часто пациенты беспомощны, и только через некоторое время приходит помощь. Этого можно было бы легко избежать с помощью Health Band, обнаружив внезапное падение давления. После обнаружения родственникам автоматически отправляется сообщение, чтобы предотвратить ухудшение травмы.

Упражнение - пожилым людям может быть довольно сложно заставить их заниматься спортом или прогуляться, даже если это позволит им оставаться в форме и быть здоровыми. Мы решили, что одним из способов их мотивации может быть показ количества сделанных шагов или количества пройденного времени, чтобы у них было что подтолкнуть к тренировкам.

В случае с моей бабушкой врачи посоветовали ей пройти около 1000 шагов, она хочет, но теряет счет. Ей тоже помогает счетчик!

Как только Health Band обнаруживает "волновое" движение, он определяет, что пациент начал упражнение. От гребня до гребня или от впадины до желоба отмечен один цикл. По мере выполнения шагов количество циклов генерируется и затем отображается, создавая ваш собственный счетчик шагов.

Лихорадка - это довольно просто, датчик также показывает температуру. Ремешок, находящийся в контакте с рукой, дает живую температуру пациента. О любых всплесках или падениях будет автоматически сообщено родственникам.

Состояние - сообщает родственникам живое состояние больного. Например, если Health Band обнаруживает незначительные изменения давления, пациент может спать.

У нас есть три состояния:сон, бодрствование и упражнения. (это говорит о том, что мы еще не усовершенствовали эту функцию, поскольку иногда мы получали неправильные «состояния». Мы также планируем добавить больше состояний)

ЦЕПЬ

Мощный датчик Infineon DPS310 можно синхронизировать с приложением через Bluetooth. Приложение генерирует живые визуальные представления датчика. Хотя это было полезно, у него были свои ограничения для нашей концепции.

Итак, чтобы подключиться к потоку данных датчика, мы подключили Arduino Nano через шину I2C. Это позволило нам вычислить данные, что позволило вычесть различные сценарии, в которых находился пациент.

Разобравшись с этим, мы подключили Arduino к WiFi-модулю ESP8266, что дало ему возможность взаимодействовать с мобильным приложением.

НАСТРОЙКА

Перед тем, как все настраивать, вам нужно будет добавить контакты к датчику. Отрежьте два куска из семи контактов и припаяйте их. Вы можете использовать макет, чтобы упростить задачу.

  • Датчик давления DPS310 для Arduino Nano (I2C)

ПРИМЕЧАНИЕ :ориентация датчика такая, как показано на рисунке

Контакт 1 (SDA) на датчике => Аналоговый вывод 4 на Arduino

Контакт 2 (SCL) на датчике => Аналоговый вывод 5 на Arduino

Контакт 8 (GND) на датчике => GND на Arduino

  • От Arduino Nano до ESP8266 (модуль Wi-Fi)

ПРИМЕЧАНИЕ :ориентация модуля такая, как показано на рисунке

Контакт 1 на модуле Wi-Fi => Цифровой контакт 11 на Arduino

Контакт 2 на модуле Wi-Fi => Цифровой контакт 10 на Arduino

Контакт 7 (GND) на модуле WiFi => GND на Arduino

Контакт 8 (питание) на модуле Wi-Fi => 3v3 на Arduino

СОЗДАНИЕ ГРУППЫ

Все мелкие детали аккуратно умещаются на запястье. Чтобы сделать реальную полосу, мы использовали Canvas и пена чтобы встроить компоненты. А затем липучка, чтобы сформировать лямки.

Чтобы сделать ремешок DIY Health, сначала срежьте пену шириной с ладонь. Затем расположите различные датчики и вырежьте их окончательный размер. Скруглите края, чтобы придать ему аккуратный вид. Вдавите штифты в пенопласт (для защиты и захвата) и вставьте аккумулятор в небольшую прорезь.

Теперь переверните ремешок и припаяйте соединения, контакты должны просто торчать ... Сделайте пробный запуск, чтобы убедиться, что все работает.

Добавьте полоски липучки, чтобы сделать ремни. Оберните ленту холстиной и приклейте ее горячим клеем, это придаст аккуратный вид и приятное ощущение!

Поскольку у нас нет 3D-принтера, мы планируем модернизировать этот прототип в будущем с помощью 3D-принтера, на котором будут идеальные слоты для всех компонентов, что придаст эргономичный дизайн нашему Health Band!

*** Мы обновим этот проект, когда напечатаем нашу окончательную 3D-модель, с изображениями и файлами для печати ***

КОДИРОВАНИЕ РАЗЛИЧНЫХ АЛГОРИТМОВ

Прежде чем мы начнем программировать нашу систему, вам нужно будет установить определенные библиотеки, чтобы программа работала. Вам необходимо загрузить следующие библиотеки:

  • Библиотека проводов (Обычно поставляется предварительно установленным, он отвечает за связь между Arduino Nano и датчиком давления DPS310) https://github.com/PaulStoffregen/Wire
  • Библиотека датчиков давления DPS310 https://github.com/Infineon/DPS310-Pressure-Sensor
  • Библиотека Blynk (чтобы Arduino Nano могла взаимодействовать с облаком Blynk) https://github.com/blynkkk/blynk-library

После того, как вы скачали каждую из библиотек, установка для каждой происходит в одном и том же процессе:откройте Arduino IDE . и перейдите к эскизу (верх окна). Затем в раскрывающемся списке нажмите включить библиотеку . . Затем нажмите добавить библиотеку .ZIP . . Теперь перейдите к месту, где вы сохранили загруженные файлы, и нажмите открыть. Повторите процесс для всех трех библиотек.

Теперь вы можете попробовать загрузить пробный код . и проверьте, компилируется ли он. Загрузите его на свой Arduino Nano и убедитесь, что вы получаете данные в реальном времени, открыв монитор последовательного порта . (обозначается значком монитора в правом верхнем углу среды IDE).

Если это сработает, загрузите основной код и приступайте к созданию приложения.

СОЗДАНИЕ ПРИЛОЖЕНИЯ

Для подключения к Интернету мы используем предварительно созданную платформу под названием Blynk, которую можно загрузить в магазине Android Play по ссылке ниже. Существует бесчисленное множество примеров того, как использовать приложение с Arduino, и все они доступны, перейдя в файлы . в Arduino IDE, затем примеры и в списке Blynk .

Ссылка на приложение blynk :https://play.google.com/store/apps/details?id=cc.

Мы использовали приложение для удобного представления данных.

Выберите Arduino Nano . в качестве микроконтроллера и в качестве "типа подключения" Wi-Fi . Затем вы получите электронное письмо с «токеном аутентификации», который вам нужно ввести в код (указанный в коде).

Мы добавили несколько виджетов, таких как Датчик для отображения текущей температуры используется Отображение значений для счетчика шагов и ЖК-дисплея показывая настоящее состояние. Это основные строительные блоки, которые вы можете добавить еще много функций для других конкретных случаев.

ВЫВОДЫ, УСПЕШНЫЕ В ЦЕЛОМ!

В проекте были ошибки и неточности. Во-первых, температура тела. Показания HealthBand составили 36 ° C (температура запястья), в то время как медицинский термометр показал 36,8 ° C (температура подмышек).

Наши алгоритмы для шагов сначала показали неправильный подсчет, но после нескольких попыток модификации он работал довольно точно. Другая проблема была в государственной функции. Мы добавили больше переменных и операторов, чтобы он лучше понимал другие состояния.

В конце концов, мы смогли решить проблемы путем повторной калибровки, и HealthBand успешно собирает необходимые данные. Моя бабушка была без помощника последние две недели, и группа отлично справилась!

На данный момент сообщения о падении или повышении температуры тела не проверялись, так как таких ситуаций не было, но теоретически они работают!

Это отличный проект, и его довольно легко реализовать. Мы надеемся, что эта группа сможет спасти жизни и сохранить стариков в надежных руках!

Код

  • Создание теста данных
  • HealthBand с приложением Blynk
Создание теста данных Arduino
После установки различных библиотек запустите эту программу, чтобы проверить, все ли работает. Вы должны получать поток данных или значений в реальном времени на последовательном мониторе.
 #include  void setup () {Serial.begin (9600); в то время как (! серийный); // Вызов начать инициализацию ifxDps310 // Параметр 0x76 - адрес шины. Адрес по умолчанию - 0x77, указывать его не нужно. //ifxDps310.begin(Wire, 0x76); // Вместо этого используйте прокомментированную строку ниже, чтобы использовать адрес I2C по умолчанию. ifxDps310.begin (Wire); // ВАЖНОЕ ПРИМЕЧАНИЕ // Если вы столкнулись с проблемой, что DPS310 показывает температуру около 60 C, хотя она должна быть около 20 C (комнатная температура), возможно, у вас возникла проблема с IC с битом предохранителя // Вызов следующей функции напрямую после begin () для решения этой проблемы (необходимо вызывать только один раз после запуска) //ifxDps310.correctTemp (); // скорость измерения температуры (значение от 0 до 7) // 2 ^ temp_mr результатов измерения температуры в секунду int temp_mr =2; // частота передискретизации температуры (значение от 0 до 7) // 2 ^ temp_osr внутренних измерений температуры на результат // Более высокое значение увеличивает точность int temp_osr =2; // скорость измерения давления (значение от 0 до 7) // 2 ^ prs_mr результатов измерения давления в секунду int prs_mr =2; // частота передискретизации давления (значение от 0 до 7) // 2 ^ prs_osr измерений внутреннего давления на результат // Более высокое значение увеличивает точность int prs_osr =2; // startMeasureBothCont включает фоновый режим // температура и давление измеряются автоматически // Высокая точность и высокая скорость измерения одновременно недоступны. // Обратитесь к таблице данных (или методом проб и ошибок) для получения дополнительной информации int ret =ifxDps310.startMeasureBothCont (temp_mr, temp_osr, prs_mr, prs_osr); // Вместо этого используйте одну из прокомментированных строк ниже для измерения только температуры или давления // int ret =ifxDps310.startMeasureTempCont (temp_mr, temp_osr); // int ret =ifxDps310.startMeasurePressureCont (prs_mr, prs_osr); if (ret! =0) {Serial.print ("Инициализация FAILED! ret ="); Serial.println (ret); } else {Serial.println ("Инициализация завершена!"); }} void loop () {unsigned char pressureCount =20; long int давление [pressureCount]; беззнаковый символ temperatureCount =20; long int температура [temperatureCount]; // Эта функция записывает результаты непрерывных измерений в массивы, заданные как параметры // Параметры temperatureCount и pressureCount должны содержать размеры массивов:температура и давление при вызове функции // После окончания функции, temperatureCount и pressureCount удерживать количество значений, записанных в массивы // Примечание:Dps310 не может сохранить более 32 результатов. Когда буфер результатов заполнен, новые результаты измерений не сохраняются. Int ret =ifxDps310.getContResults (temperature, temperatureCount, pressure, pressureCount); если (ret! =0) {Serial.println (); Serial.println (); Serial.print ("FAIL! Ret ="); Serial.println (ret); } еще {Serial.println (); Serial.println (); Serial.print (temperatureCount); Serial.println ("найденные значения температуры:"); for (int i =0; i  
HealthBand с приложением Blynk Arduino
Это последняя программа, необходимо вручную ввести несколько переменных и пороговых значений, чтобы полоса работоспособности работала нормально, следите за комментариями и вносите корректировки. Настройте виджеты в приложении Blynk в соответствии с вашими потребностями, и ваш помощник должен ожить!
 #include  #include  #include  #define BLYNK_PRINT Serialchar auth [ ] ="YourAuthToken"; // Ваши учетные данные WiFi .// Установите пароль на "" для открытых сетей. Char ssid [] ="YourNetworkName"; char pass [] ="YourPassword"; const unsigned char pressureLength =50; unsigned char pressureCount =0; long int pressure [pressureLength]; unsigned char temperatureCount =0; const unsigned char temperatureLength =50; long int temperature [temperatureLength]; / * эти пороги будут меняться в зависимости от того, где вы сейчас находитесь, эти значения отлично работали в нашем прибрежный регион, где средняя температура составляла 34 градуса Цельсия * / int pressureFallingThresh =1; int pressureSleepingThresh =4; int tempFeverThresh =39; int pressureJogThresh =5; void setup () {Serial.begin (9600); Blynk.begin (auth, ssid, pass); в то время как (! серийный); ifxDps310.begin (Wire); int ret =ifxDps310.setInterruptPolarity (1); ret =ifxDps310.setInterruptSources (1, 0, 0); // сбросить флаг прерывания путем чтения ifxDps310.getIntStatusFifoFull (); int interruptPin =3; pinMode (interruptPin, INPUT); attachInterrupt (digitalPinToInterrupt (interruptPin), onFifoFull, RISING); // начало непрерывного измерения, как и раньше int temp_mr =3; int temp_osr =2; int prs_mr =1; int prs_osr =3; ret =ifxDps310.startMeasureBothCont (temp_mr, temp_osr, prs_mr, prs_osr); if (ret! =0) {Serial.print ("Инициализация FAILED! ret ="); Serial.println (ret); } else {Serial.println ("Инициализация завершена!"); }} void loop () {Blynk.run (); Serial.println («цикл запущен»); задержка (500); if (pressureCount ==pressureLength &&temperatureCount ==temperatureLength) {// вывод результатов Serial.println (); Serial.println (); Serial.print (temperatureCount); Serial.println ("найденные значения температуры:"); for (int i =0; i  tempFeverThresh) {feverEmail (); } Serial.println («градусы Цельсия»); } Serial.println (); Serial.print (pressureCount); Serial.println ("найденные значения давления:"); for (int i =0; i  

Схема


Производственный процесс

  1. Понимание стандартов безопасности для интеллектуальных устройств
  2. Умные жалюзи
  3. IOT - Smart Jar с использованием ESP8266, Arduino и ультразвукового датчика
  4. Железный человек
  5. Найди меня
  6. Как измерить массу Земли с помощью Arduino
  7. Управление увлажнителем Arduino
  8. Поиск окупаемости умного производства
  9. Программное обеспечение для умного завода:преимущества аппаратно-независимого программного обеспечения
  10. Ручная ленточная пила на все случаи жизни