Doğan Mert ZENFELT.
Rehberler İçerik Hakkımda İş için
Bana yaz
Rehberler Açık Kaynak·

QR Kodla İnternetsiz Dosya Transferi

Ekranda yanıp sönen karekodlarla, hiçbir ağa bağlanmadan cihazdan cihaza dosya göndermek. Kurulumsuz çalışan kolay yol, hızlısını isteyenler için Decimen kurulumu ve işin arkasındaki mantık.

Kurulum gerekmez Açık kaynak 2 yol Kaynak doğrulandı

Ekranda hızlı hızlı yanıp sönen karekodlar, karşıda bakan bir kamera. Arada ne internet var, ne bluetooth, ne eşleştirme. Dosya sadece ışıkla geçiyor.

Aşağıda iki yol var. Birincisi hiçbir şey kurmadan, telefonun tarayıcısından çalışıyor. İkincisi videoda anlattığım hızlı olanı, ama biraz kurulum istiyor.

Yol 1: En kolay yol, hiçbir şey kurmadan

İki cihazda tarayıcı açmak yeterli. Kod bilmene gerek yok, 2 dakika sürer.

  1. 1
    Dosyayı alacak cihazda şunu aç: airgapped-qr-code-transfer.mohanram.co.in/scanner ve kameraya izin ver.
  2. 2
    Dosyayı gönderecek cihazda şunu aç: airgapped-qr-code-transfer.mohanram.co.in/generator ve göndereceğin dosyayı seç.
  3. 3
    Gönderen tarafta transferi başlat. Ekran karekodları arka arkaya göstermeye başlayacak.
  4. 4
    Alıcı cihazın kamerasını o ekrana tut. Bütün parçalar toplandığında dosya kendiliğinden iniyor.
Gerçekten offline mı, kendin test et
İki sayfa da açıldıktan sonra iki cihazın da internetini kapat ve transferi öyle dene. Çalışmaya devam ediyorsa, dosyanın hiçbir yere gitmediğini kendi gözünle görmüş olursun. Bu testi yapmanı öneririm, birinin sözüne güvenmekten iyidir.
Beklentini ayarla
Bu yol küçük dosyalar için. Birkaç yüz kilobaytlık bir belge, not ya da küçük görsel rahat geçer. Videoda bahsettiğim saniyede 130 kilobayt hız bu araçta değil, aşağıdaki Decimen'de.

Yol 2: Hızlısı (Decimen)

Çoğu kişi için Yol 1 yeterli. Videodaki saniyede 130 kilobayt hızı kendi gözünle görmek istiyorsan bunu kur; kendi bilgisayarında çalışıyor.

Repo
github.com/bashalarmistalt/decimen-optical-transfer  ·  MIT lisans  ·  ücretsiz  ·  geliştiricisi: bashalarmistalt
  1. 1
    Bilgisayarında Node.js kurulu olsun: nodejs.org adresinden indirip kur (bir kere kuruluyor).
  2. 2
    Repoyu indir: GitHub sayfasında yeşil Code düğmesi, sonra Download ZIP. İndirilen dosyayı bir klasöre çıkar.
  3. 3
    O klasörde bir terminal aç ve şu iki komutu sırayla çalıştır:
TERMİNAL
npm install
npm run dev
  1. 1
    Komutlar bitince terminalde Network: diye başlayan bir satır göreceksin, örneğin https://192.168.1.34:5173. IP aramana gerek yok, adres orada yazıyor.
  2. 2
    Gönderen cihazda (bilgisayar) şunu aç:
  3. 3
    Alıcı telefonda Network satırındaki adresi açıp sonuna /receive/ ekle, örneğin https://192.168.1.34:5173/receive/
  4. 4
    Tarayıcı "bu sertifika güvenli değil" diye uyaracak. Bu normal, kendi bilgisayarın olduğu için. Devam et deyip geç.
  5. 5
    Gönderen tarafta dosyayı seç, başlat. Telefonun kamerasını ekrana tut.
Aynı Wi-Fi notu
Telefonun bu sayfayı ilk açabilmesi için telefon ve bilgisayar aynı Wi-Fi ağında olmalı. Sayfalar iki cihazda da açıldıktan sonra istersen interneti kapatabilirsin. Transferin kendisi ağ kullanmıyor, ışıkla gidiyor.
Neden https şart

http ile kamera hiç açılmaz

Alıcı taraf kamerayı getUserMedia ile açıyor. Tarayıcılar bu özelliği güvensiz bağlantılarda tamamen kapatıyor. Yani telefonun bilgisayarına düz http ile bağlanırsa kamera hiç açılmıyor. Reponun kendi geliştirme sunucusu bu yüzden https ile geliyor.

→ Sertifika uyarısını görmek iyiye işaret, yanlış bir şey yapmıyorsun.

Peki nasıl oluyor bu

Kamera her kareyi yakalayamaz. İşin zekice tarafı, yakalamak zorunda olmaması.

Kullanılan yöntemin adı fountain code. Çeşme gibi düşünün. Yağmurun altına kova tutuyorsunuz. Hangi damlanın kovaya düştüğü önemli değil, yeterince damla düşünce kova doluyor.

Burada da her karekod, dosyanın rastgele parçalarının karışımı. Belli bir kareyi yakalamak zorunda değilsin. Yeterince kare topladığın anda dosya kendiliğinden tamamlanıyor. Reponun kendi ifadesiyle: kaçan kareler sana biraz zaman kaybettirir, ama doğruluğu asla bozmaz.

AyarVarsayılan değeri
Saniyedeki kare sayısı24
Kare başına veri1465 bayt (QR sürüm 27)
Gönderilebilen dosya boyutu512 KB ya da 2 MB (seçmeli)
Ölçülen hızelde tutarken ~128 KB/s, sabitlenince ~186 KB/s

Hızı düşüren şeyler

Reponun kendi notlarından, en çok işe yarayan üç tanesi.

Telefonu bir yere daya

Geliştiricinin kendi ifadesiyle hızın bir numaralı düşmanı el titremesi. Titreyince kamera sürekli odak arıyor ve kareler kaçıyor. Telefonu bir bardağa, kitaba, neye olursa dayamak hızı gözle görülür artırıyor.

Safari kullanma

Safari karekod okuma özelliğini (BarcodeDetector) hiç eklemedi. Araç bu yüzden okuma işini kendi yazılımıyla yapıyor, yani Safari'de daha yavaş. Chrome tercih et.

iPhone kare sayısını yanlış söylüyor

iOS, 60 kare istendiğinde sessizce 30 veriyor. Geliştirici bunu bilerek kod tarafında zorlamış. Yine de iPhone'da beklediğinden yavaş giderse sebebi bu olabilir.

Ekran parlaklığını aç

Karekodların net okunması için kontrast lazım. Gönderen ekranın parlaklığını yükselt, ekrana yansıma gelmesin.

Dürüst notlar

Yayınlamadan önce bilmen gereken üç şey.

01

Fikir yeni değil

Durum

Bu tarz araçlar yıllardır var. Benzerleri 1994'teki Timex Data Link saatine kadar gidiyor, 2018'de txqr, 2024'te başka bir tarayıcı aracı yapıldı. Geliştirici de bunu kabul ediyor, fikri bağımsız bulduğunu söylüyor.

Yeni olan ne

Hız. Eski araçlar saniyede 4 kilobayt civarındaydı, bu yaklaşık 30 katı.

02

"Hava boşluğu" lafına aldanma

Durum

İngilizcede buna airgapped deniyor, yani iki sistem arasında hiç bağlantı yok demek. Tam olarak doğru değil. Kamera ile ekran arasında hâlâ bir veri yolu var, sadece optik.

Pratikte

Ağ üzerinden iz bırakmaması doğru. Ama bunu "kesinlikle izlenemez" diye okuma.

03

Bu bir kavram kanıtı

Durum

Geliştiricisi bunu bir gecede yazdığını söylüyor ve repo açıkça bir deneme projesi olarak duruyor. Günlük dosya paylaşımı için değil.

Ne zaman gerçekten işe yarar

İnternetin hiç olmadığı yerde, uçakta, ya da iki cihazı bilerek birbirine bağlamak istemediğin durumlarda.

Özet

Kurulum istemeyen yol: alıcıda /scanner, göndericide /generator sayfasını aç, kamerayı ekrana tut. Küçük dosyalar için.

Gerçekten offline mı diye emin olmak için sayfalar açıldıktan sonra iki cihazın da internetini kapatıp dene.

Hızlı olanı Decimen: github.com/bashalarmistalt/decimen-optical-transfer, MIT lisans, ücretsiz.

Decimen için Node.js gerekiyor: repoyu Code > Download ZIP ile indir, klasörde npm install, sonra npm run dev.

Gönderen https://localhost:5173/send/ adresini açar; alıcı telefon terminaldeki Network satırında yazan adresi sonuna /receive/ ekleyerek açar (IP aramak yok).

İlk yükleme için telefon ve bilgisayar aynı Wi-Fi'da olmalı; sayfalar açıldıktan sonra internet kapatılabilir.

Sertifika uyarısı normal, kendi bilgisayarın olduğu için çıkıyor. http ile kamera hiç açılmaz.

Yöntem fountain code: her kare dosyanın rastgele parçalarının karışımı, kaçan kare doğruluğu bozmaz.

Hızın bir numaralı düşmanı el titremesi. Telefonu bir yere daya, parlaklığı aç, Safari yerine Chrome kullan.

Ölçülen hız elde ~128 KB/s, sabitlenince ~186 KB/s. Eski benzerleri ~4 KB/s seviyesindeydi.

Fikir yeni değil (1994'e kadar gidiyor), yeni olan hız. Ve bu bir kavram kanıtı, günlük araç değil.

İlgili rehberler
Araçlar Yapay Zekanın Metne Koyduğu Görünmez İmza Claude artık yazdığı metne makinenin okuyabildiği görünmez bir işaret koyuyor. Bu işaret nerede… Araçlar i-have-adhd: Claude Cevabı Gömmesin Claude çözümü biliyor ama upuzun paragrafa gömüyor. Bu ücretsiz açık kaynak eklenti onu ilk… Prompt ve Yöntem Graph Düşünme: Liste Değil Harita Claude'a problemi düz liste yerine harita olarak anlat. Loop ve graph ne demek, hangi iş liste…
Tüm rehberler →

Denedin mi?

Çalıştırabildiysen ya da takıldıysan yorumlara yaz. Böyle araçları sık paylaşıyorum, takip et: @doganmertai.
@doganmertai takip et
← Tüm rehberler © 2026 Zenfelt · Doğan Mert Saatçı · zenfelt.com