Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Dispenser Pil Cerdas

Komponen dan persediaan

Dewan Pengembangan AVR-IoT WA Teknologi Microchip
× 1
Arduino Mega 2560
× 1
Motor servo mikro SG90
× 4
Itead Nextion NX8048T070 - Layar Sentuh LCD TFT HMI 7.0" Generik
× 1
Adafruit 16-Channel 12-bit PWM/Servo Driver I2C
× 1
Speaker:0,25W, 8 ohm
× 1
Adafruit Photo Transistor Sensor Cahaya IR
× 4
Adafruit 5mm IR LED - 940nm
× 4
Sensor Ultrasonik - HC-SR04 (Generik)
× 1
Umpan Balik Paralaks Servo Berkecepatan Tinggi 360°
× 1
Adafruit 5V 2A Switching Wall Power Supply
× 1

Alat dan mesin yang diperlukan

Printer 3D (generik)
Besi solder (generik)
Kawat Solder, Bebas Timah

Aplikasi dan layanan online

Teknologi Microchip MPLAB X IDE
Arduino IDE
Autodesk Fusion 360
Layanan Web Amazon AWS IoT
Layanan Web Amazon AWS DynamoDB
Amazon Web Services AWS API Gateway
Layanan Web Amazon AWS Lambda
Kode Microsoft VS

Tentang proyek ini

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:

  • Dispenser Smartpill: Perangkat fisik yang akan mengatur, menyimpan dan mengeluarkan pil. Ini akan bertindak sebagai antarmuka utama untuk pasien.
  • Aplikasi Web Smartpill: Antarmuka pengguna web yang memungkinkan dokter atau penanggung jawab pasien untuk mengonfigurasi dan melacak asupan pasien.

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 :

  • Digunakan untuk melindungi perangkat keras dan tablet dari kelembapan, suhu, kotoran, dan debu (Atas).
  • Memisahkan drum dari wadah pil (Bawah).

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

  • Untuk mencetak 3d Slider (Bagian 2 - Gambar umum) kami telah membaginya menjadi tiga bagian. Jadi, pertama-tama kita merakitnya. Petik kacangnya (2.3.2 - Gambar Geser ) dan pasang di Slider (2.2 - Gambar Geser ) dengan tukang las. Kemudian kencangkan kedua bagian (2.3.1 &2.2 - Gambar Geser ). Tunggu hingga tutup (2.4 - Gambar Slider) sampai elektronik terhubung.
  • Letakkan elektronik di dalam celah penggeser, termasuk Sensor Ultrasonik - HC SR4 (Bagian 10- Gambar Umum) dan kencangkan penutup penggeser (2.4).
  • Memasang wadah pil (Lihat Gambar Wadah Pil ) dengan masing-masing servo SG90. Pertama bergabung dengan Bagian 1 dengan Bagian 7 dan kencangkan SG90 ke Bagian 7 . Kemudian gabungkan Bagian 3 dengan Bagian 4 (Bantalan roda) dan terakhir tambahkan Bagian 2. Kemudian kencangkan wadah pil ke bagian atas Slider (Bagian 2 - Gambar umum) .
  • Kencangkan Layar (Bagian 4 - Gambar umum). ke bagian samping yang tepat dan pasang steker. Dan kemudian gabungkan bagian Sider (Bagian 3 - Gambar umum) ke pangkalan sampai mereka mengklik.
  • Ada dua bagian Atas ( (Bagian 5 - Gambar umum) . Kami merakitnya dengan memetik lagi mur dan memasangnya di bagian-bagiannya. Kali ini tidak diperlukan tukang las. Pasang Drum (Bagian 7 - Gambar umum) dan Servo Paralaks (Bagian 6- Gambar umum) di antara mereka dan kami mengencangkan kedua bagian atas bersama-sama.
  • Akhirnya kencangkan pintu Belakang (Bagian 8 - Gambar umum) ke rakitan bagian atas.

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.

  • AVR-IoT terhubung ke Arduino Mega melalui koneksi Serial UART.
  • Motor servo dikendalikan oleh PWM.
  • RTC terhubung ke Arduino Mega oleh I2C.
  • Sensor penghalang IR untuk mendeteksi pil terhubung ke pin analog papan Arduino.

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.

  • Pengaturan SmartPill Dispenser yang mudah, dengan informasi pasien, pil yang harus diminum, dosis yang dibutuhkan, dan interval waktu.
  • Memantau asupan pil.

Bagaimana ini dikembangkan?

Untuk mengembangkan web dari awal, Anda bekerja dengan area dasar pemrograman:backend dan frontend. Aplikasi Web Smartpill telah dibuat dengan:

  • Latar belakang. AWS API Gateway (HTTT API Rest).
  • Depan. Ionik &Sudut. Untuk mengembangkan web dari awal, Anda bekerja dengan area dasar pemrograman:backend dan frontend.

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:

  • app-routing.module.ts. Ini memungkinkan pengguna untuk menavigasi melalui semua rute berbeda yang tersedia. Jalur tertentu memungkinkan pengembang web membawa variabel dari satu rute ke rute lainnya.
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)
},
...
  • post.service.ts. Ini berkomunikasi dengan API. Di sini antarmuka utama didefinisikan (Post, Dep dan Log), bersama dengan kelas PostService. PostService memiliki fungsi dasar utama untuk berkomunikasi dengan API:get function, untuk menerima informasi dari API; posting, untuk membuat artikel baru di API; hapus, untuk menghapus artikel; dan menempatkan, untuk mengedit artikel yang ada di antarmuka, tetapi menghapus data sebelumnya yang dikandungnya.
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:

  • Buat tombol pos baru




  • Tombol Edit postingan


Edit

Halaman “page-edit-pill” mengenali apakah pengguna telah memasuki rute dengan atau tanpa id, dan melakukan fungsi yang sesuai dengan bantuan ifs sederhana.

  • Jalur dengan Id yang ditentukan dalam modul rute
{
path:'pill/edit/:postId',
loadChildren:() => import('./page-edit-pill/page-edit-pill.module ').lalu( m => m.PageEditPillPageModule)
},
  • Membaca apakah rute membawa ID
ngOnInit() {
this.actiavtedRoute.paramMap.subscribe((paramMap) => {
if(ParamMap.get("postId")) {
this. postService
.getPostById(paramMap.get("postId"))
.subscribe((res) => {
this.post =res;
this.editing =true;
});
}
});
}
  • Jika menampilkan contoh

{{editing?
'Update Your':
'Create your'
}} Deposit
  • Contoh tombol jika

{{editing ? 'Perbarui':'Kirim'}}

“Halaman edit-pil” berinteraksi dengan pengguna dengan komponen UI ionik seperti input dan pilihan, yang nantinya akan dikirim ke API:

  • Pilih beberapa waktu

Klik di sini untuk memilih waktu.
cancelText="Batal" okText="Kirim">
Pagi
Sore
Malam

  • Masukan pil

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.

  • Muat Fungsi Posting
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.

  • Menghapus Postingan
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:

  • Mendapatkan Log
loadPosts() {
this.postService.getLogs().subscribe(
(res) => {
this.log =res;
konsol. log(this.log);
},
(err) => console.log(err)
);
}

ngOnInit() {
this.loadPosts();
}

ionViewWillEnter(){
this.loadPosts();
}
  • Menampilkan log








{{ 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:

  • smartpill-history:Akan menyimpan semua log untuk pil yang diminum
  • smartpill-pills:Akan menyimpan pil yang telah dikonfigurasi

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: Will be triggered by AWS Event Bridge at the right time and will send the event to the Dispenser to dispense a pill
  • confirmationpill :Will be send by the AVR-IoT board when the pill has been correctly dispensed in order to announce it to the AWS, which will log into the database.

'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!

Kode

Smartpill Web Application
Frontend code for the webapp user interfacehttps://github.com/makers-upv/smartpill-webui
Smartpill Backend Lambda functions
https://github.com/makers-upv/smartpill-lambda
Smartpill AVR-IoT Code
https://github.com/makers-upv/smartpill-avriot
Smartpill Arduino Code
https://github.com/makers-upv/smartpill-arduinofw

Suku cadang dan penutup khusus

Thingiverse Repository
Thingiverse Repository for SmartPill DispenserCAD file on thingiverse.com Pill Dispenser Mechanism that will take care of dispensing the correct quantity of pills. It is controlled by a servo.SmartPill Dispenser enclousureThe full assembly of the project. It's in STEP format so it can be modified by everyone. smartpill_full_assembly_ybV7DD7ehX.step

Skema

SmartPill Electronics HW connections

Proses manufaktur

  1. Pil Tidur
  2. Pil KB
  3. Bartender Cerdas
  4. Lampu Lalu Lintas Cerdas
  5. Tempat Sampah Pintar
  6. Smart Plant IoT
  7. UnifiedWater v1
  8. Smart Blinds
  9. Manufaktur Cerdas Autodesk
  10. Apa itu Manufaktur Cerdas?