P8 Pilulier : Différence entre versions
(60 révisions intermédiaires par 3 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
− | == Objectifs du projet == | + | == <span style="color:red">Objectifs du projet</span> == |
Création d'un pilulier automatique - En collaboration avec GAPAS | Création d'un pilulier automatique - En collaboration avec GAPAS | ||
− | == Cahier des charges du pilulier == | + | ==<span style="color:red">Cahier des charges du pilulier </span> == |
Aprés rendez - vous avec M.Konrad de GAPAS nous avons élaboré un cahier des charges du projet. | Aprés rendez - vous avec M.Konrad de GAPAS nous avons élaboré un cahier des charges du projet. | ||
Ligne 14 : | Ligne 14 : | ||
− | === Diagramme pieuvre et solutions technologiques=== | + | === <span style="color:blue">Diagramme pieuvre et solutions technologiques</span>=== |
− | [[Fichier: | + | [[Fichier:Pieuvre2.png]] |
+ | |||
+ | |||
+ | [[Fichier:CdcPil.PNG]] | ||
[[Fichier:Pieuvre2.JPG]] | [[Fichier:Pieuvre2.JPG]] | ||
− | + | === <span style="color:blue">Proposition de boîtiers</span> === | |
− | === Proposition de boîtiers === | ||
− | ==== Moteur centrale ==== | + | ====<span style="color:blue">Moteur centrale</span> ==== |
Ligne 35 : | Ligne 37 : | ||
− | ==== Boitier matriciel - couvercle simple ==== | + | ==== <span style="color:blue">Boitier matriciel - couvercle simple</span> ==== |
Ligne 44 : | Ligne 46 : | ||
− | ==== Boitier matriciel - ouverture electro-aimants ==== | + | ==== <span style="color:blue">Boitier matriciel - ouverture electro-aimants</span> ==== |
Ligne 53 : | Ligne 55 : | ||
− | |||
− | == Journal de Bord == | + | |
+ | === <span style="color:blue">Planning prévisionnel</span>=== | ||
+ | |||
+ | |||
+ | [[Fichier:Ganttpilulier.jpg]] | ||
+ | |||
+ | == <span style="color:red">Journal de Bord</span> == | ||
+ | |||
+ | === <span style="color:blue">Début de projet</span> === | ||
'''Semaine 1''' | '''Semaine 1''' | ||
Ligne 97 : | Ligne 106 : | ||
- Validation de la prise médicament : bouton? | - Validation de la prise médicament : bouton? | ||
− | + | ===<span style="color:blue">Semaine 4</span> === | |
'''Semaine 4''' | '''Semaine 4''' | ||
Ligne 117 : | Ligne 126 : | ||
− | - Choix final sur le boitier | + | - Choix final sur le boitier 28 électro-aimants commandable pour ouverture de trappe. Médocs tombent dans "entonnoir" |
ébauche : | ébauche : | ||
− | [[Fichier: | + | [[Fichier:AncienPilu.jpg]] |
- Recherche sur les technologies d'électro-aimant ou autre procédé permettant ouverture et la fermeture d'un clapet. | - Recherche sur les technologies d'électro-aimant ou autre procédé permettant ouverture et la fermeture d'un clapet. | ||
Ligne 144 : | Ligne 153 : | ||
La partie bleu est le disque troué tournant directement monté sur le moteur | La partie bleu est le disque troué tournant directement monté sur le moteur | ||
− | + | - Autre prototype avec des godets détachable | |
− | |||
- Modèle précédent correcte mais quelques inconvenants : les médocs sont directement sur un plateau tournant et retenu par le conpartiment dont risque de blocage du pilulier , effritage du médoc... | - Modèle précédent correcte mais quelques inconvenants : les médocs sont directement sur un plateau tournant et retenu par le conpartiment dont risque de blocage du pilulier , effritage du médoc... | ||
− | + | [[Fichier:Pilulier02.JPG]] | |
− | + | Nombreux avantages : | |
− | |||
− | |||
- bloc moteur séparé du plateau médoc | - bloc moteur séparé du plateau médoc | ||
+ | |||
- plateau démontable | - plateau démontable | ||
+ | |||
- gobelet lavable | - gobelet lavable | ||
+ | |||
- place pour l'electronique dans le boitier moteur | - place pour l'electronique dans le boitier moteur | ||
− | - couvercle facilement | + | |
+ | - couvercle facilement verrouillable à l'aide de loquet | ||
+ | |||
+ | === <span style="color:blue">Semaine 7</span> === | ||
+ | '''Semaine 7''' | ||
+ | |||
+ | - Système de godet correcte , mais on peut facilement les perdre , les bloquer ds le moteur ... | ||
+ | |||
+ | - Bloc moteur solidaire du bloc a médicaments, risque de mélange de fil , fil tournant ... | ||
+ | |||
+ | - Nouveau prototype et choix finale : | ||
+ | |||
+ | [[Fichier:Pilulier.PNG]] | ||
+ | |||
+ | |||
+ | Choix des composants : | ||
+ | |||
+ | |||
+ | - Micro-processeur: | ||
+ | |||
+ | Si on veut embarquer un site web dans le pilulier ou encore gérer des stats du style :il a pris sa pilule une heure avant par rapport au mois dernier... alors le raspberry pi est définitivement le choix à faire. | ||
+ | |||
+ | Sinon si pilulier se limite à envoyer des mails alors l'arduino méga est plus simple et l'on a le compte au niveau de des IO, de plus toujours moyen de stocker des stats comme le pilulier est relié au réseau. | ||
+ | |||
+ | |||
+ | - un écran LCD 16*2 d'arduino semble suffisant afin d'afficher l'heure et programmer manuellement le pilulier. | ||
+ | |||
+ | - 4 boutons poussoirs pour programmer le pilulier ( + , - , suivant , menu ) / programmation du pilulier sur site web ! | ||
+ | |||
+ | - 1 moteur pour faire tourner le plateau (dimensionnement du moteur à prévoir ) | ||
+ | |||
+ | - 2 loquets commandables pour verrouiller le couvercle ou fermeture par clef sur le dessus | ||
+ | |||
+ | - un capteur infra-rouge ou inductif pour détecter la prise de médicament / passage de la main ds le compartiment de devant. | ||
+ | |||
+ | - Un capteur en dessous du plateau pour détecter le bon positionnement du plateau. | ||
+ | |||
+ | - quelques LEDs pour un rappel lumineux | ||
+ | |||
+ | |||
+ | '''Semaine 8-9''' | ||
+ | |||
+ | - Modélisation du pilulier sous Autodesk inventor | ||
+ | |||
+ | - Programmation arduino | ||
+ | |||
+ | - Documentation shield arduino ethernet / réflexion sur le travail à faire ( page web / historique / mail / programmation pilulier ) | ||
+ | |||
+ | - Besoin d'un module RTC pour ne pas perdre la date. Une instruction comme millis() retourne le temps écoulé depuis le dernier démarrage de l'Arduino, mais sera réinitialisée dès le prochain démarrage. De plus, millis() atteint sa limite maximale (et retourne à zéro) au bout d'une cinquantaine de jours. | ||
+ | |||
+ | |||
+ | '''Semaine 10 - 11''' | ||
+ | |||
+ | - RDV avec GAPAS, validation du modèle , mise au point sur l'état d'avancement | ||
+ | |||
+ | - travail sur la page web de programmation du pilulier | ||
+ | |||
+ | - modélisation 3D | ||
+ | |||
+ | |||
+ | === <span style="color:blue">Janvier</span> === | ||
+ | |||
+ | '''Janvier''' | ||
+ | |||
+ | - écriture de la page html | ||
+ | |||
+ | - hébergement sur l'arduino en cours ( problème de carte SD) | ||
+ | |||
+ | - essai de programmation du moteur en attendant sa réception ... | ||
+ | |||
+ | |||
+ | === <span style="color:blue">Février</span> === | ||
+ | |||
+ | '''Février''' | ||
+ | |||
+ | - Toujours pas reçu nos pièces... | ||
+ | |||
+ | - Autres tests et essai de différente maniére de programmer l'heure de la prise de médicaments | ||
+ | |||
+ | - Découpage Laser au fablab pour fabrication pilulier | ||
+ | |||
+ | |||
+ | - En attendant les pièces nous avons choisi d'essayer de faire une sorte de server sur arduino même si celui ci n'est pas conçu pour cela. | ||
+ | |||
+ | Premier test : hébergement d'une page web gérant les alarmes et la programmation des horaires en l'hébergeant en local à l'aide de Wampserver. | ||
+ | |||
+ | [[Fichier:Site.JPG]] | ||
+ | |||
+ | |||
+ | Nous enregistrons dans un fichier texte les variables. Le problèmes étant de les transferer cers l'arduino. | ||
+ | |||
+ | Nous avons donc décidé de directement héberger notre code sur la carte SD de l'arduino, on arrive bien à accéder à notre page web stocké sur la carte SD depuis un navigateur web sur un pc en local. Mais l'enregistrement du formulaire dans un fichier texte ne fonctionne plus car l'arduino ne peut pas lire php | ||
+ | |||
+ | Nouvelle façon de faire : uploader un fichier texte de configuration a partir du site directement dans l'arduino. | ||
+ | |||
+ | [[Fichier:12345.JPG]] | ||
+ | |||
+ | |||
+ | |||
+ | - Essai d'envoi de mail à partir d'un code php, inpossible à lancer depuis l'arduino . Hébergement en localhost. Le code php fonctionne mais impossible de le lancer depuis l'arduino. Code ci-dessous: | ||
+ | |||
+ | [[Fichier:Codeooe.JPG]] | ||
+ | |||
+ | Test hébergement sous SFR mais sfr n’autorise pas la fonction mail php. A voir avec FREE , ou modif du code pour fonctionner en localhost. | ||
+ | |||
+ | |||
+ | Réception du moteur et carte de commande: soudage de la carte commande. Quelques modifications du code arduino de ma partie commande. A faire cablage et test du moteur. | ||
+ | |||
+ | |||
+ | |||
+ | jeudi 12 : nous avons réussi à echanger des données et envoyer des mails avec du code php hébergé en localhost. c'était un pb d'ip fixe. | ||
+ | aujourdhui : essai moteur / essai avec programmation par clavier au cas ou le réseau déconne. | ||
+ | |||
+ | lundi et mardi 18 : finition programme moteur + finition programme script php pour gestion des alarmes et mini base de données. | ||
+ | |||
+ | Regroupement de tout les morceaux de programme. Remplacement d'un capteur infrarouge de détection passage main par un capteur de lumière pour cause de non réception du matériel. | ||
+ | |||
+ | |||
+ | Exemple de la communication arduino pour l'envoi d'un mail / alarme : | ||
+ | |||
+ | coté arduino : | ||
+ | |||
+ | [[Fichier:Mailok.JPG]] | ||
+ | |||
+ | coté localhost php: | ||
+ | |||
+ | [[Fichier:Phpmailok.JPG]] | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | Démarrage des tests sur 2 jours après demain si tout va bien. | ||
+ | |||
+ | |||
+ | Résutats des tests: | ||
+ | |||
+ | - Le moteur "low cost" ne supporte pas le poids du plateau mais répond tout de même bien au consigne de l'arduino. | ||
+ | |||
+ | - Le moteur tourne bien d'un angle de 12-13°(correspondant à une case) quand il le faut | ||
+ | |||
+ | - les alertes lumineuses et sonore fonctionnent bien . Prévoir peu étre plus gros qu'un simple LED. au niveau de l'alerte sonore c'est suffisant | ||
+ | |||
+ | - L'heure affiché et les heures de prise fonctionne bine meme si coupure de courant. grace au module rtc et à une fonction arduino qui va chercher les valeurs des prises sur le serveur | ||
+ | |||
+ | - capteur de détection de main : changer pour un capteur infrarouge car le capteur de lumière met un certain temps avant de commuter (laisser environ 2 sec sa main devant) | ||
+ | |||
+ | - les consignes d'écriture données par l'arduino sont bien prise en compte et permettent d'écrire dans les fichiers textes correspondant ( prise médoc ok ou le patient n'a pas pris son médoc!) | ||
+ | |||
+ | - l'envoi de mail fonctionne parfaitement. | ||
+ | |||
+ | |||
+ | => bilan du test : tout semble fonctionnel au niveau serveur + electronique. | ||
+ | |||
+ | Quelques changements à faire tout de même au niveau moteur / capteur et bien sur finaliser le boitier pilulier pour permettre de le tester en condition réelle devant un patient. | ||
+ | |||
+ | |||
+ | |||
+ | Dernier week end et quelques jours afin de faire une vidéo d'un mini test + rapport a finir. | ||
+ | |||
+ | |||
+ | |||
+ | == <span style="color:red">Rapport et rendu du projet</span> == | ||
+ | |||
+ | ===<span style="color:blue">Rapport de décembre , Mi-projet</span>=== | ||
+ | |||
+ | [[Fichier:Rapport decembre PFE pilulier mercier pinet.pdf]] | ||
+ | |||
+ | |||
+ | ===<span style="color:blue">Rapport de projet</span>=== | ||
+ | |||
+ | [[Fichier:Rapport PFE Pinet Mercier.pdf]] | ||
+ | |||
+ | ===<span style="color:blue">Vidéo de démonstration</span>=== | ||
+ | |||
+ | ==== Lien direct===== | ||
+ | |||
+ | [https://www.youtube.com/watch?v=Df_yNL43HGg&feature=youtu.be| Lien youtube direct pilulier MP4 ] Penser à la regarder en 720p | ||
+ | |||
+ | ==== En téléchargement ===== | ||
+ | |||
+ | [https://drive.google.com/folderview?id=0BxhwLnu5tv8mNEc3dFFXTmgtU2M&usp=sharing|En téléchargement sous plusieurs format] | ||
+ | |||
+ | ===<span style="color:blue">Code source</span>=== | ||
+ | |||
+ | ====Arduino==== | ||
+ | |||
+ | [[Fichier:Code arduino.zip|Code serveur]] | ||
+ | |||
+ | ====Serveur==== | ||
+ | |||
+ | [[Fichier:Code serveur.zip|Code serveur]] |
Version actuelle datée du 11 mars 2015 à 11:52
Sommaire
Objectifs du projet
Création d'un pilulier automatique - En collaboration avec GAPAS
Cahier des charges du pilulier
Aprés rendez - vous avec M.Konrad de GAPAS nous avons élaboré un cahier des charges du projet.
GAPAS propose de créer un pilulier automatique où les médicaments sont accessibles seulement à l'heure de la prise afin d'éviter la sur-consommation.
De plus ce pilulier doit prévenir l'utilisateur et alerter un proche en cas de non-prise. A nous ensuite de choisir la forme et les différentes fonctionnalités du pilulier.
Diagramme pieuvre et solutions technologiques
Proposition de boîtiers
Moteur centrale
Le principe est d'avoir les 28 compartiment autour d'un moteur centrale . Un compartiement ouvert à la fois.
Avantages : Impossible de se tromper dans la prise du médicament Désavantages : consommation plus importante , durée de vie moyenne
Boitier matriciel - couvercle simple
Le principe est d'avoir les 28 compartiment dans une boite simple. Avec témoins lumineux pour savoir quelle case doit étre prise.
Avantages : durée de vie plus longue Désavantages : Tout les médicaments sont accessibles
Boitier matriciel - ouverture electro-aimants
Le principe est d'avoir les 28 compartiment dans une boite simple.
Avantages : Un compartiment s'ouvre à la fois et permet de prendre seulement les bons médicaments Désavantages : 28 electro-aimants , durée de vie faible
Planning prévisionnel
Journal de Bord
Début de projet
Semaine 1
- Prise de contact avec les responsables projets du coté gapas (en attente de réponse )
- Recherche sur les différents pilulier déjà existant
- Définition des besoins / début rédaction cahier des charges
Semaine 2
- Recherche sur les différentes technologie possible à implanter
- Brainstorming sur les différents modèles de pilulier réalisable dans le temps imparti
Semaine 3
Réponse de GAPAS - Prise de contact avec notre responsable de projet GAPAS.
Début des échanges concernant les spécifications et fonctionnalités indispensable au projet.
Fonctionnalités possible (nos idées) :
- Indique quel médicament prendre
- Alarme sonore, rappel prise médicament
- Contacte avec personne extérieur si non prise (objet connecté) Wifi / bluetooth / GSM
- Programmable via smartphone ou directement sur le pilulier
- Alimentation? pile/ batterie / induction?
- Mode test bon fonctionnement (lumière / alarme )
- Validation de la prise médicament : bouton?
Semaine 4
Semaine 4
- Création des use cases en vu d'un entretien avec gapas : 16h jeudi
- Nous envisageons de partir vers moteur centrale + 28 compartiments. Capteur infrarouge pour détecter prise de médoc + alarme sonore et lumineuse pour rappel. et enfin contact extérieur par SMS.
- Autre option possible : scanne médoc , écran + socle pilulier , a voir avec gapas quand prototype terminé
- Après rendez vous avec gapas nous avons pu élaborer un cahier des charges vraiment simpliste car nous avons libre choix sur le projet. Par contre ils nous ont imposés quelques contraintes : Pilulier absolument fermé, pas d'abonnement carte sim, pas de borne wifi. mais un accés cable éthernet.
Semaine 5
- Choix final sur le boitier 28 électro-aimants commandable pour ouverture de trappe. Médocs tombent dans "entonnoir"
ébauche :
- Recherche sur les technologies d'électro-aimant ou autre procédé permettant ouverture et la fermeture d'un clapet.
- Reception rasberry pi , documentation sur son fonctionnement.
- Prochain objectif : créer un prototype comprenant 1 compartiment seulement afin de tester toutes les fonctionnalités de base et faire une démonstration à GAPAS
Semaine 6
- Problème avec modèle précédent : 28 électro aimants = 28 sources de pannes . si pas de courant , 28 trappes ouvertes...
- recherche autre solution plus fiable , moins gourmande en énergie et consommateur d'IO
- Idée du disque tournant : pilulier cylindrique , un disque tournant troué permétant de faire tombé les médocs dans un compartiments accessible
ebauche :
La partie bleu est le disque troué tournant directement monté sur le moteur
- Autre prototype avec des godets détachable
- Modèle précédent correcte mais quelques inconvenants : les médocs sont directement sur un plateau tournant et retenu par le conpartiment dont risque de blocage du pilulier , effritage du médoc...
Nombreux avantages :
- bloc moteur séparé du plateau médoc
- plateau démontable
- gobelet lavable
- place pour l'electronique dans le boitier moteur
- couvercle facilement verrouillable à l'aide de loquet
Semaine 7
Semaine 7
- Système de godet correcte , mais on peut facilement les perdre , les bloquer ds le moteur ...
- Bloc moteur solidaire du bloc a médicaments, risque de mélange de fil , fil tournant ...
- Nouveau prototype et choix finale :
Choix des composants :
- Micro-processeur:
Si on veut embarquer un site web dans le pilulier ou encore gérer des stats du style :il a pris sa pilule une heure avant par rapport au mois dernier... alors le raspberry pi est définitivement le choix à faire.
Sinon si pilulier se limite à envoyer des mails alors l'arduino méga est plus simple et l'on a le compte au niveau de des IO, de plus toujours moyen de stocker des stats comme le pilulier est relié au réseau.
- un écran LCD 16*2 d'arduino semble suffisant afin d'afficher l'heure et programmer manuellement le pilulier.
- 4 boutons poussoirs pour programmer le pilulier ( + , - , suivant , menu ) / programmation du pilulier sur site web !
- 1 moteur pour faire tourner le plateau (dimensionnement du moteur à prévoir )
- 2 loquets commandables pour verrouiller le couvercle ou fermeture par clef sur le dessus
- un capteur infra-rouge ou inductif pour détecter la prise de médicament / passage de la main ds le compartiment de devant.
- Un capteur en dessous du plateau pour détecter le bon positionnement du plateau.
- quelques LEDs pour un rappel lumineux
Semaine 8-9
- Modélisation du pilulier sous Autodesk inventor
- Programmation arduino
- Documentation shield arduino ethernet / réflexion sur le travail à faire ( page web / historique / mail / programmation pilulier )
- Besoin d'un module RTC pour ne pas perdre la date. Une instruction comme millis() retourne le temps écoulé depuis le dernier démarrage de l'Arduino, mais sera réinitialisée dès le prochain démarrage. De plus, millis() atteint sa limite maximale (et retourne à zéro) au bout d'une cinquantaine de jours.
Semaine 10 - 11
- RDV avec GAPAS, validation du modèle , mise au point sur l'état d'avancement
- travail sur la page web de programmation du pilulier
- modélisation 3D
Janvier
Janvier
- écriture de la page html
- hébergement sur l'arduino en cours ( problème de carte SD)
- essai de programmation du moteur en attendant sa réception ...
Février
Février
- Toujours pas reçu nos pièces...
- Autres tests et essai de différente maniére de programmer l'heure de la prise de médicaments
- Découpage Laser au fablab pour fabrication pilulier
- En attendant les pièces nous avons choisi d'essayer de faire une sorte de server sur arduino même si celui ci n'est pas conçu pour cela.
Premier test : hébergement d'une page web gérant les alarmes et la programmation des horaires en l'hébergeant en local à l'aide de Wampserver.
Nous enregistrons dans un fichier texte les variables. Le problèmes étant de les transferer cers l'arduino.
Nous avons donc décidé de directement héberger notre code sur la carte SD de l'arduino, on arrive bien à accéder à notre page web stocké sur la carte SD depuis un navigateur web sur un pc en local. Mais l'enregistrement du formulaire dans un fichier texte ne fonctionne plus car l'arduino ne peut pas lire php
Nouvelle façon de faire : uploader un fichier texte de configuration a partir du site directement dans l'arduino.
- Essai d'envoi de mail à partir d'un code php, inpossible à lancer depuis l'arduino . Hébergement en localhost. Le code php fonctionne mais impossible de le lancer depuis l'arduino. Code ci-dessous:
Test hébergement sous SFR mais sfr n’autorise pas la fonction mail php. A voir avec FREE , ou modif du code pour fonctionner en localhost.
Réception du moteur et carte de commande: soudage de la carte commande. Quelques modifications du code arduino de ma partie commande. A faire cablage et test du moteur.
jeudi 12 : nous avons réussi à echanger des données et envoyer des mails avec du code php hébergé en localhost. c'était un pb d'ip fixe. aujourdhui : essai moteur / essai avec programmation par clavier au cas ou le réseau déconne.
lundi et mardi 18 : finition programme moteur + finition programme script php pour gestion des alarmes et mini base de données.
Regroupement de tout les morceaux de programme. Remplacement d'un capteur infrarouge de détection passage main par un capteur de lumière pour cause de non réception du matériel.
Exemple de la communication arduino pour l'envoi d'un mail / alarme :
coté arduino :
coté localhost php:
Démarrage des tests sur 2 jours après demain si tout va bien.
Résutats des tests:
- Le moteur "low cost" ne supporte pas le poids du plateau mais répond tout de même bien au consigne de l'arduino.
- Le moteur tourne bien d'un angle de 12-13°(correspondant à une case) quand il le faut
- les alertes lumineuses et sonore fonctionnent bien . Prévoir peu étre plus gros qu'un simple LED. au niveau de l'alerte sonore c'est suffisant
- L'heure affiché et les heures de prise fonctionne bine meme si coupure de courant. grace au module rtc et à une fonction arduino qui va chercher les valeurs des prises sur le serveur
- capteur de détection de main : changer pour un capteur infrarouge car le capteur de lumière met un certain temps avant de commuter (laisser environ 2 sec sa main devant)
- les consignes d'écriture données par l'arduino sont bien prise en compte et permettent d'écrire dans les fichiers textes correspondant ( prise médoc ok ou le patient n'a pas pris son médoc!)
- l'envoi de mail fonctionne parfaitement.
=> bilan du test : tout semble fonctionnel au niveau serveur + electronique.
Quelques changements à faire tout de même au niveau moteur / capteur et bien sur finaliser le boitier pilulier pour permettre de le tester en condition réelle devant un patient.
Dernier week end et quelques jours afin de faire une vidéo d'un mini test + rapport a finir.
Rapport et rendu du projet
Rapport de décembre , Mi-projet
Fichier:Rapport decembre PFE pilulier mercier pinet.pdf
Rapport de projet
Fichier:Rapport PFE Pinet Mercier.pdf
Vidéo de démonstration
Lien direct=
Lien youtube direct pilulier MP4 Penser à la regarder en 720p
En téléchargement =
téléchargement sous plusieurs format