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

Система удалённого мониторинга пациентов COVID-19 на LoRa (The Things Network)

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

The Things Uno (LoRa-борда, совместима с Arduino)1 шт.
The Things Gateway (LoRa-шлюз)1 шт.
MAXREFDES117# (Maxim Integrated — пульс/SpO2)1 шт.
Grove Temperature Sensor1 шт.
Перемычки1 набор
Кнопка DFRobot Gravity (жёлтая)1 шт.
Вибрация SW-420 (Grove)1 шт.
Зуммер1 шт.
LED1 шт.
Grove BME680 (T/H/P/Gas)1 шт.

Инструменты

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

О проекте

Суть

Интеллектуальная система мониторинга для пациентов COVID-19. Датчики собирают биометрию → The Things Uno (LoRa) → The Things Gateway → AWS IoT Cloud. Автоматический анализ на границе (edge) определяет критические состояния → push-уведомления врачам/медсестрам и ответственным за отделение. Родичи — ограниченный доступ. Врачи не обязаны физически посещать палату.

Датчики и параметры

Алгоритм экстренного состояния (Уравнение I)

Критическое состояние = комбинация порогов по пульсу, SpO2, температуре, движению. Пороговые значения в Таблице 1 (см. статью). Обработка на The Things Uno перед отправкой в облако.

Приложения

Заключение

Система повышает эффективность и качество обслуживания в реанимации. Перспектива — носимый вариант для мониторинга пожилых/младенцев удалённо.

Ссылка

Uddin, M. S., Alam, J. B., & Banu, S. (2017). Real time patient monitoring system based on internet of things. ICAEE 2017. DOI: 10.1109/ICAEE.2017.8255410

Код (Arduino / The Things Uno)

#include 
#include 
#include 
#include 
#include 

const char *appEui = "0000000000000000";
const char *appKey = "00000000000000000000000000000000";
#define loraSerial Serial1
#define debugSerial Serial
#define freqPlan REPLACE_ME  // TTN_FP_EU868 или TTN_FP_US915

int bpm, spo2; float temp, humidity; int movement, button, h_rate;
Adafruit_BME280 bme;
unsigned long currentMillis;
#define REPORTING_PERIOD_MS 1000
PulseOximeter pox;
uint32_t tsLastReport = 0;

void onBeatDetected() { /* Serial.println("Beat!"); */ }

void measured_pulse() {
  pox.update();
  if (millis() - tsLastReport > REPORTING_PERIOD_MS) {
    bpm = pox.getHeartRate();
    tsLastReport = millis();
  }
}

TheThingsNetwork ttn(loraSerial, debugSerial, freqPlan);

void setup() {
  loraSerial.begin(57600);
  debugSerial.begin(9600);
  while (!debugSerial && millis() < 10000);
  debugSerial.println("-- STATUS"); ttn.showStatus();
  debugSerial.println("-- JOIN"); ttn.join(appEui, appKey);
  Serial.println("BME280 test");
  Serial.println("Initializing MAX30100");
  pox.begin(); pox.setOnBeatDetectedCallback(onBeatDetected);
  bool status = bme.begin();
  if (!status) { Serial.println("Could not find a valid BME280 sensor, check wiring!"); while(1); }
  pinMode(7, OUTPUT); pinMode(A0, INPUT); pinMode(8, INPUT); pinMode(6, INPUT);
}

void loop() {
  debugSerial.println("-- LOOP");
  h_rate = analogRead(A0);
  button = digitalRead(8);
  temp = pox.getTemperature();  // Примечание: MAX30100 даёт температуру чипа, не тела. Для тела нужен отдельный датчик.
  spo2 = pox.getSpO2();
  bpm = bpm;
  humidity = bme.readHumidity();
  movement = digitalRead(6);

  byte payload[7];
  payload[0] = highByte(bpm);
  payload[1] = lowByte((int)(temp*100));  // передаём *100 для точности
  payload[2] = highByte((int)(humidity*100));
  payload[3] = lowByte(movement);
  payload[4] = lowByte(spo2);
  payload[5] = lowByte(button);
  payload[6] = lowByte(h_rate);

  debugSerial.print("Temp: "); debugSerial.println(temp);
  debugSerial.print("Hum: "); debugSerial.println(humidity);
  debugSerial.print("BPM: "); debugSerial.println(bpm);
  debugSerial.print("SpO2: "); debugSerial.println(spo2);
  debugSerial.print("H_rate: "); debugSerial.println(h_rate);
  debugSerial.print("Btn: "); debugSerial.println(button);
  debugSerial.print("Mov: "); debugSerial.println(movement);

  ttn.sendBytes(payload, sizeof(payload));
  delay(20000);  // отправка каждые 20 сек
}

Схемы

Схема подключения всех датчиков к The Things Uno (I2C для MAX30100 и BME680, аналоговые/цифровые пины для остальных).

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

  1. Мастерство управления IoT: Преодоление вызовов связности и полосы пропускания в 2024 году
  2. Eclipse Hono запускает MongoDB-based Device Registry — масштабируемый, production-ready
  3. Безопасная аутентификация устройств с X.509 сертификатами в Eclipse Hono
  4. Отслеживание достижений в технологии медицинских устройств
  5. Система управления температурой на базе LM35 с микроконтроллером AT89S52
  6. Мониторинг Интернета вещей: Обеспечение безопасных, надежных IoT-сетей
  7. Почему масштаб движит прибыльностью в сетях NB-IoT и LoRa
  8. Сотовая связь двигает будущее телемедицины
  9. 5 ключевых шагов к освоению Account-Based Marketing
  10. Ключевые соображения для разработки успешных медицинских устройств