
Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-23 14:54

Tapti priekabiavimo auka važiuojant į darbą ir atgal yra gana įprastas dalykas daugeliui žmonių, ypač moterų. Kad ir kokia būtų šalis, viešasis transportas dažnai prilygsta žinojimui, kad gali būti seksualiai priekabiaujamas ar net sekamas vaikščiojant namo. Tokiose situacijose ne visada lengva reaguoti ir įvertinti grėsmę - nuo paprasčiausio išgąsčio nuo skambučio iki tikro susirūpinimo, kad gali atsitikti kažkas blogo. Baimė visada yra veiksnys, o nenorėjimas atkreipti potencialaus priekabiautojo dėmesio gali neleisti mums įspėti ką nors, kuo pasitikime.
„Talos“yra mažas įrenginys, jungiantis prie jūsų telefono ir leidžiantis išsiųsti tekstą pasirinktam asmeniui. Į SMS automatiškai įtraukiama paskutinė žinoma vieta ir iš anksto įrašytas jūsų pasirinktas tekstas. Pasirodžius paprastam raktų pakabukui, „Talos“lieka prikabintas prie jūsų krepšio ir leidžia diskretiškai jį suaktyvinti paspaudus, o tai sukelia teksto pranešimo siuntimą. Dėl mažo energijos suvartojimo nereikia kasdien jo įkrauti ir rizikuoti jį pamiršti arba tiesiog kasdien priminti apie grėsmę, su kuria susiduriate.
Šį projektą sudaro trys dalys:
- Fizinis modulis: naudojau „Puck-js“modulį, kuris yra paremtas „nRF52832“moduliu ir gali būti užprogramuotas naudojant „Javascript“dėka „Espruino“- „Android“programa: sukūriau paprastą programą, kuri jungiasi prie modulio. „Puck JS“dangtelis atrodys kaip paprastas raktų pakabukas
Prekės
- „Puck.js“modulis (https://www.puck-js.com)
- „Android“telefonas su bent 8.0 versija- kompiuteris su įdiegta „Android Studio“
- 3D spausdintuvas (neprivaloma)
1 žingsnis: apžvalga

Ši schema turėtų parodyti įvairius komponentus: pats „Puck“modulio kodas yra tikrai paprastas, o mes leidžiame „Android“programai pasirūpinti ryšiu, o ne „Puck“nuskaityti telefoną. Mes naudosime „Bluetooth Low Energy“ir jo charakteristikas bendraudami tarp programos ir įrenginio, kad akumuliatorius veiktų ilgiau
2 žingsnis: Puck programavimas

Patikrinę „puck-js.com“, kad jūsų naršyklė ir kompiuteris palaiko žiniatinklio „Bluetooth“, eikite į www.espruino.com/ide ir prisijunkite prie „Puck“spustelėdami kištuko piktogramą viršutiniame kairiajame puslapio kampe.
Tada galite nukopijuoti ir įklijuoti kodą iš pridėto failo į redaktorių ir nusiųsti jį į „Puck“.
Pirmoje kodo dalyje apibrėžiame funkciją „Blink“ir „updateCharacteristic“, kurią vėliau naudosime kodu. Funkcijoje updateCharacterical mes priskiriame dabartinę datos datą, kad įsitikintume, jog ji tikrai bus laikoma nauja verte. Tada pranešame bet kuriam šio naujinimo abonentui.
Po šių deklaracijų į kodą, kuris bus vykdomas:
56 eilutėje esantis kodas leidžia nuskaityti savo ritulio fizinį adresą, kurį turėsite kovoti „Android“programoje: atšaukite šią eilutę ir adresą pamatysite žurnaluose kairėje IDE pusėje (žr. ekrano kopija). Gavę šią vertę, galite komentuoti eilutę arba palikti ją taip.
Po to mes apibrėžiame vieną pasirinktinę BLE paslaugą (UUID yra atsitiktinės vertės) su trimis skirtingomis charakteristikomis, apie kurias reikia pranešti. Savo žinioms perduoti naudosime ne pačias vertybes, o tik tai, kad jos pasikeitė.
78 ir 79 eilutėse mes nustatėme kai kuriuos klausytojus, dėl kurių integruotas šviesos diodas mirksės, kai įrenginys bus prijungtas arba atjungtas nuo kito „Bluetooth“įrenginio. Galiausiai 81 eilutėje prie integruoto mygtuko pridedame pertraukimą, kad paspaudus jį būtų iškviesta atnaujinimo charakteristika
3 veiksmas: sukurkite „Android“programą




Kadangi visoje programoje yra keletas gana sunkių bibliotekų, pridedamame ZIP faile įtraukiau tik šaltinio failus ir programos laipsnio failą. Kad tai veiktų, turite paleisti „Android“studiją ir sukurti naują projektą (pasirinkite „Tuščia veikla“, žr. Ekrano kopiją). Pasirinkite 26 („Android 8.0“, „Oreo“) kaip minimalią programos versiją, nes kai kurie mano parašyti kodai naudoja API, kurių anksčiau nebuvo. Kai jūsų projektas bus nustatytas, turėsite programos failą build.gradle (pažymėtas build.gradle - Module: App). Atidarykite jį ir nukopijuokite turinį iš ZIP failo: IDE paragins jus atlikti „Gradle“sinchronizavimą, kurio metu ji atsisiųs Šiaurės šalių biblioteką, kuria remiasi programa. Tada galite vieną kartą paleisti programą ir patikrinti, ar ji veikia.
Kai programa bus įdiegta jūsų prietaise, eikite į nustatymų meniu, pasirinkite Programos ir raskite programą sąraše. Pasirinkite jį ir spustelėkite „Autorizacijos“. Čia turėsite kelis radijo mygtukus, kurie pagal numatytuosius nustatymus bus išjungti: patikrinkite juos visus, kad įsitikintumėte, jog programa turi prieigą prie visko, ko reikia.
Dabar galite importuoti šaltinio failus iš ZIP archyvo: lengviausias būdas tai padaryti yra sukurti naujas klases (dešiniuoju pelės mygtuku spustelėkite, naujas „Kotlin“failas/klasė) ir suteikti jiems tą patį pavadinimą, kaip ir iš archyvo. Kai klasės failas bus atidarytas, galėsite laisvai nukopijuoti ir įklijuoti kodą.
Jei norite naudoti tik programą, tiesiog pakeiskite „BTService“klasės 31 eilutės adresą ir įveskite adresą, kurį gavote atlikdami ankstesnį veiksmą. Dabar turėtumėte turėti galimybę surinkti programą ir paleisti ją savo įrenginyje!
Jei norite sužinoti daugiau apie programos veikimą, skaitykite toliau:-)
Ši diagrama padės geriau suprasti, kas vyksta programoje: - „MainActivity“yra ta, kurią vartotojas naudos tik kartą: jos pagrindinis tikslas yra, kad jie galėtų įvesti asmens telefono numerį jie norėtų susisiekti naudodamiesi „Talos“, taip pat tekstu jiems išsiųsti.
- „BTService“yra nauja informacija, o tai reiškia, kad kai ji paleidžiama, ji sukuria nuolatinius pranešimus, kurie riboja galimybę, kad „Android“nužudys paslaugą. Ši paslauga bando prisijungti prie „Talos“naudojant klasikinį „Bluetooth Low Energy“procesą - naudojau „Nordic“pavyzdinį kodą ir kitus išteklius, kuriuos galėjau rasti. Šiuo metu jis konkrečiai ieško ritulio UUID: turėtumėte pakeisti šią vertę (private val remoteMacAddress = "CF: EB: 2F: 6E: 33: 30"), kad ji atitiktų jūsų įrenginio adresą, gautą atlikus ankstesnį veiksmą. Suradęs įrenginį ir patikrinęs, ar jame yra mūsų ieškoma paslauga, jis užsisako pranešimus apie charakteristikas, kurios bus atnaujintos, kai tik vartotojas paspaudžia mygtuką.
Kai „BTService“gaus šios charakteristikos atnaujinimą, ji suaktyvins „LocalBroadcast“objektą, kad kiti programos komponentai galėtų reaguoti. Ji taip pat paskambins SMSIntentService, kad ji išsiųstų SMS
- „SMSIntentService“nuskaitys telefono numerį ir tekstą iš „SharePreferences“, kad vartotojas įvestų paskutines vertes. Tada jis automatiškai išsiųs SMS, vartotojui nesąveikaujant su programa, ir prie SMS pridės paskutinę žinomą vartotojo vietą.
4 žingsnis: dėklo projektavimas
Dabartiniame „Puck“komplekte jau yra maža kilpa, kad jis būtų pritvirtintas prie raktų pakabuko, todėl beveik galėtume tai palikti. Visiškai balti silicio gaubtai, kurie man atsitiko, vis dar atrodė gana keistai, todėl, kad jie nesukeltų jokių įtarimų, suprojektavau paprastą daiktą, kurį galiu uždėti ant ritulio. Jie sako, kad nuotrauka verta tūkstančio žodžių, aš maniau, kad duosiu jums 25 vaizdus per sekundę: šiame vaizdo įraše pamatysite, kaip aš panaudojau „Fusion 360“kurdamas dizainą, įskaitant mano naudojamas komandas ir nuorodas:
5 žingsnis: sudėkite viską kartu
Dabar, kai turite skirtingus komponentus, laikas juos sujungti! Dabartiniame „Puck“modulio korpuse jau yra skylė, kuria galite įterpti grandinę - atsitiktinai turėjau seną raktų pakabuką, kurį išardžiau, bet jūs taip pat galite juos lengvai nusipirkti. Išardykite žiedą replėmis - suradę žiedo angą, pastumkite kiekvieną pusę priešingomis kryptimis, vieną link savęs, o kitą nuo savęs. Tada galite įkišti žiedą į „Puck“ir uždaryti atgal.
3D spausdinkite ką tik sukurtą dizainą - aš panaudojau violetinę PLA ir užsifiksavau ant „Puck“
Rekomenduojamas:
„Steam Punk“jūsų UPS, kad jūsų „Wi-Fi“maršrutizatorius veiktų valandomis: 4 žingsniai (su nuotraukomis)

„Steam Punk“jūsų UPS, kad jūsų „Wi-Fi“maršrutizatorius veiktų valandomis: yra kažkas iš esmės prieštaraujančio, kad jūsų UPS konvertuotų 12 V nuolatinės srovės akumuliatoriaus energiją į 220 V kintamosios srovės maitinimą, kad transformatoriai, kuriuose veikia jūsų maršrutizatorius ir pluošto ONT, galėtų juos vėl paversti 12V DC! Jūs taip pat priešinatės [paprastai
Šlifuoto plieno „iPod“atgal!: 6 žingsniai

Šlifuoto plieno „iPod“atgal!: Ieškote naujos „iPod“išvaizdos? Nusibodo chromuota nugara, kuri subraižo vien į ją žiūrint? Na, dabar jūs galite eksponentiškai pagerinti bendrą „iPod“išvaizdą (mano nuomone), šepetėliu! Na, iš tikrųjų, jūs ketinate įdėti l
Atgal į ateitį antigravitacinis vandens lašas - Seeeduino Lotus: 5 žingsniai

Grįžkite į ateitį Antigravitacinis vandens lašas - Seeeduino Lotus: „StoryTime“yra tarsi srautas, stumiantis žmones į priekį. Ar yra akimirka, kai norite, kad laikas sustotų ar grįžtų atgal? Atidžiai pažiūrėkite į vandens lašą. Ar jis varva žemyn, ar kyla aukštyn? Kūrinį įkvėpė regėjimo suvokimo fenomenas
Saugaus skaitmeninio saugyklos kūrimas: 26 žingsniai

Saugaus skaitmeninio saugyklos kūrimas: maniau, kad pasidalinsiu saugaus skaitmeninio saugyklos kūrimo pagrindais naudojant „veracrypt“programinę įrangą. Aš jį naudojau kelerius metus kurdamas skaitmeninius saugyklas sau ir savo šeimai. tai galinga šifravimo programinė įranga ir labai universali, bet ne
Tarptautinės kelionės su „iPhone“: 6 žingsniai

Tarptautinės kelionės su „IPhone“: rugsėjo pradžioje pagaliau pailsėjau nuo darbų ir apsilankiau Vokietija porą savaičių. Kadangi nemoku vokiečių kalbos ir praėjo daugiau nei dešimtmetis nuo tada, kai paskutinį kartą ten buvau, džiaugiausi galimybe pasiimti „iPhone“