विषयसूची:

स्वचालित दवा औषधि: 5 कदम
स्वचालित दवा औषधि: 5 कदम

वीडियो: स्वचालित दवा औषधि: 5 कदम

वीडियो: स्वचालित दवा औषधि: 5 कदम
वीडियो: लड़की कितना अंदर तक ले सकती है #Shorts 2024, जुलाई
Anonim
स्वचालित दवा औषधि
स्वचालित दवा औषधि

यह परियोजना चिकित्सा क्षेत्र में उपयोग के लिए है, जहां बुजुर्ग रोगियों के पास दवा को विभाजित करने और वितरित करने का एक विश्वसनीय तरीका होना चाहिए। यह उपकरण दवा को 9 दिन पहले तक विभाजित करने की अनुमति देता है, और वांछित समय पर स्वचालित रूप से वितरित किया जाता है। आरएफआईडी टैग के साथ ढक्कन भी लॉक करने योग्य है, यह सुनिश्चित करते हुए कि केवल देखभाल करने वाला ही दवा तक पहुंच सकता है।

आपूर्ति:

इस परियोजना के निर्माण के लिए आवश्यक सामग्री हैं:

  • अरुडिनो यूएनओ
  • मोटर चालक मॉड्यूल
  • SG90 9G सर्वो
  • स्टेपर मोटर
  • DS1302 आरटीसी मॉड्यूल
  • विभिन्न जम्पर तार
  • आईआईसी १६०२ एलसीडी
  • 3डी प्रिंटर एक्सेस
  • लकड़ी के डॉवेल जैसे पैर
  • आरएफआईडी मॉड्यूल और टैग
  • दो पुशबटन
  • सोल्डरिंग आयरन
  • ब्रेड बोर्ड
  • सुपर गोंद
  • लकड़ी के पेंच
  • हिंगेड ढक्कन के साथ अधूरा लकड़ी का बक्सा
  • दो तरफा टेप

चरण 1: बॉक्स को संशोधित करना

बॉक्स को संशोधित करना
बॉक्स को संशोधित करना
बॉक्स को संशोधित करना
बॉक्स को संशोधित करना
बॉक्स को संशोधित करना
बॉक्स को संशोधित करना
बॉक्स को संशोधित करना
बॉक्स को संशोधित करना

बॉक्स को पहले संशोधित करना होगा। कई छेद हैं जिन्हें ड्रिल किया जाना चाहिए। पहला छेद बॉक्स के सामने की तरफ होगा, जहां कंट्रोल पैनल बॉक्स प्रिंट होता है। दूसरा छेद बॉक्स के पिछले हिस्से में है, जिससे यूएसबी केबल गुजर सके। आखिरी छेद बॉक्स के निचले हिस्से में होता है, जहां दवा एक बार देने के बाद गिर जाएगी। अंत में, पैरों को नीचे से जोड़ा जाना चाहिए। मैंने पैरों के लिए अपने घर के आस-पास पाए जाने वाले रबर के पैरों का इस्तेमाल किया, लेकिन लकड़ी के डॉवेल का भी इस्तेमाल किया जा सकता है।

चरण 2: 3डी प्रिंटेड पार्ट्स

3डी प्रिंटेड पार्ट्स
3डी प्रिंटेड पार्ट्स
3डी प्रिंटेड पार्ट्स
3डी प्रिंटेड पार्ट्स
3डी प्रिंटेड पार्ट्स
3डी प्रिंटेड पार्ट्स

इस प्रोजेक्ट के लिए कई 3डी प्रिंटेड पार्ट्स की जरूरत है।

वे:

  • हिंडोला जिसमें दवा होती है
  • हिंडोला के लिए आधार
  • दवा के लिए फ़नल
  • ढक्कन को बंद करने के लिए सर्वो मोटर के लिए आर्म
  • सर्वो मोटर के लिए आधार
  • सर्वो बांह के लिए कुंडी
  • कंट्रोल पैनल
  • दवा के लिए कप में वितरित किया जाना है

हिंडोला के लिए आधार दो तरफा टेप के साथ बॉक्स से जुड़ा हुआ है। सर्वो मोटर के लिए आधार और हाथ के लिए कुंडी दोनों को छोटे लकड़ी के शिकंजे के साथ बॉक्स में खराब कर दिया गया है। घटकों को सम्मिलित करने के बाद, नियंत्रण कक्ष बॉक्स को सुपर गोंद के साथ बॉक्स के सामने चिपका दिया जाता है।

चरण 3: इलेक्ट्रॉनिक्स

इलेक्ट्रानिक्स
इलेक्ट्रानिक्स

इलेक्ट्रॉनिक्स को अब बॉक्स में रखने की जरूरत है। सबसे पहले, स्टेपर मोटर को M3 बोल्ट और नट्स के साथ हिंडोला बेस से जोड़ा जाता है। इसके बाद सर्वो को इसके आधार से सुपर चिपकाया जाता है। फिर, मोटर नियंत्रक, Arduino, ब्रेडबोर्ड, RFID मॉड्यूल और RTC मॉड्यूल सभी को दो तरफा टेप के साथ बॉक्स से जोड़ा जाता है। एलसीडी को कंट्रोल बॉक्स के छेद में डाला जाता है। कुछ सोल्डरिंग है जिसकी आवश्यकता है। पुश बटन के लिए, जम्पर केबल्स को कुदाल कनेक्टर्स में मिलाप किया जाना चाहिए। RFID रीडर के लिए, पिनों को बोर्ड में मिलाप किया जाना चाहिए।

चरण 4: कोड

नीचे टिप्पणी कोड है:

सर्वो, एलसीडी, आरटीसी, आरएफआईडी और स्टेपर मोटर के लिए पुस्तकालय इस कोड में शामिल हैं।

///////////////// पुस्तकालय और चर

#include #include //Arduino स्टैण्डर्ड लाइब्रेरी #include #include virtuabotixRTC myRTC(2, 3, 4); // पिन को परिभाषित करें # सर्वोपिन को परिभाषित करें 8 कॉन्स्ट इंट बटनअप = 6; कॉन्स्ट इंट बटनडाउन = 7; इंट घंटा = 0; इंट मिन = 0; इंट सेल = 0; इंट स्टेटअप = 0; इंट स्टेटडाउन = 0; इंट स्टेटसेल = 0; इंट प्रतीक्षा = 0; इंट लॉकर = 0; // सर्वो सर्वो सेट करें; इंट कोण = १८०; #include // 1000/0100/0010/0001 चुंबक फायरिंग अनुक्रम के साथ संशोधित स्टेपर लाइब्रेरी का उपयोग करें। लाइब्रेरी को अपने लाइब्रेरी फोल्डर में रखें। #define Gearratio ६४//१:६४ गियर अनुपात स्थिरांक int stepsPerRevolution = २०४८; // Arduino Kit मोटर गियर डाउन है। प्रयोग से मैंने निर्धारित किया कि 2048 कदम शाफ्ट को एक चक्कर में बदल देते हैं। इंट स्टेप्स = 0; लिक्विड क्रिस्टल_आई2सी एलसीडी (0x27, 16, 2); // पिन 8 से 11 पर 4-वायर स्टेपर को इंस्टेंट करें: स्टेपर मायस्टेपर (स्टेप्सपेर रेवोल्यूशन, ए0, ए1, ए2, ए3); #शामिल करें #शामिल करें #SS_PIN 10 परिभाषित करें #RST_PIN 9 परिभाषित करें MFRC522 mfrc522(SS_PIN, RST_PIN); // MFRC522 उदाहरण बनाएं। इंट डिग्री = 10; शून्य सेटअप () {lcd.init (); // LCD LCD.backlight () को इनिशियलाइज़ करें; // इसके नीचे की लाइन का इस्तेमाल करंट टाइम सेट करने के लिए किया जाता है। यह केवल एक बार किया जाना है, और बाद में कोड // को फिर से अपलोड किया जाना चाहिए, इसके साथ टिप्पणी की। // myRTC.setDS1302 समय (40, 55, 11, 1, 7, 12, 2020); पिनमोड (बटनअप, INPUT_PULLUP); पिनमोड (बटनडाउन, INPUT_PULLUP); सीरियल.बेगिन (९६००); // सीरियल संचार शुरू करें SPI.begin (); // SPI बस mfrc522. PCD_Init () आरंभ करें; // MFRC522 myStepper.setSpeed(0.15*gearratio) आरंभ करें;//मोटर 1/64 से नीचे गियर किया हुआ प्रतीत होता है, जिसका अर्थ है कि गति को 64x सेट करने की आवश्यकता है। // सीरियल पोर्ट को इनिशियलाइज़ करें: सर्वो.अटैच (सर्वोपिन); } शून्य लूप () {//////////////// LCD कोड // वर्तमान समय और वितरण समय के साथ डिस्प्ले को लगातार अपडेट करता है। एलसीडी.क्लियर (); myRTC.updateTime (); LCD.setCursor(0, 0); LCD.print ("समय:"); LCD.setCursor(6, 0); LCD.प्रिंट (myRTC.hours); एलसीडी.प्रिंट (":"); LCD.print (myRTC.minutes); LCD.setCursor(0, 1); LCD.print ("डिस्पेंस:"); LCD.setCursor(10, 1); एलसीडी.प्रिंट (घंटा); एलसीडी.प्रिंट (":"); एलसीडी.प्रिंट (मिनट); //////////////// पढ़ें बटन राज्य // वितरण समय बदलने के लिए बटन की स्थिति को पढ़ता है। स्टेटअप = डिजिटलरेड (बटनअप); स्टेटडाउन = डिजिटलरेड (बटनडाउन); देरी (100); //////////////// वितरण तर्क // यदि वर्तमान समय चयनित वितरण समय के समान है, तो स्टेपर मोटर चालू करें। // हर 9 बार डिवाइस डिस्पेंस करता है, मोटर एक अतिरिक्त दूरी तय करता है ताकि यह सुनिश्चित हो सके कि एक पूर्ण रोटेशन किया गया है। अगर (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 हो जाते हैं। } अगर (स्टेटअप == LOW && hr<23){hr=hr+1; देरी (50); } और अगर (स्टेटअप == कम && घंटा ==23) { घंटा = 0; देरी (50); } अगर (स्टेटडाउन == LOW && minn <59){ minn=minn+1; देरी (50); } और अगर (स्टेटडाउन == LOW && minn ==59){ minn=0; देरी (50); } //////////////// आरएफआईडी कोड // प्रस्तुत किए जाने पर आरएफआईडी टैग पढ़ता है। अगर (! mfrc522. PICC_IsNewCardPresent ()) {वापसी; } // कार्ड में से एक का चयन करें अगर (! mfrc522. PICC_ReadCardSerial ()) {वापसी; } स्ट्रिंग सामग्री = ""; बाइट पत्र; के लिए (बाइट i = 0; i <mfrc522.uid.size; i++) {//Serial.println(mfrc522.uid.uidByte <0x10? " 0":" "); // सीरियल.प्रिंट्लन (mfrc522.uid.uidByte , HEX); content.concat (स्ट्रिंग (mfrc522.uid.uidByte <0x10? "0": "")); content.concat (स्ट्रिंग (mfrc522.uid.uidByte , HEX)); लॉकर = 1; } content.toUpperCase (); /////////////// लॉक कोड // जब सही आरएफआईडी टैग पढ़ा जाता है, तो सर्वो को बंद होने पर खुली स्थिति में ले जाएं, // और सर्वो को बंद स्थिति में ले जाएं जब यह हो खोलना। जबकि (लॉकर == 1) { अगर (कंटेंट। सबस्ट्रिंग (1) == "3 बी 21 डी 6 22") {// यहां उस कार्ड / कार्ड का यूआईडी बदलें जिसे आप एक्सेस देना चाहते हैं {स्विच (डिग्री) {केस 180: सर्वो। राइट (डिग्री); डिग्री = 10; लॉकर = 0; सीरियल.प्रिंट ("चलती"); देरी (1000); टूटना; केस 10: सर्वो। राइट (डिग्री); डिग्री = १८०; लॉकर = 0; देरी (1000); टूटना; } } } और { Serial.println ("एक्सेस अस्वीकृत"); देरी (1000); } } }

चरण 5: अंतिम सेट अप

अंतिम चरण परियोजना को उपयोग के लिए तैयार करना है। वर्तमान समय को आरटीसी पर अपलोड करने के लिए, पहले समय सेटिंग लाइन के साथ कोड अपलोड करें, बिना टिप्पणी किए। फिर कोड पर टिप्पणी करें, और कोड को फिर से अपलोड करें। यह सुनिश्चित करेगा कि यदि डिवाइस अनप्लग है, तो भी यह सही समय बनाए रखेगा। अब आपको बस इतना करना है कि दवा को स्लॉट्स में रखें, कप को डिस्पेंसिंग होल के नीचे रखें और डिस्पेंसिंग का समय निर्धारित करें। डिवाइस मज़बूती से हर दिन एक ही समय पर वितरित करेगा।

सिफारिश की: