RAPPORT

 

Ingenjörsvetenskapens grunder, projektarbete

Beröringsfritt passersystem

Kurs:                  TEL243

 

Deltagare:          Mathias Andersson   850424-6292

     Henrik Bäck             850611-6253

                           Tobias Pulls             850326-6259

 

Handledare:       Tryggve Grahn

                           Peter Röjder

 

Datum:               2006-02-24

 

Karlstads Universitet

 
 

 

 

 

 

 

 



SAMMANFATTNING

Projektet har haft till uppgift att konstruera ett beröringsfritt passersystem vilket bygger på RFID-tekniken. Syftet med projektet var att både att träna gruppen i projektarbete, planera genomförandet av projektet samt ta fram en prototyp. Resultatet skall ge underlag för att kunna fatta beslut om det finns förutsättningar för produktion av produkten och hur arbetet i så fall skall fortsätta.

 

Projektgruppen har framarbetat ett förslag på hur ett sådant system skall kunna fungera och se ut. Det hela är även kompatibelt med andra läsare och lås än vad som har används vid projektet.

 

Styrprogrammet bygger på ett antal moduler som kan bytas ut separat för att ändra funktionen i styrprogrammet eller för att få det att fungera med andra läsare, lås eller databastyper. Tillsammans kommunicerar dessa över parallellporten, på en dator med operativsystemet Linux, med den hårdvara som tagits fram av projektet.

 

Hårdvaran har ett antal komponenter som styrs med signaler från styrprogrammet. På detta sätt kan styrprogrammet utföra nödvändiga operationer så som att låsa upp dörren, kontrollera dörrens status, ljuda en ton vid fel och indikera med färgade lysdioder till användaren. Systemet har även en RFID-läsare kopplat till sig via USB.


INNEHÅLLSFÖRTECKNING

 

SAMMANFATTNING. 2

INNEHÅLLSFÖRTECKNING. 3

1.      INLEDNING. 5

1.1     BAKGRUND. 5

1.2     PROBLEM. 5

1.2.1    MJUKvara. 5

1.2.2    hårdvara. 5

2.      BESKRIVNING. 5

2.1    Mjukvara. 6

2.1.1    LINUXSERVER. 6

2.1.1.1    Webbserver. 6

2.1.1.2    Databasserver. 6

2.1.1.3    Struktur av databas. 6

2.1.2    Mjukvara för RFID-läsare. 6

2.1.3    Installation av bibliotek. 6

2.1.5    Styrprogrammets moduler. 6

2.1.5.1    RFID-läsare. 6

2.1.5.2    Lås. 7

2.1.5.3    Databas. 7

2.1.5.4    Summer. 7

2.1.5.5    Magnetkontakt. 7

2.1.5.6    Lysdioder. 7

2.1.6    LOgik. 7

2.1.7    administrationsinterface. 7

2.2    Hårdvara. 7

2.2.1    Kretskortlayout. 7

2.2.2    ETSNING AV KRETSKORT. 8

2.2.3    Montering av komponenter. 8

2.2    SAmmankoppling. 8

3.      GENOMFÖRANDE. 8

3.1    mjukvara. 8

3.1.1    LINUXSERVER. 8

3.1.1.1    Webbserver. 8

3.1.1.2    Databasserver. 8

3.1.1.3    Struktur av databas. 8

3.1.2    Mjukvara för RFID-läsare. 8

3.1.3    Installation av bibliotek. 9

3.1.5    Styrprogrammets moduler. 9

3.1.5.1    RFID-läsare. 9

3.1.5.2    Lås. 9

3.1.5.3    Databas. 9

3.1.5.4    Summer. 9

3.1.5.5    Magnetkontakt. 9

3.1.6    LOgik. 9

3.1.7    administrationsgränssnitt. 9

3.2    Hårdvara. 10

3.2.1    Kretskortlayout. 10

3.2.2    ETSNING AV KRETSKORT. 10

3.2.3    Montering av komponenter. 11

3.3    sammankoppling. 11

4.      slutsats och resultat. 12

4.1    PLANERINGEN. 12

4.2     PROBLEM. 12

4.3     erfarenheter. 12

4.4    Produktpresentation. 12

4.4.1    Inpasserande. 12

4.4.2    Utpasserande. 13

4.4.3    Administration. 13

4.4.4    Felsökning. 14

BILAGA A – Komponentlista. 15


1.            INLEDNING

Projektet har utrett möjligheterna till att skapa ett beröringsfritt passersystem byggande på RFID. Systemet har byggts på standardkomponenter inom digitalteknik samt en fristående RFID-läsare. På detta sätt kan systemet anpassas efter olika sorters läsare utan att det påverkar hur systemet byggs upp.

 

1.1            BAKGRUND

I många offentliga byggnader används idag nycklar för att passera dörrar. Detta ger ingen kontroll över vilka som har varit i en viss lokal vilket kan vara nödvändigt för att utreda vissa incidenter. Med hjälp av ett passersystem fås möjligheten att hålla en större kontroll över passager genom dörrar till lokaler.

 

1.2            PROBLEM

Projektet har tagit fram en prototyp för ett passersystem som byggde på RFID.

 

1.2.1          MJUKvara

Mjukvaran behöver vara stabil och kräva minimalt underhåll. Det gäller även operativsystemet. Operativsystemet som valdes bygger på Linux-kärna och mjukvaran är utvecklad i språket C++. Databasen är av typen mySQL.

 

1.2.2          hårdvara

För att hålla ner kostnaderna valdes en RFID-läsare från ett det Kanadensiska företaget Phidgets. Deras RFID-läsare hade ett mycket lågt pris till skillnad från andra läsare på markanden. Läsaren anslutes via USB. Övriga komponenter är standard och köptes i detta fall från ELFA. I annat fall går de att få tag på de flesta ställen där elektronikdelar säljes. De digitala kretsarna NOT, AND och NAND har används för logiken. För indikering har vanliga 2,2 volts lysdioder används samt en 5 volts summer för varningsljud. I övrigt har kontaktdon, kablar och motstånd också används.

 

Som strömkälla används USB-matningspänningen. Eftersom USB används av RFID-läsaren går dess signaler via passersystemets kretskort. Det är då möjligt att ta ström från detta för att driva övriga kretsar i systemet. Systemet binds ihop med 25-poliga kontakter både mellan datorn och systemet och mellan systemkorten (insida och utsida av dörr).

 

En lista över samtliga komponenter som använts finns som bilaga A.

2.            BESKRIVNING

Projektet var uppdelat i ett antal mindre arbetspaket. För att kunna uppnå ett slutresultat som var godtagbart var det viktigt att samtliga arbetspaket avslutades inom tidsramen.

 

Projektet var uppdelat i två stora delar, där den ena var mjukvaran och det andra hårdvaran.

 

2.1            Mjukvara

Styrprogrammet är den mjukvara som kommunicerar med passersystemets hårdvara och därmed styr passersystemet.

 

2.1.1          LINUXSERVER

För att kunna styra själva systemet och lagra information om användare och passager behövs en server för detta. Genom att använda sig av en server med LINUX-operativsystem uppnår man en mycket kostnadseffektiv hantering av data.

 

2.1.1.1           Webbserver

Administrationen av passersystemet skall göras via en valfri webbläsare som har anslutning till passersystemet. För att möjliggöra detta måste passersystemet ha en webbserver som kan hantera detta.

 

2.1.1.2           Databasserver

För att kunna lagra information om användare, passager och schemaläggning måste det finnas en databas av något slag. Databaslösningen måste vara stabil och skall helst klara av många samtidiga förfrågningar.

 

2.1.1.3           Struktur av databas

För att på ett snabbt och enkelt sätt kunna komma åt data som behövs för att säkerställa en passage måste det gå enkelt att göra en databasfråga. Därför är det viktigt att databasen struktur är välplanerad.

 

2.1.2          Mjukvara för RFID-läsare

RFID-läsaren anslutes via USB till servern. För att RFID-läsaren skall fungera krävs det speciella bibliotek som kan kommunicera med densamma.

 

2.1.3          Installation av bibliotek

Om mjukvaran till passersystemet skall kunna komma åt relevanta data från både RFID-läsare och databasen måste det finnas bibliotek som kan hantera detta. Det är viktigt att dessa är korrekt installerade för att allt skall fungera.

 

2.1.5          Styrprogrammets moduler

För att enkelt kunna anpassa styrprogrammet efter vilken typ av läsare och lås som används delas styrprogrammet upp i ett antal mindre moduler. Dessa moduler kan var och en bytas ut och ersättas med andra, motsvarande, moduler.

 

2.1.5.1           RFID-läsare

RFID-läsare kan vara av olika typer och fungera olika beroende på vilken modell som används. Styrprogrammet skall inte vara beroende av vilken läsare som används.

2.1.5.2           Lås

Låset kan även det vara av olika typ därför behöver det finnas en modul som utan större problem kan bytas ut för att styra detta. Styrprogrammet skall inte vara beroende av vilket lås som används.

 

2.1.5.3           Databas

För att möjliggöra att olika typer av databaser skall kunna användas skall även kommunikationen med databasen ske via en modul.

 

2.1.5.4           Summer

Summern fungerar på ett visst sätt och därför behöver det finnas en modul som kan hantera denna.

 

2.1.5.5                      Magnetkontakt

Avläsningen av magnetkontakten skall även den ske via en egen modul.

 

2.1.5.6           Lysdioder

Styrning av lysdioder skall även den ske via en egen modul.

 

2.1.6          LOgik

Samtliga moduler i programmet måste fungera tillsammans och det möjliggörs genom att varje modul skapar ett gränssnitt mot sin respektive funktion. På detta vis kan en rad logiska strukturer sättas upp som inte förändras när en modul byts ut.

 

2.1.7          administrationsinterface

För att kunna administrera passersystemet behövs någon slags administrationsinterface för en administratör att arbeta mot. Detta kommer att göras som en webbsida för att möjliggöra enkel åtkomst till administrationen.

 

2.2            Hårdvara

För att passersystemet skall kunna hantera lås och läsare måste det finnas någon sorts hårdvara med enkel logik som kan sköta det styrprogrammet vill utföra.

 

2.2.1                         Kretskortlayout

Till systemet behövs tre kretskort. Ett kretskort där den yttre lysdioden är monterad, ett kretskort där summer samt indikationslysdioder är monterade samt ett kretskort som överför information mellan parallellporten och USB-anslutningen till de andra korten. För att detta skall fungera måste dessa kretskort vara genomtänkta och välplanerade. På kretskorten kommer ett antal digitala och analoga komponenter att monteras.

 

2.2.2                         ETSNING AV KRETSKORT

Eftersom inget av de kretskort som kommer att behövas finns som standard måste dessa tillverkas. Kretskorten kommer att behöva etsats med hjälp av någon sorts etsningsutrustning.

 

2.2.3                         Montering av komponenter

Komponenterna som används på kretskorten är hålmonterade. Därför måste lagom stora hål borras upp för dessa i kretskorten. Därefter skall komponenterna komma på plats och lödas fast.

 

2.2            SAmmankoppling

Mjukvara och hårdvara måste fungera tillsammans, inte bara i teorin utan även i praktiken. Därför behöver hårdvaran och mjukvaran testas tillsammans kontinuerligt under utvecklingen.

 

3.            GENOMFÖRANDE

Projektet lyckades genomföra samtliga av de arbetspaket som konstruerats. Genomförandet gjordes dock inte alltid utan komplikationer.

 

3.1            mjukvara

3.1.1          LINUXSERVER

En av projektmedlemmarnas bärbara dator användes. Denna hade sedan tidigare  en Linux-distribution installerad. Distributionen var Ubuntu.

 

3.1.1.1           Webbserver

Som webbserver användes Apache tillsammans med PHP4. Detta fanns redan installerat på den aktuella datorn.

 

3.1.1.2           Databasserver

mySQL valdes som databasserver med tanke på att den är kostnadseffektiv i jämförelse med andra databaslösningar samt att ett färdigt C-API fanns tillgängligt. Även mySQL var installerad på den aktuella datorn.

 

3.1.1.3           Struktur av databas

En diskussion inom projektgruppen resulterade i en ungefärlig struktur av databasens tabeller. Detta implementerades senare i databasservern.

 

3.1.2          Mjukvara för RFID-läsare

Att installera mjukvaran för RFID-läsaren på servern var enkelt. Mjukvaran packades upp och lades på rätt plats. Därefter fungerade läsaren korrekt.

 

3.1.3          Installation av bibliotek

De bibliotek som behövde installeras var mySQL++ och lPhidget. För att använda biblioteken behövdes en rad flaggor vid kompilering sättas.

 

3.1.5          Styrprogrammets moduler

Att skapa styrprogrammets moduler var det största mjukvaruarbetet.

 

3.1.5.1           RFID-läsare

Implementationen av RFID-modulen blev problematisk i och med att biblioteket för RFID-läsaren använder en Callback-funktion vid läsning av RFID-tagg. Genom konsultering av sakkunnig kunde detta problem lösas.

 

3.1.5.2           Lås

Implementationen av låset var mycket trivial efter att ha studerat parallellporten.

 

3.1.5.3           Databas

Den mest problematiska modulen att implementera i och med att schemaläggning av dörrar skulle vara möjlig. Problemet låg i behandlingen och avläsning av olika datatyper mellan databasen och styrprogrammet.

 

3.1.5.4           Summer

Implementationen av summern var också den mycket trivial efter att ha studerat parallellporten.

 

3.1.5.5           Magnetkontakt

Inläsning av magnetkontaktens status orsakade problem i och med de olika restriktioner som finns vid avläsning av parallellporten i användarläge. Problemet krävde ytterligare studier och testningar av parallellporten för att lösas.

 

3.1.6          LOgik

I och med att i planeringsfasen av projektet lägga ner arbete inom detta område var implementationen av logiken trivial i styrprogrammet.

 

3.1.7          administrationsgränssnitt

Eftersom att strukturen av databasen, som gjordes tidigare i projektet, har stor inverkan på vilka funktioner som går att implementera i ett administrationsgränssnitt var denna uppgift trivial.

 

 

3.2            Hårdvara

3.2.1          Kretskortlayout

Att designa kretskorten för systemet var inte det enklaste. En enklare mjukvara användes för att utföra uppgiften, denna mjukvara hade inte stöd för annat än standardkomponenter. De specialkomponenter som användes fick ritas till genom att placera ut varje ben för sig i programmet. Att göra detta tog lång tid då det var svårt att passa in de mycket exakta måtten i programmet.

 

Till en början placerades alla kretsar ut där de kunde tänkas ligga. Därefter drogs ledningsbanor till samtliga enheter så att en korrekt funktionalitet skulle uppnås. Efter att alla komponenter låg på en korrekt plats kunde arbetat börja med att placera ut de specialkomponenter som krävdes. Dessa var två USB-kontakter, två PICO-flexkontakter samt en summer.

 

Samtliga komponenter, förutom lysdioderna, arbetar med 5 volt som matningspänning och  de signaler som skickas från parallellporten är 0 eller 5 volt. Eftersom detta är uppfyllt valdes digitala komponenter som med stor fördel kan användas i dessa förhållanden. Som matningskälla till dessa komponenter användes den spänning man kan ta från en USB-port. På så sätt behövs inga transformatorer eller annan utrustning för att driva systemet. Med tanke på att även RFID-läsaren använder sig av USB kan detta med stor fördel göras och inga extra kablar behöver dras.

 

Innan något mer gjordes på kretskorten testades den aktuella layouten på en labbplatta. Här upptäcktes vissa strömrelaterade problem. Krets som valts orkade inte driva samtliga komponenter som behövde användas. Detta löstes genom att designa om kretskortet och använda flera parallellkopplade kretsar som tillsammans får driva komponenterna i fråga.

 

Det insågs även senare att ett nytt kretskort för att hantera statusen för dörren var tvungen att göras. En miss i förståelsen i hur parallellporten arbetade hade gjorts och datorn kunde inte känna av de signaler som ville skickas till den.

 

3.2.2          ETSNING AV KRETSKORT

Karlstads Universitet tillhandahöll utrustning för etsning av kretskort. Det första som gjordes var att skriva ut kretskortslayouten till OH-film. Därefter klipptes kretskort i rätt storlek till med hjälp av personalen i verkstaden.

 

Utrustningen för etsning hade inte varit rengjord på över ett år så det första som det var tvunget att göras var att rengöra denna. Eftersom etsvätskan hade kristalliserat sig tog det en bra stund innan utrustningen var helt rengjord. På grund av detta blev  arbetspaketet försenat.

 

Etsningen av kretskort gick efter rengöring mycket smärtfritt. Tre kretskort etsades på samma dag. Dock behövdes ett av dessa kretskort senare etsas om på grund av att ledningsbanor inte var riktigt som de skulle. Även denna etsning gick bra.

 

3.2.3          Montering av komponenter

Eftersom layouten av kretskorten krävde att ledningbanor kunde löpa fritt mellan komponenters ben så begränsade detta lödöarnas storlek. När håltagning för samtliga komponenter skulle äga rum uppstod vissa problem. Vissa komponenters ben var lite bredare än andras och det var då nödvändigt att använda en större borr. Detta borr var en aning för stort för de borrhål som hade markerats ut på kretskortet och det medförde att lödarna oftast följde med borren från kretskortet.

 

När all håltagning var klar kunde komponenterna sättas dit och lödas fast efter bästa förmåga.

 

Efter att komponenterna hade monterats fasat på korten tvättades kortet med etanol för att få bort allt flussmedel från korten och alla lödpunkter testades med hjälp av en multimeter. När samtliga kort hade fått sina komponenten monterade och kunde kopplas samman testades deras funktionalitet genom att koppla dem till en strömkälla och därefter manuellt skicka in de signaler som skulle testas.

3.3            sammankoppling

Hårdvaran testades med mjukvaran efter att samtliga kretskort hade gjorts klart. Detta resulterade i att mjukvaran utan problem kunde skriva data till hårdvaran och denne utförde korrekta operationer. Dock uppstod problem när hårdvaran skulle skicka data till mjukvaran. Efter en del felsökande hittades felet och detta berodde på att kretskortet som hade tillverkats inte hade jordat samtliga signalben på parallellporten. Felet åtgärdades genom att tillverka ett nytt kretskort och flytta över samtliga komponenter från det gamla kortet till det nya.

 

Efter åtgärden med det nya kortet fungerar hårdvaran felfritt med mjukvaran.

 

 

4.            slutsats och resultat

4.1            PLANERINGEN

Den planering som initialt hade upprättads kunde inte hållas. Att planeringen föll berodde på två saker. En av sakerna var att en extra etsning och lödning av ett kretskort var tvunget att göras. Implementeringen av vissa moduler tog också längre tid än beräknat.

 

4.2            PROBLEM

Under projektet uppstod ett par problem. Ett av dem var att gruppen hade bristande kunskaper i hur parallellporten fungerar. Detta resulterade i att ett av de kretskort som hade tillverkats inte fungerade med datorn. Lösningen på problemet blev att tillverka ett helt nytt kretskort och flytta över de gamla komponenterna till det nya.

 

Dessutom har kravet att RFID-läsaren skulle ha en egen modul orsakat att implementationen av denna blev invecklad. Detta moment tog mer tid än förväntat.

 

4.3            erfarenheter

Den främsta erfarenheten som projektet erhållit är att testning av hittills avklarade moment bör ske mer frekvent. Detta för att se till att så få saker som möjligt behöver göras om på grund av felkonstruktion.

 

Dessutom har en mer ingående kunskap om hur parallellporten på PC-datorer fungerar. Den information som fanns tillgänglig innan projektet har varit bristfällig i flera avseenden.

 

Projektet har också erhållit kunskapen om att till synes obetydliga krav kan ställa till större problem än vad de verkar göra. Ett exempel på detta var att RFID-läsaren skulle ligga i en egen modul. Att kapsla in ett C-API i en klass har varit ett av de moment som tagit längst tid och ställt till mest problem under programmeringsstadiet.

 

4.4            Produktpresentation                   

Vid dörr som övervakas av systemet finns två stycken enheter. En på insidan av dörren och en på utsidan. Enheten på insidan har anslutningar till en magnetkontakt monterad på dörren, dörrens lås samt en tryckknapp för utpassering. Enheten på dörrens insida är även uppkopplad via kabel till styrprogrammet.

 

4.4.1          Inpasserande

För att få passera dörren måste man ha en passerbricka som finns lagrad i systemets databas samt ha rättighet att passera dörren.

 

Om indikatorlampan vid dörren lyser orange betyder detta att man skall visa sin passerbricka för att passera dörren. Har man rättigheter att passera dörren kommer indikatorlampan att bli grön och dörren låser upp sig. Om personen i fråga inte har rättighet att passera dörren med sin bricka kommer den röda dioden att blinka och dörren förblir låst.

 

Orange                               Grön                                 Röd                     

 

Efter att dörren öppnats måste den stängas inom en viss förutbestämd tid, görs inte detta kommer en varningston att ljuda. Samma sak händer om dörren försöker öppnas utan att en korrekt ID-bricka har visats.

 

4.4.2          Utpasserande

De utpasserande måste trycka på en knapp innan de öppnar dörren. Genom att trycka på knappen låser dörren upp sig. Skulle dörren försöka öppnas utan att den först låses upp genom knapptryckandet kommer en varningston att ljuda.

 

4.4.3          Administration

Administrationen av systemet sker via ett webbinterface. Från detta kan man lägga till användare, ta bort användare och hantera rättigheter för användare. Från detta system kan man även schemalägga dörrar och se till att vissa dörrar kan passeras vid vissa tider och liknande.

 

4.4.4          Felsökning

För att underlätta felsökning av systemet finns ett För att underlätta felsökning av systemet finns ett antal indikationslysdioder monterade på det kretskort som man återfinner på utsidan av dörren. Med hjälp av dessa kan man se den aktuella statusen i systemet.

 

RED LED repsresenterar den röda lysdioden på                 extentionskortet.

GREEN LED repsresenterar den gröna lysdioden                       på extentionskortet

Acc. Granted lyser om dörren är upplåst.

Warning lyser om varningsummern har aktiverats.

Status OK är tänd om dörren är stängd.

 

 

             


BILAGA A – Komponentlista

 

LED 3 mm GUL                                           5 st

LED 5 mm RÖD/GRÖN                                 1 st

Stiftlist picoflex 4-polig                                  2 st

Kabel 4-polig till picoflex                               1 st

USB Kabalage  A-B                                       2 st

USB Typ A                                                  1 st

USB Typ B                                                  1 st

D-sub 25-polig Hane                                    1 st

D-sub 25-polig Hona                                    2 st

D-sub 25-polig kablage Hane – Hane            1 st                                     

D-sub 25-polig kablage Hona – Hane            1 st

Summer 5V                                                 1 st

Larmkontakt, slutande                                 1 st

IC-soket                                                     4 st

IC-krets AND 4708                                      2 st

IC-krets NAND 4100                                    1 st

IC-krets NOT 7404                                      1 st

RFID-läsare, Phidgets                                  1 st

RFID-tagg kretditkort                                  1 st

RFID-tagg bricka                                         1 st

RFID-tagg nyckelring                                   1 st