This shows you the differences between two versions of the page.
|
pm:prj2025:vstoica:marius.gheorghe0509 [2025/05/29 17:50] marius.gheorghe0509 [Hardware 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 125: | Line 125: | ||
| ^ Componentă ^ Pin Arduino ^ Interfață ^ Funcție principală ^ | ^ Componentă ^ Pin Arduino ^ Interfață ^ Funcție principală ^ | ||
| | Senzor fotoelectric | A0 | Analog (ADC) | Detectează obiecte care întrerup un fascicul (garaj) | | | Senzor fotoelectric | A0 | Analog (ADC) | Detectează obiecte care întrerup un fascicul (garaj) | | ||
| - | | Senzor fotorezistiv (LDR) | A1 | Analog (ADC) | Măsoară lumina pentru activarea LED-ului alb | | + | | Senzor fotorezistiv (LDR) | D6 | Digital | Măsoară lumina pentru activarea LED-ului alb | |
| | Senzor nivel apă | A2 | Analog (ADC) | Detectează apă pentru închiderea automată a ferestrei | | | Senzor nivel apă | A2 | Analog (ADC) | Detectează apă pentru închiderea automată a ferestrei | | ||
| | Senzor umiditate sol | A3 | Analog (ADC) | Măsoară umiditatea pentru irigare automată | | | Senzor umiditate sol | A3 | Analog (ADC) | Măsoară umiditatea pentru irigare automată | | ||
| - | | LCD1602 I2C | SDA, SCL | I2C | Afișează starea senzorilor / mesaje | | + | | LCD1602 I2C | SDA, SCL | I2C | Afișează parola pentru acces in casa | |
| - | | Bluetooth HC-05 | RX, TX| UART | Comunicare serială cu telefonul mobil | | + | | Bluetooth HC-05 | RX, TX, D13| UART | Comunicare serială cu telefonul mobil | |
| | Senzor sunet | D2 | Digital | Detectează zgomote sau bătăi | | | Senzor sunet | D2 | Digital | Detectează zgomote sau bătăi | | ||
| | Buzzer | D3 | Digital | Emite avertizări sonore | | | Buzzer | D3 | Digital | Emite avertizări sonore | | ||
| - | | Buton roșu | D4 | Digital | Control manual pentru cod de acces | | + | | Buton roșu | D5 | Digital | Control manual pentru cod de acces | |
| - | | Buton verde | D5 | Digital | Confirmare acțiuni | | + | | Buton verde | D4 | Digital | Confirmare acțiuni | |
| - | | Ventilator (motor DC) | D6 | PWM | Control prin tranzistor NPN, în funcție de temperatură | | + | |
| | Senzor flacără IR | D8 | Digital | Detectează prezența flăcărilor | | | Senzor flacără IR | D8 | Digital | Detectează prezența flăcărilor | | ||
| | Servomotor ușă | D9 | PWM | Deschide/închide automat ușa | | | Servomotor ușă | D9 | PWM | Deschide/închide automat ușa | | ||
| | Servomotor fereastră | D10 | PWM | Închide geamul dacă senzorul detectează ploaie | | | Servomotor fereastră | D10 | PWM | Închide geamul dacă senzorul detectează ploaie | | ||
| - | | Servomotor poartă | D11 | PWM | Controlează deschiderea porții sau barierei | | + | | Servomotor garaj | D11 | PWM | Controlează deschiderea barierei | |
| | LED alb | D12 | Digital | Aprins automat în întuneric | | | LED alb | D12 | Digital | Aprins automat în întuneric | | ||
| - | | LED roșu | D13 | Digital | Semnalizează stare critică sau alertă | | + | | LED roșu | D7 | Digital | Semnalizează stare critică sau alertă | |
| Line 170: | 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 202: | 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> | ||