1. ro
  2. en
07 august 2025

Photon Unlocker

Cum am transformat o idee dintr-un film într-un sistem real de deblocare cu lumină

 

Imaginează-ți că poți deschide o ușă secretă folosind doar lanterna telefonului. Fără chei. Fără parole. Doar lumină.

 

De la ficțiune la funcționalitate

 

Am văzut un film pe Netflix care mi-a rămas în minte — Brick, un thriller SF, în care locatarii unui bloc sunt izolați de restul lumii printr-un zid misterios, aparent indestructibil. După multe încercări eșuate, descoperă că zidul reacționează la un cod electromagnetic transmis sub formă de impulsuri luminoase. Folosesc lanterna telefonului, emit o secvență precisă de semnale și... zidul cedează. Mi s-a părut genial. Nu doar ca idee de film, ci ca principiu tehnic. Și mi-am zis: ce-ar fi să transform ficțiunea în realitate?

 

Așa s-a născut Photon Unlocker, un sistem de deblocare care nu folosește taste, carduri sau conexiuni wireless. Doar lumină. Am folosit un senzor LDR, adică un fotorezistor, și un dispozitiv Arduino UNO, iar semnalul l-am transmis cu lanterna telefonului, codificat în Morse. Dacă senzorul e bine ascuns, nimeni nu va bănui că accesul se face cu o lanternă. E ca un cod secret, vizibil doar pentru cine știe ce caută.

 

Conceptul: comunicare prin lumină

 

În esență, proiectul meu se bazează pe comunicarea optică — un principiu vechi, dar extrem de versatil. Folosind codul Morse, transmis prin lanterna telefonului, și un senzor LDR, adică un fotorezistor, am creat un sistem care poate decodifica semnale luminoase și reacționa la un mesaj prestabilit.

 

Este un mecanism de blocare și deblocare care nu folosește taste, carduri sau conexiuni wireless. Doar lumină. Dacă senzorul e bine ascuns, nimeni nu va bănui că accesul se face cu o lanternă, dar nu cu una obișnuită, deoarece semnalele luminoase trebuie să aibă o anumita durată și succesiune ci cu aceea a telefonului mobil controlată de un anumit program.

 

Pentru test am folosit o aplicație simplă dar extrem de interesantă — Morse Code Torch — care transformă textul în semnale luminoase. Arduino citește valorile analogice de la fotorezistor și determină dacă lanterna este aprinsă sau stinsă. În funcție de durata semnalului, decide dacă e punct sau linie, construiește mesajul caracter cu caracter și îl compară cu parola prestabilită. Dacă mesajul e corect, aprinde un LED. După 10 secunde, LED-ul se stinge și sistemul revine în modul de ascultare, asa cum se întâmplă și în cazul seifurilor și al ușilor cu yală electromagnetică, pentru a nu face risipă de energie și pentru a nu le uita descuiate.
 

Ce mi-a plăcut cel mai mult e că am putut transforma o idee dintr-un film într-un sistem real, funcțional. Codul Morse, deși vechi, e extrem de robust. Fotorezistorul, folosit de obicei pentru măsurarea luminii ambientale, devine un receptor de semnal. Iar Arduino oferă flexibilitate și precizie în interpretarea timpului. E un exemplu clar că imaginația și tehnologia pot lucra împreună pentru a crea soluții ingenioase.

 

Photon Unlocker poate fi folosit în sisteme de acces discrete — seifuri, uși, dulapuri — sau în jocuri de tip escape room. Poate fi un control de la distanță fără contact fizic, sau pur și simplu un experiment educativ care te învață cum funcționează comunicarea optică.

 

 

 

Schema electrică

 

Circuitul este extrem de simplu: fororezistorul se conectează la pinul analogic A0, împreună cu un rezistor de 10kΩ ca divizor de tensiune. LED-ul e pe pinul D13. Am testat coduri precum „1234”, „ABCD” și chiar „SOS”. Sistemul a reacționat perfect, aprinzând LED-ul doar la mesajul corect. Codul sursă este accesibil pe această pagină, ceea ce înseamnă că vă puteți personaliza codul după cum doriți.

 

După cum puteți observa, avem următoarele conexiuni electrice între componentele circuitului nostru:

 

  • Terminalul 1 al fotorezistorului (LDR) → 5V Arduino

  • Terminalul 2 al fotorezistorului (LDR) → terminalul 1 al rezistorului R1 (10kΩ) si Pin A0 Arduino

  • Terminalul 1 al al rezistorului R1 (10kΩ)→ Terminalul 2 al fotorezistorului și Pin A0 Arduino

  • Terminalul 2 al al rezistorului R1 (10kΩ) → GND Arduino

  • Terminalul 1 al al rezistorului R2 (220Ω) → Pin D8 Arduino

  • Terminalul 2 al al rezistorului R2 (220Ω)→ Anod LED (+)

  • Catod LED (-) → GND Arduino

 

Materiale necesare:

 

  • Arduino Uno sau un model echivalent al acestuia

  • 1 LED, de preferat de 5mm

  • 1 rezistor de 220Ω (roșu-roșu-maro-auriu)

  • 1 rezistor de 10kΩ (maro-negru-portocaliu-auriu)

  • un fotorezistor (LDR) sau un modul cu fotorezistor (și nu veți mai avea nevoie de rezistorul de 10kΩ)

  • un breadboard de orice dimensiune

  • fire de legătură

 

 

 

Instalarea componentelor pe breadboard 

 

 

După cum observați, nu avem foarte multe conexiuni electrice de realizat. Trebuie doar să fiți atenți la câteva detalii esențiale pentru montajul corect:

 

  • LED-urile au polaritate și trebuie conectate în direcția corectă. Am notat cu A – anod (plus) și K – catod (minus) pentru a vă ghida mai ușor. Dacă sunt montate invers, nu vor lumina.
  • Rezistoarele nu au polaritate, deci pot fi instalate în orice sens, fără restricții. Rolul lor este să limiteze curentul și să protejeze componentele, în special LED-urile.
  • Dacă utilizați pentru prima dată placa Arduino, atunci puteți realiza conexiunile fără griji. În acest caz, placa este liberă de orice program anterior, astfel că nu există riscul unor execuții necontrolate.

 

 

 

Codul sursă

 

Înainte de a instala codul sursă în memoria dispozitivului Arduino, instalați pe telefonul vostru mobil aplicația Morse Code Torch. Pentru aceasta, deschideți Magazin Play și căutați termenii: „Morse Code Torch”. Alegeți aplicația Morse Code Torch dezvoltată de perryOnCrack și instalați-o.

 

Deschideți aplicația, deoarece va trebui să efectuăm o setare astfel încât să sincronizăm codul luminos emis de lanterna telefonului cu informațiile recepționate de dispozitivul Arduino. Va trebui să modificăm parametrul Unit Duration, astfel încât să ajungă la valoarea de 110 ms. În căsuța în care scrie „abcd” este codul pe care îl va trimite telefonul, iar săgeata (sau butonul de Play, triunghiul) va fi utilizată pentru a începe transmiterea semnalului luminos. Dacă aplicația este pregătită, putem trece la pasul următor.

 

 

Puteți descărca de aici codul sursă.
 

(Link-ul va deschide un fișier de tip .ino într-o pagină nouă, însă browser-ul îl va interpreta ca pe un fișier text, ceea ce înseamnă că atunci când îl veți salva, apăsând eventual combinat Ctrl+S, selectați la “Save as type” – “All files”, și apoi introduceți după denumirea fișierului textul: .ino, astfel va fi salvat un fișier care poate fi accesat direct de către Arduino IDE. Altfel, selectați tot textul (Ctrl + A), îl copiați (Ctrl + C), deschideți o fereastră nouă în Arduino IDE, unde îl veți lipi (Ctrl + V) și îl puteți rula.)

 

 

Dacă ați realizat montarea componentelor pe breadboard, descărcați codul sursă din link-ul de mai sus și încărcați-l în memoria dispozitivului Arduino, apoi bucurați-vă de noul vostru proiect! 

 

Testare

 

După ce ați alimentat circuitul electric, deschideți telefonul mobil, rulați aplicația Morse Code Torch, setați parametrul Unit Duration la valoarea de 110 ms, dacă nu ați făcut-o deja la pasul anterior. Scrieți mesajul „abcd” în căsuța text pe care v-am indicat-o anterior, îndreptați lanterna către fotorezistor la o distanță de 10–20 cm și apăsați tasta Play (triunghiul sau săgeata de lângă căsuța de text), apoi așteptați să ruleze semnalul luminos.

 

Dacă totul este în regulă, LED-ul ar trebui să se aprindă timp de 10 secunde, apoi să se stingă, așteptând o nouă secvență de cod luminos pentru a se reactiva.

 

În această situație, puteți schimba parola pentru a vă personaliza sistemul. Pentru aceasta, aveți linia de cod:

if (decodedMessage.endsWith("ABCD") && !ledIsOn) {

 

Înlocuiți mesajul "ABCD" cu secvența voastră de parolă. Atenție: trebuie să păstrați ghilimelele și mesajul trebuie să fie scris cu litere mari sau cifre, unde este cazul.

 

 

 

Dacă proiectul vostru nu funcționează corect:

  • Este posibil să fie prea multă lumină în cameră, iar senzorul nu preia informația cum trebuie. În acest caz, modificați pragul de sensibilitate din linia de cod:

 

const int threshold = 150; // Pragul de lumină pentru detectie

 

Cum testezi și stabilești pragul de sensibilitate corect

 

Rulează programul de aici.

  • Deschide Serial Monitor (Ctrl + Shift + M în Arduino IDE).

  • Aprinde și stinge lanterna telefonului și plasează-o unde intenționezi să o utilizezi împreună cu dipozitivul tău. 

  • Vei vedea cum valorile LDR se modifică — de obicei între 0 și 1023:

    • Valori mari = lumină puternică

    • Valori mici = întuneric

 

Notează valoarea minimă și valoarea maximă, apoi fă o medie între ele și aceasta va fi pragul. De exemplu, eu am obținut o valoare maximă de 300, în lumină ambientală, și una de 45, cu fotorezistorul iluminat de lanterna telefonului, ceea ce înseamnă o medie de (300 - 45) / 2 = 127,5, așa că am ales pragul de 150, deoarece 127 părea cam mic totuși.

 

  • Sau ajustați ușor parametrul Unit Duration din aplicația Morse Code Torch, la 100 ms sau 120 ms.

 

Dacă tot nu funcționează, verificați din nou conexiunile electrice.

 

 

Ce am învățat

 

  • Codul Morse este o metodă de comunicare extrem de robustă

  • LDR-ul poate fi folosit nu doar pentru măsurarea luminii, ci și pentru interpretarea semnalelor

  • Arduino oferă flexibilitate și precizie în interpretarea timpului

  • Inspirația poate veni din cele mai neașteptate locuri — chiar și dintr-un film

 

Photon Unlocker este mai mult decât un proiect. Este o demonstrație că imaginația și tehnologia pot lucra împreună pentru a crea soluții ingenioase.

 

 

 

​​​​​​​

​​​​​​​