Projet : le pilulier connecté

Qu’est-ce qu’un pilulier connecté ?

Article Wikipédia :

Un pilulier, ou boîte à pilules, est un récipient servant généralement à stocker des doses précises de médicaments. Il peut également servir à stocker de petits objets.

Le pilulier électronique est celui qui peut émettre une alarme pour prévenir le patient qu’il doit prendre son traitement.

Un pilulier connecté peut aussi émettre un signal pour prévenir un tiers de confiance de l’observance du traitement et signaler toute confusion de prise ou oubli.

Origine du projet

Yvonne a fêté il y a quelques années son soixantième anniversaire de mariage. Elle vient d’être diagnostiquée comme sujette de la maladie d’Alzheimer. Et comme c’est la mémoire à court terme qui est touchée en premier, il lui arrive de ne plus savoir si elle vient de prendre ses médicaments ou pas. Il y a un risque de surdosage si elle reprend plusieurs fois son traitement, et un risque de sous dosage si elle pense à tord l’avoir déjà pris.

Mamyvonne
Yvonne, dite « Mamyvonne »

Cahier des charges

Le pilulier dot être sonore. Il doit alerter quand c’est l’heure de prendre ses médicaments.

Il doit détecter la prise de médicaments. En cas de retard, il doit envoyer une alerte via courrier électronique et SMS.

Le pilulier doit être visuel. Il lui faut un écran pour expliquer pourquoi il alerte et comment on doit s’en servir.

Le pilulier doit être intelligent. On lui met chaque médicament dans des conditionnements séparés et on lui programme l’ordonnance. Cette dernière doit être consultable et modifiable à distance.

La sécurité est un besoin fort :

  • Disponibilité (le pilulier doit fonctionner même en cas de panne de courant et ne doit pas être tributaire de piles).
  • Intégrité (on ne doit pas pouvoir modifier sa programmation de façon indue ni involontaire)
  • Confidentialité (seules les personnes autorisées doivent avoir accès à l’ordonnance)

Analyse primaire

Séquencement

Exemple pour une prise de médicament programmée à midi :

Avant 11h45, le système est inactif

11h45 : il est possible de prendre ses médicaments

12h05 : Avertissement sonore discret, une mélodie toutes les minutes

12h20 : Avertissement plus insistant

12h30 : Envoi d’une alerte au premier cercle

13h00 : Envoi d’une alerte au deuxième cercle

Dès la prise des médicaments, le cycle est interrompu. Si des alertes ont été envoyées, un message de fin d’alerte est envoyé aux mêmes. Sur option, un message de compte-rendu peut être envoyé systématiquement.

Assemblage

L’assemblage est l’opération délicate qui consiste à délivrer la bonne prescription. S’il y a 1 comprimé d’un premier médicament et 2 gélules d’un deuxième, il faut être sûr des quantités réellement délivrées.

On peut peut-être mettre en place un système qui ressemble aux distributeurs de friandises, avec une spirale qui tourne et fait tomber l’article demandé.

Conditionnement

Les conditionnements des médicaments sont très variables. Certains sont plus ou moins bien adaptés à la distribution automatisée. Il semble peu raisonnable d’envisager de délivrer une cuillerée de sirop, par exemple.

Les comprimés en plaquettes peuvent être découpés individuellement pour conserver leur enveloppe protectrice. Ils peuvent aussi être extraits de leur plaquette et se retrouver « en vrac ».

Plaquette de comprimés découpée
Découpe d’une plaquette de comprimés

Il faut pouvoir gérer les sachets et les gélules. La participation d’un pharmacien dans ce projet permettrait d’en savoir plus sur les formats existants.

Électronique

Les besoins de connexion orientent les choix vers des composants habituels des objets connectés. Un Node MCU (avec la version 12 de l’ESP 8266) est un petit module bon marché permettant d’avoir 11 ports numériques, un port analogique et une connectivité Wi-Fi. Il est programmable avec l’IDE Arduino.

Carte Node MCU
Carte Node MCU

Architecture logicielle

Les fonctionnalités attendues du pilulier semblent a priori trop importantes pour être entièrement embarquées sur la carte Node MCU. En effet, les fonctionnalités suivantes sont identifiées :

  • Programmation horaire
  • Sauvegarde des états (ne pas perdre la mémoire de son état en cas d’arrêt et redémarrage)
  • Gestion des actionneurs :
    • Manipulation des mécanismes de distribution
    • Gestion de l’afficheur
    • Gestion d’un avertisseur sonore
    • Gestion des LED d’état
  • Gestion des capteurs :
    • Prise des médicaments
    • Mesure des quantités restantes
    • Bourrage du mécanisme de distribution
  • Client du système de diffusion d’alerte
    • Client de messagerie SMTP
    • Client Web pour un Web-service d’envoi de SMS
  • Serveur Web d’état, d’inventaire, de consultation et de modification de l’ordonnance
  • Autres services annexes :
    • Possibilité d’afficher un message particulier sur l’afficheur, par exemple « Ta fille Caty passera te voir samedi après-midi. »
    • Gestion d’un agenda : « Lundi matin, 10h00, rendez-vous avec l’ergothérapeute »

Il faut envisager la mise en place d’un serveur additionnel, chargé d’héberger un serveur Web accessible depuis l’extérieur. Ce serveur est soit lui-même à l’extérieur (du réseau local) et donc chez un hébergeur, soit en interne sur le réseau local et peut être envisagé sous Linux, Raspberry PI ou Arduino.

Un serveur en interne permet de faciliter la sécurisation des données.

Solutions détaillées

Rédaction en cours

Ressources

Plans des composants matériels

Fichiers sources, STL et Gcodes

Composants logiciels

Lien vers le GitHub d’hébergement des sources

Tutoriels

Construction, assemblage, programmation, utilisation, …

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s