Skip to main content

Machine à Cocktail


UE 803 - Optimisation et Contrôle des Procédés - Master 2 - Ingénierie Chimique

Projet Expérimental Arduino

Dans le cadre de cette UE, nous devons réaliser un projet de régulation par prototypage utilisant principalement un micro contrôleur Arduino et des capteurs / actionneurs.

Après quelques séances de brainstorming et échange d'idées, nous avons décidé d'opter pour la conception d'une machine à cocktail connecté via assistant vocal. Des pompes gèreraient le débit des boissons et un capteur pour la détection d'un gobelet serait ajouté.

Nous avons passé en revu plusieurs projets de système de pompage utilisant Arduino ou un connecteur Nano-IoT et avons donc pu dresser une liste du matériel complet pour mener à bien ce projet.


Projet distributeurs de boissons

Objectif : Réaliser un distributeur de cocktails à partir de 7 boissons (et donc 7 pompes) qui nous permettrait de faire différents mélanges. Le distributeur serait connecté au cloud via un Nano-IoT et contrôlé vocalement par Alexa.

Matériel électronique :

  • 7 pompes
  • 7 relays (ou switch)
  • fils de connexions 
  • Un nano 33 IoT
  • Une carte arduino
  • Une platine
  • Câble d'alimentation
  • Câble usb relié à l'arduino
  • Câble usb relié l'IoT
  • Un capteur sonar (distance)
  • 4 Boutons poussoirs
  • 4 Résistances

Matériel de construction :

  • Tuyaux
  • Planches de bois
  • Vis
  • 7 Bouteilles vides 1,5L

___________________________________________________________________________________________________________________

Semaine 6 au 13 Décembre :

Une fois tout le matériel reçu, la première étape du projet a été de mettre en place une stratégie pour monter et faire fonctionner les pompes :

  • Mettre en place le schéma de branchement des pompes
  • Faire un état des lieux des fils nécessaires (bruts, embout femelle, embout male).
  • Dénudé la quantité de fils nécessaire
  • Trouver la borne + et la borne - des pompes en utilisant un multimètre

Après plusieurs recherches et la consultation de plusieurs sites web et pages github, le branchement suivant reliant la pompe, le relay et l'arduino a été déterminé comme celui qui serait utilisé :

Capture d’écran 2023-02-05 à 00.53.39.png

L'utilisation d'un relay est essentiel si nous voulons être capable de faire varier l'intensité de la pompe ou sa durée de fonctionnement. En effet la pompe est par défaut une entité booléenne : allumée ou éteinte.

Soudure des fils à nos 7 pompes :

Capture d’écran 2023-02-05 à 01.00.21.png

Branchement des fils de connexions aux 7 relays : 

Branchement final des pompes aux relay puis sur la carte Arduino :


Semaine 2 Janvier :

Une fois les pompes câblés correctement et branchées, nous devons commencer à programmer nos commandes de boissons. Nous rechersons donc des exemples de codes qui montrent comment activer une pompe pour un délais précis et initialiser nos pin digital en fonction du nombre de pompe utilisées.

Un de nos premiers exemple de code utilisé est celui-ci :

Nous arrivons donc à activer une pompe et contrôler sa durer d’activation. Le but est d’ensuite ajouter toutes nos pompes et crée des fonctions qui gèrent l’activation de 2 pompes en même temps (pour réaliser un cocktail).

Nous cherchons également en parallèle comment se branche et fonctionne notre capteur sonar de distance. En effet après plusieurs recherches nous nous sommes rendu compte que notre capteur ne possède pas les branchements décrit habituellement dans la littérature et autres projet libre d’accès. 

image-1675907441791.jpeg

En effet, dans nos nombreuses recherches de fonctionnement du capteur nous retrouvions tout le temps le capteur ci-dessus. Qui possède quatre branchements : Vcc qui correspond au voltage 3,3 ou 5V, GND qui correspond comme l'indique son nom à la terre (ou ground). Et finalement les branchements Trig et Echo où Trig correspond au transmetteur soit la partie de gauche qui va émettre des impulsions qui seront arrêtées et renvoyé par l'objet qui fait face au capteur. Ces impulsions renvoyées sont captées par le récepteur qui correspond à l'Echo (partie de droite).

Cependant, nous ne sommes pas exactement dans ce cas-là.

image-1675908242903.png

Ici, les sorties Trig et Echo sont remplacés par la sortie SIG qui fait office de branchement pour le transmetteur et le récepteur. La sortie NC (ou "not connected") est comme l'indique son nom une sortie qui n'a pas besoin d'être l-relié à quoi que ce soit. GND et VCC sont des branchements qui se font à l'identique de ce qui a été expliqué précédemment. 

Branchement capteur :


Semaine 9 Janvier :

Nous avons pu réaliser les branchements du capteur et les avons reliés correctement à l’Arduino. Nous devons désormais adapter notre code afin de spécifier les fonctions liées au fonctionnement du capteur mais aussi ajouter une nouvelle condition sur l’activation des pompes : les pompes ne peuvent s’activer que si le capteur détecte une présence proche à moins ou égale à 2cm de distance du récepteur du capteur.

Nous nous penchons également sur le Nano-IoT fait pour relier notre système au service cloud de Arduino afin de créer des boutons digitaux (web ou application mobile) contrôlable manuellement ou par assistanats vocaux grâce à la configuration de ces boutons digitaux en skills Alexa.

Pour ce faire nous commençons à souder les branches en or fournis avec note Nano-IoT 33 pour pouvoir faire des branchement. Une fois fait, il est connecté sur une platine et branché par un câble USB à l’ordinateur pour la création des boutons et du code associé.

Nano IoT :

34B6E483-08D7-480A-90D2-EE965D0259BE.jpeg

Nous cherchons dans la documentation Arduino le noms des connexions disponible sur notre connecteur bluetooth :

2B07D775-6F24-4E1E-8E08-EA6E8641929C.jpeg

Afin de commencer

Semaine 16 Janvier :

Nous arrivons plus ou moins à faire marcher le capteur et une pompe, mais pour l’instant nous n’arrivons pas à spécifier la condition && du fonctionnement des 2 pompes en même temps que le capteur. (??)

Semaine 23 Janvier :

3379ACB8-FF14-49C7-A7A4-4A0B2CC6F944.jpeg

Nous arrivons finalement à faire fonctionner les pompes d'après la condition de distance sur le capteur que nous avions spécifier à moins de 2 cm. Et nous pouvons alors reproduire les branchements pour autant de pompes que nous souhaitons. 

IMG_4309.jpeg

Faisant face à des problèmes pour travailler avec le Nano-Iot comme nous le souhaitions, nous avons cherché en parallèle une alternative pour proposer nos différentes boissons. Et pour cela, nous avons décidé de travailler avec des boutons poussoirs. C'est aussi à ce moment qu'il nous a semblé judicieux de nous limiter dans le nombre de pompes en passant de  7 à 4 pompes ce qui nous permettait aussi d'avoir un plus petit montage à réaliser pour notre design. 

Capture d’écran 2023-02-09 à 03.45.42.png

Nous arrivons à réaliser un premier montage pour activer une pompe à l'aide d'un bouton, mais nous éprouvons quelques des problèmes pour le code pour apposer la condition && entre le capteur et le bouton. En effet, nous souhaitons que la pompe s'active si et uniquement si l'obstacle se trouve à moins de 2 cm du capteur et si le bouton a été activé.

En essayant une condition if ((bouton == 0) && (cm<4)), nous remarquons que le bouton n'est pas pris en compte dans l'activation de la pompe. Pour finalement faire fonctionner nos deux conditions, il nous a fallu déclarer nos conditions comme des variables "boolean" dit aussi "tout ou rien" au début de notre code comme écrit ci-dessous. 

const in bouton1 = 6

boolean boutonappuye1;
boolean proche;


Semaine 30 Janvier :

Prise de mesures réelles et découpes des 1er planches. Nous cherchons le materiel le plus adapté pour crée le cadre de notre machine. Nous avons choisi du bois car léger et facile d’accès et facilement découpable et donc assemblable. Nous avons opté pour du bois de 7mm afin d’assurer l’intégrité de la machine.

Plusieurs options : rails, clous, colle, découpage pour entrelacement du bois, vis… 

Peu de vis avaient une taille adapté à notre taille de bois, en effet soit elles étaient au bon diamètre mais trop longues, soit à la bonne longueur mais beaucoup trop large. 

Mercredi 8 Février :