Isi kandungan:
- Langkah 1: Mengubah Kotak
- Langkah 2: Bahagian Bercetak 3D
- Langkah 3: Elektronik
- Langkah 4: Kod
- Langkah 5: Persediaan Akhir
Video: Dispenser Ubat Automatik: 5 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:06
Projek ini digunakan untuk bidang perubatan, di mana pesakit tua mesti mempunyai cara yang boleh dipercayai untuk mendapatkan ubat yang dibahagi-bahagikan dan dikeluarkan. Peranti ini membolehkan ubat dibahagi hingga 9 hari sebelumnya, dan dikeluarkan secara automatik pada waktu yang diinginkan. Tudungnya juga dapat dikunci dengan tag RFID, memastikan bahawa hanya penjaga yang boleh mengakses ubat.
Bekalan:
Terdapat bahan yang diperlukan untuk membina projek ini:
- Arduino UNO
- Modul Pemandu Motor
- Servo SG90 9G
- Motor Stepper
- Modul RTC DS1302
- Pelbagai wayar pelompat
- LCD IIC 1602
- Akses pencetak 3D
- Kaki seperti dowel kayu
- Modul dan Tag RFID
- Dua butang tekan
- Besi pematerian
- Papan roti
- Lem super
- Skru kayu
- Kotak Kayu Yang Belum Selesai dengan Tudung Berengsel
- Pita dua sisi
Langkah 1: Mengubah Kotak
Kotak mesti terlebih dahulu diubah suai. Terdapat banyak lubang yang mesti digerudi. Lubang pertama akan berada di bahagian depan kotak, di mana kotak panel kawalan dicetak. Lubang kedua berada di bahagian belakang kotak, agar kabel USB dapat dilalui. Lubang terakhir terdapat di bahagian bawah kotak, di mana ubat akan jatuh setelah dikeluarkan. Akhir sekali, kaki mesti dilekatkan ke bahagian bawah. Saya menggunakan kaki getah yang saya dapati di sekitar rumah saya untuk kaki, tetapi dowel kayu juga boleh digunakan.
Langkah 2: Bahagian Bercetak 3D
Terdapat banyak bahagian bercetak 3D yang diperlukan untuk projek ini.
Mereka adalah:
- Carousel yang menyimpan ubat
- Pangkalan untuk karusel
- Corong untuk ubat
- Lengan untuk motor servo untuk mengunci penutup
- Pangkalan untuk motor servo
- Selak untuk lengan servo
- Panel kawalan
- Cawan untuk ubat yang akan dikeluarkan
Pangkal untuk korsel dilekatkan pada kotak dengan pita dua sisi. Pangkalan untuk motor servo dan kait untuk lengan keduanya dimasukkan ke dalam kotak dengan skru kayu pendek. Kotak panel kawalan dilekatkan di bahagian depan kotak dengan gam super, setelah komponen dimasukkan.
Langkah 3: Elektronik
Elektronik kini perlu dimasukkan ke dalam kotak. Pertama, motor stepper dipasang ke pangkal karusel dengan bolt dan mur M3. Servo kemudiannya terpaku pada pangkalnya. Kemudian, pengawal motor, Arduino, papan roti, modul RFID, dan modul RTC semuanya dilampirkan ke kotak dengan pita dua sisi. LCD dimasukkan ke dalam lubang di kotak kawalan. Terdapat beberapa pematerian yang diperlukan. Untuk butang tekan, kabel pelompat mesti disolder ke penyambung sekop. Untuk pembaca RFID, pin mesti disolder ke papan.
Langkah 4: Kod
Berikut adalah kod yang dikomen:
Perpustakaan untuk motor Servo, LCD, RTC, RFID, dan Stepper disertakan dalam kod ini.
///////////////// Perpustakaan dan Pemboleh ubah
#include #include // Arduino standard library #include #include virtuabotixRTC myRTC (2, 3, 4); // Tentukan pin #define servopin 8 const int buttonup = 6; const int buttondown = 7; int hr = 0; int minn = 0; int sel = 0; int stateup = 0; int dinyatakan = 0; int Statesel = 0; int menunggu = 0; loker int = 0; // Sediakan servo servo servo; sudut int = 180; #include // gunakan pustaka stepper yang diubah dengan urutan penembakan magnet 1000/0100/0010/0001. Letakkan perpustakaan di folder perpustakaan anda. #tentukan gearratio 64 // 1: 64 nisbah gear tetap antara langkahPerRevolution = 2048; // motor Arduino Kit diarahkan ke bawah. Dengan percubaan saya menentukan bahawa 2048 langkah memutar batang satu pusingan. langkah int = 0; LiquidCrystal_I2C lcd (0x27, 16, 2); // tentukan stepper 4-wayar pada pin 8 hingga 11: Stepper myStepper (stepPerRevolution, A0, A1, A2, A3); #include #include #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522 (SS_PIN, RST_PIN); // Buat contoh MFRC522. int deg = 10; batal persediaan () {lcd.init (); // inisialisasi lcd lcd.backlight (); // Garis di bawah ini digunakan untuk menetapkan waktu semasa. Ia hanya perlu dilakukan sekali, dan selepas itu kod // mesti dimuat semula sekali lagi dengan komen. //myRTC.setDS1302Time(40, 55, 11, 1, 7, 12, 2020); pinMode (butang, INPUT_PULLUP); pinMode (buttondown, INPUT_PULLUP); Serial.begin (9600); // Memulakan komunikasi bersiri SPI.begin (); // Mulakan bas SPI mfrc522. PCD_Init (); // Mulakan MFRC522 myStepper.setSpeed (0.15 * gearratio); // motor nampaknya digerakkan 1/64, yang bermaksud bahawa kelajuannya harus ditetapkan 64x. // memulakan port siri: servo.attach (servopin); } gelung void () {///////////////// Kod LCD // Sentiasa mengemas kini paparan dengan masa semasa dan masa pengeluaran. lcd.clear (); myRTC.updateTime (); lcd.setCursor (0, 0); lcd.print ("Masa:"); lcd.setCursor (6, 0); lcd.print (myRTC.hours); lcd.print (":"); lcd.print (myRTC.minutes); lcd.setCursor (0, 1); lcd.print ("Pengeluaran:"); lcd.setCursor (10, 1); lcd.print (jam); lcd.print (":"); lcd.print (minn); ///////////////// Read Button States // Membaca keadaan butang untuk mengubah masa pengeluaran. stateup = digitalRead (butang); dinyatakanown = digitalRead (buttondown); kelewatan (100); ///////////////// Dispensing Logic // Jika waktu semasa sama dengan masa pengeluaran yang dipilih, putar motor stepper. // Setiap 9 kali peranti mengeluarkan, motor memutar jarak lebih jauh untuk memastikan putaran penuh dibuat. jika (myRTC.hours == jam && myRTC.minutes == minn && langkah <9) {myStepper.step (227); langkah = langkah +1; kelewatan (60100); myRTC.updateTime (); } lain jika (myRTC.hours == jam && myRTC.minutes == minn && langkah == 9) {myStepper.step (232); langkah = 0; kelewatan (60100); myRTC.updateTime (); ///////////////// Mengubah Masa Pembuangan // Mengubah masa pengeluaran berdasarkan butang mana yang ditekan. // Masa kembali ke sifar apabila jam menjadi 24 dan minit menjadi 60.} jika (stateup == LOW && hr <23) {hr = hr + 1; kelewatan (50); } lain jika (stateup == RENDAH && hr == 23) {hr = 0; kelewatan (50); } jika (dinyatakanown == RENDAH && minn <59) {minn = minn + 1; kelewatan (50); } lain jika (dinyatakanown == RENDAH && minn == 59) {minn = 0; kelewatan (50); } ///////////////// Kod RFID // Membaca tag RFID semasa ia disajikan. jika (! mfrc522. PICC_IsNewCardPresent ()) {kembali; } // Pilih salah satu kad jika (! Mfrc522. PICC_ReadCardSerial ()) {return; } Kandungan rentetan = ""; surat bait; untuk (byte i = 0; i <mfrc522.uid.size; i ++) {//Serial.println(mfrc522.uid.uidByte <0x10? "0": ""); //Serial.println(mfrc522.uid.uidByte, HEX); content.concat (Rentetan (mfrc522.uid.uidByte <0x10? "0": "")); content.concat (Rentetan (mfrc522.uid.uidByte , HEX)); loker = 1; } content.toUpperCase (); ///////////////// LOCK CODE // Apabila tag RFID yang betul dibaca, pindahkan servo ke posisi terbuka ketika ditutup, // dan pindahkan servo ke posisi tertutup ketika berada buka. sementara (loker == 1) {if (content.substring (1) == "3B 21 D6 22") {// ubah di sini UID kad / kad yang anda ingin berikan akses {case (deg) {case 180: servo.write (deg); deg = 10; loker = 0; Serial.print ("bergerak"); kelewatan (1000); rehat; kes 10: servo.write (deg); deg = 180; loker = 0; kelewatan (1000); rehat; }}} lain {Serial.println ("Akses ditolak"); kelewatan (1000); }}}
Langkah 5: Persediaan Akhir
Langkah terakhir ialah menyiapkan projek untuk digunakan. Mula-mula memuat naik kod dengan garis penetapan waktu tanpa koma, untuk memuat naik waktu semasa ke RTC. Kemudian komen kod tersebut, dan muat semula kodnya. Ini akan memastikan bahawa jika peranti dicabut dari palamnya, ia masih dapat mengekalkan masa yang betul. Sekarang yang harus anda lakukan ialah meletakkan ubat di slot, letakkan cawan di bawah lubang pengeluaran, dan tetapkan masa pengeluaran. Peranti ini akan digunakan pada masa yang sama setiap hari.
Disyorkan:
Dispenser Pembersih Tangan Automatik DIY: 6 Langkah
DIY Automatic Hand Sanitizer Dispenser: Dalam projek ini, kami akan membina Auto Hand Sanitizer Dispenser. Projek ini akan menggunakan Arduino, Ultrasonic Sensor, Water pump, dan Hand Sanitizer. Sensor ultrasonik digunakan untuk memeriksa kehadiran tangan di bawah saluran keluar mesin pembersih
Dispenser Alkohol Gel Automatik Dengan Langkah Esp32: 9
Dispenser Alkohol Gel Automatik Dengan Esp32: Dalam tutorial kita akan melihat bagaimana membuat prototaip lengkap, untuk memasang dispenser alkohol gel automatik dengan esp32, ia akan merangkumi pemasangan langkah demi langkah, litar elektronik dan juga kod sumber yang dijelaskan semua langkah demi langkah langkah
Dispenser Pembersih Tangan Automatik: 3 Langkah
Dispenser Pembersih Tangan Automatik: Dispenser pembersih tangan automatik ini telah dirancang untuk menjadi pilihan kos yang agak rendah yang mudah dipasang. Sebilangan besar barang yang diperlukan boleh dibeli dari peruncit perkakasan dan elektronik tempatan anda. Terdapat pilihan untuk mencetak 3d
Pengumpan Tumbuhan Automatik WiFi Dengan Takungan - Persediaan Penanaman Dalaman / Luaran - Tumbuhan Air Secara Automatik Dengan Pemantauan Jauh: 21 Langkah
Pengumpan Tanaman Automatik WiFi Dengan Takungan - Persediaan Penanaman Dalaman / Luaran - Tumbuhan Air Secara Automatik Dengan Pemantauan Jauh: Dalam tutorial ini kita akan menunjukkan cara mengatur sistem pengumpan tanaman dalaman / luaran khusus yang menyiram tanaman secara automatik dan dapat dipantau dari jarak jauh menggunakan platform Adosia
Mod USB Ubat Gigi Saiz Perjalanan: 6 Langkah
Mod USB Ubat Gigi Travel-Size: Bekas isteri saya meminta saya untuk menyelesaikan semula sambungan USB untuk pemacu kilatnya. Dia memberikannya pada hari Jumaat ketika saya menjemput anak-anak. Niatnya adalah untuk mengambilnya dari saya ketika dia datang untuk mendapatkan anak-anak pada hari Ahad. Saya membuat pembaikan, tidak ada masalah. Hanya untuk f