Talos, abyste byli v bezpečí při dojíždění: 5 kroků
Talos, abyste byli v bezpečí při dojíždění: 5 kroků
Anonim
Talos, udržujeme vás v bezpečí při dojíždění
Talos, udržujeme vás v bezpečí při dojíždění

Být obětí obtěžování při dojíždění je pro mnoho lidí, zejména žen, celkem běžná věc. Bez ohledu na zemi se veřejná doprava často rovná vědomí, že můžete být sexuálně obtěžováni nebo dokonce sledováni při chůzi domů. V takových situacích není vždy snadné zareagovat a posoudit hrozbu, od pouhého vyděšení od zavolání kočky až po skutečnou obavu, že by se mohlo stát něco špatného. Faktorem je vždy strach, a když nechceme upoutat pozornost potenciálního obtěžovatele, může nám to zabránit upozornit někoho, komu důvěřujeme.

Talos je malé zařízení, které se připojuje k vašemu telefonu a umožňuje vám odeslat textové zprávě osobě, kterou si vyberete. SMS automaticky obsahuje vaše poslední známé umístění a předem nahraný text podle vašeho výběru. Díky vzhledu jednoduché klíčenky zůstane Talos připnutý ve vaší tašce a umožní vám ji diskrétně aktivovat stisknutím, což spustí odeslání textové zprávy. Jeho nízká spotřeba energie znamená, že jej nemusíte nabíjet každý den a riskovat, že na něj zapomenete - nebo si jen každý den připomenete hrozbu, které čelíte.

Tento projekt má tři části:

- Fyzický modul: Použil jsem modul Puck-js, který je založen na modulu nRF52832 a lze jej naprogramovat pomocí Javascriptu díky aplikaci Espruino- Aplikace pro Android: Vytvořil jsem jednoduchou aplikaci, která se připojuje k modulu- Kryt klíčenky: Vytvořil jsem jednoduchý kryt, aby Puck JS vypadal jako jednoduchá klíčenka

Zásoby

- modul Puck.js (https://www.puck-js.com)

- Android telefon s alespoň verzí 8.0- Počítač s nainstalovaným Android Studio

- 3D tiskárna (volitelně)

Krok 1: Přehled

Přehled
Přehled

Tento diagram by vám měl poskytnout představu o různých komponentách: kód v samotném modulu Puck je opravdu jednoduchý a necháváme aplikaci Android, aby se starala o připojení, než aby nechala Puck skenovat telefon. Abychom zachovali životnost baterie, budeme ke komunikaci mezi aplikací a zařízením používat technologii Bluetooth Low Energy a její vlastnosti

Krok 2: Programování puku

Programování puku
Programování puku

Poté, co na webu puck-js.com zkontrolujete, že váš prohlížeč a počítač podporují technologii Web Bluetooth, přejděte na web www.espruino.com/ide a připojte se ke svému Pucku kliknutím na ikonu zástrčky v levém horním rohu stránky.

Poté můžete zkopírovat a vložit kód z přiloženého souboru do editoru a odeslat jej do Pucku.

V první části kódu definujeme funkci Blink a updateCharacteristic, kterou použijeme později v kódu. Ve funkci updateCharacteristic přiřazujeme aktuální datum charakteristice, abychom se ujistili, že bude skutečně považována za novou hodnotu. Následně upozorníme všechny předplatitele této aktualizace.

Po těchto deklaracích na kód, který bude spuštěn:

Kód na řádku 56 vám umožňuje načíst fyzickou adresu vašeho Pucku, kterou budete muset harcdode v aplikaci pro Android: odkomentujte tento řádek a adresu uvidíte v protokolech na levé straně IDE (viz příloha Snímek obrazovky). Jakmile tuto hodnotu získáte, můžete řádek okomentovat nebo jej nechat tak.

Poté definujeme jednu vlastní službu BLE (UUID jsou náhodné hodnoty) se třemi různými charakteristikami, z nichž všechny lze oznámit. Nebudeme používat samotné hodnoty k vyjádření našeho poselství, ale pouze skutečnost, že se změnily.

Na linkách 78 a 79 jsme nastavili některé posluchače, které způsobí, že integrovaná LED bliká, kdykoli je zařízení připojeno nebo odpojeno od jiného zařízení Bluetooth. Nakonec na řádku 81 připojujeme přerušení k integrovanému tlačítku, takže jeho stisknutí vyvolá funkci updateCharacteristic

Krok 3: Vytvoření aplikace pro Android

Vytvoření aplikace pro Android
Vytvoření aplikace pro Android
Vytvoření aplikace pro Android
Vytvoření aplikace pro Android
Vytvoření aplikace pro Android
Vytvoření aplikace pro Android
Vytvoření aplikace pro Android
Vytvoření aplikace pro Android

Vzhledem k tomu, že celá aplikace obsahuje některé poměrně těžké knihovny, vložil jsem do přiloženého zipu pouze zdrojové soubory a soubor gradle pro aplikaci. Aby to fungovalo, musíte spustit Android studio a vytvořit nový projekt (zvolte Empty Activity, viz screenshot). Vyberte 26 (Android 8.0, Oreo) jako minimální verzi aplikace, protože část kódu, který jsem napsal, používá API, která před tím neexistovala. Jakmile je váš projekt nastaven, budete mít pro aplikaci soubor build.gradle (označený build.gradle - Module: App). Otevřete jej a zkopírujte obsah ze souboru zip: IDE vás vyzve k provedení synchronizace Gradle, během které stáhne severskou knihovnu, na kterou aplikace spoléhá. Poté můžete aplikaci spustit jednou a zkontrolovat, zda funguje.

Jakmile je aplikace nainstalována do vašeho zařízení, přejděte do nabídky nastavení, zvolte Aplikace a vyhledejte aplikaci v seznamu. Vyberte jej a klikněte na „Autorizace“. Tam budete mít několik přepínačů, které budou ve výchozím nastavení vypnuté: zkontrolujte je, abyste se ujistili, že aplikace má přístup ke všemu, co potřebuje.

Nyní můžete importovat zdrojové soubory z archivu zip: nejsnazší způsob je vytvořit nové třídy (pravým tlačítkem myši, nový soubor/třídu Kotlin) a pojmenovat je stejným názvem jako ty z archivu. Jakmile je soubor třídy otevřený, můžete do něj zkopírovat a vložit kód.

Pokud chcete aplikaci používat pouze, stačí upravit adresu na řádku 31 ve třídě BTService a místo toho zadat adresu, kterou jste získali v předchozím kroku. Nyní byste měli být schopni aplikaci zkompilovat a spustit na svém zařízení!

Pokud se chcete dozvědět více o tom, jak aplikace funguje, čtěte dále:-)

Následující diagram vám pomůže lépe porozumět tomu, co se děje v aplikaci: - MainActivity je ta, kterou bude uživatel používat pouze jednou za čas: jejím hlavním účelem je, aby mohl zadat telefonní číslo osoby chtěli by kontaktovat při používání Talosu, stejně jako text, který jim poslal.

- Služba BTS je služba v popředí, což znamená, že kdykoli je spuštěna, vytváří trvalá oznámení, která omezují pravděpodobnost zabití služby systémem Android. Tato služba se pokouší připojit k Talosu klasickým procesem Bluetooth Low Energy - použil jsem ukázkový kód společnosti Nordic a další zdroje, které jsem našel. Právě teď to vypadá konkrétně na UUID puku: tuto hodnotu (private val remoteMacAddress = "CF: EB: 2F: 6E: 33: 30") byste měli změnit tak, aby odpovídala vlastní adrese vašeho zařízení získané v předchozím kroku. Poté, co najde zařízení a zkontroluje, že má službu, kterou hledáme, přihlásí se k odběru upozornění na charakteristiku, která bude aktualizována, kdykoli uživatel stiskne tlačítko.

Když služba BTS obdrží aktualizaci pro tuto charakteristiku, spustí objekt LocalBroadcast, aby ostatní komponenty aplikace reagovaly. Rovněž zavolá službu SMSIntentService, aby odeslala SMS

- Služba SMSIntentService načte telefonní číslo a text ze SharePreferences, aby uživatel mohl zadat poslední hodnoty. Poté automaticky odešle SMS, aniž by uživatel musel s aplikací komunikovat, a přidá do SMS poslední známé umístění uživatele.

Krok 4: Navrhování pouzdra

Současný případ, se kterým je Puck dodáván, již obsahuje malou smyčku, kterou lze připevnit na klíčenku, takže bychom to mohli téměř nechat tak. Celý bílý silikonový kryt, který jsem náhodou měl, mi stále připadal dost divný, takže aby nevzbuzoval žádné podezření, navrhl jsem jednoduchý předmět, který bych dal na puk. Říká se, že obrázek stojí za tisíc slov, myslel jsem si, že vám dám 25 obrázků za sekundu: v následujícím videu uvidíte, jak jsem použil Fusion 360 k vytvoření návrhu, včetně příkazů a zkratek, které jsem použil:

Krok 5: Dát to všechno dohromady

Nyní, když máte různé komponenty, je čas je dát dohromady! Aktuální případ modulu Puck již má otvor, pomocí kterého můžete vložit řetěz - náhodou jsem měl starou klíčenku, kterou jsem rozebral, ale ty si můžete koupit také snadno. Kroužek rozeberte pomocí kleští - jakmile najdete otvor prstenu, přesuňte každou polovinu v opačných směrech, jednu směrem k sobě a druhou od sebe. Poté můžete vložit prsten do puku a zavřít jej zpět.

Vytiskněte 3D design, který jste právě vytvořili - použil jsem nějaké fialové PLA a zacvakl jsem ho nahoře na Puck

Doporučuje: