Obsah:
- Krok 1: Úprava rámečku
- Krok 2: 3D tištěné díly
- Krok 3: Elektronika
- Krok 4: Kód
- Krok 5: Konečné nastavení
Video: Automatický dávkovač léků: 5 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:18
Tento projekt je určen pro použití v lékařské oblasti, kde starší pacienti musí mít spolehlivý způsob porcování a výdeje léků. Toto zařízení umožňuje dávkování léků až 9 dní předem a automatické dávkování v požadovaném čase. Víko je také uzamykatelné štítkem RFID, což zajišťuje, že k léku má přístup pouze pečovatel.
Zásoby:
Pro stavbu tohoto projektu jsou potřebné materiály:
- Arduino UNO
- Modul ovladače motoru
- Servo SG90 9G
- Krokový motor
- Modul RTC DS1302
- Různé propojovací vodiče
- IIC 1602 LCD
- Přístup k 3D tiskárně
- Nohy, jako jsou dřevěné hmoždinky
- RFID modul a štítek
- Dvě tlačítka
- Páječka
- Prkénko
- super lepidlo
- Vruty do dřeva
- Nedokončený dřevěný box se sklopným víkem
- Oboustranná páska
Krok 1: Úprava rámečku
Krabici bude nejprve nutné upravit. Existuje několik otvorů, které je třeba vyvrtat. První otvor bude na přední straně krabice, kde je vytištěn box ovládacího panelu. Druhý otvor je v zadní části krabice, pro průchod kabelu USB. Poslední otvor je na dně krabice, kam lék propadne po výdeji. Nakonec musí být nohy připevněny ke dnu. Na nohy jsem použil gumové nožičky, které jsem našel kolem svého domu, ale lze použít i dřevěné hmoždinky.
Krok 2: 3D tištěné díly
Pro tento projekt je potřeba mnoho 3D tištěných dílů.
Oni jsou:
- Kolotoč, který drží léky
- Základna pro kolotoč
- Nálevka na léky
- Rameno pro servomotor k zajištění víka
- Základna pro servomotor
- Západka pro servo rameno
- Kontrolní panel
- Šálek pro výdej léků
Základna pro kolotoč je na krabici přilepena oboustrannou páskou. Základna pro servomotor a západka pro rameno jsou do krabice zašroubovány krátkými šrouby do dřeva. Po vložení součástí je krabice ovládacího panelu nalepena na přední stranu krabice super lepidlem.
Krok 3: Elektronika
Nyní je třeba elektroniku vložit do krabice. Nejprve je krokový motor připevněn ke karuselové základně pomocí šroubů a matic M3. Servo je pak super přilepené ke své základně. Poté je k krabici pomocí oboustranné pásky připevněn ovladač motoru, Arduino, breadboard, modul RFID a modul RTC. LCD je vložen do otvoru v ovládací skříňce. Je vyžadováno určité pájení. U tlačítek musí být propojovací kabely připájeny ke konektorům rýče. U čtečky RFID musí být kolíky připájeny k desce.
Krok 4: Kód
Níže je komentovaný kód:
Tento kód obsahuje knihovny pro servo, LCD, RTC, RFID a krokový motor.
/////////////////// Knihovny a proměnné
#include #include // standardní knihovna Arduina #include #include virtuabotixRTC myRTC (2, 3, 4); // Definování pinů #define servopin 8 const int buttonup = 6; konstantní tlačítko dolů = 7; int hr = 0; int minn = 0; int sel = 0; int stav = 0; int uvedené město = 0; int stavy = 0; int čekat = 0; int skříňka = 0; // Nastavit servo Servo servo; int úhel = 180; #include // použít upravenou knihovnu stepperů se sekvencí vypalování magnetů 1000/0100/0010/0001. Vložte knihovnu do složky knihovny. #define gearratio 64 // 1: 64 gear gear const int stepsPerRevolution = 2048; // Motor sady Arduino je zařazen dolů. Experimentem jsem zjistil, že 2048 kroků otočí hřídel o jedno kolo. int kroky = 0; LiquidCrystal_I2C lcd (0x27, 16, 2); // vytvoření instance 4vodičového stepperu na pinech 8 až 11: Stepper myStepper (stepsPerRevolution, A0, A1, A2, A3); #include #include #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522 (SS_PIN, RST_PIN); // Vytvoření instance MFRC522. int deg = 10; neplatné nastavení () {lcd.init (); // inicializace lcd lcd.backlight (); // Následující řádek slouží k nastavení aktuálního času. Musí to být provedeno pouze jednou a poté musí být kód // znovu nahrán s komentářem. //myRTC.setDS1302Time(40, 55, 11, 1, 7, 12, 2020); pinMode (buttonup, INPUT_PULLUP); pinMode (buttondown, INPUT_PULLUP); Serial.begin (9600); // Zahájení sériové komunikace SPI.begin (); // Spuštění sběrnice SPI mfrc522. PCD_Init (); // Spusťte MFRC522 myStepper.setSpeed (0,15*rychlostní stupeň); // motor se zdá být zařazen o 1/64, což znamená, že rychlost musí být nastavena 64x. // inicializace sériového portu: servo.attach (servopin); } void loop () {///////////////////// LCD Code // Neustále aktualizuje displej o aktuální čas a čas výdeje. lcd.clear (); myRTC.updateTime (); lcd.setCursor (0, 0); lcd.print ("Čas:"); lcd.setCursor (6, 0); lcd.print (myRTC.hours); lcd.print (":"); lcd.print (myRTC.minutes); lcd.setCursor (0, 1); lcd.print ("Výplata:"); lcd.setCursor (10, 1); lcd.print (hr); lcd.print (":"); lcd.print (minn); /////////////////// Číst stavy tlačítek // Přečte stavy tlačítek pro změnu doby výdeje. stateup = digitalRead (zapnutí); saidown = digitalRead (tlačítko dolů); zpoždění (100); /////////////////// Logika výdeje // Pokud je aktuální čas stejný jako zvolený čas výdeje, otočte krokový motor. // Každých 9krát, kdy zařízení vydá, se motor otočí o další vzdálenost, aby bylo zajištěno úplné otočení. if (myRTC.hours == hr && myRTC.minutes == minn && steps <9) {myStepper.step (227); kroky = kroky +1; zpoždění (60100); myRTC.updateTime (); } else if (myRTC.hours == hr && myRTC.minutes == minn && steps == 9) {myStepper.step (232); kroky = 0; zpoždění (60100); myRTC.updateTime (); /////////////////// Změna času výdeje // Změňte čas výdeje podle toho, jaké tlačítko je stisknuto. // Čas se vrátí na nulu, když se hodiny dostanou na 24 a minuty na 60.} if (stateup == LOW && hr <23) {hr = hr+1; zpoždění (50); } else if (stateup == LOW && hr == 23) {hr = 0; zpoždění (50); } if (saidown == LOW && minn <59) {minn = minn+1; zpoždění (50); } else if (saidown == LOW && minn == 59) {minn = 0; zpoždění (50); } /////////////////// RFID kód // Přečte RFID tag, když je prezentován. if (! mfrc522. PICC_IsNewCardPresent ()) {return; } // Vyberte jednu z karet if (! Mfrc522. PICC_ReadCardSerial ()) {return; } Obsah řetězce = ""; bajtové písmeno; 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)); skříňka = 1; } content.toUpperCase (); ////////////////// LOCK CODE // Když je načten správný tag RFID, přesuňte servo do otevřené polohy, když je zavřené, // a přesuňte servo do zavřené polohy, když je otevřeno. while (skříňka == 1) {if (content.substring (1) == "3B 21 D6 22") {// zde změňte UID karty/karet, ke kterým chcete udělit přístup {switch (deg) {case 180: servo.write (deg); deg = 10; skříňka = 0; Serial.print ("pohybující se"); zpoždění (1000); přestávka; případ 10: servo.write (deg); deg = 180; skříňka = 0; zpoždění (1000); přestávka; }}} else {Serial.println ("Přístup odepřen"); zpoždění (1000); }}}
Krok 5: Konečné nastavení
Posledním krokem je připravit projekt k použití. Nejprve nahrajte kód s řádkem pro nastavení času bez komentáře, abyste nahráli aktuální čas do RTC. Potom okomentujte kód a znovu načtěte kód. Tím zajistíte, že pokud bude zařízení odpojeno, stále si zachová správný čas. Nyní stačí umístit léky do otvorů, umístit šálek pod výdejní otvor a nastavit čas výdeje. Zařízení bude spolehlivě dávkovat každý den ve stejnou dobu.
Doporučuje:
Automatický dávkovač mýdla pomocí Arduina: 8 kroků
Automatický dávkovač mýdla pomocí Arduina: Automatický dávkovač mýdla pomocí arduina: Takže hej chlapi, vítej zpět v novém článku v tomto článku vyrobíme automatický dávkovač mýdla pomocí arduina, tento dávkovač mýdla je velmi snadné vyrobit V několika krocích můžete tento automatický dávkovač mýdla vyrobit
Automatický dávkovač alkoholu s Arduinem: 6 kroků
Automatický dávkovač alkoholu s Arduino: Tento projekt arduino vás provede výrobou automatického dávkovače alkoholu. Uživatel se nemusí dotýkat čehokoli, aby získal alkohol, stačí se přiblížit k ultrazvukovému senzoru, alkohol bude vytlačen a poté bude přehráván zvukový soubor, který uživatele upozorní, že by měl
Jak vyrobit automatický dávkovač mýdla: 6 kroků
Jak vyrobit automatický dávkovač mýdla: AHOJ, V tomto tutoriálu vám ukážu, jak vyrobit automatický bezkontaktní dávkovač mýdla, který je plně DIY, pokud se vám líbí, pak zvažte podporu mě přihlášením k odběru mého kanálu ARDUINO MAKER. Připravte se tedy na inspiraci …..! můžete také
Automatický dávkovač vody ke sledování spotřeby: 6 kroků
Automatický dávkovač vody ke sledování spotřeby: Dobrý den! Před několika měsíci jsem byl ve svém pokoji a přemýšlel o tom, jaký projekt chci udělat pro školní úkol. Chtěl jsem udělat něco, co by mi vyhovovalo a co by mi do budoucna prospělo. Najednou do pokoje vešla moje matka a
Dávkovač léků na bázi Arduina: 5 kroků (s obrázky)
Dávkovač léků na bázi Arduino: Výroba je velmi snadná a velmi užitečná