Hackster is hosting Hackster Holidays, Ep. 6: Livestream & Giveaway Drawing. Watch previous episodes or stream live on Monday!Stream Hackster Holidays, Ep. 6 on Monday!
Seafox_C
Published © GPL3+

Cheap portable Cocktail maker Barbot with App!

Grate to have and envoy with friends. Made compact so you take it with you on the go.

IntermediateFull instructions provided52,240

Things used in this project

Hardware components

Arduino UNO
Arduino UNO
×1
Jumper wires (generic)
Jumper wires (generic)
×10
Male/Female Jumper Wires
Male/Female Jumper Wires
×10
Relay module 8 Channel 5V
×1
Breadboard (generic)
Breadboard (generic)
×1
Bluetooth module HC-05
×1
6m of silicone hose 6x9mm
×1
0,1qF capicitators (1uF MicroFarad}
×8
Wires in the colors red and black 0,75mm²
×1
Resistor 1k ohm
Resistor 1k ohm
×1
Through Hole Resistor, 2 kohm
Through Hole Resistor, 2 kohm
×1
Pump 12V DC
×8

Software apps and online services

MIT App Inventor 2
MIT App Inventor 2

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)
Solder Wire, Lead Free
Solder Wire, Lead Free
Wire Stripper & Cutter, 18-10 AWG / 0.75-4mm² Capacity Wires
Wire Stripper & Cutter, 18-10 AWG / 0.75-4mm² Capacity Wires
Drill / Driver, 20V
Drill / Driver, 20V
Multitool, Screwdriver
Multitool, Screwdriver
Drill bit for wood 28mm diameters

Story

Read more

Schematics

Schematic Cocktailmaker 8 pumps

Use this to solder/connect the wires

App made wit MIT app inventor 2

You have to install this on your phone to connect the cocktailmaker and send commands to make drinks.

Code

Arduino cocktailmaker with Bluetooth

C/C++
To connect over bluetooth and let the cocktailmaker make you drinks.
// created by Seafoxc
//#include <SoftwareSerial.h>
//SoftwareSerial EEBlue(0, 1); // RX | TX

//defining the pins used for each drink, you can changes this depending how you connect the pumps and the drinks.

int Vodka = 2;
int Cointreau = 3;
int CranberryJuice = 4;
int Sprite = 5;
int LemonJuice = 6;
int SugarWater = 7;
int BlueCur = 8;
int Gin = 9;



int state = 0;
// how much time there is between switching to the next pump.
int TimeBetweenPours = 500;


void setup()
{
 
  Serial.begin(9600); 
  Serial.println("The bluetooth gates are open.\n Connect to HC-05 from any other bluetooth device with 1234 as pairing key!");

  // Set pin 2-9 to output pins to drive the relay board
  pinMode(2, OUTPUT); 
  pinMode(3, OUTPUT); 
  pinMode(4, OUTPUT); 
  pinMode(5, OUTPUT); 
  pinMode(6, OUTPUT); 
  pinMode(7, OUTPUT); 
  pinMode(8, OUTPUT); 
  pinMode(9, OUTPUT); 


// My relayboard is a "low true" board. So setting the output to low energize the relay's. You don't want that yhey all switch on when powering on the cocktailmaker...

  digitalWrite(2,HIGH);
  digitalWrite(3,HIGH);
  digitalWrite(4,HIGH);
  digitalWrite(5,HIGH);
  digitalWrite(6,HIGH);
  digitalWrite(7,HIGH);
  digitalWrite(8,HIGH);
  digitalWrite(9,HIGH);

  
}
 
void loop()

{
if(Serial.available() > 0){ // Checks whether data is comming from the serial port
    state = Serial.read(); // Reads the data from the serial port
    Serial.println(state);
}

// Cocktails:


//Vodka sprite
if (state == 'a') {
  Serial.println("Vodka Sprite in the making");
  Mix(3000,0,0,0,5000,0,0,0); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin 
 }

// Blue Lagoon
if (state == 'b') {
  Serial.println("Blue Lagoon in the making");
  Mix(2000,0,0,5000,1800,1000,1800,0); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin  
 }
  

// Cosmo
if (state == 'c') {
  Serial.println("Cosmo in the making");
  Mix(2500,1500,3800,0,1200,1200,0,0); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin
 }

// Lemon drop
if (state == 'd') {
  Serial.println("Lemon drop in the making");
  Mix(1500,1500,0,0,1800,1200,0,0); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin
 }

// Blue Moon
if (state == 'e') {
  Serial.println("Blue Moon in the making");
  Mix(2000,0,3000,0,1800,1200,1200,0); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin
 }

// Blue Gin Moon
if (state == 'f') {
  Serial.println("Blue Gin Moon in the making");
  Mix(0,0,3000,0,1800,1200,1200,2000); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin
 }

// Double Strike
if (state == 'i') {
  Serial.println("Double Strike in the making");
  Mix(2000,0,3000,0,1800,0,1200,0); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin
 }

// Tom Collins
if (state == 'h') {
  Serial.println("Tom Collins in the making");
  Mix(0,0,0,4000,1800,1800,0,2200); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin
 }

// Flying Dutchman
if (state == 'g') {
  Serial.println("Flying Dutchman in the making");
  Mix(0,2000,0,0,1200,1000,0,2000); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin
 }

// London Cosmo
if (state == 'j') {
  Serial.println("London Cosmo in the making");
  Mix(0,2000,5000,1800,0,0,0,2000); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin
 }
    

// Vodka Cranberry 
if (state == 'k') {
  Serial.println("Vodka Cranberry in the making");
  Mix(2000,0,5000,0,0,1200,0,0); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin
 }

// Cranberry Gin   
if (state == 'l') {
  Serial.println("Cranberry Gin in the making");
  Mix(0,0,5000,0,2000,0,0,2200); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin
 }

// Testin and maintenance options

// Set-up Vodka
if (state == 'm') {
  Serial.println("Set-up Vodka");
  Mix(1100,0,0,0,0,0,0,0); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin
 }

// Set-up Tripple Sec
if (state == 'n') {
  Serial.println("Set-up Tripple Sec");
  Mix(0,1100,0,0,0,0,0,0); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin
 }

// Set-up Cranberry juice
if (state == 'o') {
  Serial.println("Set-up Cranberry juice");
  Mix(0,0,1000,0,0,0,0,0); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin
 }

// Set-up Sprite
if (state == 'p') {
  Serial.println("Set-up Sprite");
  Mix(0,0,0,1000,0,0,0,0); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin
 }

// Set-up Lime juice
if (state == 'q') {
  Serial.println("Set-up Lime juice");
  Mix(0,0,0,0,1100,0,0,0); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin
 }

// Set-up Sugar water
if (state == 'v') {
  Serial.println("Set-up Sugar water");
  Mix(0,0,0,0,0,1200,0,0); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin
 }

// Set-up Blue curacao
if (state == 'r') {
  Serial.println("Set-up Blue curacao");
  Mix(0,0,0,0,0,0,800,0); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin
 }

// Set-up Gin
if (state == 's') {
  Serial.println("Set-up Gin");
  Mix(0,0,0,0,0,0,0,1000); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin
 }

// Cleaning
if (state == 't') {
  Serial.println("Set-up Gin");
  Mix(4000,4000,4000,4000,4000,4000,4000,4000); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin
 }

// Set-up all (intial first time after cleaning)
if (state == 'u') {
  Serial.println("Set-up All");
  Mix(800,800,800,800,1000,1600,800,800); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin
 }
    
}

void Mix(int DelayTimeVodka, int DelayTimeCointreau, int DelayTimeCranberryJuice, int DelayTimeSprite, int DelayTimeLemonJuice, int DelayTimeSugarWater, int DelayTimeBlueCur, int DelayTimeGin ) {
  
  state = 0;
  delay(800);
  digitalWrite(Vodka, LOW);   
  delay(DelayTimeVodka);            
  digitalWrite(Vodka, HIGH); 
  delay(TimeBetweenPours);    

  digitalWrite(Cointreau, LOW);   
  delay(DelayTimeCointreau);            
  digitalWrite(Cointreau, HIGH); 
  delay(TimeBetweenPours); 

  digitalWrite(CranberryJuice, LOW);   
  delay(DelayTimeCranberryJuice);            
  digitalWrite(CranberryJuice, HIGH); 
  delay(TimeBetweenPours);

  digitalWrite(Sprite, LOW);   
  delay(DelayTimeSprite);            
  digitalWrite(Sprite, HIGH); 
  delay(TimeBetweenPours);
  
  digitalWrite(LemonJuice, LOW);   
  delay(DelayTimeLemonJuice);            
  digitalWrite(LemonJuice, HIGH); 
  delay(TimeBetweenPours); 

  digitalWrite(SugarWater, LOW);   
  delay(DelayTimeSugarWater);            
  digitalWrite(SugarWater, HIGH); 
  delay(TimeBetweenPours); 

  digitalWrite(BlueCur, LOW);   
  delay(DelayTimeBlueCur);            
  digitalWrite(BlueCur, HIGH); 
  delay(TimeBetweenPours);

  digitalWrite(Gin, LOW);   
  delay(DelayTimeGin);            
  digitalWrite(Gin, HIGH); 
  delay(TimeBetweenPours); 


  Serial.println("Drink is done!"); 
  state = 0;
}

App source file (not needed for build)

YAML
This is an AIA file that you can upload in MIT app inventor. Please note that I'm new to app inventor so maybe some things are not that well written but it work :-).
No preview (download only).

Credits

Seafox_C

Seafox_C

10 projects • 49 followers
I'm 29 years old and live in Belgium. I love the Arduino community and like to learn and make projects.

Comments