This is an old revision of the document!


Smart ambient climate station

Fodor Mihnea-Stefan 331CA

Introduction

The smart ambient station automatically monitors temperature and adjusts a cooling fan's speed based on predefined thermal thresholds. It also displays the current real-time clock and allows full manual control via an infrared remote.

The purpose of the project is to maintain a comfortable local climate through automated cooling, while providing visual feedback and auditory alerts. It includes a critical safety mechanism that immediately halts all operations if the device is tilted or knocked over.

The starting concept was a standard thermostat, which evolved into a robust embedded system featuring a state machine, hardware-level safety interrupts and custom communication protocol implementations without relying on heavy third-party Arduino libraries.

For the user it serves as a practical desktop cooling and timekeeping gadget. It offers a highly affordable alternative to commercial cooling devices, while providing the flexibility of full manual control to suit personal comfort.

General Description

The ATmega328P runs a continuous state machine. In Auto Mode, it reads the ADC, calculates the temperature using the Steinhart-Hart equation and adjusts the PWM output to the fan. In Manual Mode, the IR receiver triggers an interrupt that decodes the NEC signal, allowing the user to override the fan speed, toggle RGB disco mode or trigger alarm. The Tilt Sensor has the highest priority: if triggered, it overrides all states, cuts power to the fan, and displays an error (—-) on the clock display.

Hardware Design

Bill of materials:

  • ATmega328P
  • 10k NTC thermistor
  • DS3231 mini RTC module
  • TM1637 4-digit display
  • VS1838B infrared receiver & IR remote
  • SW-520D tilt sensor
  • sunon maglev 5V DC fan
  • buzzer
  • RGB LED
  • NPN transistor 2N2222
  • resistors
  • wires

Software Design

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
  • librării şi surse 3rd-party (e.g. Procyon AVRlib)
  • algoritmi şi structuri pe care plănuiţi să le implementaţi
  • (etapa 3) surse şi funcţii implementate

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2026/bianca.popa1106/mihnea_stefan.fodor.1778080591.txt.gz · Last modified: 2026/05/06 18:16 by mihnea_stefan.fodor
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