Orodha ya maudhui:

Dispenser ya Dawa Moja kwa Moja: Hatua 5
Dispenser ya Dawa Moja kwa Moja: Hatua 5

Video: Dispenser ya Dawa Moja kwa Moja: Hatua 5

Video: Dispenser ya Dawa Moja kwa Moja: Hatua 5
Video: Madhara ya baadhi ya mbinu za uzazi wa mpango 2024, Julai
Anonim
Dispenser ya Dawa Moja kwa Moja
Dispenser ya Dawa Moja kwa Moja

Mradi huu ni wa kutumiwa katika uwanja wa matibabu, ambapo wagonjwa wazee lazima wawe na njia ya kuaminika ya kupatiwa dawa na kutolewa. Kifaa hiki kinaruhusu dawa kugawanywa hadi siku 9 mapema, na kutolewa moja kwa moja kwa wakati unaotakiwa. Kifuniko pia kinaweza kufungwa na tag ya RFID, kuhakikisha kuwa ni mlezi tu ndiye anayeweza kupata dawa.

Ugavi:

Kuna vifaa vinavyohitajika kujenga mradi huu:

  • Arduino UNO
  • Moduli ya Dereva wa Magari
  • SG90 9G Servo
  • Pikipiki ya Stepper
  • Moduli ya DS1302 RTC
  • Waya kadhaa za kuruka
  • LCD ya IIC 1602
  • Ufikiaji wa printa ya 3D
  • Miguu kama dowels za mbao
  • Moduli ya RFID na Lebo
  • Vifungo mbili vya kushinikiza
  • Chuma cha kulehemu
  • Bodi ya mkate
  • Gundi kubwa
  • Screws kuni
  • Sanduku la Mbao ambalo halijakamilika na Kifuniko cha bawaba
  • Mkanda wa pande mbili

Hatua ya 1: Kubadilisha Sanduku

Kurekebisha Sanduku
Kurekebisha Sanduku
Kurekebisha Sanduku
Kurekebisha Sanduku
Kurekebisha Sanduku
Kurekebisha Sanduku
Kurekebisha Sanduku
Kurekebisha Sanduku

Sanduku itabidi kwanza ibadilishwe. Kuna mashimo mengi ambayo lazima ichimbwe. Shimo la kwanza litakuwa mbele ya sanduku, ambapo sanduku la jopo la kudhibiti linachapishwa. Shimo la pili liko nyuma ya sanduku, kwa kebo ya USB kupita. Shimo la mwisho liko chini ya sanduku, ambapo dawa itaanguka mara moja. Mwishowe, miguu inapaswa kushikamana chini. Nilitumia miguu ya mpira niliyoipata karibu na nyumba yangu kwa miguu, lakini viboreshaji vya mbao pia vinaweza kutumika.

Hatua ya 2: Sehemu zilizochapishwa za 3D

Sehemu zilizochapishwa za 3D
Sehemu zilizochapishwa za 3D
Sehemu zilizochapishwa za 3D
Sehemu zilizochapishwa za 3D
Sehemu zilizochapishwa za 3D
Sehemu zilizochapishwa za 3D

Kuna sehemu nyingi zilizochapishwa za 3D zinazohitajika kwa mradi huu.

Wao ni:

  • Carousel ambayo inashikilia dawa
  • Msingi wa jukwa
  • Funnel ya dawa
  • Silaha kwa motor servo ili kufunga kifuniko
  • Msingi wa servo motor
  • Latch kwa mkono wa servo
  • Jopo kudhibiti
  • Kikombe cha dawa kutolewa

Msingi wa jukwa unazingatiwa kwenye sanduku na mkanda wa pande mbili. Msingi wa injini ya servo na latch ya mkono zote zimepigwa ndani ya sanduku na visu fupi vya kuni. Sanduku la jopo la kudhibiti limetiwa mbele ya sanduku na gundi kubwa, baada ya vifaa kuingizwa.

Hatua ya 3: Elektroniki

Umeme
Umeme

Elektroniki sasa zinahitaji kuwekwa kwenye sanduku. Kwanza, motor ya stepper imeambatishwa kwa msingi wa jukwa na bolts za M3 na karanga. Servo hiyo imewekwa gundi kwa msingi wake. Halafu, mdhibiti wa magari, Arduino, ubao wa mkate, moduli ya RFID, na moduli ya RTC zote zimeunganishwa kwenye sanduku na mkanda wa pande mbili. LCD imeingizwa ndani ya shimo kwenye sanduku la kudhibiti. Kuna soldering ambayo inahitajika. Kwa vifungo vya kushinikiza, nyaya za kuruka lazima ziuzwe kwa viunganisho vya jembe. Kwa msomaji wa RFID, pini lazima ziuzwe kwa bodi.

Hatua ya 4: Kanuni

Chini ni nambari ya maoni:

Maktaba ya Servo, LCD, RTC, RFID, na Stepper motor imejumuishwa katika nambari hii.

////////////////// Maktaba na Vigeuzi

#jumuisha # ikiwa ni pamoja // Maktaba ya kawaida ya Arduino #jumuisha # pamoja na virtuabotixRTC myRTC (2, 3, 4); // Fafanua pini #fafanua servopin 8 const int buttonup = 6; const int buttondown = 7; int hr = 0; int minn = 0; int sel = 0; hali = 0; int definedown = 0; int statesel = 0; subiri = 0; kabati la ndani = 0; // Weka servo servo servo; int angle = 180; # pamoja na // tumia maktaba ya stepper iliyobadilishwa na mlolongo wa kurusha sumaku ya 1000/0100/0010/0001. Weka maktaba kwenye folda yako ya maktaba. #fafanua gearratio 64 // 1: 64 gear ratio const int stepsPreRevolution = 2048; // motor ya Arduino Kit imewekwa chini. Kwa jaribio niliamua kuwa hatua 2048 zinageuza shimoni raundi moja. hatua = 0; LiquidCrystal_I2C LCD (0x27, 16, 2); // simamisha stepper 4-waya kwenye pini 8 hadi 11: Stepper myStepper (stepPerRevolution, A0, A1, A2, A3); # pamoja na #jumuisha #fafanua SS_PIN 10 #fafanua RST_PIN 9 MFRC522 mfrc522 (SS_PIN, RST_PIN); // Unda mfano wa MFRC522. int deg = 10; kuanzisha batili () {lcd.init (); // kuanzisha lcd lcd. taa ya nyuma (); // Mstari chini ya hii hutumiwa kuweka wakati wa sasa. Inapaswa kufanywa mara moja tu, na baadaye nambari // lazima ipakuliwe tena nayo ikitoa maoni. //myRTC.setDS1302 Wakati wa (40, 55, 11, 1, 7, 12, 2020); pinMode (kifungo, INPUT_PULLUP); pinMode (kitako, INPUT_PULLUP); Kuanzia Serial (9600); // Anzisha mawasiliano ya serial SPI. Anza (); // Anzisha basi ya SPI mfrc522. PCD_Init (); // Anzisha MFRC522 myStepper.setSpeed (0.15 * gearratio); // motor inaonekana kuwa imeelekezwa chini 1/64, ikimaanisha kuwa kasi inahitaji kuwekwa 64x. // anzisha bandari ya serial: servo.ambatanisha (servopin); } kitanzi batili () {///////////////// Nambari ya LCD // Inasasisha maonyesho kila wakati na wakati wa sasa na wakati wa kutoa. lcd wazi (); wakati wa Upyaji wa MyRTC (); lcd.setCursor (0, 0); lcd.print ("Wakati:"); lcd.setCursor (6, 0); lcd.print (myRTC.hours); lcd.print (":"); lcd.print (myRTC.minutes); lcd.setCursor (0, 1); lcd.print ("Dispense:"); lcd.setCursor (10, 1); lcd.print (hr); lcd.print (":"); lcd.print (minn); ////////////////// Soma Mataifa ya Vifungo // Inasoma majimbo ya vifungo ili kubadilisha wakati wa kutoa kuanzisha = digitalRead (kifungo); alisema = digitalRead (buttondown); kuchelewesha (100); / / / / / / / / / / / / / / / / // Kila mara 9 kifaa kinasambaza, motor hugeuka umbali wa ziada ili kuhakikisha mzunguko kamili unafanywa. ikiwa (myRTC.hours == hr && myRTC.minutes == minn && hatua <9) {myStepper.step (227); hatua = hatua +1; kuchelewesha (60100); wakati wa Upyaji wa MyRTC (); } vingine ikiwa (myRTC.hours == hr && myRTC.minutes == minn && steps == 9) {myStepper.step (232); hatua = 0; kuchelewesha (60100); wakati wa Upyaji wa MyRTC (); ////////////////// Kubadilisha Wakati wa Kusambaza // Badilisha wakati wa kutoa kulingana na kitufe ambacho kimesisitizwa. // Wakati unarudi sifuri wakati masaa hufikia 24 na dakika hufikia 60.} ikiwa (stateup == LOW && hr <23) {hr = hr + 1; kuchelewesha (50); } vingine ikiwa (stateup == LOW && hr == 23) {hr = 0; kuchelewesha (50); } ikiwa (alisema == LOW && minn <59) {minn = minn + 1; kuchelewesha (50); } mwingine ikiwa (alisema == LOW && minn == 59) {minn = 0; kuchelewesha (50); } ////////////////// RFID Code // Reads RFID tag wakati inawasilishwa. ikiwa (! mfrc522. PICC_IsNewCardPresent ()) {kurudi; } // Chagua moja ya kadi ikiwa (! Mfrc522. PICC_ReadCardSerial ()) {inarudi; } Maudhui ya kamba = ""; barua ya baiti; kwa (byte i = 0; i <mfrc522.uid.size; i ++) {//Serial.println(mfrc522.uid.uidByte <0x10? "0": ""); //Serial.println (mfrc522.uid.uidByte, HEX); maudhui.concat (Kamba (mfrc522.uid.uidByte <0x10? "0": "")); maudhui.concat (Kamba (mfrc522.uid.uidByte , HEX)); kabati = 1; } yaliyomo.toUpperCase (); / fungua. wakati (locker == 1) {if (content.substring (1) == "3B 21 D6 22") {// badilisha hapa UID ya kadi / kadi ambazo unataka kutoa idhini ya {switch (deg) {kesi 180: maandishi ya servo (deg); deg = 10; kabati = 0; Serial.print ("kusonga"); kuchelewesha (1000); kuvunja; kesi ya 10: servo. andika (deg); deg = 180; kabati = 0; kuchelewesha (1000); kuvunja; }}}} mwingine {Serial.println ("Upatikanaji umekataliwa"); kuchelewesha (1000); }}}

Hatua ya 5: Kuweka Mwisho

Hatua ya mwisho ni kuandaa mradi kwa matumizi. Kwanza pakia nambari hiyo na laini ya kuweka wakati isiyo na maoni, kupakia wakati wa sasa kwa RTC. Kisha toa maoni nje, na upakie tena nambari hiyo. Hii itahakikisha kwamba ikiwa kifaa hakijachomwa, bado itahifadhi wakati sahihi. Sasa unachohitajika kufanya ni kuweka dawa kwenye nafasi, kuweka kikombe chini ya shimo la kusambaza, na kuweka wakati wa kutoa. Kifaa hicho kitatoa kwa uaminifu wakati huo huo kila siku.

Ilipendekeza: