Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Intelligenter Tablettenspender

Komponenten und Verbrauchsmaterialien

Microchip Technology AVR-IoT WA Development Board
× 1
Arduino Mega 2560
× 1
SG90 Micro-Servomotor
× 4
Itead Nextion NX8048T070 - Generisches 7,0"-HMI-TFT-LCD-Touch-Display
× 1
Adafruit 16-Kanal-12-Bit-PWM/Servo-Treiber I2C
× 1
Lautsprecher:0,25 W, 8 Ohm
× 1
Adafruit Photo Transistor IR-Lichtsensor
× 4
Adafruit 5 mm IR-LED - 940 nm
× 4
Ultraschallsensor - HC-SR04 (Generic)
× 1
Parallax Feedback 360° Hochgeschwindigkeits-Servo
× 1
Adafruit 5V 2A Schaltnetzteil
× 1

Notwendige Werkzeuge und Maschinen

3D-Drucker (generisch)
Lötkolben (generisch)
Lötdraht, bleifrei

Apps und Onlinedienste

Microchip Technology MPLAB X IDE
Arduino-IDE
Autodesk Fusion 360
Amazon Web Services AWS IoT
Amazon Web Services AWS DynamoDB
Amazon Web Services AWS API Gateway
Amazon Web Services AWS Lambda
Microsoft VS-Code

Über dieses Projekt

Warum dieses Projekt?

Derzeit gibt es auf dem Markt zwei Arten von Tablettenspendern:nichtelektrische und automatische. Obwohl die meisten von ihnen über einen Erinnerungsmechanismus verfügen (nicht immer für Menschen mit Seh- oder Sinnesbehinderungen geeignet), erfordern beide Arten normalerweise eine Person, die die Pillen täglich oder wöchentlich in verschiedene Fächer einsortiert, wodurch der Patient zu einer abhängigen Person wird. Aufgrund von Covid-19 haben Familienmitglieder oder Altenpfleger heutzutage mehr Schwierigkeiten, sich um pflegebedürftige Personen zu kümmern.

Aus diesem Grund sahen wir die Notwendigkeit, einen intelligenten Tablettenspender zu entwickeln, der keine handgemachte Pillenorganisation benötigt, für behinderte Menschen zugänglich ist und den Patienten helfen kann, unabhängiger zu werden.

Hier unten zeigen wir Ihnen die 10 besten Tablettenspender des Jahres 2020:

Wie Sie sehen, gibt es in der Welt der Pillendosen viel zu verbessern. Und genau das wird SmartPill lösen.

Wie funktioniert es?

Das SmartPill-System besteht aus 2 Subsystemen:

  • Smartpill-Spender: Physisches Gerät, das die Pillen organisiert, lagert und ausgibt. Es fungiert als Hauptschnittstelle für den Patienten.
  • Smartpill-Web-App: Web-Benutzeroberfläche, die es dem Arzt oder der verantwortlichen Person für den Patienten ermöglicht, die Patientenaufnahme zu konfigurieren und zu verfolgen.

Mit Hilfe der Webanwendung mit einer netten, benutzerfreundlichen Benutzeroberfläche kann der Arzt bis zu 4 verschiedene Pillen für jeden Smartpill Dispenser konfigurieren und bis zu 3 Einnahme pro Tag für jede Pille auswählen. Dies ermöglicht dem Arzt, die Dosierung bei Bedarf aus der Ferne zu ändern, ohne dass der Patient selbst eingreifen muss.

Das SmartPill-System wurde unter Berücksichtigung der Schwierigkeiten entwickelt, die ein Patient mit Altersdemenz, Alzheimer oder Seh- oder Hörbehinderungen haben kann. Aus diesem Grund verfügt der Spender über einen großformatigen Bildschirm, der es dem Patienten ermöglicht, die Pillen bequem zu füllen, sowie ein akustisches und leichtes Feedback, das den Patienten daran erinnert, die Pillen zum richtigen Zeitpunkt einzunehmen.

Der Benutzer muss sich keine Gedanken darüber machen, wo oder wie die verschiedenen Pillen platziert werden müssen. Das liegt daran, dass es einen intelligenten Mechanismus gibt, der die Pillen im Tablettenspender verteilt und die erforderliche Dosis zum richtigen Zeitpunkt abgibt.

SmartPill Dispenser verfügt dank der WiFi-Verbindung des Microchip AVR-IoT-Boards über eine drahtlose Internetverbindung zur AWS Cloud, sodass er über die Webanwendung aus der Ferne überwacht und konfiguriert werden kann.

Die App zeigt auch an, wann die Pille eingenommen wurde und benachrichtigt das Familienmitglied, wenn die Pille nicht eingenommen wird.

SmartPill-Spender

Ausgabesystem

Sie fragen sich vielleicht, wie das Dosiersystem funktioniert? Dieser Abschnitt zeigt alle verschiedenen Teile und erklärt ihre Funktionsweise.

Wir müssen klarstellen, dass außer dem Bildschirm alles mit PLA-Kunststoff in 3D gedruckt wurde. Sie können auch die .STL-Datei des gesamten Spenders unten überprüfen.

1. Basis :Es unterstützt den Rest des Spenders. Es hat zwei Löcher, um den Bewegungssensor funktionsfähig zu machen. Es enthält eine Klappe, die die Pillen in den Becher bringt.

2. Schieberegler :Die Oberseite des Schiebers unterstützt die Tablettenbehälter. Darunter befindet sich eine Schräge, in der die Pillen bis zur Klappe hinuntergehen. Auf der Unterseite befindet sich eine Lücke, die vorbereitet ist, um die gesamte Elektronik darin unterzubringen.

3. Seitenteile :Wird verwendet, um die Hardware und Tabletten vor Feuchtigkeit, Temperaturen, Schmutz und Staub zu schützen.

4. Nextion NX8048T070 :Bildschirm, der als Schnittstelle zwischen dem Spender und dem Benutzer verwendet wird.

5. Oberteile :

  • Wird verwendet, um die Hardware und Tabletten vor Feuchtigkeit, Temperaturen, Schmutz und Staub zu schützen (oben).
  • Trennt die Trommel von den Tablettenbehältern (unten).

6. Parallax-Servo 900-0005 :360º Elektromotor, der in die richtige Position bringt Teilenummer 7.

7. Trommel :Verbindungsschlauch zwischen der Außenseite und den Tablettenbehältern. Es dreht sich, um zum richtigen Container zu gelangen.

8. Hintertür :Wird benötigt, um mit dem Schieberegler in die Tablettenbehälter ein- und auszusteigen.

9. Lautsprecher :Sie werden dem Benutzer alle erforderlichen Informationen mitteilen.

10. Ultraschallsensor - HC SR04 :Dieses Gerät erkennt, wenn die Tasse wegbewegt wurde.

11. Tablettendosen :Sie enthalten die Pillen und geben sie im richtigen Moment in der richtigen Menge ab. Als Prototyp haben wir den Tablettenspender mit 4 Behältern konzipiert. Es kann jedoch an eine größere Kapazität angepasst werden.

Möchten Sie Ihren eigenen SmartPill-Dispenser? Laden Sie die STL-Dateien unten herunter und drucken Sie alle Teile mit Ihrem 3D-Drucker! Das Projekt ist vollständig Open Source.

Im nächsten Abschnitt erklären wir Ihnen Schritt für Schritt, wie Sie das Dosiersystem zusammenbauen.

Montage

  • Um den Slider in 3D zu drucken (Teil 2 - Gesamtzeichnung) Wir haben es in drei Teile aufgeteilt. Also bauen wir es erst einmal zusammen. Pflücke die Nüsse (2.3.2 - Slider-Zeichnung ) und füge sie in den Slider ein (2.2 - Slider-Zeichnung ) mit einem Schweißgerät. Dann beide Teile verschrauben (2.3.1 &2.2 - Slider-Zeichnung ). Warten Sie mit dem Aufsetzen der Kappe (2.4 - Schieberegler-Zeichnung) bis die Elektronik verkabelt ist.
  • Setzen Sie die Elektronik in den Spalt des Schiebers, einschließlich der Ultraschallsensor - HC SR4 (Teil 10 - Allgemeine Zeichnung) und schrauben Sie die Schieberabdeckung (2.4) fest.
  • Setzen Sie die Tablettenbehälter zusammen (Siehe Zeichnung der Tablettenbehälter ) mit je einem SG90-Servo. Verbinden Sie zuerst Teil 1 mit Teil 7 und schrauben Sie das SG90 an Teil 7 . Verbinden Sie dann Teil 3 mit Teil 4 (Radlager) und fügen Sie schließlich Teil 2 hinzu. Dann schrauben Sie die Tablettenbehälter auf die Oberseite des Sliders (Teil 2 - Gesamtzeichnung) .
  • Schraube den Bildschirm (Teil 4 - Allgemeine Zeichnung). an das entsprechende Seitenteil und montieren Sie den Stecker. Und dann die Sider-Teile zusammenfügen (Teil 3 - Gesamtzeichnung) zur Basis, bis sie klicken.
  • Es gibt zwei Oberteile ( (Teil 5 - Gesamtzeichnung) . Wir montieren sie, indem wir die Muttern wieder herausnehmen und in die Teile einbauen. Diesmal wird kein Schweißer benötigt. Fit the Drum (Teil 7 - Gesamtzeichnung) und der Parallax Servo (Teil 6 - Gesamtzeichnung) dazwischen und wir schrauben beide Oberteile zusammen.
  • Schließe endlich die Hintertür zu (Teil 8 - Gesamtzeichnung) zur Montage des Oberteils.

Elektronik

Das Hauptelektronik-Gehirn ist ein Arduino Mega, das sich um die Steuerung der Servomotoren kümmert, die die Pillen ausgeben, sowie des Nextion-Touchscreens, der Echtzeituhr (RTC), der Soundeffekte und der AVR-IoT-Kommunikationsplatine.

  • AVR-IoT ist über eine serielle UART-Verbindung mit dem Arduino Mega verbunden.
  • Servomotoren werden durch PWM gesteuert.
  • RTC ist über I2C mit dem Arduino Mega verbunden.
  • IR-Barriere-Sensor zur Erkennung der Pillen sind mit den analogen Pins des Arduino-Boards verbunden.

Um das Projekt nachzubilden, sollten Sie alle Verbindungen wie im Schaltplan beschrieben mit Hilfe eines Protoboards oder einer selbstgebauten Platine herstellen. Wir empfehlen dringend, die Schaltung wie im Bild oben in einer Art Holzplatte zu montieren.

Den Schaltplan finden Sie am Ende der Seite.

SmartPill-Web-App

Die SmartPill-Web-App zielt darauf ab, die Erfahrung zu erleichtern, die das Einrichten eines elektronischen Geräts und die Kontrolle der Medikamente einer anderen Person beinhaltet.

  • Ein einfacher SmartPill-Dispenser mit den Patienteninformationen, den einzunehmenden Pillen, der benötigten Dosierung und dem Zeitintervall.
  • Überwachung der Tabletteneinnahme.

Wie wurde es entwickelt?

Um ein Web von Anfang an zu entwickeln, arbeiten Sie mit den grundlegenden Bereichen der Programmierung:Backend und Frontend. Die Smartpill WebApp wurde erstellt mit:

  • Back-End. AWS API Gateway (HTTT API Rest).
  • Frontend. Ionisch und eckig. Um ein Web von Anfang an zu entwickeln, arbeiten Sie mit den grundlegenden Bereichen der Programmierung:Backend und Frontend.

Ionic ist ein völlig kostenloses und quelloffenes NodeJS-Framwork basierend auf AngularJS, das plattformspezifische UI-Elemente über eine Bibliothek nativer Komponenten für iOS und Android bereitstellt. Es verwendet Front-End-Technologien wie HTML, CSS, JavaScript und Angular für die Anwendungsentwicklung. Ionic kann Angular CLI (Command-Line Interface) verwenden, um voll funktionsfähige mobile Anwendungen zu erstellen.

Denken Sie daran, dass Node.js installiert werden muss, um zu funktionieren, bevor Sie Ihr Web mit Ionic starten, da Ionic Teil eines großen JavaScript-Ökosystems ist.

Die Seite mit der Ionic Framework-Dokumentation kann Sie problemlos beim Start Ihrer App unterstützen. Ich werde jedoch kurz die ersten Schritte zur Erstellung der Smartpill-App erwähnen:

1. Gehen Sie zur Befehlszeile Ihres Code-Editors und installieren Sie ionic CLI mit npm:

$ npm install -g @ionic/cli 

2. Erstellen Sie eine neue App:

$ ionic start smartpill-webui leer 

3. Gehen Sie in den Ordner Ihres Frontends und führen Sie ihn aus:

$ cd smartpill-webui
$ ionischer Dienst

Das Ausführen Ihrer App bedeutet, dass Sie sie im Browser Ihres Geräts testen können. Diese ionische Funktion ist für das Debuggen und Testen unerlässlich.

Grundstruktur der Smartpill Web App.

Die Smartpill Web App ist einfach aufgebaut, um die Navigation zu vereinfachen. In den Ordnern der App finden wir das App-Routing-Modul, die App-Komponentendateien, einen Ordner „Services“ und einen Ordner für jede Route.

Wenn Sie noch nie mit Frontend-Technologien gearbeitet haben, werden Sie in der Übersicht dieses Codes feststellen, wie die verschiedenen Sprachen miteinander interagieren. Aber wenn wir kurz beschreiben sollten, wie es funktioniert, ist der Teil des Webs, den Sie sehen, die HTML-Datei des Ordners, während die Typescript-Datei die Funktionen sind, die ausgeführt werden, wenn der Benutzer mit der Seite interagiert. Die module.ts dienen dem Routing.

Die wichtigsten Dateien der Smartpill-App sind:

  • app-routing.module.ts. Es ermöglicht dem Benutzer, durch alle verfügbaren Routen zu navigieren. Bestimmte Pfade ermöglichen es dem Webentwickler, Variablen von einer Route zur anderen zu übertragen.
const routes:Routes =[
{
path:'',
redirectTo:'page-login',
pathMatch:'full'
},
{
Pfad:'page-config',
loadChildren:() => import('./page-config/page-config.module').then( m => m.PageConfigPageModule)
},
{
path:'page-status',
loadChildren:() => import('./page-status/page- status.module').then( m => m.PageStatusPageModule)
},
...
  • post.service.ts. Es kommuniziert mit der API. Hier werden die Hauptschnittstellen (Post, Dep und Log) sowie die Klasse PostService definiert. PostService hat die wichtigsten Grundfunktionen, um mit der API zu kommunizieren:Get-Funktion, um Informationen von der API zu erhalten; post, um einen neuen Artikel in der API zu erstellen; löschen, um einen Artikel zu löschen; und setzen, um einen vorhandenen Artikel in der Benutzeroberfläche zu bearbeiten, aber die vorherigen darin enthaltenen Daten zu löschen.
getPosts() {
return this.http.get(this.API);
}

getDeposit() {
Rückgabe dieses.http.get(this.DEPOSIT);
}


getLogs(){
Rückgabe dieses.http.get (this.LOGS);
}

createPost(pill:string, deposit:string, weight:string, morgens:boolean, nachmittags:boolean, night:boolean) {
return this.http.post(this.API, {
Pille,
Anzahlung,
Gewicht,
Morgen,
Nachmittag,
Nacht,
});
}

removePost(id:string) {
return this.http.delete(` ${this.API}/${id}`);
}
...

Pillenseite konfigurieren und bearbeiten.
Smartpill hat eine spezielle Route, um alle programmierten Beiträge anzuzeigen, die „page-config“ genannt werden. Um einen neuen Beitrag zum Konfigurieren der Pillen zu erstellen, muss der Benutzer einen Button in der unteren rechten Ecke drücken, der ihn auf die Bearbeitungsseite „page-edit-pill“ umleitet. Wenn sie jedoch nicht erstellen, sondern bearbeiten möchten, leitet das Web sie durch Drücken des Bearbeiten-Buttons eines bereits erstellten Beitrags ebenfalls auf die „Seitenbearbeitungspille“ um, trägt jedoch die ID des Beitrags. Diese beiden Anweisungen sind wie folgt definiert:

  • Neue Post-Schaltfläche erstellen




  • Schaltfläche "Beitrag bearbeiten"


Bearbeiten

Die Seite „page-edit-pill“ erkennt, ob der Nutzer die Route mit oder ohne ID eingegeben hat und führt die entsprechenden Funktionen mit Hilfe einfacher ifs aus.

  • Pfad mit im Routenmodul definierter ID
{
path:'pill/edit/:postId',
loadChildren:() => import('./page-edit-pill/page-edit-pill.module ').then( m => m.PageEditPillPageModule)
},
  • Lesen, ob die Route eine ID trägt
ngOnInit() {
this.actiavtedRoute.paramMap.subscribe((paramMap) => {
if(ParamMap.get("postId")) {
this. postService
.getPostById(paramMap.get("postId"))
.subscribe((res) => {
this.post =res;
this.editing =true;
});
}
});
}
  • Wenn Anzeigebeispiel

{{editing?
'Update Your':
'Create your'
}} Einzahlung
  • Beispiel für eine Wenn-Schaltfläche

{{editing ? 'Update':'Submit'}}

Die „edit-pill-page“ interagiert mit dem Benutzer mit ionischen UI-Komponenten wie Inputs und Selects, die später an die API gesendet werden:

  • Zeit-Mehrfachauswahl

Klicken Sie hier, um die Tageszeit auszuwählen.
cancelText="Cancel" okText="Submit">
Morgen
Nachmittag
Nacht

  • Pilleneingabe

Pillenname:

Die „config-page“ wurde mit Angular Life Cycle programmiert, so dass, wenn Sie von der „page-edit-pill“ oder von einer anderen Seite zurückkehren, die Seite aktualisiert und die Beiträge neu geladen werden, wobei die Änderungen automatisch aktualisiert werden.

  • Post-Funktion laden
loadPosts(){
this.postService.getPosts().subscribe(
(res) => {
this.posts =res;
},
(err) => console.log(err)
);
this.postService.getDeposit().subscribe(
(res) => {
this .dep =res;
console.log(this.dep);
};
(err) => console.log(err)
);

Die „Konfigurationsseite“ hat auch eine Schaltfläche, mit der der Benutzer jede Pille löschen kann. Es ist eine asynchrone Funktion, die einen Nachrichtenalarm anzeigt, um zu überprüfen, ob sie sich dieser Aktion sicher sind.

  • Einen Beitrag löschen
async removePost(id:string){
const alert=wait this.alertController.create({
header:"Alert",
subHeader:"Sind Sie sicher, dass Sie Möchten Sie diese Einzahlung löschen?",
Nachricht:"Sie können sie nicht wiederherstellen.",
Schaltflächen:[
"Abbrechen",
{
text:"Ja",
handler:() => {
this.postService.removePost(id).subscribe(
(res) => {
console.log (res);
this.loadPosts();
},
(err) => console.log(err)
);
},
},
],
});
warten auf alert.present();
}

Log-Seite

Die Protokollseite ruft die Informationen zu den ausgegebenen Pillen ab und zeigt sie als Protokoll auf der Verlaufsroute an. Es funktioniert ähnlich wie „config-page“, lädt jedoch nur die Informationen, die sich in der API befinden:

  • Protokolle abrufen
loadPosts() {
this.postService.getLogs().subscribe(
(res) => {
this.log =res;
Konsole. log(this.log);
},
(err) => console.log(err)
);
}

ngOnInit() {
this.loadPosts();
}

ionViewWillEnter(){
this.loadPosts();
}
  • Logs anzeigen








{{ log.date | Datum:'dd/MM/yyy' }} - {{ log.date | Datum:'HH_mm' }}h


{{log.patient_name}}


{{log.pills}}






Amazon Web Services

AWS ist der Serviceanbieter, der für die Bereitstellung des SmartPill-Systems ausgewählt wurde, da es eine breite Palette von Diensten innerhalb desselben Ökosystems anbietet, was uns einen vollständig serverlosen Ansatz ermöglicht. Dadurch kann die Anwendung an die Bedürfnisse des Benutzers angepasst werden und nur für das bezahlen, was sie tatsächlich nutzt.

Smartpille Cloud-Architektur

Das Smartpill-System verwendet eine vollständig serverlose Architektur mit Amazon Web Services. Dadurch kann die Anwendung nach oben und unten skaliert werden, um sie an die Bedürfnisse des Benutzers anzupassen. Die Architektur wird im folgenden Diagramm beschrieben:

Der Smartpill Dispenser verwendet ein Microchip AVR-IoT-Board mit WiFi-Fähigkeiten, um mit dem AWS-Ökosystem zu kommunizieren. AVR-IoT ist über AWS IoT Core per MQTT-Protokoll verbunden. Dies ermöglicht eine bidirektionale Konnektivität zwischen dem Cloud-Ökosystem und der Hardware selbst. Diese Kommunikation wird verwendet, um die Ausgabenachricht an den Dispenser sowie die Bestätigungsereignisse vom Dispenser an die Cloud zu senden.

Das mit dem Ionic Angular NodeJS-Framework entwickelte Webanwendungs-Frontend wird kompiliert und ihre statischen Dateien werden in den AWS S3-Speicherservice hochgeladen. Das Back-End der Webanwendung ist ein mit AWS API Gateway entwickelter HTTT API Rest-Dienst, der Lambda-Funktionen aufruft. Diese Lambda-Funktionen kommunizieren mit der DynamoDB-Datenbank, die die Pillenkonfiguration und Einnahmeprotokolle speichert.

AWS Event Bridge wird als Scheduler verwendet, um die Dosierereignisse zum richtigen Zeitpunkt auszulösen. Dieses Ereignis löst eine Lambda-Funktion aus, die die Datenbank nach den Pillen durchsucht, die bei jeder Einnahme benötigt werden, und diese Informationen über den IoT-Core an den SmartPill Dispenser sendet.

AWS-IoT Kern

Um das AVR-IoT-Board mit AWS IoT Core in Betrieb zu nehmen, müssen Sie zunächst eine Verbindung zum Board mit Ihrem AWS-Konto herstellen. Dieser Prozess wird von Microchip in den IoT Developer Guides for AWS beschrieben

Damit haben Sie Ihr AVR-IoT-Board in Ihrem AWS-Konto einsatzbereit. Sie können dies in AWS IoT Core unter Verwalten . sehen Registerkarte Dinge.

Stellen Sie dann sicher, dass Ihr AVR-IoT-Board über einen Internetzugang verfügt, indem Sie es mit Ihren WLAN-Anmeldeinformationen konfigurieren, wie im Handbuch „Erste Schritte“ beschrieben:

AWS DynamoDB

Dann möchten Sie die Webanwendung konfigurieren. Dazu müssen Sie zunächst die DynamoDB-Tabellen registrieren, die die Webanwendung benötigt:

  • Smartpill-Historie:Speichert alle Protokolle der eingenommenen Pillen
  • smartpill-pills:Speichert Ihre konfigurierten Pillen

Klicken Sie auf Tabelle erstellen:

Geben Sie ihm den genauen Namen und wählen Sie "id" als Primärschlüssel.

AWS Lambda

Stellen Sie sicher, dass AmazonDynamicDBFullAccess angehängt ist. Damit die Lambda-Funktion aus der DynamoDB-Datenbank lesen/schreiben kann. Gehen Sie dazu auf die Registerkarte Berechtigungen:

Und klicken Sie auf Rollenname. Dadurch werden Sie zur Ausführungsrolle für diese Lambda-Funktion weitergeleitet. Wir empfehlen, dass jede Lambda-Funktion ihre eigene Ausführungsrolle hat.

AmazonDynamoDBFullAccess muss erscheinen, andernfalls klicken Sie auf Richtlinien anhängen und suchen nach "dynamodb":

Der Lambda-Funktion vollen DynamoDB-Zugriff zu gewähren ist nur für die Zwecke dieses Tutorials sicher, nicht für eine Produktionsumgebung.

Gehen Sie nun zur Konfiguration und fügen Sie den Funktionscode aus dem Github-Repository hinzu (Link unten):

Wiederholen Sie dies für alle Lambda-Funktionen im Repository.

Anschließend konfigurieren wir die Integrationen zwischen Lambda und IoT Core so, dass die richtige Funktion ausgeführt wird, wenn die Nachricht vom Board gesendet wird.

Wir werden die vom AVR-IoT gesendete Ausgabebestätigungsnachricht so konfigurieren, dass der entsprechende Protokolleintrag und die Benachrichtigung in der Datenbank generiert werden können.

Wir gehen zu AWS-IoT Core, klicken auf Hinzufügen und Regeln, um eine Regel zu konfigurieren:

Klicken Sie auf Neue Regel erstellen und geben Sie einen Namen:smartpill_confirmationpill und eine kurze Beschreibung

Geben Sie dann die folgende Abfrageanweisung ein:

SELECT * FROM 'Bestätigungspille' 

und konfigurieren Sie eine Aktion "Nachricht an eine Lambda-Funktion senden", um auf die zuvor erstellte "Smartpill-Bestätigungspille" zu verweisen:

Sie sind bereit für den nächsten Teil.

AWS Event Bridge

Event Bridge kümmert sich um den Start der Lambda-Funktion, die die Nachricht an den SmartPill Dispenser sendet, um die Pille zum richtigen Zeitpunkt auszugeben. Dazu konfigurieren wir 3 geplante Trigger-Ereignisse. Eine für den Morgen, eine für den Nachmittag und eine für die Nachtaufnahme.

Gehen Sie zum AWS Event Bridge-Service und klicken Sie auf „Regel erstellen“.

Geben Sie ihm einen Namen und konfigurieren Sie das Zeitplan-Ereignismuster als Cron-Ausdruck:

HINWEIS:Berücksichtigen Sie, dass diese Cron-Ausdrücke in UTC-Zeit sind.

Select the 'smartpill-dispensepill' Lambda function as a Target:

This Lambda function will be executed at the defined time.

Define two more Rules for the desired time on morning, afternoon and night intakes.

AWS API Gateway

Go to AWS API Gateway and click on Create API. Choose HTTP API and click on Build:

Give it "smartpill-webui" as a name (or whatever you want, this do not really matters)

And configure all the Lambda functions as Integrations:

Click Next and configure all the routes as specified in table below:

Finally, deploy the API to get a HTTP endpoint.

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

Irgendwelche Fragen? Leave a comment below and we will do our best to help you!

Code

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

Kundenspezifische Teile und Gehäuse

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

Schaltpläne

SmartPill Electronics HW connections

Herstellungsprozess

  1. Schlaftablette
  2. Antibabypille
  3. Smart Barkeeper
  4. Intelligente Ampel
  5. Intelligenter Abfallbehälter
  6. Smart Plant IoT
  7. UnifiedWater v1
  8. Smart Blinds
  9. Autodesk Intelligente Fertigung
  10. Was ist Smart Manufacturing?