Përmbajtje:

Shpërndarës automatik i ilaçeve: 5 hapa
Shpërndarës automatik i ilaçeve: 5 hapa

Video: Shpërndarës automatik i ilaçeve: 5 hapa

Video: Shpërndarës automatik i ilaçeve: 5 hapa
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Korrik
Anonim
Shpërndarës automatik i ilaçeve
Shpërndarës automatik i ilaçeve

Ky projekt është për përdorim në fushën mjekësore, ku pacientët e moshuar duhet të kenë një mënyrë të besueshme për të marrë pjesë dhe shpërndarë ilaçe. Kjo pajisje lejon që ilaçet të ndahen deri në 9 ditë më parë dhe të shpërndahen automatikisht në kohën e dëshiruar. Kapaku është gjithashtu i kyçur me etiketën RFID, duke u siguruar që vetëm kujdestari të ketë qasje në ilaçe.

Furnizimet:

Ekzistojnë materialet e nevojshme për ndërtimin e këtij projekti:

  • Arduino UNO
  • Moduli i drejtuesit të motorit
  • SG90 9G Servo
  • Stepper Motor
  • DS1302 Moduli RTC
  • Tela të ndryshëm kërcyes
  • LCD IIC 1602
  • Qasje në printerin 3D
  • Këmbë të tilla si dowels prej druri
  • Moduli dhe Etiketa RFID
  • Dy butona shtytës
  • Makine per ngjitjen e metalit
  • Breadboard
  • super ngjites
  • Vida druri
  • Kuti druri e papërfunduar me kapak të varur
  • Shirit i dyanshëm

Hapi 1: Ndryshimi i Kutisë

Ndryshimi i Kutisë
Ndryshimi i Kutisë
Ndryshimi i Kutisë
Ndryshimi i Kutisë
Ndryshimi i Kutisë
Ndryshimi i Kutisë
Ndryshimi i Kutisë
Ndryshimi i Kutisë

Kutia së pari do të duhet të modifikohet. Ka vrima të shumta që duhet të shpohen. Vrima e parë do të jetë në pjesën e përparme të kutisë, ku është shtypur kutia e panelit të kontrollit. Vrima e dytë është në pjesën e pasme të kutisë, për të kaluar kabllon USB. Vrima e fundit është në fund të kutisë, ku ilaçet do të bien pasi të shpërndahen. Së fundi, këmbët duhet të ngjiten në pjesën e poshtme. Kam përdorur këmbë gome që kam gjetur rreth shtëpisë sime për këmbë, por mund të përdoren edhe kunja druri.

Hapi 2: Pjesët e printuara në 3D

Pjesë të printuara 3D
Pjesë të printuara 3D
Pjesë të printuara 3D
Pjesë të printuara 3D
Pjesë të printuara 3D
Pjesë të printuara 3D

Ka shumë pjesë të printuara 3D të nevojshme për këtë projekt.

Ata janë:

  • Karuseli që mban ilaçe
  • Bazë për karusel
  • Gyp për ilaçet
  • Krah për motor servo për të bllokuar kapakun
  • Baza për servo motorin
  • Shul për krahun servo
  • Paneli i kontrollit
  • Kupa për ilaçet që do të shpërndahen

Baza për karuselin është ngjitur në kutinë me shirit të dyanshëm. Baza për motorin servo dhe shulja për krahun janë të dyja të dehur në kuti me vida të shkurtra druri. Kutia e panelit të kontrollit është ngjitur në pjesën e përparme të kutisë me super zam, pasi të jenë futur përbërësit.

Hapi 3: Elektronikë

Elektronikë
Elektronikë

Elektronika tani duhet të vendoset në kuti. Së pari, motori stepper është ngjitur në bazën e karuselit me bulona dhe arra M3. Servo pastaj ngjitet super në bazën e tij. Pastaj, kontrolluesi i motorit, Arduino, breadboard, moduli RFID dhe moduli RTC janë bashkangjitur të gjithë në kuti me shirit të dyanshëm. LCD -ja futet në vrimën në kutinë e kontrollit. Ka disa saldime që kërkohen. Për butonat e shtytjes, kabllot e kërcyesit duhet të ngjiten në lidhësit me lopatë. Për lexuesin RFID, kunjat duhet të ngjiten në tabelë.

Hapi 4: Kodi

Më poshtë është kodi i komentuar:

Bibliotekat për motorët Servo, LCD, RTC, RFID dhe Stepper përfshihen në këtë kod.

////////////////// Bibliotekat dhe Variablat

#përfshi #përfshi // bibliotekën standarde Arduino #përfshi #përfshi virtuabotixRTC myRTC (2, 3, 4); // Përcaktoni kunjat #përcaktoni servopin 8 const int buttonup = 6; const int buttondown = 7; int hr = 0; int min = 0; int sel = 0; int stateup = 0; int deklaruar = 0; int statezel = 0; int pres = 0; int dollap me kyç = 0; // Konfiguro servo Servo servo; kënd int = 180; #includ // përdorni bibliotekën stepper të modifikuar me sekuencën e shkrepjes magnetike 1000/0100/0010/0001. Vendosni bibliotekën në dosjen tuaj të bibliotekës. #përcaktoni gearratio 64 // 1: 64 raporti i ingranazheve const int stepsPerRevolution = 2048; // motori Arduino Kit është drejtuar poshtë. Nga eksperimenti përcaktova se 2048 hapa e kthejnë boshtin një raund. hapa int = 0; LiquidCrystal_I2C LCD (0x27, 16, 2); // vendosni një hap me 4 tela në kunjat 8 deri në 11: Stepper myStepper (hapatPerRevolution, A0, A1, A2, A3); #përfshi #përfshi #përcakto SS_PIN 10 #përcakto RST_PIN 9 MFRC522 mfrc522 (SS_PIN, RST_PIN); // Krijo shembullin MFRC522. int deg = 10; void setup () {lcd.init (); // inicializoni lcd lcd.lightlight (); // Linja më poshtë përdoret për të vendosur kohën aktuale. Duhet të bëhet vetëm një herë, dhe më pas kodi // duhet të ngarkohet përsëri me të komentuar. //myRTC.setDS1302Koha (40, 55, 11, 1, 7, 12, 2020); pinMode (buton, INPUT_PULLUP); pinMode (prapa qytetit, INPUT_PULLUP); Serial.filloj (9600); // Filloni një komunikim serik SPI.filloni (); // Filloni autobusin SPI mfrc522. PCD_Init (); // Iniconi MFRC522 myStepper.setSpeed (0.15*gearratio); // motori duket se është drejtuar poshtë 1/64, që do të thotë se shpejtësia duhet të vendoset 64x. // inicializoni portin serik: servo.attach (servopin); } void loop () {///////////////// Kodi LCD // Përditëson vazhdimisht ekranin me kohën aktuale dhe kohën e shpërndarjes. lcd.qartë (); myRTC.updateTime (); lcd.setCursor (0, 0); lcd.print ("Koha:"); lcd.setCursor (6, 0); lcd.print (orët e miRTC); lcd.print (":"); lcd.print (myRTC.minuta); lcd.setCursor (0, 1); lcd.print ("Dispense:"); lcd.setCursor (10, 1); lcd.print (orë); lcd.print (":"); lcd.print (minn); ////////////////// Gjendja e butonit të leximit // Lexon gjendjet e butonave për të ndryshuar kohën e shpërndarjes. statusup = digitalRead (buton); deklaruar = digitalRead (prapa qytetit); vonesë (100); ////////////////// Logicing Logic // Nëse koha aktuale është e njëjtë me kohën e zgjedhur të shpërndarjes, ktheni motorin hapës. // Çdo 9 herë që pajisja shpërndahet, motori kthen një distancë shtesë për të siguruar një rrotullim të plotë. nëse (myRTC.hours == hr && myRTC.minutes == min && hapa <9) {myStepper.step (227); hapa = hapa +1; vonesë (60100); myRTC.updateTime (); } tjetër nëse (myRTC.hours == orë && myRTC.minutes == min && hapa == 9) {myStepper.step (232); hapa = 0; vonesë (60100); myRTC.updateTime (); ////////////////// Ndryshimi i kohës së shpërndarjes // Ndryshoni kohën e shpërndarjes në bazë të cilës buton shtypet. // Koha kthehet në zero kur orët arrijnë në 24 dhe minutat në 60.} nëse (gjendja == LOW && hr <23) {hr = hr+1; vonesë (50); } tjetër nëse (gjendja == LOW && hr == 23) {hr = 0; vonesë (50); } nëse (e deklaruar == LOW && minn <59) {minn = min+1; vonesë (50); } tjetër nëse (e deklaruar == LOW && minn == 59) {minn = 0; vonesë (50); } ///////////////// Kodi RFID // Lexon etiketën RFID kur paraqitet. nëse (! mfrc522. PICC_IsNewCardPresent ()) {kthim; } // Zgjidhni një nga kartat nëse (! Mfrc522. PICC_ReadCardSerial ()) {kthehet; } Përmbajtja e vargut = ""; letër byte; për (byte i = 0; i <mfrc522.uid.size; i ++) {//Serial.println(mfrc522.uid.uidByte unitedii] <0x10? "0": ""); //Serial.println(mfrc522.uid.uidByte sharedii], HEX); content.concat (String (mfrc522.uid.uidByte <0x10? "0": "")); content.concat (String (mfrc522.uid.uidByte , HEX)); dollap me kyç = 1; } content.toUpperCase (); ///////////////// LOCK CODE // Kur lexohet etiketa e saktë RFID, zhvendoseni servo në pozicionin e hapur kur është e mbyllur, // dhe zhvendoseni servo në pozicionin e mbyllur kur është hapur. ndërsa (dollap me kyç == 1) {if (content.substring (1) == "3B 21 D6 22") {// ndryshoni këtu UID -in e kartës/kartave ku dëshironi të jepni akses {switch (deg) {case 180: servo.write (deg); deg = 10; dollap me kyç = 0; Serial.print ("lëviz"); vonesa (1000); pushim; rasti 10: servo.write (deg); deg = 180; dollap me kyç = 0; vonesa (1000); pushim; }}} else {Serial.println ("Qasja u refuzua"); vonesa (1000); }}}

Hapi 5: Konfigurimi përfundimtar

Hapi i fundit është përgatitja e projektit për përdorim. Së pari ngarkoni kodin me vijën e cilësimit të kohës pa u komentuar, për të ngarkuar kohën aktuale në RTC. Pastaj komentoni kodin dhe ngarkoni përsëri kodin. Kjo do të sigurojë që nëse pajisja është shkëputur nga priza, ajo do të ruajë ende kohën e duhur. Tani gjithçka që duhet të bëni është të vendosni ilaçet në fole, të vendosni kupën nën vrimën e shpërndarjes dhe të caktoni një kohë shpërndarjeje. Pajisja do të shpërndahet në mënyrë të besueshme në të njëjtën kohë çdo ditë.

Recommended: