This shows you the differences between two versions of the page.
pm:prj2025:vstoica:marius.gheorghe0509 [2025/05/29 17:53] marius.gheorghe0509 [Pini utilizați și justificare] |
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 169: | Line 169: | ||
- | <note tip> | + | Proiectul este funcțional și include următoarele componente software: |
- | Descrierea codului aplicaţiei (firmware): | + | |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | *Control acces pe bază de parolă Morse |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | *Afișare informații pe ecran LCD (I2C) |
- | * (etapa 3) surse şi funcţii implementate | + | |
- | </note> | + | *Control servo-motoare (Timer1 și PWM manual) |
- | link github:https://github.com/razvang05/PM_project | + | |
+ | *Control LED automat în funcție de sunet și lumină | ||
+ | |||
+ | Detectare: | ||
+ | |||
+ | *Flacără (digital) | ||
+ | |||
+ | *Lumină (fotorezistor digital) | ||
+ | |||
+ | *Ploaie | ||
+ | |||
+ | *Umiditate sol | ||
+ | |||
+ | |||
+ | Interfață Bluetooth HC-05 prin UART + control cu aplicație MIT App Inventor | ||
+ | |||
+ | ** Utilizarea funcționalităților din laborator:** | ||
+ | |||
+ | | Funcționalitate | Modul | Observație | | ||
+ | | PWM și Timer | Servo (Timer1) | Servo deschidere ușă/geam/garaj | | ||
+ | | ADC | `read_adc()` | Senzori analogici (umiditate, ploaie, lumină) | | ||
+ | | UART | bluetooth.cpp | Comunicare HC-05 | | ||
+ | | GPIO direct | Parola, LED | Control LED, senzori, butoane | | ||
+ | | LCD I2C (soft) | lcd.cpp | Comunicare TWI prin registre | | ||
+ | |||
+ | **Calibrarea senzorilor:** | ||
+ | |||
+ | *Fotorezistor (lumină): prag = 500 (empiric în cameră întunecată/luminată) | ||
+ | |||
+ | *Umiditate sol: prag = 1000 (umiditate maximă simulată) | ||
+ | |||
+ | *Pluviometru (ploaie): prag = 100 (test cu apă picurată) | ||
+ | |||
+ | *Calibrarea s-a făcut prin afișarea valorilor ADC și stabilirea pragurilor. | ||
+ | |||
+ | **Motivația alegerii bibliotecilor:** | ||
+ | |||
+ | *Am evitat biblioteci externe și am folosit direct registre AVR pentru: | ||
+ | |||
+ | *Control precis | ||
+ | |||
+ | *Reducerea memoriei consumate | ||
+ | |||
+ | *Învățarea arhitecturii hardware | ||
+ | |||
+ | *Totuși, folosesc Arduino.h pentru compatibilitate cu PlatformIO și pentru String. | ||
+ | |||
+ | **Optimizări:** | ||
+ | |||
+ | *Separare cod în fișiere pentru claritate și mentenanță | ||
+ | |||
+ | *Eliminare biblioteci externe | ||
+ | |||
+ | *Utilizarea Timer1 direct în loc de Servo.h | ||
+ | |||
+ | *Folosirea String doar când e necesar, evitând alocări dinamice costisitoare | ||
+ | |||
+ | **Detalii tehnice firmware:** | ||
+ | |||
+ | *Mediu dezvoltare: PlatformIO + VSCode | ||
+ | |||
+ | *Compilator: avr-g++ | ||
+ | |||
+ | *Board: Arduino UNO (ATmega328P) | ||
+ | |||
+ | *Frecvență: 16 MHz (F_CPU) | ||
+ | |||
+ | *Interfață Bluetooth: UART (registri UBRR0, UCSR0X) | ||
+ | |||
+ | *LCD: I2C pe TWI (registri TWCR, TWDR, TWBR) | ||
+ | |||
+ | *Senzori analogici: ADC cu prescaler 64 | ||
+ | |||
+ | **Funcții și module implementate:** | ||
+ | |||
+ | *ParolaMorse() – citire Morse din butoane | ||
+ | |||
+ | *servo_set_angle_timer1() – PWM pe Timer1 | ||
+ | |||
+ | *pulse_servo_d11() – PWM manual | ||
+ | |||
+ | *generate_tone() – buzzer | ||
+ | |||
+ | *lcd_write_raw() – trimitere comenzi I2C | ||
+ | |||
+ | *read_adc() – citire valori analogice | ||
+ | |||
+ | *control_bluetooth() – interpretare comenzi BT | ||
+ | |||
+ | *control_led() – logica sunet/lumină | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | 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 201: | 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> | ||