Devices & Components
Arduino Uno Rev3
Wires in the colors red and black 0,75mm²
Pump 12V DC
0,1qF capicitators
Male/Female Jumper Wires
Bluetooth module HC-05
Breadboard (generic)
Relay module 8 Channel 5V
6m of silicone hose 6x9mm
Resistor 1k ohm
Through Hole Resistor, 2 kohm
Jumper wires (generic)
Hardware & Tools
Soldering iron (generic)
Drill / Driver, 20V
Solder Wire, Lead Free
Wire Stripper & Cutter, 18-10 AWG / 0.75-4mm² Capacity Wires
Multitool, Screwdriver
Drill bit for wood 28mm diameters
Software & Tools
MIT App Inventor 2
Project description
Code
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 :-).
1inary file (no preview
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 :-).
1inary file (no preview
Arduino cocktailmaker with Bluetooth
c_cpp
To connect over bluetooth and let the cocktailmaker make you drinks.
1// created by Seafoxc 2//#include <SoftwareSerial.h> 3//SoftwareSerial EEBlue(0, 1); // RX | TX 4 5//defining the pins used for each drink, you can changes this depending how you connect the pumps and the drinks. 6 7int Vodka = 2; 8int Cointreau = 3; 9int CranberryJuice = 4; 10int Sprite = 5; 11int LemonJuice = 6; 12int SugarWater = 7; 13int BlueCur = 8; 14int Gin = 9; 15 16 17 18int state = 0; 19// how much time there is between switching to the next pump. 20int TimeBetweenPours = 500; 21 22 23void setup() 24{ 25 26 Serial.begin(9600); 27 Serial.println("The bluetooth gates are open.\ 28 Connect to HC-05 from any other bluetooth device with 1234 as pairing key!"); 29 30 // Set pin 2-9 to output pins to drive the relay board 31 pinMode(2, OUTPUT); 32 pinMode(3, OUTPUT); 33 pinMode(4, OUTPUT); 34 pinMode(5, OUTPUT); 35 pinMode(6, OUTPUT); 36 pinMode(7, OUTPUT); 37 pinMode(8, OUTPUT); 38 pinMode(9, OUTPUT); 39 40 41// 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... 42 43 digitalWrite(2,HIGH); 44 digitalWrite(3,HIGH); 45 digitalWrite(4,HIGH); 46 digitalWrite(5,HIGH); 47 digitalWrite(6,HIGH); 48 digitalWrite(7,HIGH); 49 digitalWrite(8,HIGH); 50 digitalWrite(9,HIGH); 51 52 53} 54 55void loop() 56 57{ 58if(Serial.available() > 0){ // Checks whether data is comming from the serial port 59 state = Serial.read(); // Reads the data from the serial port 60 Serial.println(state); 61} 62 63// Cocktails: 64 65 66//Vodka sprite 67if (state == 'a') { 68 Serial.println("Vodka Sprite in the making"); 69 Mix(3000,0,0,0,5000,0,0,0); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin 70 } 71 72// Blue Lagoon 73if (state == 'b') { 74 Serial.println("Blue Lagoon in the making"); 75 Mix(2000,0,0,5000,1800,1000,1800,0); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin 76 } 77 78 79// Cosmo 80if (state == 'c') { 81 Serial.println("Cosmo in the making"); 82 Mix(2500,1500,3800,0,1200,1200,0,0); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin 83 } 84 85// Lemon drop 86if (state == 'd') { 87 Serial.println("Lemon drop in the making"); 88 Mix(1500,1500,0,0,1800,1200,0,0); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin 89 } 90 91// Blue Moon 92if (state == 'e') { 93 Serial.println("Blue Moon in the making"); 94 Mix(2000,0,3000,0,1800,1200,1200,0); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin 95 } 96 97// Blue Gin Moon 98if (state == 'f') { 99 Serial.println("Blue Gin Moon in the making"); 100 Mix(0,0,3000,0,1800,1200,1200,2000); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin 101 } 102 103// Double Strike 104if (state == 'i') { 105 Serial.println("Double Strike in the making"); 106 Mix(2000,0,3000,0,1800,0,1200,0); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin 107 } 108 109// Tom Collins 110if (state == 'h') { 111 Serial.println("Tom Collins in the making"); 112 Mix(0,0,0,4000,1800,1800,0,2200); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin 113 } 114 115// Flying Dutchman 116if (state == 'g') { 117 Serial.println("Flying Dutchman in the making"); 118 Mix(0,2000,0,0,1200,1000,0,2000); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin 119 } 120 121// London Cosmo 122if (state == 'j') { 123 Serial.println("London Cosmo in the making"); 124 Mix(0,2000,5000,1800,0,0,0,2000); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin 125 } 126 127 128// Vodka Cranberry 129if (state == 'k') { 130 Serial.println("Vodka Cranberry in the making"); 131 Mix(2000,0,5000,0,0,1200,0,0); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin 132 } 133 134// Cranberry Gin 135if (state == 'l') { 136 Serial.println("Cranberry Gin in the making"); 137 Mix(0,0,5000,0,2000,0,0,2200); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin 138 } 139 140// Testin and maintenance options 141 142// Set-up Vodka 143if (state == 'm') { 144 Serial.println("Set-up Vodka"); 145 Mix(1100,0,0,0,0,0,0,0); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin 146 } 147 148// Set-up Tripple Sec 149if (state == 'n') { 150 Serial.println("Set-up Tripple Sec"); 151 Mix(0,1100,0,0,0,0,0,0); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin 152 } 153 154// Set-up Cranberry juice 155if (state == 'o') { 156 Serial.println("Set-up Cranberry juice"); 157 Mix(0,0,1000,0,0,0,0,0); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin 158 } 159 160// Set-up Sprite 161if (state == 'p') { 162 Serial.println("Set-up Sprite"); 163 Mix(0,0,0,1000,0,0,0,0); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin 164 } 165 166// Set-up Lime juice 167if (state == 'q') { 168 Serial.println("Set-up Lime juice"); 169 Mix(0,0,0,0,1100,0,0,0); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin 170 } 171 172// Set-up Sugar water 173if (state == 'v') { 174 Serial.println("Set-up Sugar water"); 175 Mix(0,0,0,0,0,1200,0,0); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin 176 } 177 178// Set-up Blue curacao 179if (state == 'r') { 180 Serial.println("Set-up Blue curacao"); 181 Mix(0,0,0,0,0,0,800,0); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin 182 } 183 184// Set-up Gin 185if (state == 's') { 186 Serial.println("Set-up Gin"); 187 Mix(0,0,0,0,0,0,0,1000); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin 188 } 189 190// Cleaning 191if (state == 't') { 192 Serial.println("Set-up Gin"); 193 Mix(4000,4000,4000,4000,4000,4000,4000,4000); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin 194 } 195 196// Set-up all (intial first time after cleaning) 197if (state == 'u') { 198 Serial.println("Set-up All"); 199 Mix(800,800,800,800,1000,1600,800,800); // Vodka, Triple Sec, Cranberry juice, Sprite, Lime juice, Sugar water, Blue Curacao, Gin 200 } 201 202} 203 204void Mix(int DelayTimeVodka, int DelayTimeCointreau, int DelayTimeCranberryJuice, int DelayTimeSprite, int DelayTimeLemonJuice, int DelayTimeSugarWater, int DelayTimeBlueCur, int DelayTimeGin ) { 205 206 state = 0; 207 delay(800); 208 digitalWrite(Vodka, LOW); 209 delay(DelayTimeVodka); 210 digitalWrite(Vodka, HIGH); 211 delay(TimeBetweenPours); 212 213 digitalWrite(Cointreau, LOW); 214 delay(DelayTimeCointreau); 215 digitalWrite(Cointreau, HIGH); 216 delay(TimeBetweenPours); 217 218 digitalWrite(CranberryJuice, LOW); 219 delay(DelayTimeCranberryJuice); 220 digitalWrite(CranberryJuice, HIGH); 221 delay(TimeBetweenPours); 222 223 digitalWrite(Sprite, LOW); 224 delay(DelayTimeSprite); 225 digitalWrite(Sprite, HIGH); 226 delay(TimeBetweenPours); 227 228 digitalWrite(LemonJuice, LOW); 229 delay(DelayTimeLemonJuice); 230 digitalWrite(LemonJuice, HIGH); 231 delay(TimeBetweenPours); 232 233 digitalWrite(SugarWater, LOW); 234 delay(DelayTimeSugarWater); 235 digitalWrite(SugarWater, HIGH); 236 delay(TimeBetweenPours); 237 238 digitalWrite(BlueCur, LOW); 239 delay(DelayTimeBlueCur); 240 digitalWrite(BlueCur, HIGH); 241 delay(TimeBetweenPours); 242 243 digitalWrite(Gin, LOW); 244 delay(DelayTimeGin); 245 digitalWrite(Gin, HIGH); 246 delay(TimeBetweenPours); 247 248 249 Serial.println("Drink is done!"); 250 state = 0; 251}
Downloadable files
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.
App made wit MIT app inventor 2
Schematic Cocktailmaker 8 pumps
Use this to solder/connect the wires
Schematic Cocktailmaker 8 pumps

Schematic Cocktailmaker 8 pumps
Use this to solder/connect the wires
Schematic Cocktailmaker 8 pumps

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.
App made wit MIT app inventor 2
Comments
Only logged in users can leave comments