תוכן עניינים:
וִידֵאוֹ: מתקן תרופות אוטומטי: 5 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:11
פרויקט זה מיועד לשימוש בתחום הרפואי, שבו למטופלים קשישים חייבת להיות דרך אמינה לחלק את התרופות ולמחלק אותן. מכשיר זה מאפשר למנות תרופות עד 9 ימים מראש, ולהוציא אותן באופן אוטומטי בזמן הרצוי. המכסה ננעל גם באמצעות תג RFID, וודא שרק המטפל יכול לגשת לתרופה.
אספקה:
ישנם החומרים הדרושים לבניית פרויקט זה:
- ארדואינו UNO
- מודול נהג מנוע
- סרוו SG90 9G
- מנוע צעדים
- מודול RTC DS1302
- חוטי מגשר שונים
- IIC 1602 LCD
- גישה למדפסת תלת מימד
- רגליים כגון דיבלים מעץ
- מודול ותגי RFID
- שני לחצנים
- מלחם
- לוח לחם
- דבק מגע
- ברגים מעץ
- קופסת עץ לא גמורה עם מכסה ציר
- קלטת דו צדדית
שלב 1: שינוי התיבה
תחילה יהיה צורך לשנות את התיבה. ישנם מספר חורים שחייבים לקדוח. החור הראשון יהיה בחזית התיבה, שם מודפסת תיבת לוח הבקרה. החור השני נמצא בחלק האחורי של הקופסה, כדי שכבל ה- USB יעבור דרכו. החור האחרון נמצא בחלק התחתון של הקופסה, שם התרופה תיפול לאחר שתוציא. לבסוף, הרגליים חייבות להיות מחוברות לתחתית. השתמשתי ברגלי גומי שמצאתי ברחבי הבית לרגליים, אך ניתן להשתמש גם בנעלי עץ.
שלב 2: חלקים מודפסים בתלת מימד
יש צורך בחלקים רבים המודפסים בתלת מימד לפרויקט זה.
הם:
- קרוסלה שמחזיקה תרופות
- בסיס לקרוסלה
- משפך על התרופה
- זרוע למנוע סרוו לנעילת המכסה
- בסיס למנוע סרוו
- תפס לזרוע סרוו
- לוח בקרה
- כוס למתן התרופה
בסיס הקרוסלה נדבק לקופסה בעזרת סרט דו צדדי. הבסיס למנוע הסרוו והתפס לזרוע מוברגים שניהם לתוך הקופסה בעזרת ברגי עץ קצרים. תיבת לוח הבקרה מודבקת בחזית התיבה בדבק סופר, לאחר הכנסת הרכיבים.
שלב 3: אלקטרוניקה
כעת יש להכניס את האלקטרוניקה לקופסה. ראשית, מנוע צעד מחובר לבסיס הקרוסלה עם ברגים ואומים M3. לאחר מכן סרוו מודבק במיוחד לבסיסו. לאחר מכן, בקר המנוע, Arduino, לוח הלחם, מודול RFID ומודול RTC מחוברים כולם לקופסה עם סרט דו צדדי. ה- LCD מוכנס לתוך החור בתיבת הבקרה. יש צורך בהלחמה כלשהי. עבור כפתורי הלחיצה, כבלי המגשר חייבים להיות מולחמים למחברי הכף. עבור קורא ה- RFID, הסיכות חייבות להיות מולחמות ללוח.
שלב 4: קוד
להלן הקוד שהגיב:
ספריות עבור סרוו, LCD, RTC, RFID ומנוע צעד כלולות בקוד זה.
/////////////////// ספריות ומשתנים
#include #include // הספרייה הסטנדרטית של Arduino #include #include virtuabotixRTC myRTC (2, 3, 4); // הגדר סיכות #הגדר servopin 8 const int buttonup = 6; const int buttondown = 7; int hr = 0; int minn = 0; int sel = 0; int stateup = 0; int angesown = 0; int מדינת = 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); // לייצר צעד 4-חוטים על סיכות 8 עד 11: Stepper myStepper (stepsPerRevolution, A0, A1, A2, A3); #include #include #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522 (SS_PIN, RST_PIN); // צור מופע MFRC522. int deg = 10; הגדרת חלל () {lcd.init (); // לאתחל את lcd lcd.backlight (); // השורה שמתחתיה משמשת לקביעת השעה הנוכחית. זה צריך להיעשות רק פעם אחת, ולאחר מכן יש להעלות שוב את הקוד // עם הערתו. //myRTC.setDS1302Time(40, 55, 11, 1, 7, 12, 2020); pinMode (כפתור, INPUT_PULLUP); pinMode (Buttonown, INPUT_PULLUP); Serial.begin (9600); // ליזום תקשורת טורית SPI.begin (); // ליזום אוטובוס SPI mfrc522. PCD_Init (); // התחל את MFRC522 myStepper.setSpeed (0.15*gearratio); // המנוע נראה מכוון ל -1/64, כלומר יש להגדיר את המהירות 64x. // לאתחל את היציאה הטורית: servo.attach (servopin); } לולאת חלל () {////////////////// קוד LCD // מעדכנת את התצוגה ללא הרף בזמן הנוכחי ובזמן ההגשה. 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 (minn); ////////////////// Read Button States // קורא את מצבי הכפתורים כדי לשנות את זמן ההגשה. stateup = digitalRead (כפתור); saidown = digitalRead (buttondown); עיכוב (100); ////////////////// Logic dispensing // אם הזמן הנוכחי זהה לזמן ההנפקה שנבחר, סובב את מנוע הצעד. // כל 9 פעמים שהמכשיר מוציא, המנוע פונה למרחק נוסף כדי להבטיח סיבוב מלא. if (myRTC.hours == hr && myRTC.minutes == minn && steps <9) {myStepper.step (227); צעדים = צעדים +1; עיכוב (60100); myRTC.updateTime (); } אחרת אם (myRTC.hours == hr && myRTC.minutes == minn && steps == 9) {myStepper.step (232); צעדים = 0; עיכוב (60100); myRTC.updateTime ();. // הזמן חוזר לאפס כאשר השעות מגיעות ל -24 והדקות מגיעות ל -60.} אם (stateup == LOW && hr <23) {hr = hr+1; עיכוב (50); } אחרת אם (stateup == LOW && hr == 23) {hr = 0; עיכוב (50); } אם (ציין == LOW && minn <59) {minn = minn+1; עיכוב (50); } אחרת אם (ציין == LOW && minn == 59) {minn = 0; עיכוב (50); } /////////////////// קוד RFID // קורא תג RFID כאשר הוא מוצג. if (! mfrc522. PICC_IsNewCardPresent ()) {return; } // בחר אחד מהכרטיסים אם (! Mfrc522. PICC_ReadCardSerial ()) {return; } תוכן מחרוזת = ""; מכתב בתים; עבור (בת i = 0; i <mfrc522.uid.size; i ++) {//Serial.println(mfrc522.uid.uidByte [ji] <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 (); ////////////////// LOCK COD לִפְתוֹחַ. while (locker == 1) {if (content.substring (1) == "3B 21 D6 22") {// שנה כאן את מזהה הכרטיס/כרטיסים שברצונך לתת גישה {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: בפרויקט זה נבנה מתקן חיטוי ידיים אוטומטי. בפרויקט זה ישתמשו בארדואינו, חיישן אולטרסאונד, משאבת מים וחומר חיטוי ידיים. חיישן קולי משמש לבדיקת נוכחות ידיים מתחת לשקע מכונת החיטוי
מתקן אלכוהול ג'ל אוטומטי עם Esp32: 9 שלבים
מתקן אלכוהול ג'ל אוטומטי עם Esp32: במדריך נראה כיצד ליצור אב טיפוס שלם, להרכיב מתקן אלכוהול ג'ל אוטומטי עם esp32, הוא יכלול הרכבה שלב אחר שלב, מעגל אלקטרוני וגם קוד המקור מוסבר כל שלב אחר שלב שלב
מתקן חיטוי ידיים אוטומטי: 3 שלבים
מתקן חיטוי ידיים אוטומטי: מתקן חיטוי ידני אוטומטי זה תוכנן להיות אופציה בעלות נמוכה יחסית שקל להרכיב אותו. את רוב הפריטים הנדרשים ניתן לרכוש אצל קמעונאי החומרה והאלקטרוניקה המקומיים. ישנה אפשרות להדפיס תלת מימד
מתקן סבון אוטומטי באמצעות Arduino: 8 שלבים
מתקן סבון אוטומטי באמצעות ארדואינו: מתקן סבון אוטומטי באמצעות ארדואינו: אז ברוך הבא בחזרה למאמר חדש במאמר זה נכין מתקן סבון אוטומטי באמצעות ארדואינו מתקן סבון זה קל מאוד בכמה צעדים אתה יכול להכין מתקן סבון אוטומטי זה
תזכיר לי לקחת מכונת תרופות: 5 שלבים
תזכיר לי לקחת מכונת תרופות: זוהי מכונה שיכולה להזכיר לך לקחת תרופות. אנשים שוכחים לעתים קרובות לקחת תרופות, אם לפני היציאה או לפני השינה. זה יפיל תרופה כשאתה עובר ליד המכונה, אז שים אותה במקום שאתה עובר בדרך כלל, כמו ליד המיטה