Home Monitoring

Nume: Răducanu George-Cristian

Grupă: 331CA

Introducere

Facilitățile dispozitivului de Home Monitoring:

  • măsurarea temperaturii din mediul ambiental
  • stocarea datelor pentru statistici ulterioare
  • detectarea intrușilor folosind un senzor de proximitate, dotat cu alarmă la alegere

Acest proiect răspunde nevoii de a avea un dispozitiv offline, cu autonomie mare ce poate realiza statistici simple de temperatura cu alarmă integrată. De asemenea dispozitivul Home Monitoring poate fi utilizat si pentru detectarea intrusilor. El poate fi utilizat atât la interior cât și la exterior, iar in cazul plasarii in exterior este recomandata amplasarea într-o zonă aflată la umbra. Acest lucru este necesar intrucat masurarea corecta a temperaturii in exterior se realizeaza la 1m deasupra solului in conditii de umbra.

Descriere generală

Dispozitivul este controlat in mod unic printr-o telecomandă în infraroșu. Senzorul de proximitate va monitoriza zona de interes și in cazul detectiei de intrusi declanșeaza o alarmă. Monitorizarea temperaturii se face la intervale periodice de timp și cu ajutorul telecomenzii se pot selecta si afișa statistici legate de temperatura inregistrata.

Dispozitivul are capacitate de stocare pe card SD limitată la valoarea maximă de 128GB (limitarea fiind determinată de adaptorul I2C al cardului). Măsurarea temperaturii este realizată cu ajutorul unui thermistor, în detrimentul unui senzor de temperatură întrucât se dovedește a fi mult mai fiabil, ieftin și simplu de folosit decât un senzor de tipul DHT11.

Hardware Design

Lista pieselor necesare:

  • Arduino Uno R3
  • Senzor ultrasonic
  • Card SD + modul slot Card SD, SPI
  • Buzzer piezo-electric
  • Display LCD 1602 + adaptor pt I2C
  • Thermistor
  • Senzor infrarosu + telecomanda
  • Rezistente
  • LED-uri rosii
  • baterie 9V
  • breadboard

Schema de proiectare a dispozitivului în ThinkerCAD este afișată mai jos.

În lipsa unui modul SPI pentru cardul SD în softul de proiectare, am reprezentat cu un breadboard mic și chenar.

În cele ce urmează voi detalia conexiunile realizate cu Arduino Uno R3 pentru fiecare componentă și modul.

O detaliere a tuturor legaturilor realizate este descrisa in continuare.

Pentru displayul 1602 cu I2C:

  • SCL - A5
  • SDA - A4
  • VCC - 5V
  • GND - GND

Pentru buzzer:

  • GND - GND
  • (+) - 10

Pentru thermistor am utilizat pinul analogic A0.

Pentru modulul cu card SD ce foloseste SPI trebuie urmatoarele conexiuni:

  • VCC-firul rosu
  • GND-firul negru
  • MISO-port 12 (fir mov)
  • MOSI-port 11 (fir portocaliu)
  • CS-port 10 (fir roz)
  • SCK - port 13 (fir gri)

Pentru sensozorul de disantant HC-SR04 am considerat utile urmatoarele conexiuni:

  • VCC - 5V
  • GND - GND
  • EchoPin - 8
  • TrigPin - 9

Pentru senzorul IR am realizat urmatoarele conexiuni:

  • GND - GND
  • VCC - 5V
  • OUT - pin 6

Pentru componentele ce necesita protocoalele de comunicatie I2C si SPI sunt utilizate porturile specifice ale Arduino Uno R3.

Pentru celelalte componente se pot utiliza oricare dintre porturile Arduino cu mentiunea ca trebuie facuta conectarea corespunzator in functie de tip: analogic/digital.

Software Design

Pentru dezvoltarea software a proiectului am utilizat ArduinoIDE 2.0.

Bibliotecile software third-party utilizate sunt:

  • SPI - wrappere pentru comunicatia folosind SPI
  • SD - biblioteca ce ofera functii de baza in file-systemul unui card SD
  • LiquidCrystal_I2C - driver pentru display-ul 1602 impreuna cu interfata I2C
  • DistanceSensor - biblioteca ce ajuta in interactiunea cu sensorul de proximitate SR04
  • IRremote - functii pentru ajutor in lucuru cu senzorul si telecomanda IR

Pentru inregistrarea temperaturii, datorita utilizarii unui thermistor si nu a unui senzor digital a fost necesara implementarea unei functii separate.

Pentru aceasta trebuie utilizata ecuatia Steinhart-Hart, a carei modelare este descrisa mai jos:

$$ \frac{1}{T} = A + B \ln(R) + C (\ln(R))^3 $$

Determinarea temperaturii se realizeaza folosind varianta simplificata: \[ \frac{1}{T} = \frac{1}{T_0} + B \left( \ln\left(\frac{R}{R_0}\right) \right) \]

În dezvoltarea proiectului au fost de asemenea utilizate și timere pentru o funcționare fară busy-waiting.

Rezultate Obţinute

Rezultatele obținute sunt prezentate în linkul de youtube de mai jos

Demo

Concluzii

Dezvoltarea de dispozitive și device-uri se dovedește a fi mult mai provocatoare față de dezvoltarea clasică software.

O mare provocare o consta autonomia dispozitivelor. In linkul de mai jos se regaseste o estimare a autonomiei folosind datasheet-uri si masuratori.

Estimare consum si autonomie

S-a considerat ca setarile userului sunt realizate rar (4 min pe zi). Marii consumatori sunt display-ul 1602, placuta Arduino Uno si modulul de card SD (depinzand in functie de incarcare si viteza de scriere).

Acest lucru este datorat complexității îmbinării hardware-ului cu software-ul. De asemenea o provocare mare este necesitatea asigurării unei autonomii, în cazul produselor alimentate din baterii.

Download

Jurnal

  • 20 Aprilie - achiziție piese
  • 22-26 Aprilie - confirmare finală proiect
  • 06-10 Mai - început asamblare și descoperit ca thermistor-ul e o solutie mai fiabila ca DHT11
  • 13-15 Mai - finalizat hardware și început software-ul
  • 15-22 Mai - finalizat software + testare
  • 22-27 Mai - încercare de înfrumusețare a prototipului

Bibliografie/Resurse

pm/prj2024/rrusu/george.raducanu1811.txt · Last modified: 2024/05/26 13:08 by george.raducanu1811
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