Proyék hardware: kumaha urang ngawangun kamar kalayan quest hacker

Proyék hardware: kumaha urang ngawangun kamar kalayan quest hacker
Sababaraha minggu ka tukang urang nyéépkeun quest online pikeun hacker: aranjeunna ngawangun kamar, nu aranjeunna ngeusi alat pinter jeung dibuka siaran YouTube ti dinya. Pamaén bisa ngadalikeun alat IoT ti ramatloka kaulinan; Tujuanana nya éta pikeun manggihan pakarang disumputkeun di kamar (a pointer laser kuat), hack eta sarta ngabalukarkeun sirkuit pondok di kamar.

Pikeun nambihan tindakan, kami nempatkeun shredder di kamar, dimana kami ngeusian 200 rubles: shredder tuang hiji tagihan per jam. Sanggeus meunang game, Anjeun bisa ngeureunkeun shredder jeung nyokot sakabeh duit sésana.

Kami parantos nyarios walkthroughjeung kumaha backend ieu dijieun proyék. Waktosna pikeun ngobrol ngeunaan hardware sareng kumaha éta dirakit.


Aya seueur panyuhun pikeun nunjukkeun momen ngabersihkeun kamar - kami nunjukkeun kumaha urang misahkeunana

Arsitéktur hardware: Control kamar

Urang mimitian ngarancang solusi hardware nalika skenario ieu geus kasarna dipikaharti, backend geus siap, sarta kami boga kamar kosong siap install parabot.

Inget lulucon heubeul "The S dina IoT nangtung pikeun Kaamanan" ("Huruf S dina singketan IoT nangtung pikeun Kaamanan"), urang mutuskeun yén waktos ieu pamaén dina skenario kaulinan berinteraksi ukur jeung hareup-tungtung jeung tukang-tungtung. tina situs, tapi teu meunang kasempetan pikeun meunang langsung ka beusi.

Hal ieu dilakukeun pikeun alesan kaamanan sareng tontonan naon anu kajantenan dina layar: kalayan aksés langsung kana hardware ku pamaén, éta bakal langkung hese pikeun ngasingkeun tindakan anu aman sareng berpotensi bahaya, contona, ngagulung gancang tina shredder atanapi kontrol. pyrotechnics.

Sateuacan ngamimitian desain, kami ngarumuskeun sababaraha prinsip pikeun ngontrol alat kaulinan, anu janten dasar desain:

Ulah make solusi nirkabel

Sakabéh rohangan maén aya dina hiji pigura, unggal sudut tiasa dihontal. Henteu aya kabutuhan nyata pikeun sambungan nirkabel sareng aranjeunna ngan saukur janten titik gagalna sanés.

Ulah make sagala alat home pinter husus

Utamana pikeun kalenturan kustomisasi. Éta jelas yén urang tiasa ngaropea seueur vérsi kotak tina sistem bumi pinter kalayan admin siap-siap sareng kontrol pikeun tugas urang, tapi biaya tenaga kerja bakal dibandingkeun sareng ngadamel solusi saderhana anjeun sorangan.

Sajaba ti éta, éta diperlukeun pikeun datang nepi ka alat nu jelas bakal némbongkeun yén éta pamaén anu robah kaayaan na: aranjeunna ngahurungkeun / mareuman atawa nempatkeun lampu husus dina hurup FALCON.

Urang dikumpulkeun sakabeh elemen ti hardware sadia masarakat awam nu bisa dibeuli di toko bagian radio biasa: antara delivering pizza na diet cola, kurir Chip na dip na Leroy terus datang ka loka.

Pilihan pikeun ngumpul sagalana sorangan debugging disederhanakeun, scalability, kumaha oge, merlukeun perawatan gede salila instalasi.

Sadaya relay sareng arudin teu kedah katingali dina pigura

Urang mutuskeun pikeun mawa sakabéh elemen controllable kana hiji tempat tur nyumputkeun aranjeunna balik layar dina urutan pikeun bisa ngawas kinerja maranéhanana sarta, upami diperlukeun, taliti ngorondang kaluar tina tetempoan kaméra jeung ngaganti Unit gagal.

Proyék hardware: kumaha urang ngawangun kamar kalayan quest hacker
Tungtungna, sagalana disumputkeun handapeun méja, sarta kaméra ieu dipasang ambéh teu aya anu katingali di handap tabél. Ieu "titik buta" kami pikeun insinyur ngarayap

Hasilna, urang saleresna ngagaduhan hiji alat pinter: éta nampi kaayaan masing-masing bagianna tina tonggong sareng dirobih ku paréntah anu pas.

Ti sudut pandang palaksanaan hardware, alat ieu dikawasa 6 elemen:

  1. Sababaraha lampu méja, aranjeunna gaduh on / kaayaan pareum tur dikawasa ku pamaén
  2. Hurup dina témbok, aranjeunna tiasa ngarobih warnana ku paréntah pamaén
  3. Fans nu spin tur muka flipchart nalika server keur beban
  4. Laser dikawasa via PWM
  5. Shredder anu dahar duit dina jadwal
  6. Mesin haseup anu kaluar sateuacan unggal shot laser


Nguji mesin haseup nganggo laser

Engké, lampu panggung ditambahkeun, nu nangtung tukangeun pigura jeung ieu dikawasa persis kawas lampu ti titik 1. Lampu panggung digawé dina dua kasus: cahayana laser nalika kakuatan ieu dilarapkeun ka dinya, sarta cahayana beurat saméméh éta. laser diluncurkeun dina mode tempur.

Naon alat pinter ieu?

Proyék hardware: kumaha urang ngawangun kamar kalayan quest hacker

Sapanjang jalan, Yura, lalaki hardware urang, diusahakeun teu ngahesekeun hal sarta datang nepi ka basajan, solusi minimalis mungkin.

Dianggap yén VPS ngan saukur bakal ngajalankeun skrip anu nampi json kalayan kaayaan alat sareng dikirimkeun ka Arduino anu dihubungkeun via USB.

Disambungkeun ka palabuhan:

  • 16 relay biasa (aranjeunna anu ngadamel sora ngaklik anu kadéngé dina pidéo. Urang milih aranjeunna kusabab sora ieu)
  • 4 relay kaayaan padet pikeun ngadalikeun saluran PWM, sapertos kipas,
  • kaluaran PWM misah pikeun laser
  • output nu dibangkitkeun sinyal ka strip LED

Ieu conto paréntah json anu sumping ka relay ti server

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

Sareng ieu mangrupikeun conto fungsi anu paréntahna ngagaduhan ka Arudino

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

Pikeun lagu momen nalika laser tungtungna nundutan ngaliwatan tali jeung beurat flies onto akuarium, urang dijieun tombol leutik nu ieu dipicu nalika beurat murag tur masihan sinyal ka sistem.

Proyék hardware: kumaha urang ngawangun kamar kalayan quest hacker
Tombol pikeun ngawas gerakan beurat

Dina sinyal ieu, bom haseup dijieun tina bal ping-pong sakuduna dituju hurung. Urang nempatkeun 4 flares haseup langsung kana kasus server tur disambungkeun aranjeunna kalayan thread nichrome, nu sakuduna dituju panas nepi na dianggo kawas sekering a.

Proyék hardware: kumaha urang ngawangun kamar kalayan quest hacker
Perumahan sareng bom haseup sareng garland Cina

Proyék hardware: kumaha urang ngawangun kamar kalayan quest hacker

Arduino

Numutkeun rencana aslina, dua lampah lumangsung dina Arduino.

Kahiji, nalika pamundut anyar ditampi, pamundut ieu parsed ngagunakeun perpustakaan ArduinoJson. Salajengna, unggal alat anu diurus dibandingkeun sareng dua sipatna:

  • kaayaan kakuatan "on" atawa "pareum" (kaayaan baku)
  • periode dimana alat dihurungkeun - waktos dina microseconds ti mimiti dewan, nalika waktuna mareuman, nyaeta, mawa kaayaan ka standar.

Panungtungan waktu eta diatur nalika narima parameter pakait dina JSON, tapi teu bisa dikirimkeun, lajeng nilai disetel ka 0 tur euweuh reset lumangsung.

Peta kadua yén Arduino dipigawé unggal siklus ieu ngamutahirkeun kaayaan, nyaeta, mariksa naha aya anu peryogi pikeun ngahurungkeun hal atawa naha éta waktu mareuman alat nanaon.

Pointer laser - sarua Megatron 3000

Proyék hardware: kumaha urang ngawangun kamar kalayan quest hacker

Ieu LSMVR450-3000MF biasa 3000mW 450nm fokus manual motong laser sarta nyirian modul.

Hurup Falcon

Éta dijieun saderhana pisan - urang ngan saukur nyalin hurup tina logo, motong kaluar tina kardus, teras ditutupan ku pita LED. Dina hal ieu, kuring kungsi solder potongan tape babarengan, 4 kontak dina unggal kelim, tapi hasilna éta patut eta. backender urang Pasha némbongkeun miracles of skill, ngalakonan eta dina waktu kurang ti sababaraha jam.

Tés munggaran tina alat iot sareng pagawean

Kami ngalakukeun tés munggaran sareng dina waktos anu sami tugas-tugas énggal sumping ka kami. Kanyataan yén di tengah prosés, produser pilem nyata jeung cameraman ti VGIK, Ilya Serov, ngagabung tim - anjeunna ngawangun pigura, ditambahkeun cahaya bioskop tambahan sarta rada robah naskah kaulinan sangkan plot leuwih emosi, sarta gambarna leuwih dramatis jeung teater.

Ieu nyata ngaronjatkeun kualitas, tapi elemen mucunghul nu ogé diperlukeun pikeun nyambung ka relay jeung algoritma operasi prescribed.

masalah sejen éta laser: urang ngalakukeun sababaraha percobaan kalawan tipena béda tali jeung laser kakuatan béda. Pikeun tés, urang ngan saukur ngagantungkeun beurat sacara vertikal dina tali.

Nalika ngajalankeun kalawan token test, kakuatan diatur ngaliwatan PWM kirang ti 10% sarta henteu ngaruksak tali sanajan kalawan paparan panjang.

Pikeun mode tempur, laser ieu defocused kira-kira hiji titik kalayan diaméter 10 mm sarta eta confidently dibeuleum ngaliwatan tali kalayan beban ti jarak ngeunaan hiji méter.

Proyék hardware: kumaha urang ngawangun kamar kalayan quest hacker
Jadi laser nu digawé sampurna dina tés

Nalika urang mimiti nguji sagalana katuhu dina kamar dina beurat ditunda, tétéla yén securing laser aman teu jadi gampang. Lajeng, nalika tali nundutan, éta lebur, manjang tur pindah kaluar tina fokus aslina.

Proyék hardware: kumaha urang ngawangun kamar kalayan quest hacker
Tapi éta henteu deui dianggo sapertos kitu: talina ngageser

Ilya mindahkeun laser ka tungtung kamar sabalikna tali ambéh sinar laser bakal meuntas sakabéh panggung sarta kasampak geulis di pigura, nu dua kali jarak.

Saatos ngalaksanakeun sababaraha percobaan deui sareng ngaduruk tali anu parantos aya dina perang, urang mutuskeun pikeun henteu nyiksa nasib sareng ngamankeun motong tali nganggo kawat nichrome. Éta ngancurkeun benang 120 detik saatos ngaktipkeun laser dina mode tempur. Urang mutuskeun pikeun hardcode ieu, kitu ogé disconnection tina kawat jeung ignition tina bom haseup nalika kontak separation ieu dipicu, langsung kana hardware tina mikrokontroler nu.

Proyék hardware: kumaha urang ngawangun kamar kalayan quest hacker
Benang anu ahirna kaduruk ngaliwatan tali kaluar-layar

Ku kituna, tugas katilu mucunghul yén Arduino direngsekeun - pikeun ngerjakeun runtuyan pakait sareng palaksanaan paréntah ieu.

Urang ogé mutuskeun hiji masihan Arduino kudu cacah duit dina TV jeung ngajalankeun shredder nu. Mimitina, éta dianggap yén backend bakal ngalakukeun ieu sareng kasaimbangan ayeuna bakal katingali dina halaman wéb, sareng dina TV urang bakal nunjukkeun koméntar ti YouTube salaku unsur interaktif tambahan, nyarioskeun ka pemirsa yén acara di rohangan lumangsung sacara nyata. waktos.

Tapi salila uji ngajalankeun, Ilya melong adegan jeung ngusulkeun némbongkeun kasaimbangan game dina layar pangbadagna: sabaraha duit masih ditinggalkeun, sabaraha geus didahar, sarta undur-unduran ka mimiti hareup shredder nu.

Urang dihijikeun Arduino kana waktos ayeuna: unggal jam pinuh shredder dimimitian. Gambar ieu dipintonkeun dina TV ngagunakeun rasberry, anu dina momen anu geus narima requests ti server na dikirim ka arduino pikeun palaksanaan. Gambar sareng indikator moneter digambar ku nelepon konsol utiliti fim sapertos kieu

image = subprocess.Popen(["fim", "-q", "-r", "1920×1080", fim_str]), где fim_str

Sarta eta kabentuk dumasar kana jumlah diperlukeun atawa waktu.

Kami ngahasilkeun gambar sateuacanna: kami ngan ukur nyandak pidéo anu siap-siap sareng timer sareng ngékspor 200 gambar.

Ieu mékanika anu diprogram kana salib. Nalika undur-undur ahir dimimitian, urang sadayana angkat ka situs, nyéépkeun alat pemadam seuneu sareng calik ngantosan seuneu (anu ngan ukur aya dina ayunan)

Kumaha cara ngadamel siaran anu tiasa dianggo salami saminggu: milih kaméra

Pikeun usaha, kami peryogi siaran kontinyu dina YouTube salami 7 dinten - éta persis anu kami setel salaku durasi maksimal pertandingan. Aya dua hal anu tiasa ngeureunkeun urang:

  1. Overheating kaméra alatan operasi kontinyu
  2. Pareum Internet

Kaméra kedah nyayogikeun sahenteuna gambar HD lengkep pikeun ngajantenkeun maén sareng ningali kamar nyaman.

Mimitina, urang ningali ka arah webcam anu diproduksi pikeun streamer. Kami ngirangan anggaran, janten kami henteu hoyong mésér kaméra, tapi, tétéla, aranjeunna henteu nyéwa. Dina waktos anu sami, urang sacara ajaib mendakan kaméra Xbox Kinect bohong di bumi kuring, dipasang di kamar kuring sareng ngamimitian siaran uji saminggu.

Kaméra digawé saé sareng henteu overheat, tapi Ilya ampir langsung perhatikeun yén éta henteu gaduh setélan, khususna mustahil pikeun nyetél paparan.

Ilya narékahan pikeun ngadeukeutkeun jinis siaran kana standar produksi pilem sareng pidéo: pikeun ngirimkeun pamandangan cahaya anu ngarobah dinamis kalayan sumber cahaya anu terang, latar anu poék sareng objék dina pigura. Dina waktos anu sami, kuring hoyong ngawétkeun élaborasi gambar boh dina sorotan sareng bayangan, kalayan sora digital minimal.

Ku alatan éta, sanajan Kinect kabukti bisa dipercaya dina tés jeung teu merlukeun kartu video newak (titik sejen gagal), urang mutuskeun pikeun abandon eta. Saatos tilu dinten nguji kaméra anu béda, Ilya milih Sony FDR-AX53 - camcorder leutik anu dipercaya anu murah pikeun nyéwa, tapi dina waktos anu sami gaduh réliabilitas anu cekap sareng ciri visual.

Kami nyéwa kaméra, dihurungkeun saminggu babarengan sareng kartu pidéo, sareng sadar yén kalayan éta kami tiasa ngandelkeun siaran kontinyu sapanjang sadayana usaha.

Nyieun pilem: pementasan panggung jeung cahaya

Gawe dina pencahyaan merlukeun rahmat tangtu; urang diperlukeun pikeun ngawangun skor cahaya kalayan hartosna minimal:

1. Katerangan objék lamun pamaén manggihan éta (laser, beurat), kitu ogé lampu konstan dina shredder nu. Di dieu kami nganggo dedolight 150 - alat pencahyaan pilem anu tiasa dipercaya sareng kompak kalayan lampu halogén tegangan-rendah, anu ngamungkinkeun anjeun pikeun museurkeun sinar dina objék anu khusus tanpa mangaruhan latar tukang sareng objék anu sanés.

2. Lampu kaulinan praktis - lampu méja, lampu lantai, béntang, Garland. Sadaya lampu praktis ieu harmoniously disebarkeun dina pigura pikeun nyaangan wewengkon gambar, aya lampu LED kalawan suhu warna 3200K jero, lampu di lantai ditutupan ku saringan foil Rosco beureum pikeun nyieun hiji aksen warna mahiwal.

Proyék hardware: kumaha urang ngawangun kamar kalayan quest hacker
Abdi insinyur di ibu abdi atanapi peluncuran isukan

Kumaha urang ditangtayungan internét jeung listrik

Aranjeunna ngadeukeutan masalah kasabaran kasalahan ampir sapertos di pusat data: aranjeunna mutuskeun henteu nyimpang tina prinsip dasar sareng ditangtayungan dumasar kana skéma N + 1 biasa.

Upami siaran di YouTube lirén, ieu hartosna mustahil pikeun nyambungkeun deui nganggo tautan anu sami sareng neraskeun aliran. Ieu momen kritis, sarta kamar ieu lokasina di kantor biasa.

Pikeun ieu kami nganggo router basis OpenWRT sareng pakét mwan3. Éta otomatis nguji kasadiaan saluran unggal 5 detik sareng, upami aya istirahat, gentos kana modem cadangan sareng Yota. Hasilna, pindah ka saluran cadangan lumangsung kirang ti hiji menit.
Proyék hardware: kumaha urang ngawangun kamar kalayan quest hacker
Éta ogé penting pikeun ngaleungitkeun pemadaman listrik, sabab bahkan lonjakan listrik jangka pondok bakal nyababkeun reboot sadaya komputer.

Ku alatan éta, urang nyandak hiji ippon innova g2 3000 catu daya uninterruptible, nu bakal nyadangkeun sadaya alat kaulinan: total konsumsi kakuatan sistem urang sabudeureun 300 Watts. Ieu bakal lepas pikeun 75 menit, cukup keur kaperluan urang.

Kami mutuskeun pikeun ngorbankeun cahaya tambahan upami listrik di kamar pareum - éta henteu nyambung ka catu daya anu teu tiasa diganggu.

Ngahaturkeun

  • Ka sakabeh tim RUVDS, Anu nimukeun sarta dilaksanakeun kaulinan.
  • Kapisah, ka pangurus RUVDS, pikeun ngawaskeun pagawéan server, beban éta ditampi sareng sadayana damel sapertos biasa.
  • Pikeun bos pangalusna ntsaplin pikeun kanyataan yén dina respon kana panggero, "Kuring boga hiji gagasan: urang bakal nyandak server, nempatkeun hiji akuarium di dinya, sarta ngagantung beurat luhureun eta, boom, bang, sagalana geus banjir ku cai, sirkuit pondok, seuneu. !” anjeunna salawasna yakin nyebutkeun "lakukeun eta!"
  • Спасибо Tilda Publishing sarta misah ka Mikhail Karpov pikeun henteu ngan pasamoan satengahna sarta ngamungkinkeun urang pikeun ngalanggar Sarat jeung Kaayaan Pamakéan, tapi malah masihan kami rekening bisnis pikeun sataun lamun urang ngobrol ngeunaan proyék.
  • Ilya Serov S_ILya pikeun gabung jeung jadi ko-produser proyék, siap ngorondang satengah peuting, gluing strip LED, pilari solusi teknis na ngalakukeun sagalana ku kituna urang meunang pilem nyata.
  • zhovner pikeun salawasna siap ngahemat kaayaan nalika batur threw up leungeun maranéhna, borscht, rojongan moral jeung paguneman nepi ka isuk.
  • samat pikeun ngahubungkeun kami jeung pentester pangalusna di nagara, anu disarankan kami sarta mantuan kami kalawan tugas.
  • daniemilk pikeun produksi video tiis sadaya video.
  • delphe pikeun leungeun teguh sarta kahayang pikeun digawé nepi ka panungtungan.
  • Nya Dodo Pizza Téknik pikeun ampir salawasna haneut pizza.

Sareng sukur anu paling ageung ka para pamaén pikeun sadaya émosi anu kami alami nalika anjeun nyéépkeun usaha dua dinten tanpa sare sareng ngantunkeun padamelan.

Artikel sejenna ngeunaan quest ngancurkeun server

Proyék hardware: kumaha urang ngawangun kamar kalayan quest hacker

sumber: www.habr.com

Tambahkeun komentar