Բովանդակություն:
- Քայլ 1. Տուփի փոփոխում
- Քայլ 2: 3D տպագիր մասեր
- Քայլ 3: Էլեկտրոնիկա
- Քայլ 4: Կոդ
- Քայլ 5: Վերջնական կարգավորում
Video: Ավտոմատ դեղորայքի դիսպենսեր `5 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:45
Այս նախագիծը նախատեսված է բժշկական ոլորտում օգտագործելու համար, որտեղ տարեց հիվանդները պետք է ունենան հուսալի միջոց ՝ դեղորայքը բաժանել և տրամադրել: Այս սարքը թույլ է տալիս դեղորայքը բաժանել մինչև 9 օր առաջ և ինքնաբերաբար տրամադրել ցանկալի պահին: Կափարիչը կողպվում է նաև RFID պիտակով ՝ համոզվելով, որ միայն խնամողը կարող է մուտք գործել դեղորայք:
Պարագաներ:
Այս նախագծի կառուցման համար անհրաժեշտ նյութեր կան.
- Arduino UNO
- Շարժիչային վարորդի մոդուլ
- SG90 9G Servo
- Stepper Motor
- DS1302 RTC մոդուլ
- Տարբեր ցատկող լարեր
- IIC 1602 LCD
- 3D տպիչի հասանելիություն
- Ոտքեր, ինչպիսիք են փայտե dowels
- RFID մոդուլ և պիտակ
- Երկու սեղմիչ
- Sոդման երկաթ
- Breadboard
- Սուպեր սոսինձ
- Փայտե պտուտակներ
- Անավարտ փայտե տուփ կախովի կափարիչով
- Երկկողմանի ժապավեն
Քայլ 1. Տուփի փոփոխում
Տուփը նախ պետք է փոփոխվի: Կան բազմաթիվ անցքեր, որոնք պետք է փորել: Առաջին փոսը կլինի տուփի առջևում, որտեղ տպված է կառավարման վահանակի տուփը: Երկրորդ անցքը տուփի հետևի մասում է ՝ USB մալուխի միջով անցնելու համար: Վերջին փոսը տուփի ներքևում է, որտեղ դեղորայքը թափվելուց հետո կընկնի: Ի վերջո, ոտքերը պետք է ամրացվեն ներքևի մասում: Ես օգտագործել եմ ռետինե ոտքեր, որոնք գտել եմ իմ տան շուրջը ոտքերի համար, բայց կարող են օգտագործվել նաև փայտե սալիկներ:
Քայլ 2: 3D տպագիր մասեր
Այս նախագծի համար անհրաժեշտ են 3D տպագիր բազմաթիվ մասեր:
Նրանք են:
- Կարուսել, որը պարունակում է դեղորայք
- Կարուսելի հիմք
- Ձագար դեղորայքի համար
- Կափարիչը փակելու համար միացրեք սերվո շարժիչի թևը
- Սերվո շարժիչի հիմք
- Կախիչ servo arm- ի համար
- Կառավարման վահանակ
- Բաժակ, որը պետք է բաժանվի դեղորայքի համար
Կարուսելի հիմքը ամրացված է երկկողմանի ժապավենով տուփին: Սեռվո շարժիչի հիմքը և թևի սողնակը երկուսն էլ պտուտակված են տուփի մեջ `կարճ փայտե պտուտակներով: Կառավարման վահանակի տուփը սոսինձով սոսնձված է տուփի առջևի մասերի վրա, բաղադրիչների տեղադրումից հետո:
Քայլ 3: Էլեկտրոնիկա
Էլեկտրոնիկան այժմ պետք է տեղադրվի տուփի մեջ: Նախ, սուզվող շարժիչը կցվում է կարուսելի հիմքին ՝ M3 պտուտակներով և ընկույզներով: Այնուհետև servo- ն սուպեր սոսնձված է իր հիմքի վրա: Այնուհետև շարժիչի վերահսկիչը, Arduino- ն, տախտակը, RFID մոդուլը և RTC մոդուլը բոլորը ամրացված են տուփին երկկողմանի ժապավենով: LCD- ն տեղադրված է կառավարման վանդակի անցքի մեջ: Կա որոշակի զոդում, որը պահանջվում է: Սեղմող կոճակների համար ցատկող մալուխները պետք է սոսնձված լինեն բահի միակցիչներին: RFID ընթերցողի համար կապումներն անհրաժեշտ է զոդել տախտակին:
Քայլ 4: Կոդ
Ստորև բերված է մեկնաբանված ծածկագիրը.
Այս ծածկագրում ներառված են Servo, LCD, RTC, RFID և Stepper շարժիչների գրադարանները:
////////////////// Գրադարաններ և փոփոխականներ
#ներառել #ներառել // Arduino ստանդարտ գրադարան #ներառել #ներառել virtuabotixRTC myRTC (2, 3, 4); // Սահմանել կապում #սահմանել servopin 8 const int կոճակ = 6; const int buttondown = 7; int hr = 0; int minn = 0; int sel = 0; int պետականացում = 0; int հայտարարված = 0; int պետություն = 0; int սպասել = 0; int պահարան = 0; // կարգավորել servo Servo servo; int անկյուն = 180; #Ներառեք // օգտագործեք փոփոխված տափաստանային գրադարան ՝ 1000/0100/0010/0001 մագնիսների կրակման հաջորդականությամբ: Տեղադրեք գրադարանը ձեր գրադարանի թղթապանակում: #սահմանել հանդերձում 64 // 1: 64 փոխանցման հարաբերակցություն const int stepsPerRevolution = 2048; // Arduino Kit շարժիչը շարժվում է ներքև: Փորձով որոշեցի, որ 2048 քայլը լիսեռը մեկ պտույտ է կատարում: int քայլեր = 0; LiquidCrystal_I2C LCD (0x27, 16, 2); // առաջացնել 4-մետաղյա սանդղակ 8-ից 11-ի կապում. #ներառել #ներառել #սահմանել SS_PIN 10 #սահմանել RST_PIN 9 MFRC522 mfrc522 (SS_PIN, RST_PIN); // Ստեղծեք MFRC522 օրինակ: int deg = 10; void setup () {lcd.init (); // նախաստորագրել lcd lcd.backlight (); // Ստորև բերված տողը օգտագործվում է ընթացիկ ժամանակը սահմանելու համար: Դա պետք է արվի միայն մեկ անգամ, որից հետո // կոդը պետք է նորից վերբեռնվի ՝ դրանով մեկնաբանելով: //myRTC.setDS1302 (ամանակ (40, 55, 11, 1, 7, 12, 2020); pinMode (կոճակ, INPUT_PULLUP); pinMode (հետույք, INPUT_PULLUP); Serial.begin (9600); // Սկսել սերիական հաղորդակցություն SPI.begin (); // Գործարկել SPI ավտոբուսը mfrc522. PCD_Init (); // Նախաձեռնել MFRC522 myStepper.setSpeed (0.15*հանդերձում); // շարժիչը, ըստ երևույթին, շարժվել է 1/64 ներքև, ինչը նշանակում է, որ արագությունը պետք է սահմանվի 64x: // սկզբնականացնել սերիալային պորտը ՝ servo.attach (servopin); } void loop () {//////////////// LCD կոդ // Անընդհատ թարմացնում է էկրանը ընթացիկ ժամանակի և տարածման ժամանակի հետ: lcd. հստակ (); myRTC.updateTime (); lcd.setCursor (0, 0); lcd.print («Timeամանակը»); lcd.setCursor (6, 0); lcd.print (myRTC.hours); lcd.print (":"); lcd.print (myRTC. րոպե); lcd.setCursor (0, 1); lcd.print ("Տրամադրել"); lcd.setCursor (10, 1); lcd.print (hr); lcd.print (":"); lcd.print (minn); ////////////////// Կարդալու կոճակի վիճակ // Կարդում է կոճակների վիճակները `փոխելու ժամանակը: պետականացում = digitalRead (կոճակ); statementown = digitalRead (հետույք); ուշացում (100); ////////////////// Տրամաբանության տրամադրում // Եթե ընթացիկ ժամանակը նույնն է, ինչ ընտրված բաշխման ժամանակը, շրջեք հետընթաց շարժիչը: // Յուրաքանչյուր 9 անգամ, երբ սարքը տարածվում է, շարժիչը շրջում է լրացուցիչ տարածություն `լիարժեք պտույտ ապահովելու համար: եթե (myRTC.hours == hr && myRTC.minutes == min && քայլեր <9) {myStepper.step (227); քայլեր = քայլեր +1; ուշացում (60100); myRTC.updateTime (); } else if (myRTC.hours == hr && myRTC.minutes == minn && steps == 9) {myStepper.step (232); քայլեր = 0; ուշացում (60100); myRTC.updateTime (); ////////////////// Փոփոխելով բաշխման ժամանակը // Փոխեք տրամադրման ժամանակը ՝ հիմնվելով, թե որ կոճակը սեղմված է: // Timeամանակը վերադառնում է զրոյի, երբ ժամերը հասնում են 24 -ի, իսկ րոպեները `60.} եթե (պետականացում == OWԱOWՐ && hr <23) {hr = hr+1; ուշացում (50); } else if (stateup == LOW && hr == 23) {hr = 0; ուշացում (50); } if (statementown == LOW && minn <59) {minn = minn+1; ուշացում (50); } else if (հայտարարված է == OWԱOWՐ && minn == 59) {րոպե = 0; ուշացում (50); } ///////////////// RFID ծածկագիր // Կարդում է RFID պիտակը, երբ այն ներկայացվում է: եթե (! mfrc522. PICC_IsNewCardPresent ()) {վերադարձ; } // Ընտրեք քարտերից մեկը, եթե (! Mfrc522. PICC_ReadCardSerial ()) {return; } Լարային բովանդակություն = ""; բայտ նամակ; համար (բայթ i = 0; i <mfrc522.uid.size; i ++) {//Serial.println(mfrc522.uid.uidByte unitedii] <0x10? "0": ""); //Serial.println(mfrc522.uid.uidByte , HEX); content.concat (լարային (mfrc522.uid.uidByte <0x10? "0": "")); content.concat (լարային (mfrc522.uid.uidByte , HEX)); պահարան = 1; } content.toUpperCase (); ///////////////// LOCK CODE // Երբ RFID- ի ճիշտ պիտը կարդալիս, սերվոը փակ վիճակում տեղափոխեք, // և servo- ն տեղափոխեք փակ դիրքի, երբ այն կա բաց while (locker == 1) {if (content.substring (1) == "3B 21 D6 22") {// այստեղ փոխել քարտի/քարտերի UID- ը, որոնց ցանկանում եք մուտք գործել {switch (deg) {case 180: servo.write (deg); deg = 10; պահարան = 0; Serial.print («շարժվող»); ուշացում (1000); ընդմիջում; գործ 10: servo.write (deg); deg = 180; պահարան = 0; ուշացում (1000); ընդմիջում; }}} else {Serial.println («Մուտքը մերժված է»); ուշացում (1000); }}}
Քայլ 5: Վերջնական կարգավորում
Վերջին քայլն այն է, որ նախագիծը պատրաստ լինի օգտագործման համար: Սկզբում վերբեռնեք կոդը ՝ ժամանակի կարգավորման տողով ՝ առանց մեկնաբանության, ընթացիկ ժամը վերբեռնելու համար RTC: Այնուհետև մեկնաբանեք ծածկագիրը և վերբեռնեք ծածկագիրը: Սա կապահովի, որ եթե սարքն անջատված է վարդակից, այն դեռ կպահպանի ճիշտ ժամանակը: Այժմ մնում է միայն դեղամիջոցը տեղադրել անցքերի մեջ, բաժակը դնել բաշխիչ անցքի տակ և սահմանել բաշխման ժամանակը: Սարքը հուսալիորեն կտրամադրվի ամեն օր նույն ժամին:
Խորհուրդ ենք տալիս:
DIY Ավտոմատ ձեռքի ախտահանիչ դիսպենսեր `6 քայլ
DIY Ավտոմատ ձեռքի ախտահանիչ դիսպենսեր. Այս նախագծում մենք կկառուցենք ձեռքի ախտահանիչ դիսպենսեր: Այս նախագիծը կօգտագործի Arduino, ուլտրաձայնային տվիչ, ջրի պոմպ և ձեռքի ախտահանող միջոց: Ուլտրաձայնային սենսորն օգտագործվում է ախտահանիչ մեքենայի վարդակից ներքևում գտնվող ձեռքերի առկայությունը ստուգելու համար:
Կենդանիների սննդի ավտոմատ դիսպենսեր `9 քայլ
Կենդանիների սննդի ավտոմատ դիսպենսեր. Երբևէ զգացե՞լ եք, որ չափազանց շատ ժամանակ եք վատնում ձեր ընտանի կենդանուն կերակրելու համար: Երբևէ ստիպված եղե՞լ եք զանգահարել որևէ մեկին, որպեսզի ձեր ընտանի կենդանիներին կերակրի արձակուրդի ժամանակ: Ես փորձել եմ շտկել այս երկու խնդիրներն էլ իմ ընթացիկ դպրոցական նախագծով ՝ Petfeed
Ձեռքերի ախտահանման ավտոմատ դիսպենսեր `3 քայլ
Ձեռքերի ախտահանման դիսպանսեր. Ձեռքերի ախտահանման այս ավտոմատ դիսպենսերը նախագծված է համեմատաբար ցածր գնով տարբերակ, որը հեշտ է հավաքվել: Պահանջվող իրերի մեծ մասը կարելի է ձեռք բերել ձեր տեղական սարքավորումների և էլեկտրոնիկայի մանրածախ առևտրից: Կա հնարավորություն 3D տպելու համար
Օճառի ավտոմատ դիսպենսեր Arduino- ի միջոցով. 8 քայլ
Օճառի դիսպանսեր Arduino- ի միջոցով. Օճառի դիսպենսեր, օգտագործելով arduino. Այսպիսով, այ տղա, բարի գալուստ այս հոդվածի նոր հոդված: մենք պատրաստելու ենք ավտոմատ օճառի դիսպենսեր arduino- ի միջոցով:
Հիշեցրու ինձ, որ վերցնեմ դեղորայքի մեքենա `5 քայլ
Հիշեցրու ինձ, որ վերցնեմ դեղամիջոց. Սա մի սարք է, որը կարող է ձեզ հիշեցնել դեղեր ընդունել: Մարդիկ հաճախ մոռանում են դեղորայք ընդունել ՝ լինի դա դուրս գալուց առաջ, թե քնելուց առաջ: Սարքի կողքով անցնելուց այն դեղ կթափվի, այնպես որ այն դրեք այնտեղ, որտեղից սովորաբար անցնում եք, ինչպես մահճակալի մոտ