
წიგნების აკრძალული ბიბლიოთეკა Wi-Fi ჭკვიან ნათურაში
ინჟინერმა ჭკვიანი ნათურა პატარა სერვერად აქცია, რომელიც ღია Wi-Fi-ით აკრძალულ წიგნებს ავრცელებს — პროექტი ციფრულ „სათავსოებად“ ქალაქის ქუჩებში განთავსების იდეაზეა აგებული.
Wi-Fi ჭკვიანი ნათურა, რომელიც ღია ქსელს ავრცელებს და გარშემომყოფებს აკრძალულ წიგნებს სთავაზობს — ესაა Banned Book Library, ჰარდვეარ-პროექტი, რომელიც რიკ ოსგუდმა ამ კვირაში გამოაქვეყნა. მისივე აღწერით, ეს არის „კიბერპანკური ციფრული სათავსო“: იაფფასიანი მოწყობილობა, რომელიც ჩვეულებრივ ნათურას ჰგავს, მაგრამ შიგნით პატარა ვებ-სერვერი მუშაობს იმ წიგნებით, რომლებიც სადღაც აკრძალულია.
იდეა მას ბენ ბრაუნის მოთხრობა „Library“-ს შემდეგ გაუჩნდა — მასში პერსონაჟები ციფრულ არქივს ინახავენ, სადაც შემოქმედებითი ნამუშევრები, ინსტრუქციები და 3D მოდელებია თავმოყრილი. ნათურა ძვირი არ ღირს, ადვილად არ შეამჩნევენ და, შესაბამისად, ქალაქში ასეთი მოწყობილობების დატოვება ფინანსურადაც შესაძლებელია.
Tasmota, ESP32 და დამანგრეველი დაშლა
ოსგუდმა იდეა ადგილობრივი DEFCON-ის ჯგუფის წევრებს გაუზიარა. ჰომ-ავტომატიზაციის გამოცდილების მქონე მეგობარმა Tasmota ურჩია — ღია პროგრამული უზრუნველყოფა, რომელიც ჭკვიან მოწყობილობებს ღრუბლოვან სერვისებს ათავისუფლებს და ლოკალურ კონტროლს აძლევს. მან იპოვა გამყიდველი, რომელიც ნათურებს Tasmota-ს წინასწარ დაყენებული ვერსიით ჰყიდის: ESP32C3 ჩიპი 4 მბ ფლეშ-მეხსიერებით.
პირველი ნათურის დაშლამ აჩვენა, რომ დედაპლატა რეზინისებრი ნაერთითაა ჩასხმული — მისი ამოღება უკიდურესად რთულია და მოწყობილობას აფუჭებს. ამიტომ microSD-ბარათის შედუღების იდეა მიატოვა: პროექტი მინიმალურ ინსტრუმენტებს უნდა მოითხოვდეს. მან მხოლოდ სერიული პროგრამირების სადენები შეუდუღა, esptool-ით ორიგინალი firmware ჩამოტვირთა და Tasmota-ს შეცვლის ნაცვლად Arduino-ზე დაწერილი საკუთარი კოდით დაიწყო მუშაობა.
მეხსიერების პრობლემა: წიგნებისთვის 320 კბ
4 მბ ფლეშ-მეხსიერება ბიბლიოთეკისთვის ცოტაა. პარტიციების ცხრილის გაანალიზებით გაირკვა, რომ წიგნებისთვის მხოლოდ spiffs-ის დანაყოფი რჩება — 320 კბ, რაც მაქსიმუმ ერთ ელექტრონულ წიგნს ეყოფა. ოსგუდმა ხელახლა დაწერა პარტიციების ცხრილი: app0 დანაყოფი შეამცირა, spiffs კი 2 მბ-მდე გაზარდა. ეს რისკიანი ოპერაციაა: საჭირო გახდა ESP-IDF-ზე გადასვლა, სადაც ფლეშის ჩაწერა ცალკე ნებართვით ირთვება.
ცალკე პრობლემა უსაფრთხოება იყო: nvs დანაყოფში Wi-Fi-ის სახელი და პაროლი ღიად ინახება, ამიტომ firmware-ს ის წაშლილ მდგომარეობაში ტოვებს. Tasmota-ს safeboot-მა კი სწორედ nvs-დან უნდა წაიკითხოს ქსელის მონაცემები, ამიტომ ავტორმა საკუთარი მინიმალური safeboot firmware დაწერა.
საიტი, ადმინ-პანელი და captive portal
ვებ-ინტერფეისი ხელით არის დაწერილი: მთავარ გვერდზე ყვითელი კონტეინერის სურათია ბენ ბრაუნის მოთხრობის მინიშნებად, ხოლო წიგნების სიაში მითითებულია სათაური, ავტორი და ის მიზეზი, რის გამოც წიგნი გამოწვევის ან აკრძალვის წინაშე აღმოჩნდა. /admin გვერდი პაროლითაა დაცული და საშუალებას გაძლევთ LED-ის ფერი შეცვალოთ იმ ნათურის ფერს დაემთხვიოთ, რომელსაც მოწყობილობა ცვლის.
მომხმარებელს სერვერამდე მისასვლელად captive portal ეხმარება: DNS სერვერი ყველა მოთხოვნას საკუთარ IP-მისამართს უბრუნებს, ხოლო Windows-ის, Android-ის, iOS-ისა და Firefox-ის შემოწმების მოთხოვნები ბიბლიოთეკის გვერდზე გადამისამართდება.
შეზღუდვა, რომელიც მოსწონს
4 მბ მთლიანი მეხსიერება ნიშნავს, რომ ერთ ნათურაზე მხოლოდ რამდენიმე წიგნი დაეტევა — ერთი epub დაახლოებით 350 კბ-ია. თავიდან ეს იმედგაცრუებადი იყო, მაგრამ ავტორს ეს შეზღუდვა მოგვიანებით მოეწონა: ყოველი სათავსო მისი შემქმნელის არჩევანს ასახავს, ხოლო ერთ ქალაქში რამდენიმე განსხვავებული შიგთავსის მქონე მოწყობილობა უფრო საინტერესოს ხდის ძიებას.
SiTech — AI-გაძლიერებული ვებ დეველოპმენტი
ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.