Proses manufaktur
| × | 1 | ||||
| × | 1 | ||||
| × | 4 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 4 | ||||
| × | 4 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
| ||||
| ||||
|
| ||||
| ||||
| ||||
| ||||
| ||||
| ||||
| ||||
|
Mengapa proyek ini?
Saat ini di pasaran ada dua jenis dispenser pil:non-listrik dan otomatis. Meskipun sebagian besar dari mereka memiliki mekanisme pengingat (tidak selalu cocok untuk orang dengan gangguan penglihatan atau sensorik), kedua jenis ini biasanya membutuhkan orang yang mengatur pil setiap hari atau setiap minggu di kompartemen yang berbeda, membuat pasien menjadi orang yang tergantung. Saat ini karena Covid-19, anggota keluarga atau asisten lansia lebih sulit untuk merawat orang yang menjadi tanggungan.
Itulah sebabnya kami melihat perlunya membuat dispenser pil pintar yang tidak memerlukan organisasi pil buatan tangan, dapat diakses oleh penyandang disabilitas, dan memiliki kapasitas untuk membantu pasien menjadi lebih mandiri.
Di bawah ini kami tunjukkan 10 dispenser pil terbaik tahun 2020:
Seperti yang Anda lihat, ada banyak hal yang perlu ditingkatkan di dunia kotak obat. Dan inilah tepatnya yang akan dipecahkan oleh SmartPill.
Bagaimana cara kerjanya?
Sistem SmartPill terdiri dari 2 subsistem:
Dengan bantuan aplikasi web dengan antarmuka pengguna yang ramah, dokter dapat mengonfigurasi hingga 4 pil berbeda untuk setiap Smartpill Dispenser dan akan memilih hingga 3 asupan per hari untuk setiap pil. Ini memungkinkan dokter untuk mengubah dosis dari jarak jauh kapan pun diperlukan tanpa campur tangan pasien itu sendiri.
Sistem SmartPill telah dirancang dengan mempertimbangkan kesulitan yang dialami pasien dengan demensia pikun, Alzheimer, atau gangguan penglihatan atau pendengaran. Untuk alasan ini, dispenser memiliki layar format besar yang memungkinkan pasien untuk mengisi pil dengan nyaman serta umpan balik yang dapat didengar dan ringan yang akan mengingatkan pasien untuk meminum pil pada waktu yang tepat.
Pengguna tidak perlu khawatir tentang di mana atau bagaimana pil yang berbeda harus diletakkan. Itu karena ada mekanisme cerdas yang mendistribusikan pil di dalam dispenser pil dan mengeluarkan dosis yang diperlukan pada waktu yang tepat.
SmartPill Dispenser memiliki koneksi Internet nirkabel ke AWS Cloud berkat koneksi WiFi papan Microchip AVR-IoT, sehingga dapat dipantau dan dikonfigurasi dari jarak jauh melalui aplikasi web.
Aplikasi juga akan menunjukkan kapan pil telah diminum dan akan memberi tahu anggota keluarga jika pil tidak diminum.
SmartPill Dispenser
Sistem Pengeluaran
Anda mungkin bertanya-tanya, bagaimana cara kerja sistem pengeluaran? Bagian ini menunjukkan semua bagian yang berbeda dan menjelaskan fungsinya.
Harus kami klarifikasi bahwa selain layar, semuanya telah dicetak 3D dengan Plastik PLA. Anda juga dapat memeriksa file .STL dari seluruh dispenser yang tersedia di bawah.
1. Basis :Ini mendukung sisa dispenser. Ini memiliki dua lubang untuk membuat sensor gerak berfungsi. Ini berisi penutup yang membawa pil ke dalam cangkir.
2. Penggeser :Bagian atas penggeser menopang wadah pil. Di bawahnya ada lereng di mana pil turun sampai ke tutupnya. Di bagian bawah ada celah yang disiapkan untuk meletakkan semua barang elektronik di dalamnya.
3. Bagian samping :Digunakan untuk melindungi perangkat keras dan tablet dari kelembapan, suhu, kotoran, dan debu.
4. Selanjutnya NX8048T070 :Layar yang digunakan sebagai antarmuka antara dispenser dan pengguna.
5. Bagian atas :
6. Servo Paralaks 900-0005 :Motor listrik 360º yang ditempatkan pada posisi yang tepat nomor bagian 7.
7. Drum :Tabung penghubung antara bagian luar dan wadah pil. Itu berputar untuk sampai ke wadah yang tepat.
8. Pintu belakang :Diperlukan untuk masuk dan keluar wadah pil dengan penggeser.
9. Pembicara :Mereka akan mengomunikasikan kepada pengguna semua informasi yang dibutuhkan.
10. Sensor Ultrasonik - HC SR04 :Perangkat ini akan mendeteksi jika cangkir telah dipindahkan.
11. Wadah pil :Mereka mengandung pil dan mereka mengeluarkannya pada saat yang tepat dengan jumlah yang tepat. Sebagai prototipe, kami telah merancang dispenser pil dengan 4 wadah. Namun, dapat disesuaikan dengan kapasitas yang lebih besar.
Apakah Anda ingin Dispenser SmartPill Anda sendiri? Unduh file STL di bagian bawah dan cetak semua bagian dengan printer 3D Anda! Proyek ini sepenuhnya open-source.
Di bagian selanjutnya kami akan menjelaskan langkah demi langkah cara merakit sistem pengeluaran.
Perakitan
Elektronik
Otak elektronik utama adalah Arduino Mega yang akan mengendalikan motor servo yang mengeluarkan pil, serta layar sentuh Nextion, Real-Time Clock (RTC), efek suara, dan papan komunikasi AVR-IoT.
Untuk mereplikasi proyek, Anda harus melakukan semua koneksi seperti yang dijelaskan dalam skema dengan bantuan protoboard atau PCB buatan sendiri. Kami sangat menyarankan untuk memasang rangkaian di semacam pelat kayu seperti pada gambar di atas.
Skema dapat ditemukan di akhir halaman.
Aplikasi Web SmartPill
Aplikasi Web SmartPill bertujuan untuk memfasilitasi pengalaman yang memerlukan pengaturan perangkat elektronik dan pengendalian obat orang lain.
Bagaimana ini dikembangkan?
Untuk mengembangkan web dari awal, Anda bekerja dengan area dasar pemrograman:backend dan frontend. Aplikasi Web Smartpill telah dibuat dengan:
Ionic adalah kerangka kerja NodeJS yang sepenuhnya gratis dan opensource berdasarkan AngularJS yang menyediakan elemen UI khusus platform melalui pustaka komponen asli untuk iOS dan Android. Ini menggunakan teknologi front-end seperti HTML, CSS, JavaScript, dan Angular untuk pengembangan aplikasi. Ionic dapat menggunakan Angular CLI (Command-Line Interface) untuk membuat aplikasi seluler yang berfungsi penuh.
Ingatlah bahwa sebelum memulai web Anda dengan Ionic, Node.js harus diinstal agar berfungsi, karena Ionic adalah bagian dari ekosistem JavaScript yang besar.
Halaman Dokumentasi Kerangka Ionic dapat memandu Anda tanpa masalah dalam memulai aplikasi Anda. Namun saya akan menyebutkan secara singkat langkah pertama yang diikuti untuk pembuatan aplikasi Smartpill:
1. Buka baris perintah editor kode Anda dan instal ionic CLI dengan npm:
$ npm install -g @ionic/cli
2. Buat aplikasi baru:
$ ionic start smartpill-webui blank
3. Buka folder frontend Anda dan jalankan:
$ cd smartpill-webui
$ ionic serve
Menjalankan aplikasi Anda berarti Anda dapat mengujinya di browser perangkat Anda. Fungsi ionik ini penting untuk debugging dan pengujian.
Struktur dasar Aplikasi Web Smartpill.
Aplikasi Web Smartpill diatur dengan cara yang sederhana, untuk menyederhanakan navigasi. Di dalam folder aplikasi, kita dapat menemukan modul perutean aplikasi, file komponen aplikasi, folder “layanan”, dan folder untuk setiap rute.
Jika Anda belum pernah menyentuh teknologi frontend, Anda akan melihat dalam ikhtisar kode ini bagaimana bahasa yang berbeda berinteraksi satu sama lain. Tetapi jika kami jelaskan secara singkat cara kerjanya, bagian web yang akan Anda lihat adalah file html dari folder tersebut, sedangkan file TypeScript adalah fungsi yang dijalankan saat pengguna berinteraksi dengan halaman. Modules.ts adalah untuk tujuan perutean.
File paling penting dari aplikasi Smartpill adalah:
const route:Routes =[
{
path:'',
redirectTo:'page-login',
pathMatch:'full'
},
{
path:'page-config',
loadChildren:() => import('./page-config/page-config.module').then( m => m.PageConfigPageModule)
},
{
path:'page-status',
loadChildren:() => import('./page-status/page- status.module').lalu( m => m.PageStatusPageModule)
},
...
getPosts() {
return this.http.get(this.API);
}
getDeposit() {
kembalikan ini.http.get(ini.DEPOSIT);
}
getLogs(){
kembalikan ini.http.get (this.LOGS);
}
createPost(pill:string, deposit:string, weight:string, pagi:boolean, siang:boolean, malam:boolean) {
return this.http.post(this.API, {
pill,
deposit,
weight,
morning,
sore,
malam,
});
}
removePost(id:string) {
return this.http.delete(` ${this.API}/${id}`);
}
...
Konfigurasi dan edit halaman pil.
Smartpill memiliki rute yang didedikasikan untuk menampilkan semua posting yang diprogram yang disebut "page-config". Untuk membuat posting baru untuk mengkonfigurasi pil, pengguna harus menekan tombol di sudut kanan bawah yang akan mengalihkan mereka ke halaman edit "halaman-edit-pil". Namun jika mereka tidak ingin membuat tetapi mengedit, dengan menekan tombol edit dari posting yang sudah dibuat, web juga akan mengarahkan mereka ke "halaman-edit-pil" tetapi membawa id posting. Kedua pernyataan tersebut didefinisikan sebagai berikut:
Edit
Halaman “page-edit-pill” mengenali apakah pengguna telah memasuki rute dengan atau tanpa id, dan melakukan fungsi yang sesuai dengan bantuan ifs sederhana.
{
path:'pill/edit/:postId',
loadChildren:() => import('./page-edit-pill/page-edit-pill.module ').lalu( m => m.PageEditPillPageModule)
},
ngOnInit() {
this.actiavtedRoute.paramMap.subscribe((paramMap) => {
if(ParamMap.get("postId")) {
this. postService
.getPostById(paramMap.get("postId"))
.subscribe((res) => {
this.post =res;
this.editing =true;
});
}
});
}
{{editing?
'Update Your':
'Create your'
}} Deposit
{{editing ? 'Perbarui':'Kirim'}}
“Halaman edit-pil” berinteraksi dengan pengguna dengan komponen UI ionik seperti input dan pilihan, yang nantinya akan dikirim ke API:
Klik di sini untuk memilih waktu.
cancelText="Batal" okText="Kirim">
Pagi
Sore
Malam
Nama pil:
"Halaman konfigurasi" telah diprogram dengan Angular Life Cycle, jadi ketika Anda kembali dari "halaman-edit-pil" atau dari yang lain, halaman akan di-refresh dan posting akan dimuat ulang, memperbarui perubahan secara otomatis.
loadPosts(){
this.postService.getPosts().subscribe(
(res) => {
this.posts =res;
},
(err) => console.log(err)
);
this.postService.getDeposit().subscribe(
(res) => {
ini .dep =res;
console.log(this.dep);
};
(err) => console.log(err)
);
"Halaman konfigurasi" juga memiliki tombol yang memungkinkan pengguna untuk menghapus pil apa pun. Ini adalah fungsi asinkron yang menampilkan alarm pesan untuk memverifikasi apakah mereka yakin dengan tindakan ini.
async removePost(id:string){
const alert=menunggu this.alertController.create({
header:"Alert",
subHeader:"Apakah Anda yakin Anda ingin menghapus setoran ini?",
pesan:"Anda tidak dapat memulihkannya.",
tombol:[
"Batal",
{
teks:"Ya",
handler:() => {
this.postService.removePost(id).subscribe(
(res) => {
console.log (res);
this.loadPosts();
},
(err) => console.log(err)
);
},
},
],
});
menunggu alert.present();
}
Halaman log
Halaman log mendapatkan informasi pil yang dibagikan dan menampilkannya sebagai log pada rute riwayat. Ini bekerja mirip dengan "halaman konfigurasi" tetapi hanya memuat informasi yang terletak di API:
loadPosts() {
this.postService.getLogs().subscribe(
(res) => {
this.log =res;
konsol. log(this.log);
},
(err) => console.log(err)
);
}
ngOnInit() {
this.loadPosts();
}
ionViewWillEnter(){
this.loadPosts();
}
{{ log.date | tanggal:'dd/MM/yyy' }} - {{ log.date | tanggal:'HH_mm' }}h
{{log.patient_name}}
{{log.pills}}
Layanan Web Amazon
AWS adalah penyedia layanan yang dipilih untuk menerapkan Sistem SmartPill karena menawarkan berbagai layanan dalam ekosistem yang sama yang memungkinkan kami melakukan pendekatan tanpa server sepenuhnya. Ini memungkinkan aplikasi untuk meningkat sesuai kebutuhan pengguna dan hanya membayar sesuai penggunaannya.
Pill Pintar Arsitektur Awan
Sistem Smartpill menggunakan arsitektur tanpa server sepenuhnya menggunakan Amazon Web Services. Ini memungkinkan aplikasi untuk ditingkatkan dan diturunkan agar dapat disesuaikan dengan kebutuhan pengguna. Arsitekturnya digambarkan dalam diagram di bawah ini:
Smartpill Dispenser menggunakan papan Microchip AVR-IoT dengan kemampuan WiFi untuk berkomunikasi dengan ekosistem AWS. AVR-IoT terhubung melalui AWS IoT Core dengan protokol MQTT. Ini memungkinkan konektivitas dua arah antara ekosistem Cloud dan perangkat keras itu sendiri. Komunikasi ini digunakan untuk mengirim pesan pengeluaran ke Dispenser serta peristiwa konfirmasi dari dispenser ke cloud.
Frontend aplikasi web yang dikembangkan menggunakan kerangka kerja Ionic Angular NodeJS dikompilasi, dan file statisnya diunggah ke layanan penyimpanan AWS S3. Bagian belakang aplikasi web adalah layanan HTTT API Rest yang dikembangkan dengan AWS API Gateway yang memanggil fungsi Lambda. Fungsi Lambda ini berkomunikasi dengan database DynamoDB yang menyimpan konfigurasi pil dan log asupan.
Jembatan AWS Event digunakan sebagai penjadwal untuk memicu peristiwa pengeluaran pada waktu yang tepat. Peristiwa ini memicu fungsi Lambda yang akan mencari database untuk pil yang dibutuhkan di setiap asupan dan akan mengirimkan informasi ini ke SmartPill Dispenser melalui IoT Core.
AWS-IoT Inti
Hal pertama yang perlu Anda lakukan untuk mulai menjalankan papan AVR-IoT dengan AWS IoT Core adalah menghubungkan papan ke Akun AWS Anda. Proses ini dijelaskan oleh Microchip dalam Panduan Pengembang IoT untuk AWS
Dengan ini, Anda akan menyiapkan Papan AVR-IoT Anda untuk masuk ke akun AWS Anda. Anda dapat melihat ini di AWS IoT Core di bagian Kelola → Tab berbagai hal.
Kemudian pastikan board AVR-IoT Anda memiliki akses Internet dengan mengonfigurasinya dengan kredensial WiFi Anda seperti yang dijelaskan dalam Panduan Memulai:
AWS DynamoDB
Kemudian Anda akan ingin mengonfigurasi aplikasi web, untuk ini, hal pertama yang perlu Anda lakukan adalah mendaftarkan tabel DynamoDB yang dibutuhkan aplikasi web:
Klik buat tabel:
Berikan nama yang tepat dan Pilih "id" sebagai kunci utama.
AWS Lambda
Pastikan Anda memiliki AmazonDynamicDBFullAccess terpasang. Sehingga fungsi Lambda dapat Membaca/Menulis dari Database DynamoDB. Untuk ini, buka tab Izin:
Dan klik de Nama Peran. Ini akan mengarahkan Anda ke Peran Eksekusi untuk fungsi Lambda ini. Kami menyarankan agar setiap fungsi Lambda memiliki Peran Eksekusinya sendiri.
AmazonDynamoDBFullAccess harus muncul, jika tidak klik Lampirkan kebijakan dan Cari "dynamodb":
Memberi fungsi Lambda akses penuh DynamoDB hanya aman untuk tujuan tutorial ini, tidak dilakukan untuk lingkungan produksi.
Sekarang masuk ke konfigurasi dan tambahkan kode fungsi dari repositori Github (tautan di bawah):
Ulangi ini untuk semua fungsi Lambda di repositori.
Kemudian, kami akan mengonfigurasi integrasi antara Lambda dan IoT Core sehingga fungsi yang tepat dijalankan saat pesan dikirim oleh board.
Kami akan mengonfigurasi konfirmasi pengiriman pesan yang dikirim oleh AVR-IoT sehingga entri log dan notifikasi yang sesuai dapat dibuat di database.
Kami pergi ke AWS-IoT Core, klik Tambah dan Aturan untuk mengonfigurasi Aturan:
Klik Buat Aturan baru, beri nama:smartpill_confirmationpill dan deskripsi singkat
Kemudian masukkan pernyataan kueri berikut:
PILIH * FROM 'confirmationpill'
dan konfigurasikan tindakan 'Kirim pesan ke fungsi Lambda' untuk menunjuk ke 'smartpill-confirmationpill' yang dibuat sebelumnya:
Anda siap untuk melanjutkan ke bagian selanjutnya.
Jembatan Peristiwa AWS
Event Bridge akan mengurus peluncuran fungsi lambda yang akan mengirim pesan ke SmartPill Dispenser untuk mengeluarkan pil pada waktu yang tepat. Kami akan mengonfigurasi 3 pemicu acara terjadwal untuk melakukan itu. Satu untuk pagi, satu untuk siang dan satu untuk asupan malam.
Buka layanan AWS Event Bridge dan klik "Buat Aturan".
Beri nama dan konfigurasikan de Schedule event pattern sebagai ekspresi cron:
CATATAN:Perhatikan bahwa ekspresi cron ini dalam waktu UTC.
Pilih fungsi Lambda 'smartpill-dispensepill' sebagai Target:
Fungsi Lambda ini akan dijalankan pada waktu yang ditentukan.
Tetapkan dua Aturan lagi untuk waktu yang diinginkan pada asupan pagi, siang dan malam.
Gerbang API AWS
Buka AWS API Gateway dan klik Buat API. Pilih HTTP API dan klik Build:
Berikan "smartpill-webui" sebagai nama (atau apa pun yang Anda inginkan, ini tidak terlalu penting)
Dan konfigurasikan semua fungsi Lambda sebagai Integrasi:
Klik Berikutnya dan konfigurasikan semua rute seperti yang ditentukan dalam tabel di bawah ini:
Terakhir, terapkan API untuk mendapatkan titik akhir HTTP.
Alternatively you can import the JSON file 'smartpill-api.json' on the repository down below.
AWS S3
AWS S3 storage service is made for storing files but it can also act as a static web server for example a web page. In order to do so, you first need to create a Bucket.
Go to S3 and Click on "Create a Bucket":
Give a friendly name (this will be your DNS).
Now you will have to activate Static website hosting feature. Go to properties and go straight to the bottom. You will find this:
Click on "Edit" and Enable the Static website hosting feature and select 'index.html' as your index and error document:
Then upload your website static files that Angular has compiled and access your DNS. You are ready to go!
AVR-IoT Board
AVR-IoT board from Microchip is used as a communication interface in order to provide connectivity to the Cloud to the Dispenser. It is connected to the Main Arduino Board by means of a Serial interface.
Firmware for the AVR-IoT WA Development Board based on the original example
The already implemented CLI have been extended including the command "pill" , its corresponding callback pill_command() that parses the message and sends th confirmation JSON by MQTT to the topic "confirmationpill". Also, the message in case of unknown message is customized as well as in the callback in case of incorrect parameter.
The original CLI used the USART2, which is connected to the debugger by the PCB but is not accessible. For this version, the CLI structure and the funtionality printf() are now implemented on the USART1, which is avaliable with the pin conectors RX and TX . This alows us to use this CLI with any external device, taking into account the following configuration:
We have also managed to add a custom MQTT topic subscription with a JSON parser. On the aplication_manager.c could be found the modified version of subscribeToCloud() to subscribe to "dispensepill" custom topic and how it is linked to a custom callback receiveddispenseFromCloud() in which the data from the JSON is extracted.
On IoTPill.h header are defined the main structures used to control the data received and sent.
In order to enable communication between the Main Arduino board and the AVR-IoT we have developed a simple communication bidirectional protocol that has two messages.
'dispensepill' message (AWS → IoT Board → Arduino)
Event Bridge will trigger the smartpill-dispensepill Lambda function to send by MQTT to IoT Board a JSON formated string that has this fields:
{
"cmd":"dispensepill",
"npills":2,
"intake":{
"time":"morning"
},
"pills":{
"1":{
"pill":"Ibuprofeno",
"qty":1,
"deposit":1,
"weight":200
},
"2":{
"pill":"Paracetamol",
"qty":2,
"deposit":2,
"weight":500
}
}
}
and the IoT board will send by USART to the Arduino:
D Ibuprofeno 1 1 200 D Paracetamol 2 2 500 \n
'confirmationpill' messageArduino → IoT Board → AWS
The arduino will send to the command "pill " and, if the delivery was incorrect or correct, it will add a ' 1 ' if it was okay:
pill 1
This message will be processed by the custom CLI of the IoT Board taking into account the intake previusly send ( specifying the corresponding "time") and it will send the following JSON to AWS:
{
"time":"morning",
"state":"ok"
}
AWS will send the log with Lambda functions triggered to the Web service
Any questions? Leave a comment below and we will do our best to help you!
Proses manufaktur
Komponen dan persediaan Arduino 101 × 1 Baterai AA × 1 tempat baterai 4xAA × 1 Aksesori Dilindungi × 1 Sensor Tekanan Adafruit BMP180 × 1 Adafruit Ultimate GPS Breakout × 1 Adafruit - Magnetik 3 Sumbu × 1 Sensor Kelembaban
Komponen dan persediaan Raspberry Pi 3 Model B × 1 Arduino Mega 2560 × 1 Sensor Ultrasonik - HC-SR04 (Generik) × 3 Aplikasi dan layanan online Samsung ARTIK Cloud untuk IoT Google Maps Arduino IDE Tentang proyek ini M
Komponen dan persediaan Arduino Nano R3 × 1 Raspberry Pi Zero Wireless × 1 Tentang proyek ini Postingan Blog Ringkasan Smart Buoy Halo semuanya! Ini adalah ringkasan singkat dari proyek pelampung pintar kami. Kami akan memecah bangunan teknis menjadi beberapa pos
Komponen dan persediaan Arduino Mega 2560 × 1 NEO 6 GPS × 1 Adafruit SD Card Shield × 1 Adafruit SD Card Shield × 1 Seeedstudio gprs shield V2.0 × 1 Seeed GPRS Shield V2.0 × 1 Kabel jumper (generik) × 1 Baterai 9V (generik)