Tartalomjegyzék:
- 1. lépés: A doboz módosítása
- 2. lépés: 3D nyomtatott alkatrészek
- 3. lépés: Elektronika
- 4. lépés: Kód
- 5. lépés: Végső beállítás
Videó: Automatikus gyógyszeradagoló: 5 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:39
Ez a projekt az orvosi területen használható, ahol az idős betegeknek megbízható módon kell adagolniuk és adagolniuk a gyógyszereket. Ez az eszköz lehetővé teszi a gyógyszerek adagolását akár 9 nappal előre, és a kívánt időpontban történő automatikus adagolást. A fedél zárható az RFID -címkével is, biztosítva, hogy csak a gondozó férjen hozzá a gyógyszerhez.
Kellékek:
A projekt elkészítéséhez szükséges anyagok állnak rendelkezésre:
- Arduino UNO
- Motorhajtó modul
- SG90 9G szervo
- Léptetőmotor
- DS1302 RTC modul
- Különféle jumper vezetékek
- IIC 1602 LCD
- 3D nyomtató hozzáférés
- Lábak, például fa tiplik
- RFID modul és címke
- Két nyomógomb
- Forrasztópáka
- Kenyeretábla
- pillanatragasztó
- Fa csavarok
- Befejezetlen fa doboz csuklós fedéllel
- Kétoldalú ragasztó
1. lépés: A doboz módosítása
A dobozt először módosítani kell. Több lyukat kell fúrni. Az első lyuk a doboz elején lesz, ahol a kezelőpanel doboza van nyomtatva. A második lyuk a doboz hátoldalán található, hogy az USB -kábel áthaladjon. Az utolsó lyuk a doboz alján található, ahol a gyógyszer kiesés után átesik. Végül a lábakat az aljához kell rögzíteni. A házam környékén talált gumi lábakat használtam lábakhoz, de fa tiplik is használhatók.
2. lépés: 3D nyomtatott alkatrészek
Ehhez a projekthez sok 3D nyomtatott alkatrészre van szükség.
Ők:
- Gyógyszert tároló körhinta
- A körhinta alapja
- Tölcsér a gyógyszerhez
- Kar a szervomotorhoz a fedél rögzítéséhez
- A szervomotor alapja
- Retesz a szervókarhoz
- Kezelőpanel
- Csésze a gyógyszer adagolására
A körhinta alapját kétoldalas szalaggal ragasztják a dobozhoz. A szervomotor alapját és a kar reteszét egyaránt rövid facsavarokkal csavarják be a dobozba. A vezérlőpanel dobozát szuper ragasztóval a doboz elejére ragasztják, miután az alkatrészeket behelyezték.
3. lépés: Elektronika
Az elektronikát most be kell helyezni a dobozba. Először is, a léptetőmotort M3 csavarokkal és anyákkal rögzítik a körhinta alapjához. A szervót ezután szuperregasztják az alapjához. Ezután a motorvezérlőt, az Arduino -t, a kenyérlapot, az RFID -modult és az RTC -modult kétoldalas szalaggal rögzítik a dobozhoz. Az LCD be van helyezve a vezérlő doboz lyukába. Van néhány forrasztás, amelyre szükség van. A nyomógombokhoz az áthidaló kábeleket az ásócsatlakozókhoz kell forrasztani. Az RFID olvasó esetében a csapokat forrasztani kell a táblához.
4. lépés: Kód
Az alábbiakban a megjegyzett kód látható:
A szervó, LCD, RTC, RFID és léptetőmotorok könyvtárai szerepelnek ebben a kódban.
////////////////// Könyvtárak és változók
#include #include // Arduino standard library #include #include virtuabotixRTC myRTC (2, 3, 4); // Pinek definiálása #define servopin 8 const int buttonup = 6; const int buttondown = 7; int hr = 0; int minn = 0; int sel = 0; int állapota = 0; int kijelentett = 0; int állapota = 0; int várakozás = 0; int szekrény = 0; // Servo beállítása Servo servo; int szög = 180; #include // módosított léptetőkönyvtár használata 1000/0100/0010/0001 mágneses tüzelési sorozattal. Tegye a könyvtárat a könyvtár mappájába. #define gearratio 64 // 1: 64 sebességfokozat const int stepsPerRevolution = 2048; // az Arduino Kit motor le van szerelve. Kísérlettel megállapítottam, hogy 2048 lépésben fordítsuk el a tengelyt egy kört. int lépések = 0; LiquidCrystal_I2C LCD (0x27, 16, 2); // példányosítson egy 4-vezetékes léptetőt a 8-11-es csapokon: Stepper myStepper (stepsPerRevolution, A0, A1, A2, A3); #include #include #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522 (SS_PIN, RST_PIN); // Hozzon létre MFRC522 példányt. int deg = 10; void setup () {lcd.init (); // inicializálja az LCD -t lcd.backlight (); // Az alatta lévő sor az aktuális idő beállítására szolgál. Ezt csak egyszer kell elvégezni, majd ezt követően a // kódot újra fel kell tölteni a megjegyzésekkel együtt. //myRTC.setDS1302Time (40, 55, 11, 1, 7, 12, 2020); pinMode (gombos, INPUT_PULLUP); pinMode (buttondown, INPUT_PULLUP); Sorozat.kezdet (9600); // Soros kommunikáció kezdeményezése SPI.begin (); // SPI busz kezdeményezése mfrc522. PCD_Init (); // Indítsa el az MFRC522 myStepper.setSpeed (0,15*sebességfokozat) értéket; // úgy tűnik, hogy a motor 1/64 arányban le van kapcsolva, ami azt jelenti, hogy a sebességet 64x kell beállítani. // inicializálja a soros portot: servo.attach (servopin); } void loop () {///////////////// LCD kód // Folyamatosan frissíti a kijelzőt az aktuális idővel és az adagolási idővel. lcd.clear (); myRTC.updateTime (); lcd.setCursor (0, 0); lcd.print ("Idő:"); 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 (óra); lcd.print (":"); lcd.print (minn); ///////////////// Olvasógombok állapota // Olvassa el a gombok állapotát az adagolási idő módosításához. stateup = digitalRead (gombos); kijelentett = digitalRead (buttondown); késleltetés (100); ///////////////// Adagolási logika // Ha az aktuális idő megegyezik a kiválasztott adagolási idővel, forgassa el a léptetőmotort. // A készülék minden 9 -szeres adagoláskor a motor extra távolságot fordít, hogy biztosítsa a teljes forgást. if (myRTC.hours == hr && myRTC.minutes == minn && steps <9) {myStepper.step (227); lépések = lépések +1; késleltetés (60100); myRTC.updateTime (); } else if (myRTC.hours == óra && myRTC.minutes == minn && steps == 9) {myStepper.step (232); lépések = 0; késleltetés (60100); myRTC.updateTime (); ////////////////// Az adagolási idő módosítása // Módosítsa az adagolási időt a gomb megnyomása alapján. // Az idő nullára tér vissza, amikor az óra 24 -re, a perc 60 -ra emelkedik.} If (stateup == LOW && hr <23) {hr = hr+1; késleltetés (50); } else if (állapota == LOW && hr == 23) {hr = 0; késleltetés (50); } if (konstatált == LOW && minn <59) {minn = minn+1; késleltetés (50); } else if (konstatált == LOW && minn == 59) {minn = 0; késleltetés (50); } ///////////////// RFID -kód // Olvassa el az RFID -címkét, amikor bemutatják. if (! mfrc522. PICC_IsNewCardPresent ()) {return; } // Válassza ki az egyik kártyát, ha (! Mfrc522. PICC_ReadCardSerial ()) {return; } String tartalom = ""; bájt betű; for (byte i = 0; i <mfrc522.uid.size; i ++) {//Serial.println(mfrc522.uid.uidByte <0x10? "0": ""); //Serial.println(mfrc522.uid.uidByte, HEX); content.concat (Karakterlánc (mfrc522.uid.uidByte <0x10? "0": "")); content.concat (Karakterlánc (mfrc522.uid.uidByte , HEX)); szekrény = 1; } content.toUpperCase (); ///////////////// LOCK CODE // Amikor a helyes RFID -címkét olvassuk, állítsuk a szervót nyitott helyzetbe, amikor az zárva van, // és állítsuk a szervót zárt helyzetbe, amikor az nyisd ki. while (zárható szekrény == 1) {if (content.substring (1) == "3B 21 D6 22") {// itt módosítja a hozzáférni kívánt kártya/kártyák UID azonosítóját {switch (deg) {case 180: szervo.write (fok); fok = 10; szekrény = 0; Serial.print ("mozgó"); késleltetés (1000); szünet; 10. eset: szervo.write (deg); fok = 180; szekrény = 0; késleltetés (1000); szünet; }}} else {Serial.println ("Hozzáférés megtagadva"); késleltetés (1000); }}}
5. lépés: Végső beállítás
Az utolsó lépés a projekt előkészítése a használatra. Először töltse fel a kódot úgy, hogy az időbeállítási sor nincs megjegyzésben, és töltse fel az aktuális időt az RTC -be. Ezután írja be a kódot, és töltse fel újra. Ez biztosítja, hogy ha az eszközt kihúzzuk a konnektorból, akkor is megmarad a megfelelő idő. Most már csak annyit kell tennie, hogy a gyógyszert a résekbe helyezi, a poharat az adagolónyílás alá helyezi, és beállítja az adagolási időt. A készülék minden nap ugyanabban az időben megbízhatóan adagol.
Ajánlott:
Automatikus kézfertőtlenítő: 8 lépés
Automatikus kézfertőtlenítő: A COVID-19 világjárvány olyan dolog lett, amelyet a nyilvánosság nagyon gyakran hallott 2020 folyamán. Minden polgár, aki hallja a „COVID-19” szót, azonnal a „Veszélyes”, „Halálos”, „Tiszta maradjon” szóra fog gondolni”, És más szavakkal. Ez a COVID-19 is
DIY automatikus kézfertőtlenítő adagoló: 6 lépés
DIY automatikus kézfertőtlenítő adagoló: Ebben a projektben egy automatikus kézfertőtlenítő adagolót építünk. Ez a projekt Arduino -t, ultrahangos érzékelőt, vízpumpát és kézfertőtlenítőt fog használni. Ultrahangos érzékelőt használnak a kezek jelenlétének ellenőrzésére a fertőtlenítő gép kimenete alatt
Mobil teljes feltöltés automatikus kikapcsolás: 20 lépés
Mobil teljes töltés automatikus kikapcsolása: A mobiltelefon töltésének leállítása automatikusan történik, ha teljesen fel van töltve. Ne aggódjon az akkumulátor élettartama miatt, még akkor sem, ha éjszakára hagyta. A mobiltelefonokat az akkumulátorok működtetik. Bár az elemek praktikusak, használatuk bizonyos óvintézkedéseket is igényel. Egy ma
WiFi automatikus növényadagoló tározóval - beltéri/kültéri művelési beállítás - automatikus vízi növények távoli megfigyeléssel: 21 lépés
WiFi automatikus növényadagoló tározóval - beltéri/kültéri művelési beállítások - Automatikus vízi növények távoli felügyelettel: Ebben az oktatóanyagban bemutatjuk, hogyan kell beállítani egy egyéni beltéri/kültéri növényadagoló rendszert, amely automatikusan öntözi a növényeket, és távolról felügyelhető az Adosia platform használatával
Arduino alapú gyógyszeradagoló: 5 lépés (képekkel)
Arduino -alapú gyógyszeradagoló: Ez rendkívül könnyen elkészíthető és rendkívül hasznos