This shows you the differences between two versions of the page.
pm:prj2023:apredescu:termostat [2023/05/21 00:06] stefania.vintilescu [Introduction] |
pm:prj2023:apredescu:termostat [2023/05/29 23:58] (current) stefania.vintilescu [Thermostat] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Thermostat ====== | ====== Thermostat ====== | ||
- | <note tip>**Nume:** Vintilescu Stefania-Madalina \\ FILS</note> | + | <note tip>**Name:** Vintilescu Stefania-Madalina \\ FILS</note> |
===== Introduction ===== | ===== Introduction ===== | ||
Line 13: | Line 13: | ||
* The potentiometer is now utilized to adjust the brightness of the LCD, and the desired temperature value is changed using push buttons. A green led will also light up when the thermostat is in **cooling mode**. Otherwise, the red led will light up while in **heating mode**. This feature has been implemented so that the user can observe the current state of the thermostat. | * The potentiometer is now utilized to adjust the brightness of the LCD, and the desired temperature value is changed using push buttons. A green led will also light up when the thermostat is in **cooling mode**. Otherwise, the red led will light up while in **heating mode**. This feature has been implemented so that the user can observe the current state of the thermostat. | ||
</note> | </note> | ||
- | ===== Descriere generală ===== | + | ===== General description ===== |
{{ :pm:prj2023:apredescu:schema_svnt.png?400 |}} | {{ :pm:prj2023:apredescu:schema_svnt.png?400 |}} | ||
Line 23: | Line 23: | ||
<note important> | <note important> | ||
=====UPDATED SCHEME===== | =====UPDATED SCHEME===== | ||
- | {{ :pm:prj2023:apredescu:final_scheme_svnt.png?400 |}} | + | {{ :pm:prj2023:apredescu:final_scheme_stefania_vintilescu.png?300 |}} |
</note> | </note> | ||
Line 64: | Line 64: | ||
<note tip> | <note tip> | ||
- | Descrierea codului aplicaţiei (firmware): | + | Description of my code (firmware): |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | * I used the Arduino app to develop my code |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | * This code utilizes the following libraries: |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | - Wire.h: This library provides functions for I2C communication, which is used to communicate with the BME280 sensor and for the I2C LCD. |
- | * (etapa 3) surse şi funcţii implementate | + | - LiquidCrystal_I2C.h: This library allows easy control of I2C-based LCD displays. It is used to initialize and interact with the LCD display. |
+ | - SparkFunBME280.h: This library provides functions for interacting with the BME280 sensor, which is used to measure the room temperature. | ||
+ | |||
+ | * The code starts by including the necessary libraries and defining the pin connections for the fan, heating element, buttons, and LCD display. It also initializes the target temperature variable. | ||
+ | * In the setup() function, the LCD display is initialized and the I2C communication is started. The BME280 sensor's I2C address is set, and if the sensor fails to connect, an error message is printed. | ||
+ | * The loop() function is where the main functionality of the code resides. It starts by displaying the current room temperature from the BME280 sensor on the LCD display. It then displays the target temperature on the second line of the display. | ||
+ | * The target temperature can be adjusted using the blue and red buttons. If the blue button is pressed, the target temperature is decreased by 1 degree, and if the red button is pressed, the target temperature is increased by 1 degree. There is a delay after each button press for debounce. | ||
+ | * After adjusting the target temperature, the code compares the target temperature with the current room temperature. If the target temperature is higher, it turns on the heating element and turns off the fan. If the target temperature is lower or equal, it turns off the heating element and turns on the fan. | ||
+ | * There is a delay of 1 second before the loop repeats. | ||
</note> | </note> | ||
- | ===== Rezultate Obţinute ===== | + | ===== Results ===== |
+ | {{ :pm:prj2023:apredescu:vintilescu_stefania_final_results.jpg?400 |}} | ||
<note tip> | <note tip> | ||
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | Here is a demonstration video with the results obtained after this project. |
+ | [[https://youtu.be/h-x47DTjOQE]] | ||
</note> | </note> | ||
- | ===== Concluzii ===== | + | ===== Conclusions ===== |
+ | Building and working on this temperature control project with Arduino was an exciting and fulfilling experience. It allowed me to learn and apply electronics and programming skills while creating a practical solution. Overcoming challenges and completing the project brought a sense of accomplishment and inspiration for further exploration and future projects. The benefits include creating a comfortable environment and showcasing the power of open-source platforms like Arduino. | ||
===== Download ===== | ===== Download ===== | ||
<note warning> | <note warning> | ||
- | 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ă ;-). | + | Here are all my files regarding this project: |
- | + | {{:pm:prj2023:apredescu:vintilescu_stefania-madalina_fils_1221a_project_materials.zip|}} | |
- | 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**. | + | |
</note> | </note> | ||
- | ===== Jurnal ===== | + | ===== Journal ===== |
<note tip> | <note tip> | ||
Line 96: | Line 104: | ||
* //10.05 -> making the second functional prototype of the software + hardware project (including new functionalities)// | * //10.05 -> making the second functional prototype of the software + hardware project (including new functionalities)// | ||
* //11.05 -> solding the pins for the BMP280 sensor at the lab// | * //11.05 -> solding the pins for the BMP280 sensor at the lab// | ||
+ | * //21.05 -> finishing the hardware design in Fritzing app// | ||
+ | * //28.05 -> adding the code information and making the last adjustments to the page// | ||
</note> | </note> | ||
- | ===== Bibliografie/Resurse ===== | + | ===== Bibliography/ Resources ===== |
<note> | <note> | ||
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | Hardware+Software Resources |
+ | * https://lastminuteengineers.com/i2c-lcd-arduino-tutorial/ -> how to connect and I2C LCD | ||
+ | * https://www.jamestharpe.com/arduino-thermostat/#:~:text=This%20Arduino%20Uno%20based%20thermostat,the%20temperature%20is%20too%20high. ->inspirarion/starting idea | ||
+ | * https://www.youtube.com/watch?v=xA-vExF6ChI&t=283s -> BMP280 sensor pins + inspiration code | ||
+ | * https://forum.fritzing.org/ -> from where I imported some components for my hardware design(for Fritzing app) | ||
</note> | </note> | ||
- | |||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||