Lavet af Marcus Pedersen og Jakob Schledermann.

Introduktion

I dette projekt har vi konstrueret en låseboks der kun åbner når en række krav tilfredsstilles. Dette kan gavne hvis man har værdier man vil låse væk, men man ikke stoler på de mere traditionelle låsekasse løsninger der allerede er på markedet. Vi har altså valgt at lave en samlet løsning der tager mange forskellige elementer og samler dem under et projekt. Vi mener at sikkerhed i hjemmet er vigtigt og derfor kan denne løsning bringe inspiration til andre sikkerhedsmæssige projekter i hjemmet.  

Kredsløb

Vi har valgt at fokusere på komponenter der kan benyttes i et sikkerhedssystem og derfor har vi benyttet følgende komponenter:

  • 2 stk Arduino uno
  • LCD1602 module
  • Membrane switch module
  • Rotary Encoder
  • Passive buzzer
  • LDR
  • DC motor 
  • L293D
  • LED

Først og fremmest har vi valgt at benytte to forskellige arduino til løsningen. Dette valg blev truffet på baggrund af vi gerne ville benytte membrane switch modulet og samtidigt også ville benytte en LCD skærm, hvorfra der ikke er nok digital porte til at understøtte begge muligheder med en arduino uden at prototype expansion modulet i brug. Vi beslutted derfor at dele ansvarsområderne op mellem de to arduinoer så de hver især stod for at håndtere specifikke dele af koden. LCD display ville vi gerne benytte da vi havde eftersom at det er vigtigt at returnere data til brugeren af et sikkerhedssystem, således at man kan se de input der bliver givet til systemet. Membrane switch modulet er oplagt til at skrive koder ind og det er dette det bliver benyttet til. Vi har flere gange gået frem og tilbage mellem rotary encoder og et potentiometer til vores løsning. Vi besluttede at benyttet rotary encoder da der er mere frihed i hvordan den skal operere i forhold til det mere begrænsede potentiometer. Til sidst besluttede vi os for at bruge en dc motor der bliver kontrolleret af L293d controlleren. Dette er til at styre løse mekanismen i systemet. Udover de ovenstående elementer bliver der brugt status leder til at vise tilstanden af systemet.

Video

DC motor og H-bro

For at kunne åbne og lukke for boksen anvender vi en DC motor. DC motoren omdanner elektrisk energi om til mekanisk energi for at skubbe låsemekanismen til siden. For at sørge for at dc motoren kan dreje begge veje, altså både åbne og lukke, anvender vi en H-bro. 

LCD display

Vores LCD display hjælper brugeren med at give aktivt feedback når de prøver at åbne boksen. På displayet vises brugerens input, hvilket består af pin koden de indtaster og rotary encoder værdien. Der bliver kun vist en af gangen så boksen prioriterer at vise den indtastelsesmetode der sidst blev brugt.

LDR

For at åbne boksen kræver det også at man lyser lys på en LDR sensor. Sensoren virker ved at mere lys giver mindre modstand, så man ender med at få et analog input. Til boksen har vi valgt at LDR værdien skal være over en bestemt værdi for at give adgang til brugeren.

Rotary encoder

I vores projekt bliver vores rotary encoder brugt til at give adgang til boksen. Et af kravene for at åbne boksen er at rotary encoder værdien er den rigtige værdi som allerede er defineret. Grunden til at vi valgte at bruge en rotary encoder i stedet for en potentiometer er dens digitale output gør det nemmere at arbejde med i softwaren.

LED indikatorer

For at indikere om boksen er låst eller åben har vi anvendt rød og grøn LEDer, hvor grøn indikerer åben state og rød indikerer åben state.

Buzzer

Når den rigtige kode er indtastet på keypadden, rotary encoderen peger på den rigtige værdi og LDR sensoren får den rigtige mængde lys, åbner boksen. Når boksen bliver åbnet beeper buzzeren en “boksen er nu åben” melodi, men hvis man fejler åbning requirements beeper den en “forkert kode” melodi.

Kode

Vores kode består af 2 filer, eftersom hver arduino kører deres egen fil. Den ene arduino registrere input fra membrane switches, og sender dataen videre ved hjælp af UART over RX og TX pins på arduino boardet. 

Pin kode arduinoen:

Den anden arduino består af resten af koden og taler også med den anden arduino for at binde det hele sammen. Til at starte med har vi defineret porte og globale variabler:

Derefter kommer setuppet hvor vi har markeret hvilke pins der skal hvad. Grunden til at vi ikke har alle de pins vi bruger i setup er grundet mange af de libraries vi anvender har predefinet om de er in eller outputs.

Loop funktionen kører igennem og tjekker om alle låsemekanismer er låst op ved at få input fra sensorerne, og hvis ikke alle låse er åbne, så sørg for at boksen stadig er lukket.

Opbygning af den samlede fysiske prototype

Den samlede fysiske prototype er opbygget af elektronikkomponenter beskrevet i tidliger afsnit, samt mekaniske elementer der spiller sammen til at samle et fuldendt system. Prototypen består af de elektroniske dele samt en æske til at have delene i, og til sidst en 3D printet låsemekanisme der har kan låse boksen men en deadbolt. Låsemekanismen er placeret på en hældning sådan at der konstant skal leveres strøm til dc motoren for at opretholde dens placering sådan at den undgår at falde tilbage pga den relative lille modstand sår systemet er låst. Alle elementerne er placeret inde i boksen hvorfra displayet, membran switch, rotary encoder er placeret yderst på boksen sådan at man kan interagere med systemet. 

Konklusion

Vores løsning retter sig efter problemstillingen ved at skabe et sikre hjem. Selve sikkerhedssystemet behøver ikke at være bundet til voksen og kan benyttes i ander instanser såsom en smartere dørlås eller lignenede. Alle kravene er blevet overholdt og samlet set mener vi at løsninger bringer noget til det moderne smart home. 

Perspektivering

Der er flere elementer som vi havde tænkt at tilføje i fremtiden som ekstra aller alternative løsninger, nogle af de elementer der kunne tilføjes er RFID læseren og et mere udbredt alarm system. 

Hele Koden

Github link: https://github.com/j-winkel/Robottek-PF2.git

Leave a Reply