This shows you the differences between two versions of the page.
pm:prj2025:vstoica:marius.gheorghe0509 [2025/05/29 19:29] marius.gheorghe0509 [Software Design] |
pm:prj2025:vstoica:marius.gheorghe0509 [2025/05/30 00:00] (current) marius.gheorghe0509 [Hardware Design] |
||
---|---|---|---|
Line 95: | Line 95: | ||
| Modul senzor flacără IR | [[https://sigmanortec.ro/Senzor-flacara-4-pini-p136262597|Link]] | 1 | 5.95 | | | Modul senzor flacără IR | [[https://sigmanortec.ro/Senzor-flacara-4-pini-p136262597|Link]] | 1 | 5.95 | | ||
| Modul senzor IR barieră | [[https://www.optimusdigital.ro/ro/senzori-senzori-optici/171-senzor-fotoelectric-in-forma-de-u.html|Link]] | 1 | 8.49 | | | Modul senzor IR barieră | [[https://www.optimusdigital.ro/ro/senzori-senzori-optici/171-senzor-fotoelectric-in-forma-de-u.html|Link]] | 1 | 8.49 | | ||
- | | Modul senzor fotorezistor LDR | [[https://www.optimusdigital.ro/ro/componente-electronice-altele/1863-fotorezistor-tip-5528.html|Link]] | 1 | 1.49 | | + | | Modul senzor fotorezistor LDR | [[https://sigmanortec.ro/Senzor-lumina-fotorezistor-p125423559|Link]] | 1 | 3.20 | |
| Modul Bluetooth HC-05 | [[https://www.optimusdigital.ro/ro/wireless-bluetooth/153-modul-bluetooth-master-slave-hc-05-cu-adaptor.html|Link]] | 1 | 28.09 | | | Modul Bluetooth HC-05 | [[https://www.optimusdigital.ro/ro/wireless-bluetooth/153-modul-bluetooth-master-slave-hc-05-cu-adaptor.html|Link]] | 1 | 28.09 | | ||
| Servomotor SG90 | [[https://www.optimusdigital.ro/ro/motoare-servomotoare/2261-micro-servo-motor-sg90-180.html|Link]] | 3 | 6.00 | | | Servomotor SG90 | [[https://www.optimusdigital.ro/ro/motoare-servomotoare/2261-micro-servo-motor-sg90-180.html|Link]] | 3 | 6.00 | | ||
Line 105: | Line 105: | ||
| Modul Senzor umiditate sol | [[https://sigmanortec.ro/Senzor-umiditate-sol-higrometru-p125814620|Link]] | 1 | 4.01| | | Modul Senzor umiditate sol | [[https://sigmanortec.ro/Senzor-umiditate-sol-higrometru-p125814620|Link]] | 1 | 4.01| | ||
- | ^ **TOTAL** ^ **159.43** ^ | + | ^ **TOTAL** ^ **161.14** ^ |
**Electrical Diagram:** | **Electrical Diagram:** | ||
Line 171: | Line 171: | ||
Proiectul este funcțional și include următoarele componente software: | Proiectul este funcțional și include următoarele componente software: | ||
- | - Control acces pe bază de parolă Morse | + | *Control acces pe bază de parolă Morse |
- | - Afișare informații pe ecran LCD (I2C) | + | *Afișare informații pe ecran LCD (I2C) |
- | - Control servo-motoare (Timer1 și PWM manual) | + | *Control servo-motoare (Timer1 și PWM manual) |
- | - Control LED automat în funcție de sunet și lumină | + | *Control LED automat în funcție de sunet și lumină |
- | - Detectare: | + | Detectare: |
- | 1. Flacără (digital) | + | *Flacără (digital) |
- | 2. Lumină (fotorezistor digital) | + | *Lumină (fotorezistor digital) |
- | 3. Ploaie | + | *Ploaie |
- | 4. Umiditate sol | + | *Umiditate sol |
- | + | Interfață Bluetooth HC-05 prin UART + control cu aplicație MIT App Inventor | |
- | - Interfață Bluetooth HC-05 prin UART + control cu aplicație MIT App Inventor | + | |
** Utilizarea funcționalităților din laborator:** | ** Utilizarea funcționalităților din laborator:** | ||
Line 204: | Line 203: | ||
**Calibrarea senzorilor:** | **Calibrarea senzorilor:** | ||
- | Fotorezistor (lumină): prag = 500 (empiric în cameră întunecată/luminată) | + | *Fotorezistor (lumină): prag = 500 (empiric în cameră întunecată/luminată) |
- | Umiditate sol: prag = 1000 (umiditate maximă simulată) | + | *Umiditate sol: prag = 1000 (umiditate maximă simulată) |
- | Pluviometru (ploaie): prag = 100 (test cu apă picurată) | + | *Pluviometru (ploaie): prag = 100 (test cu apă picurată) |
- | Calibrarea s-a făcut prin afișarea valorilor ADC și stabilirea pragurilor. | + | *Calibrarea s-a făcut prin afișarea valorilor ADC și stabilirea pragurilor. |
**Motivația alegerii bibliotecilor:** | **Motivația alegerii bibliotecilor:** | ||
- | Am evitat biblioteci externe și am folosit direct registre AVR pentru: | + | *Am evitat biblioteci externe și am folosit direct registre AVR pentru: |
- | Control precis | + | *Control precis |
- | Reducerea memoriei consumate | + | *Reducerea memoriei consumate |
- | Învățarea arhitecturii hardware | + | *Învățarea arhitecturii hardware |
- | Totuși, folosim Arduino.h pentru compatibilitate cu PlatformIO și pentru String. | + | *Totuși, folosesc Arduino.h pentru compatibilitate cu PlatformIO și pentru String. |
**Optimizări:** | **Optimizări:** | ||
- | Separare cod în fișiere pentru claritate și mentenanță | + | *Separare cod în fișiere pentru claritate și mentenanță |
- | Eliminare biblioteci externe | + | *Eliminare biblioteci externe |
- | Utilizarea Timer1 direct în loc de Servo.h | + | *Utilizarea Timer1 direct în loc de Servo.h |
- | Folosirea String doar când e necesar, evitând alocări dinamice costisitoare | + | *Folosirea String doar când e necesar, evitând alocări dinamice costisitoare |
**Detalii tehnice firmware:** | **Detalii tehnice firmware:** | ||
- | Mediu dezvoltare: PlatformIO + VSCode | + | *Mediu dezvoltare: PlatformIO + VSCode |
- | Compilator: avr-g++ | + | *Compilator: avr-g++ |
- | Board: Arduino UNO (ATmega328P) | + | *Board: Arduino UNO (ATmega328P) |
- | Frecvență: 16 MHz (F_CPU) | + | *Frecvență: 16 MHz (F_CPU) |
- | Interfață Bluetooth: UART (registri UBRR0, UCSR0X) | + | *Interfață Bluetooth: UART (registri UBRR0, UCSR0X) |
- | LCD: I2C pe TWI (registri TWCR, TWDR, TWBR) | + | *LCD: I2C pe TWI (registri TWCR, TWDR, TWBR) |
- | Senzori analogici: ADC cu prescaler 64 | + | *Senzori analogici: ADC cu prescaler 64 |
**Funcții și module implementate:** | **Funcții și module implementate:** | ||
- | ParolaMorse() – citire Morse din butoane | + | *ParolaMorse() – citire Morse din butoane |
- | servo_set_angle_timer1() – PWM pe Timer1 | + | *servo_set_angle_timer1() – PWM pe Timer1 |
- | pulse_servo_d11() – PWM manual | + | *pulse_servo_d11() – PWM manual |
- | generate_tone() – buzzer | + | *generate_tone() – buzzer |
- | lcd_write_raw() – trimitere comenzi I2C | + | *lcd_write_raw() – trimitere comenzi I2C |
- | read_adc() – citire valori analogice | + | *read_adc() – citire valori analogice |
- | control_bluetooth() – interpretare comenzi BT | + | *control_bluetooth() – interpretare comenzi BT |
- | control_led() – logica sunet/lumină | + | *control_led() – logica sunet/lumină |
- | link github:https://github.com/razvang05/PM_project | + | link github:https://github.com/razvang05/Smart_Home |
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | Link youtube: |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | {{:pm:prj2025:vstoica:1000203288.jpg?400|}} |
+ | https://youtube.com/shorts/M6zA6UMoJTA?feature=share | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | + | link github: https://github.com/razvang05/Smart_Home |
- | 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**. | + | |
- | </note> | + | |
===== Jurnal ===== | ===== Jurnal ===== | ||
Line 296: | Line 291: | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <note> | + | *Arduino UNO - https://docs.arduino.cc/resources/datasheets/A000066-datasheet.pdf |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | *LCD 1602/I2C - https://www.waveshare.com/w/upload/4/4d/LCD1602_I2C_Module.pdf |
- | </note> | + | *Modul Bluetoot hHC-05-https://components101.com/sites/default/files/component_datasheet/HC-05%20Datasheet.pdf |
<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> | ||