Smart Bartender

Autor

Introducere

Descriere

Proiectul propune implementarea hardware si software a unui automat de bartending ce poate mixa diferite bauturi si cocktailuri. Automatul este controlat prin bluetooth si permite combinarea mai multor tipuri de lichide(suc, bauturi alcoolice) pentru a prepara bautura dorita

Scop

Scopul proiectului este de a automatiza procesul de mixare si turnare a bauturilor, economisindu-se astfel timp pretios.

Idee

Ideea care m-a condus la alegerea acestui proiect vine din dorinta de a automatiza procese si de a le face cat mai simplu de utilizat.

Sustenabilitate

Acest automat este util pentru orice persoana care atunci cand ajunge acasa nu mar are puterea fizica necesara de a isi pregati un pahar de “ceva” si alege sa se puna in fotoliu la televizor fara a isi savura bautura preferata.

Descriere Generala

Functionalitate

Automatul este controlat prin bluetooth de catre utilizator. Acesta din urma poate alege sa isi prepare bautura dintr-o gama de bauturi specificata, fie ca doreste un pahar de suc, sau un cocktail alcoolic. Dupa alegerea bauturii, automatul o prepara, utilizand cate o pompa pentru fiecare tip de bautura prezenta. Un sunet intepator marcheaza finalizarea prepararii, urmand ca utilizatorul sa isi savureze bautura preparata automat.

Scehma Bloc

Hardware Design

Lista de piese
Nume Piesa Numar Link
Arduino Uno 1 link
Modul Bluetooth HC-05 1 link
Breadboard 1 link
Fire male-male 20 link
Fire male-female 10 link
Fire jumper 20 link
Rezistor 2k2 5 link
Rezistor 4k7 1 link
Tranzistor NPN 2n2222 4 link
Dioda 1N4001 4 link
Modul buzzer 1 link
Pompa de apa 3-6V 4 link
Furtun de apa 5 link
Alimentator 5V 1A 1 link
Polistiren extrudat 2 link
Recipiente lichid 1.5L 4 link
Schema electrica

Conectarea modulului de bluetooth

Modulul de bluetooth este conectat la Arduino in urmatorul mod:

  • pinul GND al modulului este conectat la pinul GND de la Arduino
  • pinul 5V al modulului este conectat la pinul 5V de la Arduino
  • pinul TX al modulului este conectat la pinul 0(RX) de la Arduino
  • pinul RX al modulului este conectat la GND printr-o rezistenta de 4k7 Ohmsi la pinul 1(TX) de la Arduino printr-o rezistenta de 2k2 Ohm

Modulul de bluetooth interfateaza comunicarea dintre aplicatia mobile(utilizator) si Arduino.

Conectarea pompelor de apa

Fiecare pompa de apa prezinta 2 pini: VCC si GND. Conectarea acestora este realizata astfel:

  • pinul VCC este conectat la o tensiune de 5V externa
  • pinul GND este conectat la colectorul unui tranzistor npn
  • pinii VCC si GND sunt legati printr-o dioda de flyback cu catodul orientat catre VCC
  • baza tranzistorului este conectata la unul dintre pinii 4,5,6,7 Arduino printr-o rezistenta de 2k2 Ohm
  • emitorul tranzistorului este conectat la pinul GND de la Arduino
Conectarea modulului buzzer

Modulul buzzer prezinta 3 pini: VCC, GND si I/O. Conectarea acestora este realizata astfel:

  • pinul VCC al modulului este conectat la pinul 5V de la Arduino
  • pinul GND al modulului este conectat la pinul GND de la Arduino
  • pinul I/O este conectat la pinul 8 de la Arduino
Realizarea carcasei

Carcasa este realizata din polistiren extrudat. O schema 3D a carcasei impreuna cu toate componentele poate fi vizualizata aici.
Peretii carcasei au fost lipiti cu pistolul de lipit cu plastic fierbinte si ranforsati cu scobitori.
Celor 4 recipiente pentru bauturi le-a fost adaugata o iesire printr-un tub de plastic. Acesta din urma este conectat la intrarea pompei aferente. Iesirile pompelor, reprezentate de tuburi de plastic lungi de 50 cm, sunt cuprinse intr-un manunchi care este orientat catre pozitia paharului ce se doreste a fi umplut. Pe langa spatiul destinat paharului in care se va turna bautura, carcasa ofera spatiu pentru mai multe pahare de-o parte si de alta a paharului umplut.


Procesul de realizare al carcasei si adaugarea elementelor hardware

Software Design

  • Limbaj de programare: C
  • Mediu de dezvoltare: Arduino IDE, Thinkercad
Biblioteci folosite
  • SoftwareSerial - folosita pentru comunicarea seriala dintre Arduino si Modulul Bluetooth
Descrierea implementarii

Automatul se poate afla in una dintre starile urmatoare:

  • S1: Asteptare Input - in aceasta stare automatul asteapta input de la utilizatorul dornic sa isi pregateasca o bautura
  • S2: Pregatire Butura - in aceasta stare pompele sunt actionate si pompeaza bautura de-a lungul tuburilor
  • S3: Notificare Utilizator - in aceasta stare, utilizatorul este anuntat prin buzzer ca bautura este gata si poate fi savurata

Un ciclu de utilizare al automatului poate fi reprezentat prin urmatoarea inlantuire de stari: S1→S2→S3→S1

Protocolul de comunicatie cu modulul bluetooth

Comunicarea cu modulul bluetooth se realizeaza prin comunicare seriala. Protocolul de comunicatie dezvoltat este urmatorul:

  • Modulul bluetooth trimite caracterul 'c' urmat de unul din caracterele:
    • '1' - se doreste sa se prepare cocktailul 1 (50 ml lichid din recipientul 1 + 50 ml lichid din recipientul 3)
    • '2' - se doreste sa se prepare cocktailul 2 (50 ml lichid din recipientul 2 + 50 ml lichid din recipientul 4)
    • '3' - se doreste sa se prepare cocktailul 3 (50 ml lichid din recipientul 1 + 50 ml lichid din recipientul 4)
    • '4' - se doreste sa se prepare cocktailul 4 (50 ml lichid din recipientul 2 + 50 ml lichid din recipientul 3)
  • Modulul bluetooth trimite caracterul 'C' urmat de 4 valori pe un octet(0 < valoare < 100), fiecare valoare reprezentand numarul de mililitrii de lichid ce se doresc turnati din fiecare recipient.
Actionarea pompelor si a buzzerului

Dupa ce un ciclu de comunicare cu modulul bluetooth ia sfarsit, se cunoaste practic volumul din fiecare lichid ce se doreste a fi pompat. Avand in vedere ca debitul pompelor este de aprox 1000ml/min, fiecare pompa este actionata timp de ((60000 * ml_ceruti) / 1000) = (60 * ml_ceruti) milisecunde. Dupa actionarea pompelor, buzzerul reda notele muzicale DO, MI, SOL, DO, fiecare durand 250 milisecunde.

Aplicatia mobile

Utilizatorul actioneaza automatul prin intermediul unei aplicatii android. Aplicatia a fost dezvoltata folosind MIT App inventor. Am ales folosirea acestei platforme pentru dezvoltarea aplicatiei deoarece ofera suport pentru bluetooth si stocare persistenta a datelor(TinyDB) si este foarte usor de folosit.
Aplicatia prezinta un ecran de loading cu tematica de bartending si o pagina principala. Pagina principala permite realizarea urmatoarelor actiuni:

  • conectarea la modulul bluetooth
  • preparearea unuia dintre cele 4 cocktailuri prefacute
  • prepararea unui cocktail custom prin actionarea a 4 butoane de tip slider
  • schimbarea denumirilor bauturilor curente, in cazul in care optam pentru a schimba tipul unei bauturi dintr-un recipient anume al automatului

s_b_mobile_app1.jpegs_b_mobile_app2.jpegs_b_mobile_app3.jpeg
Interfata aplicatiei mobile

Rezultate Obtinute

In cele din urma, rezultatul mi-a depasit asteptarile. Am obtinut un automat de bauturi functional, care reuseste sa automatizeze procesele de 'stricare a vinului', 'diluare a tariilor', s.a.m.d., totul cu un simplu click din aplicatia mobile. Raza considerabila de acoperire a modulului bluetooth permite pregatirea unui cocktail chiar din momentul in care utilizatorul urca pe scara blocului. automatul reusind astfel sa ofere toate condiitiile necesare unui program de seara de tipul 'netflix & chill' inainte ca utilizatorul sa ajunga acasa.

Produs final

Demo

Concluzii

  • Automatul a fost implementat complet si functioneaza conform asteptarilor.
  • Permiterea utilizatorului de a schimba cu usurinta bauturile din recipiente si actionarea automatului prin aplicatie intaresc sustenabilitatea proiectului.
  • Dezasamblarea usoara a suportului de pahare din carcasa ofera acces facil la partea electronica a automatului, permitand un proces de debugging usor si rapid.
  • Eventuale imbunatatiri ale automatului:
    • Ecran led cu touchscreen incorporat in automat similar automatelor de cafea.
    • Butoane fizice incorporate in automat pentru selectarea bauturilor.
    • Sistem de adaugare a cuburilor de gheata.
    • Pompe mai performante(acestea au probleme cu bauturile carbogazoase datorita bulelor de aer ce raman in sistem)
  • Cu siguranta, proiectul la care mi-a facut cea mai mare placere sa lucrez in toti cei 3 ani de facultate.

Download

Jurnal

  • 26.04.2021 :
    • Alegere tema proiect.
    • Creeare pagina wiki.
  • 27.04.2021 :
    • Plasare comanda 1.
  • 4.05.2021 :
    • Testare a modului de bluetooth si a pompelor de apa.
  • 7.05.2021 :
    • Testare riguroasa a pompelor de apa.
    • Am observat ca pompele nu pot fi transformate in pompe non-submersibile(nu au putere de suctiune, decat de impingere).
    • Am ajuns la concluza ca pompele vor trebui plasate la baza recipientelor, pentru a intra lichid in ele si a-l putea pompa.
    • Plasare comanda 2.
  • 12.05.2021:
    • Realizarea componentei software: cod, protocol de comunicatie.
    • Realizarea aplicatiei mobile si testarea ei.
  • 14.05.2021 :
    • Incercare de realizare a carcasei din placaj OSB.
    • Am trecut la polistiren extrudat deoarece acesta este mult mai usor decat OSB-ul.
  • 21.05.2021 :
    • Adaugare mustiuc pompelor si recipientelor, aplicare silicon astfel incat pompele si recipientele sa fie ermetice.
    • Testare si reparatii pentru imbinarile care nu sunt complet ermetice.
  • 22.05.2021 :
    • Imbinarea peretilor carcasei.
    • Adaugarea elementelor hardware.
    • Testarea automatului.
  • 28.05.2021:
    • Realizare demo.
    • Completare pagina wiki.

Bibliografie/Resurse

pm/prj2021/agrigore/smart-bartender.txt · Last modified: 2021/05/30 18:44 by gabriel.busuioc1204
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0