This shows you the differences between two versions of the page.
|
pm:prj2026:atoader:george.simion2005 [2026/05/18 14:42] 127.0.0.1 external edit |
pm:prj2026:atoader:george.simion2005 [2026/05/22 15:11] (current) george.simion2005 |
||
|---|---|---|---|
| Line 3: | Line 3: | ||
| ===== Introducere ===== | ===== Introducere ===== | ||
| - | Proiectul Flipper One reprezinta o **mini-replica a dispozitivului Flipper Zero**, construita in jurul unei placi de dezvoltare cu microcontroller. Dispozitivul este capabil sa **captureze, stocheze si retransmita semnale wireless** provenite de la diverse telecomenzi (porti de garaj, prize wireless, sonerii fara fir, etc.), oferind utilizatorului un instrument portabil pentru analiza si interactiunea cu dispozitivele wireless din jur. | + | Proiectul Flipper One reprezintă o **mini-replică a dispozitivului Flipper Zero**, construită în jurul unei plăci Arduino UNO cu microcontroller ATmega328P. Dispozitivul este gândit ca un instrument portabil de testare și analiză pentru comunicații wireless simple, module RFID/NFC și rețele WiFi din apropiere. |
| - | Ideea a pornit de la dorinta de a intelege mai bine cum functioneaza comunicatia wireless si dispozitivele de tip "multi-tool" pentru hackeri/pentesteri, dar la o scara redusa si la un cost accesibil. Spre deosebire de un Flipper Zero comercial, proiectul meu isi propune sa demonstreze functionalitatile de baza folosind componente standard. | + | Scopul proiectului este să demonstreze, la scară redusă și cu componente accesibile, funcționalități întâlnite în dispozitive de tip multi-tool: captură și retransmitere de semnale RF, citire RFID, scanare WiFi, salvare pe card MicroSD și interacțiune printr-un ecran OLED. |
| - | Functionalitati principale: | + | Spre deosebire de un dispozitiv comercial, Flipper One este realizat pe breadboard, folosind module separate și conexiuni explicite, ceea ce îl face util pentru înțelegerea modului în care comunică între ele componentele hardware. |
| - | * captura semnalelor wireless de la telecomenzi 433 MHz | + | |
| - | * stocarea acestora in memorie (volatila sau pe card SD) | + | |
| - | * retransmiterea semnalelor capturate | + | |
| - | * navigare printr-un meniu afisat pe ecran, controlat cu butoane | + | |
| - | * indicarea starii curente a dispozitivului (idle, recording, replay) printr-un LED RGB | + | |
| - | Optional, sistemul include si un **modul RFID** pentru citirea si emularea cardurilor, un **modul ESP-01** pentru scanarea retelelor WiFi din jur, si un **cititor de card SD** pentru stocarea persistenta a semnalelor capturate. | + | Funcționalități principale: |
| + | * capturarea semnalelor RF 433 MHz de la telecomenzi simple | ||
| + | * retransmiterea semnalelor RF capturate | ||
| + | * citirea UID-urilor de pe carduri/tag-uri RFID/NFC folosind PN532 | ||
| + | * salvarea semnalelor RF și a UID-urilor RFID pe card MicroSD | ||
| + | * scanarea rețelelor WiFi din jur folosind ESP-01 / ESP8266 | ||
| + | * afișarea stării sistemului pe ecran OLED | ||
| + | * control prin 4 butoane conectate prin expander I2C PCF8574 | ||
| + | * feedback vizual prin LED RGB | ||
| - | **Laboratoare folosite**: GPIO (Lab 0), Intreruperi (Lab 2), Timere/PWM (Lab 3), SPI (Lab 5), plus comunicatie I2C si UART. | + | În stadiul actual, partea RF, RFID, OLED, butoane, LED RGB, ESP și MicroSD este funcțională la nivel de testare. Pentru modulul ESP-01, capturarea/listarea rețelelor WiFi din jur funcționează prin comenzi AT. |
| + | |||
| + | Work in progress: | ||
| + | * adăugarea unei analize mai avansate pentru rețelele WiFi detectate, de exemplu afișarea unui grafic simplu cu puterea semnalului sau distribuția pe canale; | ||
| + | * adăugarea posibilității de conectare la o rețea WiFi cunoscută. | ||
| + | |||
| + | **Laboratoare folosite**: GPIO (Lab 0), Întreruperi (Lab 2), Timere/PWM (Lab 3), SPI (Lab 5), plus comunicatie I2C și UART software. | ||
| ===== Descriere generală ===== | ===== Descriere generală ===== | ||
| - | Sistemul este organizat in jurul unei plăci Arduino UNO (ATmega328P), care coordoneaza toate celelalte module. Interactiunea cu utilizatorul se face printr-un **ecran OLED** pe care se afiseaza meniul si informatiile despre semnalele capturate, impreuna cu **butoane** pentru navigare si un **LED RGB** care indica starea curenta a dispozitivului. | + | Sistemul este organizat în jurul unei plăci **Arduino UNO R3 / ATmega328P**, care coordonează toate modulele externe. Interacțiunea cu utilizatorul se face printr-un **ecran OLED SPI**, un set de **4 butoane** conectate prin PCF8574 și un **LED RGB** folosit pentru feedback vizual. |
| + | |||
| + | Pentru economisirea pinilor Arduino, butoanele sunt conectate la un **expander I2C PCF8574**, astfel încât toate cele 4 intrări de control folosesc doar magistrala I2C formată din A4/SDA și A5/SCL. | ||
| + | |||
| + | Partea RF este realizată cu un receptor și un emițător de **433 MHz**. Receptorul este conectat la pinul D2, care permite folosirea întreruperii externe INT0 pentru măsurarea precisă a tranzițiilor semnalului. Semnalul capturat este memorat ca o listă de durate ale pulsurilor, apoi poate fi retransmis prin emițătorul conectat la D8. | ||
| + | |||
| + | Modulul **PN532 RFID/NFC** este conectat pe I2C, împreună cu PCF8574. Această variantă a fost aleasă pentru stabilitate, deoarece separă complet RFID-ul de magistrala SPI folosită de OLED și MicroSD. PN532 este folosit pentru citirea UID-urilor cardurilor/tag-urilor compatibile ISO14443A. | ||
| - | Pentru ca pinii disponibili pe Arduino UNO nu ar fi fost suficienti pentru toate modulele, butoanele de navigare au fost mutate pe un **expander I2C PCF8574**, eliberand astfel 4 pini digitali pentru ESP-01 si modulele SPI. | + | Modulul **ESP-01 / ESP8266** este folosit pentru scanarea rețelelor WiFi din jur. Acesta comunică cu Arduino prin SoftwareSerial: ESP transmite către Arduino pe D4, iar Arduino transmite către ESP pe D7. ESP-ul este alimentat separat la 3.3V prin AMS1117. |
| - | Partea de captura si retransmitere a semnalelor wireless este realizata cu un **receptor si un emitator de 433 MHz**. La capturare, microcontrollerul foloseste o intrerupere externa pe pinul de date al receptorului si masoara duratele pulsurilor. La retransmitere, pulsurile salvate sunt regenerate prin emitator folosind un timer hardware. | + | Modulul **MicroSD** este conectat pe magistrala SPI și este folosit pentru stocare persistentă. În implementarea curentă, semnalele RF capturate și UID-urile RFID citite pot fi salvate pe card, pentru a putea fi păstrate după resetarea dispozitivului. |
| - | Logica de functionare: | + | Logica generală de funcționare: |
| - | - **Idle State**: LED-ul RGB este albastru. Sistemul afiseaza meniul si asteapta input de la utilizator prin butoane. | + | - **Idle State**: sistemul așteaptă apăsări de buton și afișează starea curentă pe OLED. |
| - | - **Recording State**: LED-ul devine rosu. Receptorul wireless asculta in mod continuu, iar la detectarea unui semnal se masoara si se salveaza duratele pulsurilor. | + | - **RF Capture**: receptorul RF ascultă semnalul și salvează duratele pulsurilor detectate. |
| - | - **Replay State**: LED-ul devine verde. Semnalul salvat este reconstruit pe pinul emitatorului folosind un timer hardware. | + | - **RF Replay**: semnalul RF salvat este retransmis prin emițătorul de 433 MHz. |
| - | - **Menu Navigation**: Butoanele permit navigarea prin meniu (selectarea modului, vizualizarea semnalelor capturate, optiuni avansate cum ar fi RFID, WiFi scan). | + | - **RFID Scan**: PN532 citește UID-ul unui card/tag RFID și îl afișează pe OLED/Serial. |
| + | - **WiFi Scan**: ESP-01 scanează rețelele WiFi disponibile și transmite lista către Arduino. | ||
| + | - **MicroSD Save**: datele RF și RFID pot fi salvate pe cardul MicroSD. | ||
| + | - **LED Feedback**: LED-ul RGB indică diferite stări sau moduri de test. | ||
| {{:pm:prj2026:atoader:flipperone_blockdiagram_george.simion2005.png?700|Schema bloc Flipper One}} | {{:pm:prj2026:atoader:flipperone_blockdiagram_george.simion2005.png?700|Schema bloc Flipper One}} | ||
| Line 38: | Line 56: | ||
| ==== Stadiul actual al implementării hardware ==== | ==== Stadiul actual al implementării hardware ==== | ||
| - | În stadiul actual, proiectul este realizat pe un breadboard **SYB-120**, având ca unitate centrală un **Arduino UNO R3 / ATmega328P**. Pe montaj sunt conectate modulele principale pentru interacțiune și comunicație: display-ul OLED SPI, receptorul și emițătorul RF 433 MHz, LED-ul RGB, expanderul de pini PCF8574 împreună cu cele 4 butoane, modulul RFID/NFC PN532 și modulul ESP-01 alimentat separat la 3.3V prin AMS1117 și protejat pe linia RX prin convertor logic. | + | În stadiul actual, proiectul este realizat pe un breadboard **SYB-120**, având ca unitate centrală un **Arduino UNO R3 / ATmega328P**. Pe montaj sunt conectate modulele principale pentru interacțiune și comunicație: display OLED SPI, receptor RF 433 MHz, emițător RF 433 MHz, LED RGB, expander PCF8574 cu 4 butoane, modul PN532 RFID/NFC, modul ESP-01 și cititor MicroSD. |
| - | Partea de alimentare este organizată pe magistrale de breadboard: 5V, GND și 3.3V. Toate modulele au masă comună cu Arduino. Modulul MicroSD este inclus în schema finală și are liniile SPI și pinul CS planificate, dar în montajul curent alimentarea sa nu este încă finalizată: **VCC pe 4G și GND pe 3G sunt marcate ca fire de tras**. | + | Partea de alimentare este organizată pe magistrale de breadboard: |
| + | * **5V** pentru modulele compatibile cu 5V: OLED, PN532, PCF8574, module RF, MicroSD; | ||
| + | * **3.3V** pentru ESP-01, generat cu AMS1117; | ||
| + | * **GND comun** pentru toate modulele. | ||
| + | |||
| + | Modulul PN532 este conectat pe **I2C**, nu pe SPI, pentru a evita conflictele cu OLED-ul și MicroSD-ul. Astfel, magistrala SPI este folosită de OLED și MicroSD, iar magistrala I2C este folosită de PCF8574 și PN532. | ||
| + | |||
| + | Modulul ESP-01 este conectat prin UART software. În montajul curent, Arduino transmite direct către RX-ul ESP-ului pe D7, iar ESP transmite către Arduino pe D4. ESP-ul rămâne alimentat exclusiv la 3.3V prin AMS1117. | ||
| + | |||
| + | MicroSD-ul este inclus funcțional în proiect și este folosit pentru salvarea datelor capturate: semnale RF și UID-uri RFID. | ||
| {{:pm:prj2026:atoader:fliiper1_real.jpeg?900|Schema bloc hardware reală}} | {{:pm:prj2026:atoader:fliiper1_real.jpeg?900|Schema bloc hardware reală}} | ||
| Line 51: | Line 78: | ||
| ^ Componentă ^ Rol în proiect ^ Interfață / observații ^ | ^ Componentă ^ Rol în proiect ^ Interfață / observații ^ | ||
| - | | **Arduino UNO R3 / ATmega328P** | Microcontroller principal; rulează logica de meniu, captura și retransmiterea semnalelor | GPIO, PWM, SPI, I2C, UART software | | + | | **Arduino UNO R3 / ATmega328P** | Microcontroller principal; coordonează modulele și rulează logica de test/captură | GPIO, PWM, SPI, I2C, UART software | |
| - | | **Breadboard SYB-120** | Suport de prototipare și distribuție pentru 5V, 3.3V, GND și magistralele comune | Conexiuni pe rânduri/coloane | | + | | **Breadboard SYB-120** | Suport de prototipare și distribuție pentru 5V, 3.3V și GND | Conexiuni pe rânduri/coloane | |
| | **OLED 1.3'' 128x64 SPI** | Afișează meniul, starea sistemului și datele citite/capturate | SPI hardware + pini separați pentru RES, DC, CS | | | **OLED 1.3'' 128x64 SPI** | Afișează meniul, starea sistemului și datele citite/capturate | SPI hardware + pini separați pentru RES, DC, CS | | ||
| - | | **Receptor RF 433 MHz** | Citește semnale wireless de la telecomenzi | DATA pe D2, folosit ca pin de întrerupere INT0 | | + | | **Receptor RF 433 MHz** | Primește semnale wireless de la telecomenzi simple | DATA pe D2, folosit ca pin de întrerupere INT0 | |
| - | | **Emițător RF 433 MHz** | Retransmite semnalele RF salvate | DATA pe D8, potrivit pentru generarea de pulsuri controlate | | + | | **Emițător RF 433 MHz** | Retransmite semnalele RF capturate | DATA pe D8 | |
| - | | **LED RGB KY-016** | Indicator vizual pentru starea dispozitivului: idle / record / replay | PWM pe D3, D5, D6 | | + | | **LED RGB KY-016** | Indicator vizual pentru starea dispozitivului | PWM pe D3, D5, D6 | |
| | **PCF8574** | Extinde numărul de pini disponibili pentru butoane | I2C pe A4/A5 | | | **PCF8574** | Extinde numărul de pini disponibili pentru butoane | I2C pe A4/A5 | | ||
| - | | **4 butoane tactile** | Navigare prin meniu: UP, DOWN, OK, BACK | Intrări P0-P3 pe PCF8574, conectate la GND la apăsare | | + | | **4 butoane tactile** | Controlul funcțiilor principale: RF, RFID, LED, ESP | Intrări P0-P3 pe PCF8574 | |
| - | | **PN532 RFID/NFC** | Citire carduri/tag-uri RFID/NFC | SPI hardware, CS separat pe A2 | | + | | **PN532 RFID/NFC** | Citește UID-uri de carduri/tag-uri RFID/NFC | I2C pe A4/A5, IRQ pe A2, RESET pe A1 | |
| - | | **ESP-01 / ESP8266** | Scanare WiFi / funcții opționale de comunicație | UART software: D4 primește TX ESP, D7 transmite către RX ESP prin convertor logic | | + | | **ESP-01 / ESP8266** | Scanare/captură listă rețele WiFi din apropiere | UART software: D4 primește TX ESP, D7 transmite către RX ESP | |
| | **AMS1117 3.3V** | Alimentare stabilă pentru ESP-01 | VIN din 5V, VOUT pe magistrala de 3.3V | | | **AMS1117 3.3V** | Alimentare stabilă pentru ESP-01 | VIN din 5V, VOUT pe magistrala de 3.3V | | ||
| - | | **Convertor logic 5V ↔ 3.3V** | Protejează intrarea RX a ESP-01 de nivelul logic de 5V al Arduino | D7 → HV1, LV1 → RX ESP | | + | | **Cititor MicroSD** | Stocare persistentă pentru RF și RFID | SPI hardware, CS pe A3 | |
| - | | **Cititor MicroSD** | Stocare persistentă pentru semnale capturate | SPI hardware, CS pe A3; alimentare de finalizat | | + | |
| ==== Maparea pinilor Arduino și justificare ==== | ==== Maparea pinilor Arduino și justificare ==== | ||
| ^ Pin Arduino ^ Conectat la ^ De ce este folosit aici ^ | ^ Pin Arduino ^ Conectat la ^ De ce este folosit aici ^ | ||
| - | | **3.3V** | Alimentare auxiliară, după caz; ESP este alimentat din AMS1117 | ESP-01 are nevoie de 3.3V stabil, nu direct din pinul 3.3V Arduino | | + | | **3.3V** | Neutilizat ca sursă principală pentru ESP | ESP-ul este alimentat din AMS1117 pentru curent mai stabil | |
| - | | **5V** | Magistrala de 5V pe breadboard: rând 2F și rând 59 | Alimentează OLED, PN532, RF 433 MHz, PCF8574 și intrarea AMS1117 | | + | | **5V** | Magistrala de 5V: OLED, PN532, RF 433 MHz, PCF8574, MicroSD, VIN AMS1117 | Alimentează modulele compatibile cu 5V și intrarea regulatorului AMS1117 | |
| - | | **GND** | Magistrala comună GND: rândurile 1, 52, 55, 56, 60 | Toate modulele trebuie să aibă masă comună pentru referință de semnal | | + | | **GND** | Magistrala comună GND | Toate modulele trebuie să aibă aceeași referință electrică | |
| - | | **D2** | DATA receptor RF 433 MHz, prin 23X | D2 este INT0 pe Arduino UNO, deci permite capturarea precisă a tranzițiilor semnalului RF | | + | | **D2** | DATA receptor RF 433 MHz | D2 este INT0, util pentru capturarea tranzițiilor RF | |
| - | | **D3** | LED RGB - canal R, 39I | Pin PWM, folosit pentru controlul intensității culorii roșii | | + | | **D3** | LED RGB - canal R | Pin PWM pentru controlul roșului | |
| - | | **D4** | ESP-01 pin 5 / TX ESP | SoftwareSerial RX: Arduino primește date de la ESP; 3.3V este citit corect ca HIGH de ATmega328P | | + | | **D4** | ESP-01 TX către Arduino | SoftwareSerial RX; Arduino primește date de la ESP | |
| - | | **D5** | LED RGB - canal G, 40I | Pin PWM, folosit pentru controlul intensității culorii verzi | | + | | **D5** | LED RGB - canal G | Pin PWM pentru controlul verdelui | |
| - | | **D6** | LED RGB - canal B, 41I | Pin PWM, folosit pentru controlul intensității culorii albastre | | + | | **D6** | LED RGB - canal B | Pin PWM pentru controlul albastrului | |
| - | | **D7** | HV1 pe convertor logic, 44D | SoftwareSerial TX către ESP; trece prin convertor logic pentru a coborî nivelul de la 5V la 3.3V | | + | | **D7** | ESP-01 RX direct | SoftwareSerial TX; Arduino trimite comenzi AT către ESP | |
| - | | **D8** | DATA emițător RF 433 MHz, 24Y | Pin digital folosit pentru generarea semnalului retransmis | | + | | **D8** | DATA emițător RF 433 MHz | Pin digital folosit pentru retransmiterea semnalului RF | |
| | **D9** | RES OLED | Reset hardware pentru display | | | **D9** | RES OLED | Reset hardware pentru display | | ||
| | **D10** | CS OLED | Selectează OLED-ul pe magistrala SPI | | | **D10** | CS OLED | Selectează OLED-ul pe magistrala SPI | | ||
| - | | **D11** | MOSI SPI, 13F | Linia hardware MOSI, partajată între OLED, PN532 și MicroSD | | + | | **D11** | MOSI SPI | Linie comună pentru OLED și MicroSD | |
| - | | **D12** | MISO SPI, 12F | Linia hardware MISO, folosită de PN532 și MicroSD | | + | | **D12** | MISO SPI | Linie folosită de MicroSD | |
| - | | **D13** | SCK SPI, 14F | Clock hardware SPI, comun pentru OLED, PN532 și MicroSD | | + | | **D13** | SCK SPI | Clock SPI pentru OLED și MicroSD | |
| - | | **A0** | DC OLED | Selectare Data/Command pentru OLED | | + | | **A0** | DC OLED | Selectare comandă/date pentru OLED | |
| - | | **A1** | liber | Rezervă pentru extensii ulterioare | | + | | **A1** | RESET PN532 | Reset hardware pentru modulul RFID/NFC | |
| - | | **A2** | NSS / CS PN532 | Chip Select separat pentru RFID | | + | | **A2** | IRQ / R0 PN532 | Linie IRQ pentru PN532 în modul I2C | |
| | **A3** | CS MicroSD | Chip Select separat pentru cardul SD | | | **A3** | CS MicroSD | Chip Select separat pentru cardul SD | | ||
| - | | **A4** | SDA PCF8574, 41A/41C | Linia hardware I2C SDA | | + | | **A4** | SDA comun: PCF8574 + PN532 | Linia hardware I2C SDA | |
| - | | **A5** | SCL PCF8574, 40A/40C | Linia hardware I2C SCL | | + | | **A5** | SCL comun: PCF8574 + PN532 | Linia hardware I2C SCL | |
| ==== Conexiuni fizice pe breadboard ==== | ==== Conexiuni fizice pe breadboard ==== | ||
| Line 95: | Line 121: | ||
| ^ Zonă breadboard ^ Conexiune ^ Explicație ^ | ^ Zonă breadboard ^ Conexiune ^ Explicație ^ | ||
| - | | **60, 55, 56** | GND | Rânduri folosite ca extensii de masă | | + | | **Coloana/rândul GND comun** | GND | Masă comună pentru toate modulele | |
| - | | **59** | 5V | Rând de distribuție pentru modulele alimentate la 5V | | + | | **Rând 59** | 5V | Distribuție 5V pentru modulele compatibile | |
| - | | **53A** | VIN AMS1117 | Intrare regulator 3.3V, alimentată din 5V | | + | | **Rând 49** | 3.3V | Distribuție 3.3V generată de AMS1117 | |
| - | | **52A** | GND AMS1117 | Masă regulator | | + | | **AMS1117 VIN** | 5V | Intrarea regulatorului 3.3V | |
| - | | **53H** | VOUT AMS1117 | Ieșire 3.3V către magistrala 50F-J | | + | | **AMS1117 GND** | GND comun | Masă regulator | |
| - | | **50F-J** | 3.3V | Alimentare ESP-01 prin rând comun | | + | | **AMS1117 VOUT** | 3.3V / rând 49 | Alimentare ESP-01 | |
| - | | **47D, 47F** | GND convertor logic | Masă comună pentru level shifter | | + | |
| - | | **46D** | HV convertor logic | Partea de 5V a convertorului logic | | + | |
| - | | **46F** | LV convertor logic | Partea de 3.3V a convertorului logic | | + | |
| - | | **44D** | HV1 convertor logic | Semnal TX Arduino de pe D7 | | + | |
| - | | **44F / 43F** | LV1 convertor logic | Semnal coborât la 3.3V către RX ESP-01 | | + | |
| === Expander PCF8574 și butoane === | === Expander PCF8574 și butoane === | ||
| - | ^ Punct breadboard ^ Conexiune ^ Explicație ^ | + | ^ Conexiune ^ Explicație ^ |
| - | | **43A, 43C** | VCC PCF8574, legat la 59C | Alimentează expanderul la 5V | | + | | **VCC PCF8574 -> 5V** | Expander alimentat la 5V | |
| - | | **42A, 42C** | GND PCF8574, legat la 56C | Masă comună | | + | | **GND PCF8574 -> GND** | Masă comună | |
| - | | **41A, 41C** | SDA PCF8574, legat la A4 | Date I2C | | + | | **SDA PCF8574 -> A4** | Date I2C | |
| - | | **40A, 40C** | SCL PCF8574, legat la A5 | Clock I2C | | + | | **SCL PCF8574 -> A5** | Clock I2C | |
| - | | **36E/F și 34E/F** | Buton UP | Un capăt la P0, celălalt la GND | | + | | **P0 -> buton 1** | Funcție RF capture / replay | |
| - | | **33E/F și 31E/F** | Buton DOWN | Un capăt la P1, celălalt la GND | | + | | **P1 -> buton 2** | Funcție RFID scan | |
| - | | **30E/F și 28E/F** | Buton OK | Un capăt la P2, celălalt la GND | | + | | **P2 -> buton 3** | Funcție LED cycle | |
| - | | **27E/F și 25E/F** | Buton BACK | Un capăt la P3, celălalt la GND | | + | | **P3 -> buton 4** | Funcție ESP WiFi scan | |
| - | | **A36, A33, A30, A27** | P0, P1, P2, P3 | Intrări PCF8574 pentru butoane | | + | | **P4-P7** | Libere momentan | |
| - | | **J34, J31, J28, J25** | GND | Revenirea butoanelor la masă | | + | |
| === LED RGB === | === LED RGB === | ||
| - | ^ Punct breadboard ^ Conexiune ^ Explicație ^ | + | ^ Conexiune ^ Explicație ^ |
| - | | **39I** | LED R → D3 | Canal roșu, PWM | | + | | **LED R -> D3** | Canal roșu, PWM | |
| - | | **40I** | LED G → D5 | Canal verde, PWM | | + | | **LED G -> D5** | Canal verde, PWM | |
| - | | **41I** | LED B → D6 | Canal albastru, PWM | | + | | **LED B -> D6** | Canal albastru, PWM | |
| - | | **38I** | LED GND → 1G | Catod comun la masă | | + | | **LED GND -> GND** | Catod comun la masă | |
| === Module RF 433 MHz === | === Module RF 433 MHz === | ||
| - | ^ Modul ^ Punct breadboard ^ Conectat la ^ Explicație ^ | + | ^ Modul ^ Conectat la ^ Explicație ^ |
| - | | Receptor 433 MHz | **24X** | C1 / GND | Masă receptor | | + | | Receptor 433 MHz GND | GND | Masă receptor | |
| - | | Receptor 433 MHz | **23X** | D2 Arduino | DATA receptor; se folosește întreruperea INT0 | | + | | Receptor 433 MHz VCC | 5V | Alimentare receptor | |
| - | | Receptor 433 MHz | **21X** | G2 / 5V | Alimentare receptor | | + | | Receptor 433 MHz DATA | D2 | DATA receptor; folosit cu întrerupere externă | |
| - | | Emițător 433 MHz | **24Y** | D8 Arduino | DATA emițător | | + | | Emițător 433 MHz GND | GND | Masă emițător | |
| - | | Emițător 433 MHz | **23Y** | H2 / 5V | Alimentare emițător | | + | | Emițător 433 MHz VCC | 5V | Alimentare emițător | |
| - | | Emițător 433 MHz | **22Y** | C55 / GND | Masă emițător | | + | | Emițător 433 MHz DATA | D8 | Semnalul RF retransmis | |
| === Magistrala SPI === | === Magistrala SPI === | ||
| - | ^ Semnal ^ Puncte breadboard ^ Module conectate ^ | + | ^ Semnal ^ Pin Arduino ^ Module conectate ^ |
| - | | **SCK** | D13 → 14F, 14G PN532, 14H → 7G MicroSD | OLED, PN532, MicroSD | | + | | **SCK** | D13 | OLED, MicroSD | |
| - | | **MOSI** | D11 → 13F, 13G PN532, 13H → 6G MicroSD | OLED, PN532, MicroSD | | + | | **MOSI** | D11 | OLED, MicroSD | |
| - | | **MISO** | D12 → 12F, 12G PN532, 12I → 5G MicroSD | PN532, MicroSD | | + | | **MISO** | D12 | MicroSD | |
| + | | **CS OLED** | D10 | Select display OLED | | ||
| + | | **CS MicroSD** | A3 | Select card SD | | ||
| === OLED SPI === | === OLED SPI === | ||
| ^ Pin OLED ^ Conectat la ^ Explicație ^ | ^ Pin OLED ^ Conectat la ^ Explicație ^ | ||
| - | | **GND** | 55D | Masă comună | | + | | **GND** | GND | Masă comună | |
| - | | **VCC** | 5V Arduino | Alimentare display | | + | | **VCC** | 5V | Alimentare display | |
| - | | **SCK** | 14F / D13 | Clock SPI | | + | | **SCK** | D13 | Clock SPI | |
| - | | **SDA / MOSI** | 13F / D11 | Date SPI către display | | + | | **SDA / MOSI** | D11 | Date SPI către display | |
| | **RES** | D9 | Reset display | | | **RES** | D9 | Reset display | | ||
| | **DC** | A0 | Selectare comandă/date | | | **DC** | A0 | Selectare comandă/date | | ||
| | **CS** | D10 | Chip Select OLED | | | **CS** | D10 | Chip Select OLED | | ||
| - | === PN532 RFID/NFC === | + | === PN532 RFID/NFC pe I2C === |
| ^ Pin PN532 ^ Conectat la ^ Explicație ^ | ^ Pin PN532 ^ Conectat la ^ Explicație ^ | ||
| - | | **SCK** | 14G | Clock SPI | | + | | **5V** | 5V | Alimentare modul | |
| - | | **M / MISO** | 13G | Date de la modul către Arduino | | + | | **GND** | GND | Masă comună | |
| - | | **MO / SDA / TX** | 12G | Date de la Arduino către modul | | + | | **MO / SDA / TX** | A4 / SDA comun | Date I2C | |
| - | | **NSS / SCL / RX** | A2 | Chip Select dedicat PN532 | | + | | **NSS / SCL / RX** | A5 / SCL comun | Clock I2C | |
| - | | **RST / R0** | liber | Momentan nu este controlat hardware | | + | | **R0 / IRQ** | A2 | Linie IRQ | |
| - | | **GND** | 56B | Masă comună | | + | | **RST** | A1 | Reset hardware | |
| - | | **5V** | 59D | Alimentare modul | | + | | **SCK** | neconectat | Neutilizat în modul I2C | |
| + | | **M / MISO** | neconectat | Neutilizat în modul I2C | | ||
| + | |||
| + | Switch-uri PN532: | ||
| + | * **SET0 -> H** | ||
| + | * **SET1 -> L** | ||
| + | * mod de lucru: **I2C** | ||
| === ESP-01 === | === ESP-01 === | ||
| - | Pinii ESP-01 sunt notați cu modulul orientat cu antena/zig-zagul în față: | + | Pinii ESP-01 sunt notați cu modulul orientat cu antena/zig-zagul în sus: |
| <code> | <code> | ||
| Line 178: | Line 206: | ||
| ^ Pin ESP-01 ^ Conectat la ^ Explicație ^ | ^ Pin ESP-01 ^ Conectat la ^ Explicație ^ | ||
| - | | **1** | 56D | GND | | + | | **1** | GND | Masă | |
| - | | **4** | 43F / LV1 convertor logic | RX ESP, primește semnal de 3.3V din D7 prin level shifter | | + | | **2** | 3.3V | GPIO2 tras HIGH | |
| - | | **5** | D4 Arduino | TX ESP către RX SoftwareSerial Arduino | | + | | **3** | 3.3V | GPIO0 tras HIGH pentru rulare normală | |
| - | | **6** | 49I / 3.3V | CH_PD/enable tras la 3.3V | | + | | **4** | Arduino D7 direct | RX ESP; primește comenzile AT de la Arduino | |
| - | | **8** | 49H / 3.3V | Alimentare ESP-01 | | + | | **5** | Arduino D4 direct | TX ESP către Arduino | |
| + | | **6** | 3.3V | CH_PD / EN tras HIGH | | ||
| + | | **7** | 3.3V | RESET tras HIGH | | ||
| + | | **8** | 3.3V | Alimentare ESP-01 | | ||
| + | |||
| + | Observație: ESP-01 este alimentat doar la 3.3V din AMS1117. Linia D7 -> RX ESP este conectată direct în montajul curent. | ||
| === MicroSD === | === MicroSD === | ||
| - | ^ Pin MicroSD ^ Conectat la ^ Stadiu ^ | + | ^ Pin MicroSD ^ Conectat la ^ Explicație ^ |
| - | | **SCK** | 7G, prin 14H | conectat la magistrala SPI | | + | | **VCC** | 5V | Alimentare modul MicroSD | |
| - | | **MOSI** | 6G, prin 13H | conectat la magistrala SPI | | + | | **GND** | GND | Masă comună | |
| - | | **MISO** | 5G, prin 12I | conectat la magistrala SPI | | + | | **SCK** | D13 | Clock SPI | |
| - | | **CS** | A3 | conectat logic la Arduino | | + | | **MOSI** | D11 | Date către card | |
| - | | **VCC** | 4G | de tras | | + | | **MISO** | D12 | Date de la card | |
| - | | **GND** | 3G | de tras | | + | | **CS** | A3 | Chip Select MicroSD | |
| ==== Explicații schema ==== | ==== Explicații schema ==== | ||
| Line 198: | Line 231: | ||
| Principiul de conectare este următorul: | Principiul de conectare este următorul: | ||
| * Toate modulele folosesc **GND comun**, deoarece semnalele digitale trebuie să aibă aceeași referință electrică. | * Toate modulele folosesc **GND comun**, deoarece semnalele digitale trebuie să aibă aceeași referință electrică. | ||
| - | * Modulele SPI folosesc aceleași linii **SCK, MOSI, MISO**, iar fiecare modul este separat printr-un pin **CS** propriu: OLED pe D10, PN532 pe A2, MicroSD pe A3. | + | * OLED-ul și MicroSD-ul folosesc magistrala **SPI hardware** a Arduino UNO: D13/SCK, D11/MOSI și D12/MISO. |
| - | * Receptorul RF este pus pe **D2**, deoarece acest pin are întreruperea externă INT0, utilă pentru măsurarea duratelor pulsurilor RF. | + | * Fiecare modul SPI are propriul pin de selectare: OLED pe D10 și MicroSD pe A3. |
| + | * RFID-ul PN532 este conectat pe **I2C**, împreună cu PCF8574, pentru a evita conflictele pe SPI. | ||
| + | * Receptorul RF este pus pe **D2**, deoarece acest pin are întreruperea externă INT0. | ||
| * Emițătorul RF este pus pe **D8**, pin digital folosit pentru generarea semnalului retransmis. | * Emițătorul RF este pus pe **D8**, pin digital folosit pentru generarea semnalului retransmis. | ||
| - | * LED-ul RGB este pus pe pini PWM pentru a putea indica starea sistemului prin culori: roșu pentru recording, verde pentru replay, albastru pentru idle. | + | * LED-ul RGB este pus pe pini PWM pentru a permite controlul culorilor. |
| - | * Butoanele nu sunt legate direct la Arduino, ci la **PCF8574**, pentru a economisi pini pe Arduino. PCF8574 comunică prin I2C, deci ocupă doar A4 și A5. | + | * Butoanele sunt conectate la **PCF8574**, pentru a economisi pini pe Arduino. |
| - | * ESP-01 funcționează la 3.3V. De aceea este alimentat din AMS1117, nu direct din pinul 3.3V al Arduino. Linia Arduino → ESP trece prin convertor logic, deoarece Arduino transmite la 5V, iar RX-ul ESP acceptă 3.3V. | + | * ESP-01 este alimentat din **AMS1117 la 3.3V** și comunică prin SoftwareSerial cu Arduino. |
| + | * MicroSD-ul este folosit pentru salvarea persistentă a datelor RF și RFID. | ||
| ===== Software Design ===== | ===== Software Design ===== | ||
| Line 221: | Line 257: | ||
| * [[https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf|Datasheet ATmega328P]] | * [[https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf|Datasheet ATmega328P]] | ||
| * [[https://www.nxp.com/docs/en/data-sheet/PCF8574.pdf|Datasheet PCF8574]] | * [[https://www.nxp.com/docs/en/data-sheet/PCF8574.pdf|Datasheet PCF8574]] | ||
| - | * [[https://www.nxp.com/docs/en/data-sheet/MFRC522.pdf|Datasheet PN532]] | + | * [[https://www.nxp.com/docs/en/data-sheet/PN532_C1.pdf|Datasheet PN532]] |
| * [[https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf|Datasheet ESP8266]] | * [[https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf|Datasheet ESP8266]] | ||