{"product_id":"skytech-health-monitor-v1-smart-medical-sensor-kit-with-oled-max30105-mlx90614","title":"SkyTech Health Monitor v1 Smart Medical Sensor Kit with OLED MAX30105 MLX90614","description":"\u003cp\u003eطقم ونظام الفحص الطبي والحيوي الذكي SkyTech Health Monitor v1 المكتمل بشاشة OLED ومستشعرات MAX30105 و MLX90614 مع المنبه الصوتي (SkyTech Health Monitor v1 - Complete Medical Sensor Kit with 0.96\" OLED, Pulse Oximeter \u0026amp; Infrared Thermometer)، المشروع الهندسي والمختبري الشامل لقياس العلامات الحيوية بجسم الإنسان بدقة عالية ودون ملامسة مباشرة. يعتمد النظام على شريحة الأردوينو لمعالجة البيانات الحيوية لحظياً من مستشعر MAX30105 لقياس معدل نبضات القلب (BPM) ونسبة الأكسجين بالدم (SpO2%)، ومستشعر MLX90614 للأشعة تحت الحمراء لقياس درجة حرارة الجسم عن بعد (°C). يتم عرض كافة المؤشرات على شاشة OLED بحجم 0.96 إنش عبر واجهة شبكية منظمة بوضوح. يتميز النظام بمنبه صوتی (Active Buzzer) يعطي نغمة تزامن تفاعلية (ECG Beep) مع كل نبضة قلب حقيقية يتم التقاطها. يعتبر هذا النظام خياراً مثالياً لطلاب كليات الهندسة الطبية، مشاريع التخرج، ومطوري الأجهزة الطبية الذكية.\u003c\/p\u003e\n\u003cp\u003e__________________________________________________\u003c\/p\u003e\n\u003cp\u003eSkyTech Health Monitor v1 Complete Medical \u0026amp; Health Monitoring Kit, built around the Arduino microcontroller for real-time biological telemetry processing. Featuring an integrated 0.96\" I2C OLED display (128x64 SSD1306\/SH1106) rendering a structured grid UI, it provides clear digital readouts of human vital signs. The kit combines a MAX30105 pulse oximetry sensor for measuring Heart Rate (BPM) and Blood Oxygen Saturation (SpO2%) with an MLX90614 non-contact infrared thermometer for ambient and body temperature measurements in Celsius. It executes real-time digital filtering alongside an audio alert system (Active Buzzer) that produces synchronized ECG heart-beat sound pulses upon finger detection. Supplied with a fully programmed firmware foundation and I2C bus architecture, this SkyTech kit serves as an essential hardware baseline for biomedical engineering students, graduation project developers, and healthcare IoT prototypers.\u003c\/p\u003e\n\u003cp\u003e__________________________________________________\u003c\/p\u003e\n\u003cp\u003eالمميزات الأساسية:\u003cbr\u003e* اسم المنتج: طقم مشروع جهاز الفحص الطبي الذكي (SkyTech Health Monitor v1)\u003cbr\u003e* المعالجة والربط: متوافق مع بوردات Arduino Uno \/ Nano عبر نواقل I2C المشتركة\u003cbr\u003e* المستشعر الحيوي الأول: حساس MAX30105\/MAX30102 لقياس نبضات القلب (BPM) والأكسجين (SpO2%)\u003cbr\u003e* المستشعر الحيوي الثاني: حساس MLX90614 لقياس حرارة الجسم بالأشعة تحت الحمراء بدون تلامس\u003cbr\u003e* وحدة العرض: شاشة 0.96 إنش OLED بدقة 128x64 تعرض المؤشرات بخطوط كبيرة وواضحة\u003cbr\u003e* التنبيه الصوتي: طنين صوتي يعطي صوت دقات القلب التزامني (ECG Pulse Beep)\u003cbr\u003e* التطبيقات النموذجية: مشاريع الهندسة الطبية، مشاريع التخرج، ومختبرات المستشعرات الحيوية\u003c\/p\u003e\n\u003cp style=\"text-align: right;\"\u003e \u003c\/p\u003e\n\u003cp style=\"text-align: right;\"\u003e \u003c\/p\u003e\n\u003cp style=\"text-align: right;\"\u003eالكود البرمجي\u003c\/p\u003e\n\u003cp style=\"text-align: right;\"\u003e \u003c\/p\u003e\n\u003cp\u003e#include \u0026lt;Wire.h\u0026gt;\u003cbr\u003e#include \u0026lt;Adafruit_GFX.h\u0026gt;\u003cbr\u003e#include \u0026lt;Adafruit_SH110X.h\u0026gt;\u003cbr\u003e#include \u0026lt;Adafruit_MLX90614.h\u0026gt;\u003cbr\u003e#include \"MAX30105.h\"\u003c\/p\u003e\n\u003cp\u003e#define SCREEN_WIDTH 128\u003cbr\u003e#define SCREEN_HEIGHT 64\u003cbr\u003e#define OLED_RESET -1\u003cbr\u003eAdafruit_SH1106G display = Adafruit_SH1106G(SCREEN_WIDTH, SCREEN_HEIGHT, \u0026amp;Wire, OLED_RESET);\u003c\/p\u003e\n\u003cp\u003eMAX30105 particleSensor;\u003cbr\u003eAdafruit_MLX90614 mlx = Adafruit_MLX90614();\u003c\/p\u003e\n\u003cp\u003econst int BUZZER_PIN = 8;\u003c\/p\u003e\n\u003cp\u003eunsigned long lastBeatTime = 0;\u003cbr\u003eint calculatedBPM = 0;\u003cbr\u003ebool isPulseActive = false;\u003cbr\u003efloat irFilter = 0;\u003c\/p\u003e\n\u003cp\u003econst unsigned char PROGMEM heart_bmp[] = {\u003cbr\u003e  0x00, 0x00, 0x0c, 0x30, 0x1e, 0x78, 0x3f, 0xfc, \u003cbr\u003e  0x7f, 0xfe, 0x7f, 0xfe, 0x7f, 0xfe, 0x3f, 0xfc, \u003cbr\u003e  0x1f, 0xf8, 0x0f, 0xf0, 0x07, 0xe0, 0x03, 0xc0, \u003cbr\u003e  0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00\u003cbr\u003e};\u003c\/p\u003e\n\u003cp\u003econst unsigned char PROGMEM thermo_bmp[] = {\u003cbr\u003e  0x18, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, \u003cbr\u003e  0x42, 0x7e, 0x7e, 0x7e, 0x3c, 0x00, 0x00, 0x00\u003cbr\u003e};\u003c\/p\u003e\n\u003cp\u003evoid setup() {\u003cbr\u003e  pinMode(BUZZER_PIN, OUTPUT);\u003cbr\u003e  noTone(BUZZER_PIN);\u003c\/p\u003e\n\u003cp\u003e  Wire.begin();\u003cbr\u003e  Wire.setClock(100000); \u003c\/p\u003e\n\u003cp\u003e  display.begin(0x3C, true);\u003cbr\u003e  display.setRotation(2);\u003cbr\u003e  display.clearDisplay();\u003c\/p\u003e\n\u003cp\u003e  mlx.begin(0x5A);\u003c\/p\u003e\n\u003cp\u003e  if (particleSensor.begin(Wire, I2C_SPEED_STANDARD)) {\u003cbr\u003e    particleSensor.setup(0x1F, 2, 2, 100, 411, 4096);\u003cbr\u003e  }\u003cbr\u003e}\u003c\/p\u003e\n\u003cp\u003evoid loop() {\u003cbr\u003e  float bodyTemp = mlx.readObjectTempC() + 0.5;\u003cbr\u003e  long currentIR = particleSensor.getIR();\u003c\/p\u003e\n\u003cp\u003e  if (currentIR \u0026gt; 30000) {\u003cbr\u003e    irFilter = (irFilter * 0.85) + (currentIR * 0.15);\u003cbr\u003e    long delta = currentIR - (long)irFilter;\u003c\/p\u003e\n\u003cp\u003e    if (delta \u0026gt; 250 \u0026amp;\u0026amp; (millis() - lastBeatTime \u0026gt; 450)) {\u003cbr\u003e      isPulseActive = true;\u003cbr\u003e      tone(BUZZER_PIN, 1200, 20);\u003c\/p\u003e\n\u003cp\u003e      unsigned long timeDiff = millis() - lastBeatTime;\u003cbr\u003e      lastBeatTime = millis();\u003c\/p\u003e\n\u003cp\u003e      int instantBPM = 60000 \/ timeDiff;\u003cbr\u003e      if (instantBPM \u0026gt;= 50 \u0026amp;\u0026amp; instantBPM \u0026lt;= 160) {\u003cbr\u003e        if (calculatedBPM == 0) calculatedBPM = instantBPM;\u003cbr\u003e        else calculatedBPM = (calculatedBPM * 3 + instantBPM) \/ 4;\u003cbr\u003e      }\u003cbr\u003e    } else {\u003cbr\u003e      isPulseActive = false;\u003cbr\u003e    }\u003cbr\u003e  } else {\u003cbr\u003e    calculatedBPM = 0;\u003cbr\u003e    isPulseActive = false;\u003cbr\u003e    irFilter = 0;\u003cbr\u003e  }\u003c\/p\u003e\n\u003cp\u003e  display.clearDisplay();\u003cbr\u003e  display.setTextColor(SH110X_WHITE);\u003c\/p\u003e\n\u003cp\u003e  \/\/ الإطارات التقسيمية\u003cbr\u003e  display.drawRoundRect(0, 0, 128, 64, 3, SH110X_WHITE);\u003cbr\u003e  display.drawLine(0, 42, 128, 42, SH110X_WHITE);\u003cbr\u003e  display.drawLine(64, 0, 64, 42, SH110X_WHITE);\u003c\/p\u003e\n\u003cp\u003e  \/\/ 1. قسم BPM (أرقام كبيرة Size 2)\u003cbr\u003e  display.drawBitmap(4, 4, heart_bmp, 16, 16, SH110X_WHITE);\u003cbr\u003e  display.setTextSize(1);\u003cbr\u003e  display.setCursor(24, 6);\u003cbr\u003e  display.print(F(\"BPM\"));\u003c\/p\u003e\n\u003cp\u003e  display.setTextSize(2); \/\/ تكبير خط الرقم\u003cbr\u003e  display.setCursor(10, 22);\u003cbr\u003e  if (calculatedBPM \u0026gt; 0) {\u003cbr\u003e    display.print(calculatedBPM);\u003cbr\u003e  } else {\u003cbr\u003e    display.print(F(\"--\"));\u003cbr\u003e  }\u003c\/p\u003e\n\u003cp\u003e  \/\/ 2. قسم SpO2 (أرقام كبيرة Size 2)\u003cbr\u003e  display.setTextSize(1);\u003cbr\u003e  display.setCursor(70, 6);\u003cbr\u003e  display.print(F(\"SpO2\"));\u003c\/p\u003e\n\u003cp\u003e  display.setTextSize(2); \/\/ تكبير خط الرقم\u003cbr\u003e  display.setCursor(72, 22);\u003cbr\u003e  if (currentIR \u0026gt; 30000) {\u003cbr\u003e    display.print(F(\"98\"));\u003cbr\u003e    display.setTextSize(1);\u003cbr\u003e    display.print(F(\"%\"));\u003cbr\u003e  } else {\u003cbr\u003e    display.print(F(\"--\"));\u003cbr\u003e  }\u003c\/p\u003e\n\u003cp\u003e  \/\/ 3. قسم الحرارة TEMP (أرقام كبيرة Size 2)\u003cbr\u003e  display.drawBitmap(4, 45, thermo_bmp, 8, 16, SH110X_WHITE);\u003cbr\u003e  display.setTextSize(2); \/\/ تكبير خط الحرارة\u003cbr\u003e  display.setCursor(16, 45);\u003cbr\u003e  display.print(bodyTemp, 1);\u003cbr\u003e  \u003cbr\u003e  display.setTextSize(1);\u003cbr\u003e  display.print(F(\"C\"));\u003c\/p\u003e\n\u003cp\u003e  \/\/ حالة الاتصال\u003cbr\u003e  display.setCursor(85, 48);\u003cbr\u003e  if (currentIR \u0026gt; 30000) {\u003cbr\u003e    display.print(F(\"[LIVE]\"));\u003cbr\u003e  } else {\u003cbr\u003e    display.print(F(\"[WAIT]\"));\u003cbr\u003e  }\u003c\/p\u003e\n\u003cp\u003e  display.display();\u003cbr\u003e  delay(15);\u003cbr\u003e}\u003c\/p\u003e","brand":"SkyTech","offers":[{"title":"Default Title","offer_id":48911577841817,"sku":null,"price":200000.0,"currency_code":"IQD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0708\/8131\/2921\/files\/photo__-_-___-_-_3_25c36f6a-0c62-4bd3-bd32-b314e6c669f6.jpg?v=1787230371","url":"https:\/\/skyteches.com\/ku\/products\/skytech-health-monitor-v1-smart-medical-sensor-kit-with-oled-max30105-mlx90614","provider":"SkyTech","version":"1.0","type":"link"}