Hardware project: carane kita mbangun kamar karo nggoleki hacker

Hardware project: carane kita mbangun kamar karo nggoleki hacker
A saperangan saka minggu kepungkur kita nglampahi nggoleki online kanggo peretas: padha mbangun kamar, kang kapenuhan piranti pinter lan dibukak siaran YouTube saka iku. Pemain bisa ngontrol piranti IoT saka situs web game; Tujuane kanggo nemokake senjata sing didhelikake ing kamar (penunjuk laser sing kuat), hack lan nyebabake sirkuit cendhak ing kamar.

Kanggo nambah tumindak, kita nyelehake shredder ing kamar, ing ngendi kita ngemot 200 rubel: shredder mangan siji tagihan saben jam. Sawise menang game, sampeyan bisa mungkasi shredder lan njupuk kabeh dhuwit isih.

Kita wis ngomong nglewatiLan carane backend digawe proyek. Iku wektu kanggo pirembagan bab hardware lan carane nglumpuk.


Ana akeh panjalukan kanggo nuduhake wayahe ngresiki kamar - kita nuduhake carane misahake

Arsitektur Hardware: Kontrol Kamar

Kita miwiti ngrancang solusi hardware nalika skenario wis kira-kira mangertos, backend siap, lan kita duwe kamar kosong siap kanggo nginstal peralatan.

Ngelingi lelucon lawas "S ing IoT tegese Keamanan" ("Huruf S ing singkatan IoT tegese Keamanan"), kita mutusake yen wektu iki para pemain ing skenario game mung sesambungan karo front-end lan back-end. saka situs, nanging ora entuk kesempatan kanggo njaluk langsung menyang wesi.

Iki ditindakake kanthi alasan safety lan tontonan apa sing kedadeyan ing layar: kanthi akses langsung menyang hardware dening pemain, bakal luwih angel ngisolasi tumindak sing aman lan mbebayani, contone, nggulung cepet saka mesin penghancur utawa kontrol. piroteknik.

Sadurunge miwiti desain, kita ngrumusake sawetara prinsip kanggo ngontrol piranti game, sing dadi basis desain:

Aja nggunakake solusi nirkabel

Kabeh papan dolanan ana ing siji pigura, saben pojok bisa digayuh. Ora ana kabutuhan nyata kanggo sambungan nirkabel lan bakal dadi titik kegagalan liyane.

Aja nggunakake piranti omah pinter khusus

Utamane kanggo keluwesan kustomisasi. Cetha manawa kita bisa ngatur akeh versi kothak sistem omah cerdas kanthi admin siap-siap lan kontrol kanggo tugas kita, nanging biaya tenaga kerja bakal dibandhingake karo nggawe solusi sing gampang.

Kajaba iku, iku perlu kanggo teka munggah karo piranti sing bakal cetha nuduhake yen iku pemain sing diganti negara: padha nguripake / mateni utawa sijine lampu tartamtu ing huruf FALCON.

We diklumpukake kabeh unsur saka hardware kasedhiya umum sing bisa dituku ing toko bagean radio biasa: antarane ngirim pizza lan diet cola, kurir Chip lan Dip lan Leroy terus teka ing situs.

Pilihan kanggo ngumpulake kabeh debugging sing disederhanakake, skalabilitas, nanging mbutuhake perawatan sing luwih gedhe sajrone instalasi.

Kabeh relay lan arudin ngirim ora katon ing pigura

Kita mutusake kanggo nggawa kabeh unsur sing bisa dikontrol menyang sak panggonan lan ndhelikake ing mburi layar supaya bisa ngawasi kinerja lan, yen perlu, kanthi ati-ati nyusup saka jarak visibilitas kamera lan ngganti unit sing gagal.

Hardware project: carane kita mbangun kamar karo nggoleki hacker
Ing pungkasan, kabeh didhelikake ing ngisor meja, lan kamera dipasang supaya ora ana sing katon ing ngisor meja. Iki minangka "titik buta" kanggo para insinyur

AkibatΓ©, kita bener entuk siji piranti pinter: nampa negara saben bagean saka backend lan diganti karo printah cocok.

Saka sudut pandang implementasi hardware, piranti iki ngontrol 6 unsur:

  1. Saperangan table lamps, padha duwe / negara mati lan kontrol dening pemain
  2. Huruf ing tembok, padha bisa ngganti werna ing printah saka pemain
  3. Penggemar sing muter lan mbukak flipchart nalika server lagi dimuat
  4. Laser kontrol liwat PWM
  5. Shredder sing mangan dhuwit ing jadwal
  6. Mesin kumelun sing mati sadurunge saben dijupuk laser


Nguji mesin kumelun nganggo laser

Mengko, lampu panggung ditambahake, sing ngadeg ing mburi pigura lan dikontrol persis kaya lampu saka titik 1. Lampu panggung bisa digunakake ing rong kasus: madhangi laser nalika daya ditrapake, lan madhangi bobot sadurunge laser dibukak ing mode pertempuran.

Apa piranti pinter iki?

Hardware project: carane kita mbangun kamar karo nggoleki hacker

Kabeh cara, Yura, wong hardware kita, nyoba ora nggawe rumit lan nggawe solusi paling gampang lan minimalis.

Dianggep VPS mung bakal mbukak script sing nampa json karo negara piranti lan dikirim menyang Arduino disambungake liwat USB.

Disambungake menyang port:

  • 16 relay reguler (dheweke sing nggawe swara klik sing dirungokake ing video kasebut. Kita milih utamane amarga swara iki)
  • 4 relay solid state kanggo ngontrol saluran PWM, kayata penggemar,
  • output PWM kapisah kanggo laser
  • output sing ngasilake sinyal menyang strip LED

Punika conto printah json sing teka menyang relay saka server

{"power":false,"speed":0,"period":null,"deviceIdentifier":"FAN"}

Lan iki minangka conto saka fungsi karo printah kanggo Arudino

def callback(ch, method, properties, body):    
request = json.loads(body.decode("utf-8"))    
print(request, end="n")     
send_to_serial(body)

Kanggo trek wayahe nalika laser pungkasanipun Burns liwat tali lan bobot mabur menyang akuarium, kita digawe tombol cilik sing micu nalika bobot tiba lan menehi sinyal kanggo sistem.

Hardware project: carane kita mbangun kamar karo nggoleki hacker
Tombol kanggo ngawasi gerakan bobot

Ing sinyal iki, bom asap sing digawe saka bal ping-pong mesthine bakal murup. Kita sijine 4 flare kumelun langsung menyang cilik server lan disambungake karo Utas nichrome, kang mestine kanggo panas munggah lan bisa kaya igniter.

Hardware project: carane kita mbangun kamar karo nggoleki hacker
Omah karo bom kumelun lan garland Cina

Hardware project: carane kita mbangun kamar karo nggoleki hacker

Arduino

Miturut rencana asli, rong tumindak ditindakake ing Arduino.

Kaping pisanan, nalika panjaluk anyar ditampa, panjaluk kasebut diurai nggunakake perpustakaan ArduinoJson. Sabanjure, saben piranti sing dikelola dibandhingake karo rong properti:

  • status daya "on" utawa "off" (status standar)
  • wektu piranti diuripake - wektu ing mikrodetik saka wiwitan papan, nalika wektu kanggo mateni, yaiku, nggawa negara menyang standar.

Pungkasan wektu disetel nalika nampa parameter sing cocog ing JSON, nanging ora bisa ditularake, banjur nilai kasebut disetel dadi 0 lan ora ana reset.

Tumindak kapindho sing ditindakake Arduino ing saben siklus yaiku nganyari negara, yaiku, mriksa apa perlu kanggo nguripake utawa apa wektu kanggo mateni piranti apa wae.

Penunjuk laser - Megatron 3000 sing padha

Hardware project: carane kita mbangun kamar karo nggoleki hacker

Iki LSMVR450-3000MF 3000mW 450nm manual fokus laser nglereni lan menehi modul biasa.

Aksara Falcon

Iki digawe kanthi gampang - kita mung nyalin huruf saka logo, dipotong saka karton, banjur ditutupi karo tape LED. Ing kasus iki, aku kudu solder potongan tape bebarengan, 4 kontak ing saben lapisan, nanging asil worth iku. Backender Pasha kita nuduhake mukjijat saka skill, nindakake ing kurang saka sawetara jam.

Tes pisanan saka piranti iot lan rampung

Kita nindakake tes pisanan lan ing wektu sing padha tugas anyar teka ing kita. Kasunyatane yaiku ing tengah-tengah proses kasebut, produser film lan juru kamera nyata saka VGIK, Ilya Serov, gabung karo tim kasebut - dheweke nggawe pigura, nambah lampu bioskop tambahan lan rada ngganti naskah game kanggo nggawe plot luwih emosional, lan gambar luwih dramatis lan teater.

Iki nambah kualitas kanthi nyata, nanging ana unsur sing uga kudu disambungake menyang relay lan algoritma operasi sing diwenehake.

Masalah liyane yaiku laser: kita nindakake sawetara eksperimen kanthi macem-macem jinis tali lan laser saka macem-macem kekuwatan. Kanggo tes, kita mung nggantung bobot kanthi vertikal ing tali.

Nalika mlaku karo token test, daya diatur liwat PWM kurang saka 10% lan ora ngrusak tali malah karo cahya dawa.

Kanggo mode pertempuran, laser ora fokus ing kira-kira titik kanthi diameter 10 mm lan kanthi yakin diobong liwat tali kanthi beban saka jarak kira-kira meter.

Hardware project: carane kita mbangun kamar karo nggoleki hacker
Dadi laser makarya kanthi sampurna ing tes

Nalika kita miwiti Testing kabeh tengen ing kamar ing bobot dilereni soko tugas, iku nguripake metu sing aman laser aman ora supaya gampang. Banjur, nalika tali kasebut diobong, leleh, mbentang lan metu saka fokus asline.

Hardware project: carane kita mbangun kamar karo nggoleki hacker
Nanging wis ora bisa maneh kaya: tali pindah

Ilya mindhah laser menyang mburi kamar ngelawan tali supaya sinar laser bakal ngliwati kabeh panggung lan katon ayu ing pigura, kang tikel kaping pindho jarak.

Sawise nindakake sawetara eksperimen liyane karo ngobong tali sing wis ana ing perang, kita mutusake ora nyiksa nasib lan ngamanake pemotongan tali nggunakake kabel nichrome. Iku numpes thread 120 detik sawise nguripake laser ing mode pertempuran. Kita mutusakΓ© kanggo hardcode iki, uga disconnection saka kabel lan ignition saka bom kumelun nalika kontak pamisahan micu, langsung menyang hardware saka mikrokontroler.

Hardware project: carane kita mbangun kamar karo nggoleki hacker
Utas sing pungkasane diobong liwat tali ing layar

Mangkono, tugas katelu muncul sing ditanggulangi dening Arduino - kanggo nggarap urutan sing ana gandhengane karo eksekusi perintah kasebut.

Kita uga mutusakΓ© kanggo menehi Arduino perlu kanggo count dhuwit ing TV lan mbukak shredder. Kaping pisanan, dianggep yen backend bakal nindakake iki lan imbangan saiki bakal katon ing situs web, lan ing TV kita bakal nuduhake komentar saka YouTube minangka unsur interaktif tambahan, ngandhani pamirso yen acara ing kamar wis kelakon nyata. wektu.

Nanging sajrone test run, Ilya katon ing pemandangan lan disaranake nuduhake imbangan game ing layar paling gedhe: pinten dhuwit isih kiwa, carane akeh wis dipangan, lan countdown kanggo wiwitan sabanjurΓ© saka shredder.

We disambungake Arduino kanggo wektu saiki: saben jam lengkap shredder diwiwiti. Gambar kasebut ditampilake ing TV nggunakake rasberry, sing nalika iku wis nampa panjalukan saka server lan dikirim menyang arduino kanggo eksekusi. Gambar kanthi indikator moneter digambar kanthi nelpon sarana konsol kaya iki

image = subprocess.Popen(["fim", "-q", "-r", "1920Γ—1080", fim_str]), Π³Π΄Π΅ fim_str

Lan dibentuk adhedhasar jumlah utawa wektu sing dibutuhake.

Kita nggawe gambar luwih dhisik: kita mung njupuk video sing wis siap nganggo timer lan ngekspor 200 gambar.

Iki minangka mekanika sing diprogram menyang salib. Nalika countdown pungkasan diwiwiti, kita kabeh menyang situs kasebut, bersenjata karo alat pemadam geni lan lungguh ngenteni geni (sing mung ana ing perselisihan).

Cara nggawe siaran sing bisa digunakake sajrone seminggu: milih kamera

Kanggo nggoleki, kita butuh siaran terus-terusan ing YouTube suwene 7 dina - persis sing wis disetel minangka durasi maksimal game kasebut. Ana rong perkara sing bisa nyegah kita:

  1. Overheating kamera amarga operasi terus-terusan
  2. Internet mati

Kamera kudu nyedhiyakake paling ora gambar Full HD kanggo nggawe muter lan nonton kamar nyaman.

Kaping pisanan, kita nyawang webcam sing diprodhuksi kanggo streamer. Kita ngethok anggaran, mula kita ora pengin tuku kamera, nanging, ternyata, dheweke ora nyewa. Ing wektu sing padha, kita kanthi ajaib nemokake kamera Xbox Kinect sing ana ing omahku, dipasang ing kamarku lan miwiti siaran tes sajrone seminggu.

Kamera kerjane apik lan ora overheat, nanging Ilya meh langsung weruh yen ora ana setelan, utamane ora bisa nyetel cahya.

Ilya ngupaya nyedhiyakake jinis siaran sing luwih cedhak karo standar produksi film lan video: kanggo ngirim pemandangan cahya kanthi dinamis kanthi sumber cahya sing padhang, latar mburi sing peteng lan obyek ing pigura. Ing wektu sing padha, aku pengin njaga elaborasi gambar ing sorotan lan bayangan, kanthi swara digital minimal.

Mulane, sanajan Kinect kabukten bisa dipercaya ing tes lan ora mbutuhake kertu video capture (titik gagal liyane), kita mutusake kanggo ninggalake. Sawise telung dina nguji kamera sing beda-beda, Ilya milih Sony FDR-AX53 - camcorder cilik sing bisa dipercaya sing ora larang kanggo nyewa, nanging ing wektu sing padha nduweni keandalan lan ciri visual sing cukup.

We nyewa kamera, nguripake kanggo minggu bebarengan karo kertu video capture, lan temen maujud sing karo iku kita bisa Count ing siaran terus-terusan saindhenging kabeh nggoleki.

Nggawe film: pementasan panggung lan cahya

Nggarap cahya mbutuhake sih-rahmat tartamtu; kita kudu mbangun skor cahya kanthi sarana minimal:

1. Iluminasi obyek nalika pemain nemokake (laser, bobot), uga cahya pancet ing shredder. Ing kene kita nggunakake dedolight 150 - piranti cahya film sing dipercaya lan kompak kanthi lampu halogen voltase rendah, sing ngidini sampeyan fokus sinar ing obyek tartamtu tanpa mengaruhi latar mburi lan obyek liyane.

2. Lampu play praktis - lampu meja, lampu lantai, bintang, garland. Kabeh cahya praktis disebarake kanthi harmonis ing pigura kanggo madhangi area gambar, ana lampu LED kanthi suhu warna 3200K ing jero, lampu ing lampu lantai ditutupi saringan foil Rosco abang kanggo nggawe aksen warna sing ora biasa.

Hardware project: carane kita mbangun kamar karo nggoleki hacker
Aku insinyur ing ibuku utawa peluncuran sesuk

Carane kita dilindhungi undhang-undhang internet lan listrik

Dheweke nyedhaki masalah toleransi kesalahan meh kaya ing pusat data: dheweke mutusake ora nyimpang saka prinsip dhasar lan dilindhungi miturut skema N + 1 sing biasa.

Yen siaran ing YouTube mandheg, iki tegese ora bisa nyambung maneh kanthi nggunakake tautan sing padha lan nerusake stream kasebut. Iku wayahe kritis, lan kamar dumunung ing kantor biasa.

Kanggo iki, kita nggunakake router basis OpenWRT lan paket mwan3. Iku kanthi otomatis nguji kasedhiyan saluran saben 5 detik lan, yen ana break, pindhah menyang modem serep karo Yota. AkibatΓ©, ngalih menyang saluran serep kedaden ing kurang saka menit.
Hardware project: carane kita mbangun kamar karo nggoleki hacker
Sampeyan uga penting kanggo ngilangi pemadaman listrik, amarga sanajan mundhak daya jangka pendek bakal nyebabake urip maneh kabeh komputer.

Mulane, kita njupuk ippon innova g2 3000 sumber daya uninterruptible, kang bakal gawe serep kabeh piranti game: konsumsi daya total sistem kita watara 300 Watts. Iki bakal suwene 75 menit, cukup kanggo tujuan kita.

Kita mutusake kanggo ngorbanake lampu tambahan yen listrik ing kamar mati - ora disambungake menyang sumber daya sing ora bisa diganggu.

Matur suwun

  • Kanggo kabeh tim RUVDS, sing nemokke lan dipun ginakaken game.
  • Dhewe, kanggo pangurus RUVDS, kanggo ngawasi karya server, beban kasebut bisa ditampa lan kabeh bisa digunakake kaya biasane.
  • Kanggo bos sing paling apik ntsaplin kanggo kasunyatan sing nanggepi telpon, "Aku duwe idea: kita bakal njupuk server, sijine akuarium ing, lan gantung bobot ing ndhuwur iku, boom, bang, kabeh wis flooded karo banyu, short circuit, geni. !” dheweke mesthi ujar kanthi yakin "lakoni!"
  • Бпасибо Penerbit Tilda lan kapisah kanggo Mikhail Karpov kanggo ora mung ketemu setengah lan ngidini kita nglanggar Katentuan Pangginaan supados langkung, nanging malah menehi kita akun bisnis kanggo taun nalika kita ngomong bab project.
  • Ilya Serov S_ILya kanggo gabung lan dadi co-produser saka project, siap kanggo nyusup setengah wengi, gluing LED Strip, looking for solusi technical lan nindakake kabeh supaya kita njaluk film nyata.
  • zhovner kanggo tansah siap kanggo nyimpen kahanan nalika liyane mbuwang tangan, borscht, support moral lan obrolan nganti esuk.
  • samat kanggo nyambungake kita karo pentester paling apik ing negara, sing menehi saran lan mbantu kita karo tugas.
  • daniemilk kanggo produksi video kelangan kabeh video.
  • delphe kanggo tangan tenan lan kekarepan kanggo bisa nganti pungkasan.
  • Inggih Dodo Pizza Engineering kanggo meh tansah anget pizza.

Lan matur nuwun paling gedhe kanggo para pemain kanggo kabeh emosi sing kita alami nalika sampeyan nyerbu nggoleki rong dina tanpa turu lan malah mandheg kerja.

Artikel liyane babagan usaha kanggo numpes server

Hardware project: carane kita mbangun kamar karo nggoleki hacker

Source: www.habr.com

Add a comment