Мазмұны:
- 1 -қадам: қорапты өзгерту
- 2 -қадам: 3D басып шығарылған бөлшектер
- 3 -қадам: электроника
- 4 -қадам: код
- 5 -қадам: соңғы орнату
Бейне: Дәрі -дәрмектің автоматты диспенсері: 5 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:22
Бұл жоба егде жастағы емделушілерге дәрі -дәрмектерді бөлудің және таратудың сенімді әдісі болуы керек медицина саласында қолдануға арналған. Бұл құрылғы дәрі -дәрмекті 9 күнге дейін бөлуге мүмкіндік береді және қалаған уақытта автоматты түрде шығарылады. Қақпақ RFID белгісімен бекітіледі, бұл дәрі -дәрмекке тек қамқоршы кіре алатынына көз жеткізіңіз.
Жабдықтар:
Бұл жобаны құру үшін қажетті материалдар бар:
- Arduino UNO
- Қозғалтқыш модулі
- SG90 9G Серво
- Қадамдық мотор
- DS1302 RTC модулі
- Әр түрлі секіргіш сымдар
- СКД IIC 1602
- 3D принтерге қол жеткізу
- Ағаш дюбель сияқты аяқтар
- RFID модулі мен тег
- Екі түйме
- Пісіру темірі
- Нан тақтасы
- Супер желім
- Ағаш бұрандалар
- Топсалы қақпағы бар аяқталмаған ағаш қорап
- Екі жақты таспа
1 -қадам: қорапты өзгерту
Алдымен қорапты өзгерту керек. Бұрғылау қажет көптеген тесіктер бар. Бірінші тесік басқару тақтасының қорабы басылған қораптың алдыңғы жағында болады. Екінші тесік қораптың артында, USB кабелі арқылы өтеді. Соңғы тесік қораптың түбінде орналасқан, онда дәрі -дәрмектер жіберілгеннен кейін құлап кетеді. Соңында аяқтар түбіне бекітілуі керек. Мен үйдің айналасынан тапқан резеңке табанды аяққа қолдандым, бірақ ағаштан жасалған сүлгілерді де қолдануға болады.
2 -қадам: 3D басып шығарылған бөлшектер
Бұл жобаға қажет 3D басып шығарылған көптеген бөлшектер бар.
Олар:
- Дәрілік заттарды ұстайтын карусель
- Карусель үшін негіз
- Дәрілік заттарға арналған шұңқыр
- Қақпақты құлыптауға арналған серво қозғалтқышына арналған қол
- Серво қозғалтқышы үшін негіз
- Серво қолына арналған ілмек
- Басқару панелі
- Дәрі -дәрмектерге арналған шыныаяқ
Карусельдің негізі қорапқа екі жақты таспамен бекітілген. Серво қозғалтқышының негізі мен қолдың ысырмасы қысқа ағаш бұрандалармен қорапқа бекітілген. Басқару панелінің қорабы компоненттер салынғаннан кейін супер желіммен қораптың алдыңғы жағына жабыстырылады.
3 -қадам: электроника
Енді электрониканы қорапқа салу керек. Біріншіден, қадамдық қозғалтқыш карусель негізіне М3 болттар мен гайкалармен бекітіледі. Серво содан кейін оның негізіне супер желімделеді. Содан кейін мотор контроллері, Arduino, нан тақтасы, RFID модулі және RTC модулі қорапқа екі жақты таспамен бекітілген. СКД басқару қорабындағы тесікке салынған. Кейбір дәнекерлеу қажет. Түймешіктер үшін өтпелі кабельдер күрек қосқыштарына дәнекерленген болуы керек. RFID оқу құралы үшін түйреуіштер тақтаға дәнекерленген болуы керек.
4 -қадам: код
Төменде түсіндірілген код:
Серво, СКД, RTC, RFID және Stepper қозғалтқышына арналған кітапханалар осы кодқа кіреді.
////////////////// Кітапханалар мен айнымалылар
#include #include // Arduino стандартты кітапханасы #include #include virtuabotixRTC myRTC (2, 3, 4); // түйреуіштерді анықтау #define servopin 8 const int buttonup = 6; const int buttondown = 7; int сағ = 0; int minn = 0; int sel = 0; int stateup = 0; int мәлімделген = 0; int Statesel = 0; int wait = 0; int locker = 0; // Серво сервоприводын орнату; int бұрышы = 180; #include // 1000/0100/0010/0001 магнитті күйдіру реттілігі бар өзгертілген қадамдық кітапхананы қолданыңыз. Кітапхананы кітапхана қалтасына салыңыз. #define gearratio 64 // 1: 64 беріліс коэффициенті const int stepsPerRevolution = 2048; // Arduino Kit қозғалтқышы төмен бағытталған. Тәжірибе арқылы мен 2048 қадам білікті бір айналымға айналдыратынын анықтадым. int қадамдары = 0; LiquidCrystal_I2C LCD (0x27, 16, 2); // 8-ден 11-ге дейінгі түйреуіштерде 4 сымды қадамды жасаңыз: Stepper myStepper (stepsPerRevolution, A0, A1, A2, A3); #қосу #қосу #анықтау SS_PIN 10 #анықтау RST_PIN 9 MFRC522 mfrc522 (SS_PIN, RST_PIN); // MFRC522 данасын жасаңыз. int deg = 10; void setup () {lcd.init (); // lcd lcd.backlight () инициализациялау; // Бұның астындағы жол ағымдағы уақытты орнату үшін қолданылады. Мұны тек бір рет жасау керек, содан кейін // кодын түсініктеме беру арқылы қайтадан жүктеу керек. //myRTC.setDS1302Time(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 төмен бағытталған сияқты, яғни жылдамдықты 64 есе орнату қажет. // сериялық портты инициализациялау: servo.attach (servopin); } void loop () {//////////////// СКД коды // Дисплейді ағымдағы уақыт пен тарату уақытымен үнемі жаңартып отырады. lcd.clear (); myRTC.updateTime (); lcd.setCursor (0, 0); lcd.print («Уақыт:»); lcd.setCursor (6, 0); lcd.print (myRTC.hours); lcd.print («:»); lcd.print (myRTC.minutes); lcd.setCursor (0, 1); lcd.print («Тарату:»); lcd.setCursor (10, 1); lcd.print (сағ); lcd.print («:»); lcd.print (мин); ///////////////// Түймешік күйлерін оқу // Тарату уақытын өзгерту үшін түймелердің күйін оқиды. stateup = digitalRead (түймешік); баяндалған = digitalRead (түнгі); кешіктіру (100); ///////////////// Бөлу логикасы // Егер ағымдағы уақыт таңдалған тарату уақытымен бірдей болса, қадамдық қозғалтқышты бұраңыз. // Құрылғы әр 9 рет жібергенде, қозғалтқыш толық айналуды қамтамасыз ету үшін қосымша қашықтықты айналдырады. егер (myRTC.hours == hr && myRTC.minutes == minn && steps <9) {myStepper.step (227); қадамдар = қадамдар +1; кешіктіру (60100); myRTC.updateTime (); } if if (myRTC.hours == hr && myRTC.minutes == minn && steps == 9) {myStepper.step (232); қадамдар = 0; кешіктіру (60100); myRTC.updateTime (); ///////////////// Бөлу уақытын өзгерту // Қандай түйме басылғанына байланысты тарату уақытын өзгертіңіз. // Сағат 24 -ке, минут 60 -қа жеткенде уақыт нөлге қайтарылады.} If (stateup == LOW &&hr <23) {hr = hr+1; кешіктіру (50); } if if (stateup == LOW && hr == 23) {hr = 0; кешіктіру (50); } егер (көрсетілген төмен == LOW && minn <59) {minn = minn+1; кешіктіру (50); } else if (айтылғандай == LOW && minn == 59) {minn = 0; кешіктіру (50); } ///////////////// RFID коды // RFID тегі ұсынылған кезде оқылады. if (! mfrc522. PICC_IsNewCardPresent ()) {қайтару; } // Карталардың біреуін таңдаңыз, егер (! Mfrc522. PICC_ReadCardSerial ()) {return; } Жол мазмұны = «»; байт әрпі; for (байт i = 0; i <mfrc522.uid.size; i ++) {//Serial.println(mfrc522.uid.uidBute <0x10? «0»: «»); //Serial.println(mfrc522.uid.uidByte, HEX); content.concat (String (mfrc522.uid.uidByte <0x10? «0»: «»)); content.concat (String (mfrc522.uid.uidByte , HEX)); шкаф = 1; } content.toUpperCase (); //////////////// ҚҰЛЫПТАУ КОДЫ // Дұрыс RFID тегі оқылғанда, серво жабылған кезде ашық күйге жылжытыңыз // және серво жабылған кезде жабық күйге жылжытыңыз. ашық while (locker == 1) {if (content.substring (1) == «3B 21 D6 22») {// рұқсат бергіңіз келетін картаның/карталардың UID мекенжайын өзгертіңіз {switch (deg) {case 180: servo.write (deg); градус = 10; шкаф = 0; Serial.print («қозғалатын»); кешіктіру (1000); үзіліс; 10 -жағдай: servo.write (deg); градус = 180; шкаф = 0; кешіктіру (1000); үзіліс; }}} else {Serial.println («Қол жеткізуге рұқсат жоқ»); кешіктіру (1000); }}}
5 -қадам: соңғы орнату
Соңғы қадам - жобаны пайдалануға дайындау. Ағымдағы уақытты RTC -ге жүктеу үшін алдымен уақытты белгілеу сызығы жоқ кодты жүктеңіз. Содан кейін кодты түсіндіріп, кодты қайта жүктеңіз. Бұл құрылғы розеткадан ажыратылса, ол дұрыс уақытты сақтап қалатынын қамтамасыз етеді. Енді сізге дәрі -дәрмектерді ойықтарға салу, шыныаяқты тарату саңылауының астына қою және тарату уақытын орнату жеткілікті. Құрылғы күн сайын бір уақытта сенімді түрде шығарылады.
Ұсынылған:
Esp32: 9 қадамды автоматты гельді спирт диспенсері
Esp32 бар автоматты гельді спирт диспенсері: Оқулықта біз esp32 бар автоматты гельді спирт диспенсерін жинаудың толық прототипін қалай жасау керектігін қарастырамыз, оған кезең-кезеңмен жинау, электронды схема, сонымен қатар барлық кодпен түсіндірілген бастапқы код кіреді. қадам
Arduino көмегімен автоматты сабын диспенсері: 8 қадам
Arduino көмегімен автоматты сабын диспенсері: arduino көмегімен автоматты сабын диспенсері: Ендеше, жігіттің осы мақаладағы жаңа мақаласына қош келдіңіз, біз arduino көмегімен сабын автоматты диспенсер жасаймыз, бұл сабын диспенсерін жасау өте оңай Бірнеше қадаммен сіз оны жасай аласыз
Arduino автоматты алкоголь диспенсері: 6 қадам
Arduino көмегімен автоматты алкогольдік диспенсер: Бұл arduino жобасы сізге автоматты спирт диспенсерін қалай жасауға болатынын көрсетеді. Қолданушыға алкогольді алу үшін ештеңеге қол тигізудің қажеті жоқ, ультрадыбыстық сенсорға жақындаңыз, алкоголь шығарылады, содан кейін қолданушыға сақтау үшін аудио файл ойнатылады
WiFi резервуарлы өсімдіктерді автоматты түрде беру - жабық/ашық ауада өсіру - су қондырғылары қашықтан бақылаумен автоматты түрде: 21 қадам
Резервуарлы WiFi автоматты өсімдік қоректендіргіші - жабық/ашық өсіру қондырғысы - су қондырғылары қашықтан бақылаумен автоматты түрде: Бұл оқулықта біз өсімдіктерді автоматты түрде суаратын және Adosia платформасы арқылы қашықтан бақыланатын жабық/ашық өсімдіктерді тамақтандыратын жүйені қалай орнату керектігін көрсетеміз
Таблеткалардың автоматты диспенсері: 10 қадам (суреттермен)
Таблеткалардың автоматты диспенсері: Біз бірінші Брюссель инженерлік факультетінің электромеханика магистрантымыз (қысқаша " Bruface "). Бұл Брюссельдің орталығында орналасқан екі университеттің бастамасы: Libre de Bruxelles Université (UL