Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2021:apredescu:pistol-de-masurare-temperatura [2021/06/01 20:35]
ovidiu.stanica
pm:prj2021:apredescu:pistol-de-masurare-temperatura [2021/06/03 17:09] (current)
ovidiu.stanica
Line 7: Line 7:
  
 Pistolul de măsurat temperatura nu intră în contact cu suprafața a cărei temperatură este măsurată.\\ Pistolul de măsurat temperatura nu intră în contact cu suprafața a cărei temperatură este măsurată.\\
-Pentru eșantionarea temperaturii se folosește un senzor de temperatură cu raze infraroșii ​MXL90614.\\ +Pentru eșantionarea temperaturii se folosește un senzor de temperatură cu raze infraroșii ​MLX90614.\\ 
-Pentru măsurarea cât mai potrivită, vor fi introduse 3 moduri de măsurare, specifice unor medii de temperatură.+Pentru măsurarea cât mai potrivită, vor fi introduse 3 moduri de măsurare, specifice unor medii de temperatură.\\ 
 +Se poate folosi exact ca un pistol de măsurat temperatura găsit în supermarket-uri.
  
 ===== Descriere generală ===== ===== Descriere generală =====
Line 16: Line 17:
 Pistolul are 2 butoane prin care e controlată măsurarea temperaturii. Un buton, numit declanșator,​ activează măsurarea temperaturii cât timp e apăsat, în continuu. Temperatura este afișată pe LCD, pe rândul de jos, în partea stângă. În partea dreaptă e afișată temperatura trecută prin filtrul de procesare. Pistolul are 2 butoane prin care e controlată măsurarea temperaturii. Un buton, numit declanșator,​ activează măsurarea temperaturii cât timp e apăsat, în continuu. Temperatura este afișată pe LCD, pe rândul de jos, în partea stângă. În partea dreaptă e afișată temperatura trecută prin filtrul de procesare.
  
-Pistolul oferă ​filtre de procesare:​\\ ​+Pistolul oferă ​filtre de procesare:​\\ ​
  * Minim (MIN) păstrează doar minimul temperaturilor măsurate;​\\  * Minim (MIN) păstrează doar minimul temperaturilor măsurate;​\\
  * Maxim (MAX) păstrează doar minimul temperaturilor măsurate;​\\  * Maxim (MAX) păstrează doar minimul temperaturilor măsurate;​\\
- * Average (AVG) face media temperaturilor măsurate;​\\ 
  * None (---) afișează ultima temperatură măsurată;  * None (---) afișează ultima temperatură măsurată;
    
-Filtrul de procesare e resetat când se începe o nouă măsuratoare (adică când se apasă declanșatorul)+Filtrul de procesare e resetat când se începe o nouă măsuratoare (adică când se apasă declanșatorul).
  
-Carcasa pistolului va fi făcută la o imprimanta 3D(sau cel puțin voi încerca să folosesc un soft de design, Fusion 360)+ 
 +==Schema bloc== 
 +{{:​pm:​prj2021:​apredescu:​schema_bloc_stanica_ovidiu-stefan.jpeg?400|}}
  
 ===== Hardware Design ===== ===== Hardware Design =====
  
 Voi avea nevoie de următoarele componente:​\\ Voi avea nevoie de următoarele componente:​\\
- * Arduino ​Uno\\ + * Arduino ​Nano\\ 
- * LCD 1602 Adaptor I2C\\+ * LCD 1602\\ 
 + ​* ​Adaptor I2C\\
  * Buton schimbat mod măsurare\\  * Buton schimbat mod măsurare\\
  * Buton declanșat măsurarea\\  * Buton declanșat măsurarea\\
Line 37: Line 40:
  * Întrerupător on/off  * Întrerupător on/off
  
-{{:​pm:​prj2021:​apredescu:​schema_bloc_stanica_ovidiu-stefan.jpeg?​400|}} +Display-ul ​și senzorul le-am pus pe aceeași ​"placă", conectate la Arduino printr-un cablu de Ethernet. Am folosit cablu de ethernet pentru ​că are ecranare ​cât de cât bunăși I2C este gândit să fie folosit pe același ​circuit board, deci nu suportă interferențe ​prea mari.
- +
-Display-ul ​si senzorul le-am pus pe aceeasi ​"placa", conectate la Arduino printr-un cablu de Ethernet. Am folosit cablu de ethernet pentru ​ca are ecranare ​cat de cat bunasi I2C este gandit sa fie folosit pe acelasi ​circuit board, deci nu suporta interferente ​prea mari.+
    
-Butoanele sunt conectare direct ​langa Arduino.+Butoanele sunt conectare direct ​lângă ​Arduino. 
 + 
 +==Schema electrică== 
 +{{:​pm:​prj2021:​apredescu:​schema_electrica_stanica_ovidiu.jpg?​600|}}
  
 ===== Software Design ===== ===== Software Design =====
  
-Am folosit un timer (timer2) pe Atmega ca sa fac citirea senzorului de 2500 ori pe secunda.+Am folosit un timer (timer2) pe Atmega ca să fac citirea senzorului de 2500 ori pe secundă. 
 + 
 +Pentru că senzorul de temperatură este interfațat pe I2C, și comunicația pe I2C are nevoie ca interrupt-urile să fie pornite, nu pot face citirea senzorului direct în interrupt-ul de timer. 
 +În loc, interrupt-ul setează un flag global. Bucla principală verifică constant acest flag, și dacă este setat, îl elimină și face o citire a senzorului. 
 + 
 +Afișarea la display se face de 10 ori pe secundă. În mod ideal, afișarea s-ar putea face mai des, dar refresh rate-ul display-ului nu permite (durează ~70ms ca un pixel să-și schimbe starea).
  
-Pentru ca senzorul de temperatura este interfatat pe I2C, si comunicatia pe I2C are nevoie ca interrupt-urile sa fie pornite, nu pot face citirea ​senzorului ​direct in interrupt-ul de timer. +Filtrele sunt evaluate odată cu refresh-ul senzorului. ​Dacă se cere schimbarea filtruluiînainte de citirese resetează datele de acumulare ​si e schimbată funcția de filtru.
-In locinterrupt-ul seteaza un flag global. Bucla principala verifica constant acest flag, si daca este setat, il elimina si face o citire a senzorului.+
  
-Afisarea la display se face de 10 ori pe secunda. In mod ideal, afisare s-ar putea face mai des, dar refresh rate-ul display-ului nu permite (dureaza ~70ms ca un pixel sa-si schimbe starea)+===== Rezultatul Obținut ===== 
 +Am obținut ​un dispozitiv care poate măsura temperatura în timp real și care poate afișa maximul și minimul temperaturii dintr-un loc.\\ 
 +{{:​pm:​prj2021:​apredescu:​imagine1_stanica_ovidiu.jpeg?​600|}} 
 +{{:​pm:​prj2021:​apredescu:​imagine_4_stanica_ovidiu.jpeg?​600|}} 
 +{{:​pm:​prj2021:​apredescu:​imagine_2_stanica_ovidiu.jpeg?​600|}} 
 +{{:​pm:​prj2021:​apredescu:​imagine_3_stanica_ovidiu.jpeg?​600|}}
  
-Filtrele sunt evaluate odata cu refresh-ul senzorului. Daca se cere schimbarea filtruluiinainte ​de citire, se reseteaza datele ​de acumulare si e schimbata functia ​de filtru.+===== Concluzii ===== 
 +În urma realizării acestui proiectam observat cât de ușor și de distractiv este să creezi proiecte folositoare folosindu-mă ​de arduino.
  
-===== Rezultatul Obtinut ​=====+===== Download ​===== 
 +<note tip> 
 +Arhiva conține o poză cu proiectul, schema bloc, schema electrică și codul sursă al proiectului:​  
 +{{:​pm:​prj2021:​apredescu:​resurse_stanica_ovidiu.zip|Arhivă Resurse}} 
 +</​note>​
  
-===== Downloads ​===== +===== Jurnal ​===== 
-[[https://ocw.cs.pub.ro/courses/pm/prj2021/apredescu/pistol-de-masurare-temperatura?​do=export_pdf|Link pdf]]+2021/04/25 - Creare pagină wiki\\ 
 +2021/05/16 - Creare schemă bloc și actualizare pagină wiki\\ 
 +2021/06/01 - Finalizare parte hardware și software a proiectului + creare schemă electrică\\ 
 +2021/06/02 Finalizare pagină wiki
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
-[[https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​apredescu/​pistol-de-masurare-temperatura|Link proiect]]+[[https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​apredescu/​pistol-de-masurare-temperatura?​do=export_pdf|Link pdf]]\\ 
 +[[https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​apredescu/​pistol-de-masurare-temperatura|Link proiect]]\\ 
 +https://​www.youtube.com/​watch?​v=xAeO1ZQtwKc - Link cu video demo\\ 
 +https://​app.diagrams.net/​ - Program folosit pentru schema bloc\\ 
 +https://​www.kicad.org/​download/​ - Program folosit pentru schema electrică
  
pm/prj2021/apredescu/pistol-de-masurare-temperatura.1622568942.txt.gz · Last modified: 2021/06/01 20:35 by ovidiu.stanica
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