Table of Contents

Intelligent Temperature Sensor for Beverages

Autor: PAVEL Radu-Bogdan

Introducere

Descriere generală

Modul de funcționare al mecanismului este următorul: se verifică temperatura unei băuturi prin introducerea senzorului impermeabil în băutură. Pe un ecran LCD se afișează apoi temperatura și dacă este prea fierbinte sau prea rece, în funcție de setările de temperatură prestabilite. Există și un suport vizual pentru temperatură, prin intermediul unui LED RGB, care se aprinde albastru dacă este prea rece, roșu dacă este prea cald și verde pentru o temperatură adecvată. De asemenea, valorile de referință de temperatură pot fi ajustate prin intermediul unui potențiometru. În ultimul rând, aparatul poate fi folosit și pentru a determina în cât timp se va răci lichidul până la temperatura dorită, folosind Legea de Răcire a lui Newton.

Hardware Design

Software Design

Toată interacțiunea cu aparatul se face prin intermediul unui meniu, care poate fi accesat prin intermediul a patru butoane. Cele cinci moduri de funcționare ale aparatului sunt:

Calcularea timpului necesar de răcire se face folosind Legea de Răcire a lui Newton. Se compară diferența de temperatură a lichidului într-un interval de timp raportată la temperatura ambientală, măsurată prin alt senzor de temperatură DS18B20. Apoi se află constanta de răcire a mediului în funcție de valorile menționate și se calculează astfel timpul necesar răcirii până la o anumită temperatură. Mai multe detalii despre acest fenomen poți găsi aici.

Cel mai important aspect al proiectului este navigarea între modurile de funcționare ale aparatului. Aceasta este posibilă datorită debounce-ului făcut pe fiecare buton și cum sunt programate schimbările de stare: în momentul în care un buton își schimbă starea, toate celelalte stări sunt invalidate, fiind necesară resetarea stării curent într-o valoare de False pentru a reveni la meniul de modul de standby și pentru a accesa apoi alte moduri.

Efectul de debounce realizat în funcționarea butoanelor se bazează pe înregistrarea doar a unui semnal produs de buton într-o perioadă de timp stabilită și compararea acestuia cu fostul semnal primit, pentru a valida dacă s-au produs schimbări sau nu.

Pentru programarea microcontroller-ului s-a folosit mediul de dezvoltare Arduino IDE, iar ca biblioteci incluse s-au folosit LiquidCrystal.h, pentru programarea LCD-ului, iar OneWire.h și DallasTemperature.h pentru interacțiunea senzorilor de temperatură cu exteriorul.

Senzorii de temperatură sunt conectați pe același linie bus de date, lucru făcut posibil de bibiliotecile menționate mai sus. Abordarea aleasă este cea mai bună pentru că nu mai există interferențe între valorile citite de cei doi senzori.

Rezultate Obţinute

În urma testării, apartul se comportă conform așteptărilor. În continuare, voi atașa poze în care se va vedea utilizarea aparatului și fiecare din cele 4 moduri de funcționare al acestuia. De notat este că timpul de răcire afișat este în minute, iar temperatura la care vrea să se ajungă este cea setată în al treilea mod de funcționare. De asemenea, pentru o prezentare mai detaliată a modului de funcționare o puteți găsi în acest link de Youtube.

 Prezentare  Off mode Standby mode

 Temperature mode  Set mode  Probe mode

Concluzii

Aparatul funcționează conform așteptărilor, însă cu câteva mențiuni de făcut:

Ca îmbunătățiri aduse proiectului, pe lângă cele menționate mai sus, se pot folosi fire mai adecvate pentru a avea un aspect mai frumos și eventual să fie încapsulat într-un recipient și alimentat la o baterie pentru a fi mai portabil și mai ușor de folosit.

Download

Toată componenta software folosită în dezvoltarea proiectului, plus părți din documentație pot fi descărcate de pe acest repository de pe GitHub.

Pentru a descărca pagina de wiki în format PDF, apăsați aici.

Bibliografie