İçindekiler:
- Adım 1: Kutuyu Değiştirme
- 2. Adım: 3D Basılı Parçalar
- Adım 3: Elektronik
- 4. Adım: Kod
- Adım 5: Son Kurulum
Video: Otomatik İlaç Dağıtıcı: 5 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:16
Bu proje, yaşlı hastaların ilaçlarını porsiyonlara ayırıp dağıtmak için güvenilir bir yola sahip olması gereken tıp alanında kullanım içindir. Bu cihaz, ilaçların 9 gün öncesine kadar porsiyonlanmasına ve istenilen zamanda otomatik olarak verilmesine olanak tanır. Kapak ayrıca RFID etiketi ile kilitlenebilir, bu da ilaca yalnızca bakıcının erişebilmesini sağlar.
Gereçler:
Bu projeyi inşa etmek için gerekli malzemeler var:
- Arduino UNO'su
- Motor Sürücü Modülü
- SG90 9G Servo
- step motor
- DS1302 RTC Modülü
- Çeşitli atlama telleri
- IIC 1602 LCD
- 3D yazıcı erişimi
- Ahşap dübel gibi ayaklar
- RFID Modülü ve Etiketi
- İki buton
- Havya
- ekmek tahtası
- Süper yapıştırıcı
- Tahta çivileri
- Menteşeli Kapaklı Bitmemiş Ahşap Kutu
- Çift taraflı bant
Adım 1: Kutuyu Değiştirme
Önce kutunun değiştirilmesi gerekecek. Delinmesi gereken birden fazla delik var. İlk delik, kontrol paneli kutusunun yazdırıldığı kutunun ön tarafında olacaktır. İkinci delik, USB kablosunun geçmesi için kutunun arkasındadır. Son delik, kutunun alt kısmındadır, burada ilaç verildikten sonra düşer. Son olarak, bacaklar tabana takılmalıdır. Ben evimin çevresinde bulduğum lastik ayakları bacaklar için kullandım ama ahşap dübeller de kullanılabilir.
2. Adım: 3D Basılı Parçalar
Bu proje için gereken birçok 3D baskılı parça var.
Onlar:
- İlaç tutan atlıkarınca
- atlıkarınca için taban
- İlaç için huni
- Kapağı kilitlemek için servo motor kolu
- Servo motor için taban
- Servo kol için mandal
- Kontrol Paneli
- İlacın dağıtılacağı kap
Atlıkarınca tabanı çift taraflı bant ile kutuya yapıştırılmıştır. Servo motor için taban ve kol için mandal, kutuya kısa ahşap vidalarla vidalanmıştır. Kontrol paneli kutusu, bileşenler yerleştirildikten sonra kutunun önüne süper yapıştırıcı ile yapıştırılır.
Adım 3: Elektronik
Elektroniklerin şimdi kutuya yerleştirilmesi gerekiyor. İlk olarak step motor, M3 cıvata ve somunlarla atlıkarınca tabanına takılır. Servo daha sonra tabanına süper yapıştırılır. Ardından motor kontrolörü, Arduino, breadboard, RFID modülü ve RTC modülü çift taraflı bant ile kutuya yapıştırılır. LCD, kontrol kutusundaki deliğe yerleştirilir. Gerekli olan bazı lehimleme var. Basmalı butonlar için jumper kabloları kürek konektörlerine lehimlenmelidir. RFID okuyucu için pinler karta lehimlenmelidir.
4. Adım: Kod
Aşağıda yorumlanan kod:
Servo, LCD, RTC, RFID ve Step motor için kitaplıklar bu koda dahildir.
//////////////// Kitaplıklar ve Değişkenler
#include #include //Arduino standart kütüphanesi #include #include virtuabotixRTC myRTC(2, 3, 4); // Pinleri tanımlayın #define servopin 8 const int buttonup = 6; const int düğme = 7; int sa=0; int min=0; int sel=0; int durum = 0; int durum aşağı=0; int durumsel=0; int bekle = 0; int soyunma = 0; // Servo Servo servoyu ayarla; int açı = 180; #include //1000/0100/0010/0001 mıknatıs ateşleme sırası ile değiştirilmiş step kitaplığı kullanın. Kütüphane klasörünüze kütüphane koyun. #define gearratio 64 //1:64 dişli oranı const int stepPerRevolution = 2048; //Arduino Kit motoru vites küçültüldü. Deneyle, 2048 adımın şaftı bir tur döndürdüğünü belirledim. int adımlar = 0; LiquidCrystal_I2C lcd (0x27, 16, 2); // 8'den 11'e kadar olan pinlerde 4 telli bir step cihazı başlat: Stepper myStepper(stepsPerRevolution, A0, A1, A2, A3); #include #include #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522(SS_PIN, RST_PIN); // MFRC522 örneği oluştur. int derece = 10; geçersiz kurulum() { lcd.init(); // lcd lcd.backlight()'ı başlat; // Bunun altındaki satır geçerli saati ayarlamak için kullanılır. Sadece bir kez yapılmalı ve daha sonra // kodu yorumlanarak tekrar yüklenmelidir. //myRTC.setDS1302Time(40, 55, 11, 1, 7, 12, 2020); pinMode(buttonup, INPUT_PULLUP); pinMode(düğme, INPUT_PULLUP); Seri.başla(9600); // Seri iletişim başlat SPI.begin(); // SPI veri yolunu başlat mfrc522. PCD_Init(); // MFRC522 myStepper.setSpeed(0.15*gearratio)'yu başlatın;//motor 1/64 vites küçültülmüş gibi görünüyor, yani hızın 64x ayarlanması gerekiyor. // seri bağlantı noktasını başlat: servo.attach(servopin); } void loop(){ ///////////////// LCD Kodu // Ekranı mevcut saat ve dağıtım süresi ile sürekli günceller. lcd.clear(); myRTC.updateTime(); lcd.setCursor(0, 0); lcd.print("Saat:"); lcd.setCursor(6, 0); lcd.print(myRTC.hours); lcd.print(":"); lcd.print(myRTC.dakikalar); lcd.setCursor(0, 1); lcd.print("Dağıt:"); lcd.setCursor(10, 1); lcd.print(saat); lcd.print(":"); lcd.print(minn); //////////////// Düğme Durumlarını Oku // Dağıtım süresini değiştirmek için düğmelerin durumlarını okur. stateup = digitalRead(düğme); durum aşağı = digitalRead(düğme); gecikme(100); //////////////// Dağıtım Mantığı // Mevcut zaman seçilen dağıtım zamanı ile aynı ise, step motoru çevirin. // Cihaz her 9 seferde bir, tam bir dönüş yapılmasını sağlamak için motor fazladan bir mesafe döner. if (myRTC.hours == sa && myRTC.minutes == minn && adımlar <9){ myStepper.step(227); adımlar = adımlar +1; gecikme(60100); myRTC.updateTime(); } else if (myRTC.hours == sa && myRTC.dakika == minn && adımlar ==9){ myStepper.step(232); adımlar = 0; gecikme(60100); myRTC.updateTime(); //////////////// Dağıtım Zamanının Değiştirilmesi // Hangi düğmeye basıldığına bağlı olarak dağıtım zamanını değiştirin. // Saatler 24'e ve dakikalar 60'a ulaştığında zaman sıfıra döner. } if (durum == LOW && hr<23){ hr=hr+1; gecikme(50); } else if (durum == LOW && hr ==23){ hr=0; gecikme(50); } if (durum aşağı == LOW && minn <59){ minn=minn+1; gecikme(50); } else if (durum aşağı == LOW && minn ==59){ minn=0; gecikme(50); } //////////////// RFID Kodu // RFID etiketi sunulduğunda okur. if (! mfrc522. PICC_IsNewCardPresent()) { dönüş; } // Kartlardan birini seçin if (! mfrc522. PICC_ReadCardSerial()) { return; } Dizi içeriği= ""; bayt harfi; for (byte i = 0; i < mfrc522.uid.size; i++) { //Serial.println(mfrc522.uid.uidByte < 0x10 ? " 0": " "); //Serial.println(mfrc522.uid.uidByte, HEX); content.concat(String(mfrc522.uid.uidByte < 0x10 ? " 0": " ")); content.concat(String(mfrc522.uid.uidByte, HEX)); dolap = 1; } content.toUpperCase(); ///////////////// KİLİT KODU // Doğru RFID etiketi okunduğunda, servo kapalıyken açık konuma, // kapalıyken servoyu kapalı konuma getirin açık. while (locker == 1){ if (content.substring(1) == "3B 21 D6 22"){ //erişim vermek istediğiniz kartın/kartların UID'sini buradan değiştirin { geçiş (derece){ durum 180: servo.write(derece); derece = 10; dolap = 0; Serial.print("hareketli"); gecikme(1000); kırmak; durum 10: servo.write(derece); derece = 180; dolap=0; gecikme(1000); kırmak; } } } else { Serial.println(" Erişim reddedildi"); gecikme(1000); } } }
Adım 5: Son Kurulum
Son adım, projeyi kullanıma hazırlamaktır. Geçerli saati RTC'ye yüklemek için önce kodu zaman ayar satırı yorumsuz olarak yükleyin. Ardından kodu yorumlayın ve kodu yeniden yükleyin. Bu, cihazın fişi takılı değilse bile doğru zamanı korumasını sağlayacaktır. Şimdi tek yapmanız gereken ilacı yuvalara yerleştirmek, bardağı dağıtım deliğinin altına yerleştirmek ve bir dağıtım süresi ayarlamak. Cihaz her gün aynı saatte güvenilir bir şekilde dağıtım yapacaktır.
Önerilen:
Otomatik Kart Dağıtıcı: 7 Adım
Otomatik Kart Dağıtıcı: Kart oyunu oynamayı sevdiğim için ilk projem olarak bir akıllı kart dağıtıcısı seçtim. En sevmediğim şey kart dağıtmak. Her oyun için her kişinin kaç kart aldığını hatırlamanız gerekir. Bir şey bildiğinizde bu kafa karıştırıcı olur
İlaç Makinesi Almayı Bana Hatırlat: 5 Adım
Bana İlaç Almayı Hatırlat Makinası: Bu size ilaç almanızı hatırlatabilecek bir makinadır. İnsanlar genellikle dışarı çıkmadan önce veya yatmadan önce ilaç almayı unuturlar. Makinenin yanından geçtiğinizde bir ilaç düşürecek, bu yüzden her zaman geçtiğiniz yere, örneğin yatağın yanına koyun
Otomatik Hap Dağıtıcı Nasıl Yapılır: 6 Adım
Otomatik Hap Dağıtıcı Nasıl Yapılır: Bu benim Otomatik Hap Dağıtıcım. Bunu okulumda bir proje için yaptım. Bunu yapmamın nedeni, erkek arkadaşımın büyükannesinin çok fazla hap almasıydı ve o sırada hangisini alması gerektiğini bilmesi onun için çok zordu
Otomatik Hap Dağıtıcı: 10 Adım (Resimlerle)
Otomatik Hap Dağıtıcı: Brüksel Mühendislik Fakültesi'nde (kısaca "Bruface") Elektro-mekanik mühendisliğinin ilk Yüksek Lisans öğrencileriyiz. Bu, Brüksel'in merkezinde bulunan iki üniversitenin bir girişimidir: Université Libre de Bruxelles (UL
Otomatik Hap Dağıtıcı: Arjan West Projesi: 7 Adım (Resimlerle)
Otomatik Hap Dağıtıcı: Arjan West Projesi: Merhaba, bu talimatta, kullanıcının ne zaman hap alması gerektiğini ve hangi hapı alması gerektiğini bilmesini sağlayan bir hap kutusu yapmanıza yardımcı olacağım. Bu vaka, kişiyi hap alma zamanı geldiğinde uyaran bir piezzobuzzer ve 12 led ile gelecek