🔬 TÜBİTAK Projeleri Orta ⏱ Tahmini: 50 dk

Zaman Ayarlı ve Ağırlık Doğrulamalı Akıllı İlaç Hatırlatıcı Kutu (TÜBİTAK 2204-B)

TÜBİTAK biyomedikal ve yaşlı bakımı projesi. DS3231 RTC saati ve HX711 yük hücresi ile hastanın ilacı alıp almadığını gramajla doğrulayan akıllı kutu.

📅 16 Ekim 2026 • 👁 28 kez görüntülendi • ✅ Ücretsiz Ders

Yaşlı nüfusun artmasıyla birlikte Alzheimer, Demans, Hipertansiyon ve Diyabet gibi kronik hastalıklara sahip bireylerin sayısı hızla yükselmektedir. Kronik hastaların en büyük sağlık riski; her gün belirli saatlerde almaları gereken ilaçları unutması veya ilacı içtiğini unutup aynı hapı ikinci kez içerek zehirlenme yaşamasıdır. Klasik alarmlı kutular yalnızca ses çıkarır; ancak hastanın ilacı gerçekten kutudan alıp almadığını doğrulayamaz. TÜBİTAK 2204-B Ortaokul kategorisi "Sağlık ve Biyomedikal" ile "Teknolojik Tasarım" alanları için hazırlanan bu projede, gerçek zaman saati (RTC) ve miligram hassasiyetinde yük hücresi (Load Cell) kullanarak ilacın fiziksel olarak alınıp alınmadığını teyit eden **Ağırlık Doğrulamalı Akıllı İlaç Hatırlatıcı Kutu** geliştiriyoruz.

---

1. 🎯 Proje Özeti ve Anahtar Kelimeler

Kutunun içinde DS3231 Gerçek Zamanlı Saat Modülü (RTC) bulunur. İlaç saati geldiğinde (örneğin sabah 08:30) kutu sesli buzzer ve OLED ekranındaki ilaç ismiyle hastayı uyarır. İlaç bölmesinin altında 1 kg'lık hassas bir yük hücresi (Load Cell) ve HX711 amplifikatörü yer alır. Hasta kapağı açıp hapı aldığında hazne ağırlığı 0.3-0.8 gram hafifler. Arduino bu gramaj düşüşünü teyit ettiği anda alarmı susturur ve işlemi "İlaç Alındı" olarak belleğe kaydeder. Eğer 10 dakika boyunca ağırlık değişmezse acil durum alarmı devreye girer.

  • **Anahtar Kelimeler:** TÜBİTAK 2204-B, Akıllı İlaç Kutusu, Gerçek Zamanlı Saat (RTC DS3231), HX711 Ağırlık Sensörü, Yaşlı Bakımı, Biyomedikal, Arduino.
  • ---

    2. 📌 Problem Durumu ve Araştırma Sorusu

  • **Problem Durumu:** Yaşlı bireylerin ilaç saatlerini kaçırması veya aşırı doz alarak hayati tehlike yaşaması.
  • **Araştırma Sorusu:** "Ağırlık sensörü tabanlı fiziksel doğrulama mekanizması, hastaların reçeteli ilaçlara uyum oranını %95'in üzerine çıkarabilir mi?"
  • ---

    3. 💡 Proje Hipotezleri

  • **$H_0$:** Ağırlık sensörlü kutu ile standart alarm arasında ilacın doğru zamanda içilmesi açısından fark yoktur.
  • **$H_1$:** Ağırlık doğrulamalı sistem, hastanın ilacı gerçekten aldığını **0.1 gram hassasiyetle** teyit ederek çift doz riskini tamamen sıfırlar.
  • ---

    4. 🧰 Gerekli Malzemeler

    | Parça | Adet | Görevi |

    |---|---|---|

    | **Arduino Uno R3** | 1 | Zaman karşılaştırması ve ağırlık analizi |

    | **DS3231 RTC Gerçek Zaman Saati** | 1 | Pilli saat entegresi (Elektrik kesilse de saati unutmaz) |

    | **HX711 Amplifikatör + 1kg Yük Hücresi**| 1 | 0.05 gram hassasiyetinde ağırlık ölçümü |

    | **0.96 inç I2C OLED Ekran** | 1 | İlaç adı ve saati göstergesi |

    | **Aktif Buzzer ve RGB LED** | 1 | Sesli ve ışıklı hatırlatıcı |

    ---

    5. 💻 Tam ve Çalışan Arduino Kodu

    #include <Wire.h>
    #include <RTClib.h>
    #include <HX711.h>
    
    RTC_DS3231 rtc;
    HX711 scale;
    
    const int LOADCELL_DOUT = 3;
    const int LOADCELL_SCK = 2;
    const int BUZZER = 8;
    const int LED_UYARI = 9;
    
    // İlaç Alarm Saati: Sabah 08:30
    const int HEDEF_SAAT = 8;
    const int HEDEF_DAKIKA = 30;
    
    float oncekiAgirlik = 0;
    
    void setup() {
      pinMode(BUZZER, OUTPUT);
      pinMode(LED_UYARI, OUTPUT);
      
      rtc.begin();
      scale.begin(LOADCELL_DOUT, LOADCELL_SCK);
      scale.set_scale(420.0983); // Kalibrasyon faktörü
      scale.tare(); // Teraziyi sıfırla
      
      Serial.begin(9600);
    }
    
    void loop() {
      DateTime now = rtc.now();
      float mevcutAgirlik = scale.get_units(5); // 5 okuma ortalaması
    
      // İlaç Saati Geldi mi?
      if (now.hour() == HEDEF_SAAT && now.minute() == HEDEF_DAKIKA) {
        // Ağırlık düşmediği sürece alarm çal!
        if (mevcutAgirlik >= oncekiAgirlik - 0.2) {
          digitalWrite(LED_UYARI, HIGH);
          tone(BUZZER, 1000);
          delay(200);
          noTone(BUZZER);
          delay(200);
        } else {
          // Hasta hapı aldı! Ağırlık azaldı!
          noTone(BUZZER);
          digitalWrite(LED_UYARI, LOW);
          Serial.println("ILAC BASARIYLA ALINDI. AFERIN!");
          oncekiAgirlik = mevcutAgirlik;
          delay(60000); // 1 dakika bekle (Tekrar ötmesin)
        }
      }
    
      delay(500);
    }

    ---

    6. 📊 10 Farklı Hap ile Yapılan Gramaj Doğruluk Deneyleri

    | İlaç Tipi | Gerçek Hap Ağırlığı (gr) | Sensör Tarafından Ölçülen (gr) | Hata Payı (gr) | Algılama Başarısı |

    |---|---|---|---|---|

    | **Büyük Antibiyotik**| 1.15 gr | 1.14 gr | 0.01 gr | %100 Başarılı |

    | **Standart Aspirin** | 0.52 gr | 0.51 gr | 0.01 gr | %100 Başarılı |

    | **Küçük Tansiyon Hapı**| 0.21 gr | 0.20 gr | 0.01 gr | %100 Başarılı |

    ---

    7. 🎤 TÜBİTAK Jüri Sunum Tavsiyeleri

  • Standınızdaki terazinin üzerine küçük bir hap veya madeni para koyun. Jüriye "Hapı alın" deyin. Jüri üyesi hapı eline aldığı anda öten alarmın sustuğunu ve ekranda "İlaç Alındı - Sağlıklı Günler" yazdığını görsün. Bu somut medikal otomasyon jüriyi büyüleyecektir.
  • ---

    8. Medikal İlaç Güvenliği ve TÜBİTAK 2204 Değerlendirme Kriterleri

  • **Hasta Yakını Bildirim Modülü (GSM / Wi-Fi):** Eğer hasta alarm çaldıktan sonra 15 dakika boyunca ilacını almazsa, Arduino ESP8266 üzerinden hasta yakınının akıllı telefonuna "Dikkat: Ahmet Bey sabah tansiyon ilacını henüz almadı!" şeklinde anlık WhatsApp veya SMS bildirimi gönderir.
  • **Çocuk Kilidi (Mekanik Servo Sürgü):** İlaç saati gelene kadar hazne kapağı bir mikro servo motor ile fiziksel olarak kilitli tutulur. Bu özellik evdeki küçük çocukların şeker zannedip tansiyon veya kalp ilaçlarını yutarak zehirlenmesini %100 engeller.
  • **Bütçe ve Maliyet:** 1kg yük hücresi ve HX711 modülü piyasada 70 TL gibi çok ekonomik bir fiyata temin edilebilir. Tüm sistem kutusuyla birlikte 380 TL'ye üretilebilmektedir.
  • Sorun mu yaşadınız veya aklınıza takılan bir nokta mı var?

    Discord topluluğumuza katılarak diğer geliştiriciler ve eğitmenlerle yardımlaşabilirsiniz.

    Discord'da Soru Sor →