Innehållsförteckning:
- Tillbehör
- Steg 1: Översikt
- Steg 2: Programmering av pucken
- Steg 3: Skapa Android -appen
- Steg 4: Designa ett fodral
- Steg 5: Sätta ihop allt
Video: Talos, hålla dig säker under din pendling: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:37
Att vara offer för trakasserier när man pendlar är en ganska vanlig sak för många människor, särskilt kvinnor. Oavsett land är kollektivtrafik ofta lika med att veta att du kan bli sexuellt trakasserad eller till och med följt när du går hem. I dessa situationer är det inte alltid lätt att reagera och bedöma hotet, från en enkel skräck från en catcall till en verklig oro att något dåligt kan hända. Rädsla är alltid en faktor, och att inte vilja kalla den potentiella trakasseriernas uppmärksamhet kan hindra oss från att varna någon vi litar på.
Talos är en liten enhet som ansluter till din telefon och låter dig skicka en text till personen du väljer. SMSet innehåller automatiskt din senast kända plats och den förinspelade texten du väljer. Med utseendet på en enkel nyckelring stannar Talos kvar i din väska och låter dig diskret aktivera den genom att trycka på den, vilket utlöser att textmeddelandet skickas. Den låga energiförbrukningen innebär att du inte behöver ladda den varje dag och riskerar att glömma den - eller bara påminnas varje dag om det hot du står inför.
Det finns tre delar i detta projekt:
- Fysisk modul: Jag använde en Puck-js-modul, som är baserad på nRF52832-modulen och kan programmeras med Javascript tack vare Espruino- Android-app: Jag skapade en enkel app som ansluter till modulen- Nyckelringskåpa: Jag gjorde en enkel omslag för att Puck JS ska se ut som en enkel nyckelring
Tillbehör
- Puck.js-modul (https://www.puck-js.com)
- Android-telefon med minst version 8.0- En dator med Android Studio installerad
- 3D -skrivare (tillval)
Steg 1: Översikt
Detta diagram bör ge dig en uppfattning om de olika komponenterna: koden på själva Puck -modulen är verkligen enkel, och vi låter Android -appen ta hand om anslutningen snarare än att ha Puck -sökningen efter telefonen. Vi kommer att använda Bluetooth Low Energy och dess egenskaper för att kommunicera mellan appen och enheten för att bevara batteriets livslängd
Steg 2: Programmering av pucken
Efter att ha kontrollerat på puck-js.com att din webbläsare och dator stöder Web Bluetooth, gå till www.espruino.com/ide och anslut till din Puck genom att klicka på pluggikonen i det övre vänstra hörnet på sidan.
Du kan sedan kopiera och klistra in koden från den bifogade filen i redigeraren och skicka den till Puck.
I den första delen av koden definierar vi funktionen Blink och updateCharacteristic, som vi kommer att använda senare i koden. I funktionen updateCharacteristic tilldelar vi det aktuella datumet till karakteristiken för att se till att det verkligen kommer att ses som ett nytt värde. Vi meddelar sedan någon prenumerant på den här uppdateringen.
Efter dessa deklarationer, på koden som kommer att köras:
Koden på rad 56 låter dig hämta den fysiska adressen till din Puck, som du kommer att behöva harcdode i Android -appen: avmarkera den här raden och du kommer att se adressen på loggarna till vänster om IDE (se bifogad skärmdump). När du har det här värdet kan du kommentera raden eller lämna den så.
Därefter definierar vi en anpassad BLE -tjänst (UUID: erna är slumpmässiga värden) med tre olika egenskaper, som alla är anmälningspliktiga. Vi kommer inte att använda värderingarna själva för att förmedla vårt budskap utan bara det faktum att de har förändrats.
På rad 78 och 79 ställer vi in några lyssnare som får den integrerade lysdioden att blinka när enheten är ansluten eller frånkopplad från en annan Bluetooth -enhet. Slutligen, på rad 81, bifogar vi ett avbrott till den integrerade knappen så att genom att trycka på den kallas updateCharacteristic -funktionen
Steg 3: Skapa Android -appen
Eftersom hela appen innehåller några ganska tunga bibliotek har jag bara inkluderat källfilerna och gradle -filen för appen i den bifogade zipen. För att få det att fungera måste du starta Android studio och skapa ett nytt projekt (välj Tom aktivitet, se skärmdump). Välj 26 (Android 8.0, Oreo) som minsta version för appen eftersom en del av koden jag skrev använder API: er som inte fanns före det. När ditt projekt är konfigurerat kommer du att ha en build.gradle -fil för appen (märkt build.gradle - Module: App). Öppna den och kopiera innehållet från zip -filen: IDE uppmanar dig att göra en Gradle -synkronisering under vilken den laddar ner det nordiska biblioteket som appen bygger på. Du kan sedan starta appen en gång och kontrollera att den fungerar.
När appen är installerad på din enhet går du till inställningsmenyn, väljer Appar och hittar appen i listan. Välj det och klicka på "Autorisationer". Där kommer du att ha några alternativknappar som är avstängda som standard: kontrollera dem alla för att se till att appen har tillgång till allt den behöver.
Du kan nu importera källfilerna från zip -arkivet: det enklaste sättet att göra det är att skapa nya klasser (högerklicka, ny Kotlin -fil/klass) och ge dem samma namn som de från arkivet. När klassfilen är öppen kan du kopiera och klistra in koden i dem.
Om du bara vill använda appen ändrar du bara adressen på rad 31 i BTService -klassen och anger adressen du fick i föregående steg istället. Du bör nu kunna kompilera appen och köra den på din enhet!
Om du vill veta mer om hur appen fungerar, läs vidare:-)
Följande diagram kommer att ge dig en bättre förståelse för vad som händer i appen: - MainActivity är det som användaren bara kommer att använda då och då: dess huvudsakliga syfte är att de ska kunna ange personens telefonnummer de skulle vilja kontakta när de använder Talos, liksom texten för att skicka dem.
- BTStjänsten är en förgrundstjänst, vilket innebär att varje gång den lanseras skapar den en beständig avisering som begränsar likheten för tjänsten som dödas av Android. Denna tjänst försöker ansluta till Talos med den klassiska Bluetooth Low Energy -processen - jag har använt Nordics provkod och de andra resurserna jag kunde hitta. Just nu ser det specifikt ut för Puckens UUID: du bör ändra detta värde (private val remoteMacAddress = "CF: EB: 2F: 6E: 33: 30") för att matcha enhetens egen adress som erhölls i föregående steg. Efter att ha hittat enheten och kontrollerat att den har den tjänst vi söker, prenumererar den på meddelandena för den egenskap som kommer att uppdateras när användaren trycker på knappen.
När BTS -tjänsten får en uppdatering för denna egenskap, kommer den att avfyra ett LocalBroadcast -objekt för att de andra komponenterna i appen ska reagera. Det kommer också att ringa SMSIntentService för att skicka SMS
- SMSIntentService hämtar telefonnumret och texten från SharePreferences för att de sista värdena ska kunna anges av användaren. Det skickar sedan automatiskt SMS utan att användaren interagerar med appen och lägger till användarens senaste kända plats i SMS: et.
Steg 4: Designa ett fodral
Det aktuella fodralet som Pucken kommer med innehåller redan en liten slinga för att den ska fästas på en nyckelring, så vi kan nästan lämna den så. Det helt vita kiselhöljet som jag råkade ha känts fortfarande ganska konstigt så för att det inte ska locka till någon misstanke har jag designat ett enkelt föremål att lägga ovanpå pucken. De säger att en bild är värd tusen ord, jag tänkte ge dig 25 bilder per sekund: i följande video kommer du att se hur jag använde Fusion 360 för att skapa designen, inklusive kommandon och genvägar som jag använde:
Steg 5: Sätta ihop allt
Nu när du har de olika komponenterna är det dags att sätta ihop dem! Det nuvarande fallet med Puck -modulen har redan ett hål som du kan använda för att sätta in en kedja - jag råkade ha en gammal nyckelring som jag tog isär, men du kan också köpa dem enkelt. Ta isär ringen med en tång - när du har hittat ringens öppning, flytta varje halva i motsatta riktningar, en mot dig och den andra bort från dig. Du kan sedan sätta in ringen i pucken och stänga tillbaka den.
3D -skriv ut designen du just skapade - jag använde lite lila PLA och knäppte in på toppen på Pucken
Rekommenderad:
Automatisk kran (beröringsfri) med Arduino - Tvätta händerna och var säker under COVID -19 -krisen: 4 steg
Automatisk kran (beröringsfri) med Arduino - Tvätta händerna och var säker under COVID -19 -krisen: Hej vänner! Jag hoppas att ni alla mår bra och håller er trygga nu. I det här inlägget kommer jag att förklara dig om min prototyp som jag utformade för att tvätta händerna på ett säkert sätt. Jag gjorde detta projekt med begränsade resurser. De som är intresserade kan göra om detta proffs
Få blinda att känna igen saker genom att röra saker runt dem med MakeyMakey: 3 steg
Gör blinda igenkänna saker genom att röra saker runt dem genom att använda MakeyMakey: introduktion Detta projekt syftar till att göra blindas liv enkelt genom att identifiera saker runt dem genom beröringssinne. Jag och min son Mustafa funderade på att hitta ett verktyg för att hjälpa dem och under den period som vi använder MakeyMakeys hårdvara
SlouchyBoard - ett irriterande sätt att hålla dig från att slinka (Intro till EasyEDA): 4 steg (med bilder)
SlouchyBoard - ett irriterande sätt att hålla dig från att slinka (Intro till EasyEDA): Slouchy board är en liten 30 mm x 30 mm PCB (Printed Circuit Board) som använder en lutningsgivare, en piezo -summer och en ATTiny 85 för att göra ett irriterande ljud när användaren är slarvig. Brädan kan fästas på en användares skjorta eller hatt så att när de lägger
Kan en MakerBit påminna dig om att kontrollera vattnet under din julgran ?: 7 steg
Kan en MakerBit påminna dig om att kontrollera vattnet under din julgran ?: Ett färskt träd är en traditionell semesterdekoration i många hem. Det är viktigt att förvara den med färskt vatten. Vore det inte trevligt att ha en prydnad som kan påminna dig om att kolla vattnet under ditt träd? Detta projekt är en del av
Hur man tar isär saker utan att döda dig själv: 6 steg
Hur man tar isär saker utan att döda sig själv: Som många av er kanske redan vet är gamla apparater och trasiga saker ofta guldgruvor av delar som är bra att använda, till exempel motorer, fläktar och kretskort, om du är villig att avlada dem . Även om jag vet att de flesta av er vet alla grunderna i di