
Բովանդակություն:
2025 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2025-01-23 14:48

Commբոսաշրջության ընթացքում ոտնձգությունների զոհ լինելը շատ մարդկանց, հատկապես կանանց համար սովորական բան է: Ինչպիսին էլ որ լինի երկիրը, հասարակական տրանսպորտով երթևեկելը հաճախ հավասարազոր է իմանալու, որ կարող եք սեռական ոտնձգությունների ենթարկվել կամ նույնիսկ հետևել տուն գնալիս: Այդ իրավիճակներում միշտ չէ, որ հեշտ է արձագանքել և գնահատել սպառնալիքը ՝ պարզ վախից ՝ սկսած ահազանգից մինչև իրական մտահոգություն, որ ինչ -որ վատ բան կարող է տեղի ունենալ: Վախը միշտ գործոն է, և չցանկանալը հրավիրել հնարավոր ոտնձգողի ուշադրությունը, կարող է խանգարել մեզ զգուշացնել մեկին, ում վստահում ենք:
Talos- ը փոքրիկ սարք է, որը միանում է ձեր հեռախոսին և թույլ է տալիս տեքստ ուղարկել ձեր նախընտրած անձին: SMS- ն ինքնաբերաբար ներառում է ձեր վերջին հայտնի վայրը և ձեր նախընտրած նախապես ձայնագրված տեքստը: Պարզ բանալու շղթայի տեսքով, Talos- ը մնում է ձեր պայուսակին և թույլ է տալիս ակտիվորեն ակտիվացնել այն ՝ սեղմելով այն, ինչը խթանում է տեքստային հաղորդագրության ուղարկումը: Lowածր էներգիայի սպառումը նշանակում է, որ պետք չէ ամեն օր լիցքավորել այն և վտանգել մոռանալ այն, կամ պարզապես ամեն օր ձեզ հիշեցնել սպառնալիքի մասին:
Այս նախագծի երեք մաս կա.
- Ֆիզիկական մոդուլ. Ես օգտագործել եմ Puck-js մոդուլ, որը հիմնված է nRF52832 մոդուլի վրա և կարող է ծրագրավորվել Javascript- ի միջոցով Espruino- Android հավելվածի շնորհիվ. Ես ստեղծեցի մի պարզ ծրագիր, որը միանում է մոդուլին- Keychain կազմ. Ես պատրաստեցի մի պարզ կափարիչը Puck JS- ի համար, կարծես պարզ բանալին
Պարագաներ
- Puck.js մոդուլ (https://www.puck-js.com)
- Android հեռախոս առնվազն 8.0 տարբերակով- Տեղադրված է Android Studio- ով համակարգիչ
- 3D տպիչ (ըստ ցանկության)
Քայլ 1: Ակնարկ

Այս դիագրամը պետք է ձեզ պատկերացում կազմի տարբեր բաղադրիչների մասին. Puck մոդուլի ծածկագիրն ինքնին իսկապես պարզ է, և մենք թույլ ենք տալիս Android հավելվածին հոգ տանել կապի մասին, այլ ոչ թե հեռախոսի համար փնտրել Puck- ը: Մենք կօգտագործենք Bluetooth Low Energy- ը և դրա բնութագրերը ՝ հավելվածի և սարքի միջև հաղորդակցվելու համար ՝ մարտկոցի կյանքը պահպանելու համար
Քայլ 2: uckրագրավորում Puck- ին

Puck-js.com կայքում ստուգելուց հետո, որ ձեր դիտարկիչն ու համակարգիչը աջակցում են Web Bluetooth- ին, գնացեք www.espruino.com/ide և միացեք ձեր Puck- ին ՝ կտտացնելով էջի վերին ձախ անկյունում գտնվող վարդակի պատկերակին:
Այնուհետև կարող եք պատճենել և տեղադրեք կցված ֆայլից ծածկագիրը խմբագրիչի մեջ և ուղարկել Puck- ին:
Կոդի առաջին մասում մենք սահմանում ենք Blink և updateCharacteristic գործառույթը, որը հետագայում կօգտագործենք ծածկագրում: UpdateCharacteristic գործառույթում մենք ընթացիկ ամսաթիվը հատկացնում ենք բնութագրին `համոզվելու համար, որ այն իսկապես կդիտվի որպես նոր արժեք: Այնուհետև մենք տեղեկացնում ենք այս թարմացման ցանկացած բաժանորդի:
Այդ հայտարարություններից հետո մուտքագրեք այն կոդը, որը կկատարվի.
56 -րդ տողում գտնվող ծածկագիրը թույլ է տալիս ստանալ ձեր Puck- ի ֆիզիկական հասցեն, որը ձեզ հարկավոր կլինի Android ծրագրում: սքրինշոթ) Այս արժեքը ստանալուց հետո կարող եք մեկնաբանել տողը կամ թողնել այն այդպես:
Դրանից հետո մենք սահմանում ենք մեկ սովորական BLE ծառայություն (UUID- ները պատահական արժեքներ են) `երեք տարբեր բնութագրերով, որոնցից բոլորը ծանուցելի են: Մենք չենք օգտագործի արժեքները ՝ մեր ուղերձը փոխանցելու համար, այլ պարզապես այն, որ դրանք փոխվել են:
78 -րդ և 79 -րդ տողերում մենք որոշ ունկնդիրներ ենք դնում, որոնք կհանգեցնեն ինտեգրված LED- ի թարթելուն, երբ սարքը միացված է կամ անջատված է այլ Bluetooth սարքից: Վերջապես, 81 -րդ տողում մենք ինտեգրված կոճակին միացնում ենք ընդհատում, որպեսզի այն սեղմելով կանչվի թարմացում
Քայլ 3: Ստեղծեք Android հավելված




Քանի որ ամբողջ ծրագիրը ներառում է բավականին ծանր գրադարաններ, ես կցել եմ միայն աղբյուրի ֆայլերը և հավելվածի gradle ֆայլը կցված zip- ի ներսում: Այն աշխատեցնելու համար հարկավոր է գործարկել Android ստուդիան և ստեղծել նոր նախագիծ (ընտրեք Դատարկ գործունեություն, տես սքրինշոթը): Ընտրեք 26 (Android 8.0, Oreo) որպես հավելվածի նվազագույն տարբերակ, քանի որ իմ գրած կոդի մի մասը օգտագործում է մինչ այդ գոյություն չունեցող API- ներ: Երբ ձեր նախագիծը կարգավորվի, դուք կունենաք build.gradle ֆայլ Հավելվածի համար (նշված է build.gradle - Մոդուլ. Հավելված): Բացեք այն և պատճենեք բովանդակությունը zip ֆայլից. IDE- ն ձեզ կառաջարկի կատարել Gradle համաժամացում, որի ընթացքում այն կներբեռնի սկանդինավյան գրադարանը, որի վրա հենվում է ծրագիրը: Այնուհետև կարող եք մեկ անգամ գործարկել ծրագիրը և ստուգել, որ այն աշխատում է:
Երբ ծրագիրը տեղադրվի ձեր սարքում, գնացեք ձեր կարգավորումների ընտրացանկ, ընտրեք sրագրեր և գտեք ծրագիրը ցուցակում: Ընտրեք այն և կտտացրեք «Autorisations»: Այնտեղ դուք կունենաք մի քանի ռադիո կոճակներ, որոնք լռելյայն անջատված կլինեն. Ստուգեք դրանք բոլորը `համոզվելու համար, որ հավելվածին հասանելի է այն ամենն, ինչ անհրաժեշտ է:
Այժմ կարող եք ներմուծել սկզբնական ֆայլերը zip արխիվից. Դրա ամենահեշտ ձևը նոր դասեր ստեղծելն է (աջ սեղմում, նոր Kotlin ֆայլ/դաս) և նրանց տալ նույն անունը, ինչ արխիվից: Երբ դասարանի ֆայլը բաց է, դուք ազատ եք պատճենել և տեղադրել կոդը դրանց մեջ:
Եթե ցանկանում եք օգտագործել միայն ծրագիրը, պարզապես փոփոխեք BTService դասի 31 -րդ տողի հասցեն և փոխարենը մուտքագրեք նախորդ քայլին ձեռք բերված հասցեն: Այժմ դուք պետք է կարողանաք կազմել ծրագիրը և գործարկել այն ձեր սարքում:
Եթե ցանկանում եք ավելին իմանալ, թե ինչպես է աշխատում ծրագիրը, կարդացեք ՝-)
Հետևյալ դիագրամը ձեզ ավելի լավ կհասկանա, թե ինչ է կատարվում հավելվածի ներսում. նրանք կցանկանային կապ հաստատել Talos- ի օգտագործման ժամանակ, ինչպես նաև նրանց ուղարկելու տեքստը:
- BTS ծառայությունը առաջին պլանի ծառայություն է, ինչը նշանակում է, որ երբ այն գործարկվի, այն ստեղծում է մշտական ծանուցումներ, որոնք սահմանափակում են Android- ի կողմից սպանված ծառայության նմանությունը: Այս ծառայությունը փորձում է միանալ Talos- ին ՝ օգտագործելով Bluetooth Low Energy- ի դասական գործընթացը. Ես օգտագործել եմ Nordic- ի ընտրանքային ծածկագիրը և գտած մյուս ռեսուրսները: Հենց հիմա, այն հատուկ տեսք ունի Puck- ի UUID- ի համար. Դուք պետք է փոխեք այս արժեքը (private val remoteMacAddress = "CF: EB: 2F: 6E: 33: 30"), որպեսզի համապատասխանի ձեր սարքի նախորդ քայլին տրված սեփական հասցեին: Սարքը գտնելուց և ստուգելուց, թե արդյոք այն ունի այն ծառայությունը, որը մենք փնտրում ենք, այն բաժանորդագրվում է այն բնութագրի ծանուցումներին, որոնք կթարմացվեն, երբ օգտագործողը սեղմում է կոճակը:
Երբ BTS ծառայությունը ստանա թարմացում այս բնութագրի համար, այն կջնջի LocalBroadcast օբյեկտ, որպեսզի ծրագրի մյուս բաղադրիչներն արձագանքեն: Այն նաև կզանգահարի SMSIntentService ՝ SMS ուղարկելու համար
- SMSIntentService- ը կհեռացնի հեռախոսահամարը և տեքստը SharePreferences- ից, որպեսզի օգտագործողի կողմից մուտքագրված վերջին արժեքները լինեն: Այնուհետև այն ինքնաբերաբար կուղարկի SMS- ն ՝ առանց օգտվողին փոխազդելու ծրագրի հետ, և SMS- ին կավելացնի օգտվողի վերջին հայտնի վայրը:
Քայլ 4: Գործի ձևավորում
Ներկայիս գործը, որի հետ գալիս է Puck- ը, արդեն ներառում է մի փոքրիկ օղակ, որպեսզի այն ամրացվի բանալիներին, այնպես որ մենք գրեթե կարող էինք այդպես թողնել այն: Ամբողջ սպիտակ սիլիցիումային ծածկը, որը պատահաբար զգում էի, դեռ բավականին տարօրինակ էր ինձ համար, որպեսզի որևէ կասկած չգրավի, ես նախագծեցի մի պարզ առարկա, որը պետք է դնեմ Փախի վրա: Նրանք ասում են, որ նկարը արժե հազար բառ
Քայլ 5: Ամեն ինչ միասին դնել
Այժմ, երբ դուք ունեք տարբեր բաղադրիչներ, ժամանակն է դրանք համատեղել: Puck մոդուլի ներկայիս պատյանը արդեն ունի մի անցք, որը կարող եք օգտագործել շղթա տեղադրելու համար: Ես պատահաբար ունեի հին բանալին, որը ես հանեցի, բայց դրանք նույնպես կարող եք հեշտությամբ գնել: Տափակաբերան աքցան օգտագործելով ՝ հանեք մատանին. Երբ օղակի բացվածքը տեղավորեք, յուրաքանչյուր կեսը շարժեք հակառակ ուղղություններով ՝ մեկը դեպի ձեզ, իսկ մյուսը ՝ ձեզանից հեռու: Այնուհետև կարող եք օղակը տեղադրել Puck- ի մեջ և հետ փակել այն:
3D տպեք ձեր ստեղծած դիզայնը. Ես օգտագործեցի մանուշակագույն PLA և սեղմեցի վերևում Puck- ի վրա
Խորհուրդ ենք տալիս:
Անհանգիստ պահելով պարզ ինտերնետային ռադիո. KISSIR ՝ 13 քայլ

Անհանգիստ պահելով պարզ ինտերնետային ռադիոն. ՔԻՍԻՐ. Երբեմն այն պարզապես պետք է շոշափելի լինի: Ոչ մի տեսակի ինտերֆեյս: Պարզապես կոճակներ: Ազնվամորու Pi- ն որպես ինտերնետային ռադիո նվագարկիչ նորություն չէ, և կան բազմաթիվ հրահանգներ, թե ինչպես կարելի է ստեղծել ինտերնետային ռադիո նվագարկիչ `օգտագործելով ազնվամորի պի կամ դրա հետ
Ապահով մուտք գործեք ձեր Pi- ն աշխարհի ցանկացած վայրից. 7 քայլ

Ապահով մուտք գործեք ձեր Pi աշխարհի ցանկացած վայրից. Pi- ի վրա շուրջօրյա աշխատող մի քանի ծրագիր ունեմ: Ամեն անգամ, երբ ես դուրս էի գալիս իմ տնից, շատ դժվար էր դառնում ստուգել Պիի առողջական վիճակը և կարգավիճակը: Հետագայում ես հաղթահարեցի փոքր արգելքը `օգտագործելով ngrok: Սարքին դրսից մուտք գործելը հնարավորություն է տալիս
Սովորելու ընթացքում ձեր երեխաներին դադարեցրեք խաղերից. 4 քայլ

Սովորելիս ձեր երեխաներին թույլ մի տվեք խաղալ Շատ ուսանողներ տառապում են խաղեր խաղալուց `սովորելու փոխարեն, ինչը նրանց վատ գնահատականներ է տալիս: Նողները զայրացած և անհանգստացած են իրենց երեխայի համար, ուստի որոշեցին
MidiMatrix - Հեռարձակեք ձեր անունը կատարման ընթացքում. 3 քայլ

MidiMatrix - Հեռարձակեք ձեր անունը կատարման ընթացքում. Դուք չեք կարող բաց թողնել հաղորդագրություններ ցուցադրող LED մատրիցա: Դա հիանալի միջոց է ձեր անունը/կայքը/ինստագրամը և այլն: Ոլորվող հաղորդագրություններ ցուցադրելուց բացի, այս դիզայնը համաժամացվում է MIDI ժամացույցի հետ, որը 4/4 պատկերներով ցուցադրում է անիմացիաներ
Գնացեք ճանապարհորդության. 16 քայլ (նկարներով)

Գնացեք ճանապարհորդության. Այսպիսով, ես բանտարկվեցի, երբ հանկարծ, ինչպես խավարի միջից փայլող լույսը, Squid Labs- ում պրակտիկանտին ուղղված առաջարկը բաժանեց իմ կապանքները, և ես ազատվեցի: Միայն մեկ նախազգուշացում կար. Ես ստիպված էի ամբողջ երկրով ճանապարհ գնալ դեպի արևոտ Ալամեդա