Step 1: The Structure

Here you can get the plan to make the machine, the software is solid works , if you are based in france this company does it for a fair price ASTC .

If you found some way to improve it please share it !


Step 2: Connecting the Relay/Arduino



Let's have a look how to cable everything:

The first picture show how to connect one water pump.

water pump + = RELAY water pump

Negative - = Charger 12V

I used one charger 12V 0.5A(cut the top) the negative goes to each pump (negative) and positive goes to each channel of the relay .

One charger is enough as only one pump will work at the time

Repeat this for the 8 pump.

Arduino :

Also easy you only need to connect the Digital Output to the relay (see schema) and the bluetooth module.

You can personnalize , for me it's like this :

  • whisky DO:5 Relay:5
  • Vodka DO:9 Relay:1
  • ricard DO:8 Relay:2
  • Tequila DO:7 Relay:3
  • GIN DO:6 Relay:4
  • Orange DO:2 Relay:8
  • Water DO:3 Relay:7
  • Coc DO:4 Relay:6



Step 3: The Code



Here you have the code for arduino :

So what it does is : when you will send a cocktail from the app it will send a ''number'' to the arduino.

This number is link to a cocktail wich will activate the pump link to it and done !

Important : When you upload the code don't forget to remove the bluetooth module ortherwise it won't work .


char junk;<br>String inputString="";</p><p>void setup()                    // run once, when the sketch starts
{
 Serial.begin(9600);            // set the baud rate to 9600, same should be of your Serial Monitor
 
 pinMode(2, OUTPUT);
 digitalWrite(2,HIGH);
 
  pinMode(3, OUTPUT);
   digitalWrite(3,HIGH);
   
   pinMode(4, OUTPUT);
   digitalWrite(4,HIGH);
 
   pinMode(5, OUTPUT);
   digitalWrite(5,HIGH); 
   
   pinMode(6, OUTPUT);
   digitalWrite(6,HIGH);
   
   pinMode(7, OUTPUT);
   digitalWrite(7,HIGH); 
   
   pinMode(8, OUTPUT);
   digitalWrite(8,HIGH); 
   
   pinMode(9, OUTPUT);
   digitalWrite(9,HIGH); 
   
   
}void loop()
{
 
  if(Serial.available()){
  while(Serial.available())
    {
      char inChar = (char)Serial.read(); //read the input
      inputString += inChar;        //make a string of the characters coming on serial
    }
    Serial.println(inputString);
    while (Serial.available() > 0)  
    { junk = Serial.read() ; }      // clear the serial bufferif(inputString == "1"){         //whysky coca
            digitalWrite(5, LOW);    //whyski
      delay(1500);                  //temps distrib whisky
      digitalWrite(5, HIGH);
      delay(1500);                   //
      digitalWrite(4, LOW);           //coca
      delay(3000);                    //temps distrib coca
      digitalWrite(4, HIGH);           //
       delay(1500);
    }else if(inputString == "2"){   //wodka orange
      digitalWrite(9, LOW);          //wodka
      delay(1500);
      digitalWrite(9, HIGH);
      delay(1500);                        //
      digitalWrite(2, LOW);                //orange
      delay(3000);
      digitalWrite(2, HIGH);          //
     delay(1500);
      }else if(inputString == "3"){   //ricard eau
      digitalWrite(8, LOW);          //ricard
      delay(1500);
      digitalWrite(8, HIGH);
      delay(1500);                        //
      digitalWrite(3, LOW);                //eau
      delay(3000);
      digitalWrite(3, HIGH);          //
    delay(1500);
      }else if(inputString == "4"){   //COCA
      digitalWrite(4, LOW);          //COCA
      delay(1500);
      digitalWrite(4, HIGH);
      delay(1500);                        //
 
      }else if(inputString == "5"){   //whisky gay
      digitalWrite(5, LOW);          //whysky
      delay(1500);
      digitalWrite(5, HIGH);
      delay(1500);                        //
      digitalWrite(2, LOW);                //orange
      delay(3000);
      digitalWrite(2, HIGH);          //
    delay(1500);
      }else if(inputString == "6"){   //tequila orange
      digitalWrite(7, LOW);          //tequila
      delay(1500);
      digitalWrite(7, HIGH);
      delay(1500);                        //
      digitalWrite(2, LOW);                //orange
      delay(3000);
      digitalWrite(2, HIGH);          //
    delay(1500);
      }else if(inputString == "7"){   //gin orange
      digitalWrite(6, LOW);          //gin
      delay(1500);
      digitalWrite(6, HIGH);
      delay(1500);                        //
      digitalWrite(2, LOW);                //orange
      delay(3000);
      digitalWrite(2, HIGH);          //
      delay(1500);
//shooter
      }else if(inputString == "8"){   //whisky
      digitalWrite(5, LOW);          //whisky
      delay(1500);
      digitalWrite(5, HIGH);
     delay(1500);</p><p>      }else if(inputString == "9"){   //wodka 
      digitalWrite(9, LOW);          //wodka
      delay(1500);
      digitalWrite(9, HIGH);
     delay(1500);</p><p>      }else if(inputString == "0"){   //tequila
      digitalWrite(7, LOW);          //tequila
      delay(1500);
      digitalWrite(7, HIGH);
     delay(1500);</p><p>      }else if(inputString == "a"){   //gin
      digitalWrite(6, LOW);          //gin
      delay(1500);
      digitalWrite(6, HIGH);
      delay(1500);</p><p>      }else if(inputString == "b"){   //tgv
      digitalWrite(7, LOW);          //tequila
      delay(500);
      digitalWrite(7, HIGH);
      delay(1500);                        //
      digitalWrite(6, LOW);                //gin
      delay(500);
      digitalWrite(6, HIGH);          //
      delay(1500);
     digitalWrite(9, LOW);                //wodka
      delay(500);
      digitalWrite(9, HIGH);</p><p> //soft
      }else if(inputString == "c"){   //orange
      digitalWrite(2, LOW);          //orange
      delay(3000);
      digitalWrite(2, HIGH);</p><p>      }else if(inputString == "d"){   //eau
      digitalWrite(3, LOW);          //eau
      delay(3000);
      digitalWrite(3, HIGH);
     </p><p>      }else if(inputString == "e"){   //coca
      digitalWrite(4, LOW);          //coca
      delay(3000);
      digitalWrite(4, HIGH);</p><p>    }
    inputString = "";
  }
}

Step 4: The Android Apps



In order to control our cocktail machine with our phone, we will create an app with MIT app inventor .

Only requirement a gmail acoount. You can upload my app and modify it in the app inventor it is very easy to use but i will advice to check some tutorial before.

To be able to install the app you have to go to your phone setting (in security) allow unknown sources.

Important :

To send value from the bluetooth i used the object "send text" so it will send the number 1 / 2 etc.

You can also use the "send byte number" but it use ASCII so in order to send 1 to the arduino you need to send the value 49 Pay attention to the difference .



Step 7: Conclusion


Here we are just few steps to follow .

The most complicated part would be to create the case that fit your needs mine is a bit bigger than needed but i can stock up some botle .

You can change all the drink i used without changing the code (if you use the same quantity ) , just need to change the picture in the app !

I added Voice recognition in case someone is to "tired" to use the app !

Hope you envoy this instructables please share any idea of improvement for the next version !


Bill of materials used in this project

arduino
1
8 channel relay : each channel will be a botlle
1
Wire the most important are female to male .
1
8 pump the best i found so far.
1
Pipe I got 10m.
1
Charger
1
Bluetooth module
1
Aug 13,2019
37 viewsReport item
  • Comments(0)
  • Likes(0)
You can only upload 1 files in total. Each file cannot exceed 2MB. Supports JPG, JPEG, GIF, PNG, BMP
    View More