RFID-baserad identifikation i vården

57  Download (0)

Full text

(1)

Institutionen för systemteknik

Department of Electrical Engineering

Examensarbete

RFID-baserad indentifikation i vården

Examensarbete utfört i Elektronik

vid Tekniska högskolan vid Linköpings universitet av

Patrik Ström

LiTH-ISY-EX-ET–15/0442–SE

Linköping 2015

Department of Electrical Engineering Linköpings tekniska högskola

Linköpings universitet Linköpings universitet

(2)
(3)

RFID-baserad indentifikation i vården

Examensarbete utfört i Elektronik

vid Tekniska högskolan vid Linköpings universitet

av

Patrik Ström

LiTH-ISY-EX-ET–15/0442–SE

Handledare: J Jacob Wikner

isy, Linköpings universitet

Erik Sundvall

Region Östergötland

Examinator: J Jacob Wikner

isy, Linköpings universitet

(4)
(5)

Avdelning, Institution Division, Department

Avdelningen för elektronik Department of Electrical Engineering SE-581 83 Linköping Datum Date 2015-08-14 Språk Language Svenska/Swedish Engelska/English   Rapporttyp Report category Licentiatavhandling Examensarbete C-uppsats D-uppsats Övrig rapport  

URL för elektronisk version

http://urn.kb.se/resolve?urn=urn:nbn:se:liu:diva-XXXXX ISBN

— ISRN

LiTH-ISY-EX-ET–15/0442–SE

Serietitel och serienummer Title of series, numbering

ISSN —

Titel Title

RFID-baserad indentifikation i vården RFID based identification in healthcare

Författare Author

Patrik Ström

Sammanfattning Abstract

Det här arbetet har syftat till att utvärdera möjligheterna till att använda Raspberry Pi 2, som en del av ett identifikationssystem i vårdmiljöer. Rapporten tar upp och utvärderar möjlig-heterna att använda olika hårdvara och mjukvara tillsammans med Raspberry Pi, så som olika RFID-läsare, operativsystem och styrmjukvara till RFID-läsarna. Rapporten tar även upp tidigare forskning och implementationer av RFID-användning i vårdmiljöer. Från bör-jan var målet att använda Snappy Ubuntu Core som operativsystem, men laborativt arbete visade att Snappy Ubuntu Core inte riktigt hade vad som krävdes för att uppfylla syftet. Arbetet har resulterat i konstruerad mjukvara för att styra och läsa av RFID-kort med en av RFID-läsarna som testats, och det har även experimenteras med Node-RED tillsammans med RFID-mjukvaran.

Nyckelord

(6)
(7)

Sammanfattning

Det här arbetet har syftat till att utvärdera möjligheterna till att använda Raspber-ry Pi 2, som en del av ett identifikationssystem i vårdmiljöer. Rapporten tar upp och utvärderar möjligheterna att använda olika hårdvara och mjukvara tillsam-mans med Raspberry Pi, så som olika RFID-läsare, operativsystem och styrmjuk-vara till RFID-läsarna. Rapporten tar även upp tidigare forskning och implemen-tationer av RFID-användning i vårdmiljöer. Från början var målet att använda Snappy Ubuntu Core som operativsystem, men laborativt arbete visade att Snap-py Ubuntu Core inte riktigt hade vad som krävdes för att uppfylla syftet. Arbetet har resulterat i konstruerad mjukvara för att styra och läsa av RFID-kort med en av RFID-läsarna som testats, och det har även experimenteras med Node-RED tillsammans med RFID-mjukvaran.

(8)
(9)

Abstract

The project aims to evaluate the possibilities of using a Raspberry Pi 2, as part of an identification system, for the use in healthcare environments. The thesis eval-uates the possibilities to use different types of hardware and software together with Raspberry Pi, for example, RFID readers, operating system and software for controlling the RFID readers. The thesis also provides information on previous research and implementation of RFID usage in healthcare environments. An orig-inal goal was to use Snappy Ubuntu Core as the main operating system for the project, but some experimentation showed that Snappy Ubuntu Core lacked cer-tain features for it to be used in the project. The work has resulted in software to control and read RFID cards with one of the tested RFID readers, and also some experimentation using Node-RED together with the RFID software.

(10)
(11)

Tack

Jag skulle vilja tacka följande:

Erik Sundvall på Region Östergötland för det den intressanta uppgiften.

J Jacob Wikner som varit min examinator, vars kommentarer har varit till stor hjälp över arbetets gång.

Min sambo Zarah Thorell för stöd och fint ritad figur.

Min studentkollega Tomas Johansson för alla fina diskussioner.

(12)
(13)

Innehåll

Notation xi 1 Inledning 1 1.1 Motivation . . . 1 1.2 Syfte . . . 1 1.2.1 Problemställning . . . 2 1.3 Avgränsningar . . . 3 2 Teori 5 2.1 Introduktion . . . 5 2.2 RFID i vårdmiljö . . . 5 2.3 RFID . . . 6 2.3.1 Frekvensområden . . . 7 2.3.2 NFC . . . 7 2.4 Bluetooth . . . 9 2.4.1 Bluetooth Classic . . . 9

2.4.2 Bluetooth Low Energy . . . 9

2.5 Hårdvara . . . 10

2.5.1 Raspberry Pi . . . 10

2.5.2 Rfid-läsare . . . 10

2.6 Mjukvara . . . 13

2.6.1 Snappy Ubuntu Core . . . 13

2.6.2 Node-RED . . . 13

3 Metod 15 3.1 Bluetooth . . . 15

3.2 Raspberry Pi 2 . . . 16

3.2.1 RFID-läsare . . . 16

3.2.2 Snappy Ubuntu Core . . . 17

3.2.3 Node-RED . . . 18

3.3 RFID . . . 19

3.3.1 NDEF . . . 19

(14)

x Innehåll 4 Resultat 21 4.1 Introduktion . . . 21 4.2 RFID . . . 21 4.2.1 RFID-läsare . . . 21 4.2.2 NDEF . . . 22

4.3 Snappy Ubuntu Core . . . 23

4.3.1 Raspbian . . . 23 4.4 Node-RED . . . 24 4.5 Bluetooth . . . 25 4.6 Sammanfattning . . . 26 5 Diskussion 27 5.1 Resultat . . . 27 5.2 Metod . . . 28 6 Avslutande kommentarer 29 6.1 Förslag på vidare utveckling . . . 29

A Instruktioner 33 A.1 Instruktioner för installation av mjukvara och hårdvara . . . 33

A.1.1 Snappy Ubuntu Core . . . 33

A.1.2 Raspbian . . . 35

A.2 RFID . . . 35

A.3 Programkod . . . 36

A.4 Node-RED . . . 37

(15)

Notation

Förkortningar

Förkortning Betydelse

IoT Internet of Things CPU Central Processing Unit GPU Graphical Processing Unit GPIO General-purpose Input Output

USB Universal Serial Bus SPI Serial Peripheral Interface

UART Universal asynchronous receiver/transmitter RFID Radio Frequency Identification

NFC Near Field Communication

MHz Mega Hertz

KHz Kilo Hertz

GHz Giga Hertz

GB Giga Byte

MB Mega Byte

RAM Random Access Memory

BLE Bluetooth Low Energy NDEF NFC Data Exchange Format

kbps kilo bits per second Mbps mega bits per second

AES Asymetric Encryption Standard

ms milliseconds

mW milliwatt

PC Personal Computer

OS Operating System

HDMI High-Definition Multimedia Interface

(16)
(17)

1

Inledning

1.1

Motivation

Region Östergötland vill utvärdera möjligheten att använda Raspberry Pi som ett verktyg för att effektivisera vissa aspekter inom vården.

Raspberry Pi är en enkortsdator för cirka 400kr som nyligen fick en rejäl upp-gradering med starkare processor och dubbelt så mycket ram, från 700MHz en-kelkärnig processor till 900MHz fyra kärnig processor och 1GB ram istället för 512MB.

Priset och storleken1på datorn gör den intressant i dessa sammanhang, då dess

storlek låter den placeras lite varstans, samtidigt som den är billig och kan köras utan några andra tillbehör och att den lätt kontrolleras över ett nätverk.

1.2

Syfte

Syftet med arbetet är att utforska möjligheterna till att använda Raspberry Pi 2, tillsammans med det lite säkrare operativsystemet Snappy Ubuntu Core och närfältskommunikation2, för identifiering av personer och medicinskteknisk ut-rustning i en sjukhusmiljö.

Det tänkta scenariot: En personal, exempelvis en sjuksköterska, ska mäta en pa-tients hjärtrytm, med ett Bluetooth3kompatibelt mätinstrument, i det här fallet en hjärtmonitor.

Mätinstrumentet, sjuksköterskan och patienten scannas av med en RFID4-läsare,

185.60mm x 56mm x 21mm

2Radiobaserad informationsöverföring mellan korta avstånd, Near Field Communication(NFC) 3Standard för trådlös kommunikation mellan olika enheter

4Radio Frequency Identification, identifiering med hjälp av radiovågor

(18)

2 1 Inledning

som är ansluten till Raspberry Pi.

Raspberry Pi har då identifierat alla tre parter av undersökningen. När ett ment har använts och data är insamlad ska systemet kunna avregistrera instru-mentet och aktivera ett nytt instrument, den processen kan itereras så många gånger som behövs, och all uppmätt data lagras tillsvidare i Raspberry Pi. När väl undersökningen är klar, kan mätdatat skickas till Raspberry Pi, som då har lagrat all information som behövs för journalföring.

Se figur 1.1 för skiss över tänkta systemet.

Figur 1.1:Skiss över tänkta syftet

1.2.1

Problemställning

Ett problem som uppstår när flera instrument ska anslutas till samma dator är att Bluetooth normalt bara kan parkoppla5sju stycken enheter samtidigt. Om sy-stemet ska tillämpas i t.ex. ett undersökningsrum så behöver alla tänkbara typer av instrument kunna parkopplas och samtidigt identifieras.

Skulle det vara möjligt att kringå det här taket på sju parkopplade enheter samti-digt, om man utför parkopplingen med hjälp av en RFID-tagg, där informationen om Bluetooth instrumentet finns lagrat lokalt på Raspberry Pi och används för en parkoppling så fort RFID-taggen blivit avscannad?

Är Snappy Ubuntu Core ett lämpligt operativ system för att uppfylla syftet? Om inte, finns det alternativa lösningar till operativsystem om Snappy Ubuntu Core? I och med att ett flertal olika medicinsktekniska instrument kan tänkas använ-das så vore det bra att kunna simulera ett flertal olika instrument. Vad finns det för möjligheter och alternativ till simulering av medicinskteknisk utrustning?

(19)

1.3 Avgränsningar 3

1.3

Avgränsningar

Jag begränsar exjobbet till att konstruera grundläggande men modulär mjukvara för RFID-avläsning, som lätt kan implementeras i olika system.

I och med att arbetet utförs på universitetet så finns det ingen tillgång till me-dicinsktekniska mätinstrument, därav kommer de att simuleras.

Mätinstrumenten begränsas till att använda enbart Bluetooth LE och ej Bluetooth Classic, även om Bluetooth Classic kommer att diskuteras då ämnet är relevant i framtida utveckling av det som görs i det här examensarbetet.

I och med den potentiella hanteringen av personuppgifter och den miljö som systemet kan tänkas befinna sig i, där obehöriga personer har potentiell tillgång till vissa delar av systemet, så bör säkerheten kring intrång och hårdvaru mani-pulation diskuteras innan ett sånt här systemet används. Dock kommer det här exjobbet inte ta upp några diskussioner gällande säkerhetsaspekter.

Även etiska aspekter kommer att utelämnas, då jag finner etiken kring person-lig data och vård är ett för stort ämne för att diskuteras i den här, en mer tekniskt lagda rapporten.

(20)
(21)

2

Teori

I teorikapitlet så beskrivs bakomliggande teori för den hårdvara och mjukvara som kan tänkas användas i projektet, såväl som teori som behandlar liknande studier och implementationer.

2.1

Introduktion

För att ge en så pass bra teoretisk grund som möjligt till det arbete som ska utfö-ras så bör ett par ämnen studeutfö-ras.

Först och främst så bör liknande implementationer studeras, även forskning om vilka fel som görs i vården och på vilket sätt RFID kan användas för att kringgå och förebygga dessa fel.

Sedan måste all hårdvara studeras, hur de har använts tidigare, hur de kan sättas upp för att interagera med varandra och vilka tänkbara användningsområden de kan ha.

Sist men inte minst så ska mjukvara studeras på liknande sätt som hårdvaran, för att identifiera möjliga vägar till interaktion mellan hårdvara och mjukvara.

2.2

RFID i vårdmiljö

Ett av många användningsområden för RFID i vården är att kunna identifiera pa-tienter, för att förhindra relativt vanliga fel, så som t.ex. felmedicinering [Murphy and Kay, 2004].

Dessa system kan innebära att patienten får ett armband med ett RFID-chipp, på chippet lagras, förutom ett unikt id, t.ex. patientens blodgrupp och annan relevant medicinsk data.

(22)

6 2 Teori

Blodtransfusioner är en vanlig källa till problem i vården, där patienter ges fel sorts blod [Aller, 2002]. Studier har visat att dessa fel görs när patienter är ned-sövda, när de ej kan identifera sig själva och t.ex. kirurgen inte känner patienten sedan innan [Sazama, 1990]. En möjlig lösning på problemet är att tagga blod-påsen och patienten, och när transfusionen ska förberedas så scannas blod-påsen och patienten och om inte blodtyper matchar, så kan ej transfusionen genomföras. RFID kan även användas för att lokalisera personal och hålla uppsikt i realtid över vilken utrustning som används eller behöver repareras, vilket hjälper till att reducera onödigt arbete för personalen vars uppgift är att se över sina patienter [Fuhrer and Guinard, 2006].

2.3

RFID

Radio Frequency Identification (RFID), är en generiskt begrepp för teknologi som använder sig av radiovågor för automatisk identifiering av objekt eller människ or.

RFID bygger på att man har taggar och läsare, där en RFID-tagg består av ett halv-ledarchip, en antenn och ibland en strömkälla. Se figur 2.1 för ett exempel på hur ett RFID-system kan se ut, där en antenn som är kopplad till en RFID-läsare tar emot data från en RFID-tagg och skickar datan vidare till en ansluten dator. Det finns olika typer av RFID, men den vanligaste typen använder en passiv tagg, en tagg utan extern strömkälla, som när den blir avläst, använder läsarens sig-nal som energikälla. Läsaren kan få ut taggens unika serienummer, datan som ligger lagrad på taggens minne och har möjlighet att skriva egen data till minnet [Roberts, 2006].

(23)

2.3 RFID 7

2.3.1

Frekvensområden

Radiofrekvensspekret är indelat i olika frekvensband, där de olika frekvensban-den har olika egenskaper och används till olika saker.

RFID brukar delas in i låga, höga och ultra-höga frekvenser, se tabell 2.1. [Roberts, 2006] Lågfrekventa system (125-134 kHz) brukar i allmänhet vara billiga att

im-Frekvensområde Egenskaper

Lågt frekvensområde 125-134 kHz

Kort till medium räckvidd Låg läshastighet

Låg kostnad Högt frekvensområde

13.56 MHz

Kort till medium räckvidd Medelhög läshastighet Låg kostnad Ultra-högt frekvensområde och mikrovågor 2.4-5.8GHz Lång räckvidd Hög läshastighet Hög kostnad Kräver fri sikt

Tabell 2.1:RFID jämförelse av frekvensområden och egenskaper

plementera och används ofta till spårning av gods, övervakning och identifiering. Högfrekventa system (13.56 MHz) brukar användas till liknande ändamål som de lågfrekventa systemen, men även till smart cards. Ultra-högfrekventa system (850 MHz och uppåt), med lång räckvidd upp till 100 meter, relativt till lågfre-kventa och högfrelågfre-kventa systemen som endast har en räckvidd på cirka 10cm, används för övervakning av tunga fordon och containrar [Roberts, 2006].

2.3.2

NFC

Near field communication (NFC) är baserad på samma teknik som används för RFID. NFC har liksom RFID möjlighet att skriva och läsa till passiva NFC-taggar men även överföra data mellan NFC kompatibel utrustning [Want, 2011]. De senaste åren har tillverkarna av bland annat smartphones börjat implemente-ra NFC-kretsar i sina telefoner, vilket har gjort att majoriteten av alla telefoner idag borde vara NFC-kompatibla [Changler, 2012].

NFC kan användas för att initiera annan typ av kommunikation, t.ex. Bluetooth, Bluetooth Low Energy eller wifi. Det här gör det möjligt för en smartphone eller dator att läsa av en NFC-tag som t.ex. innehåller information som beskriver en Bluetooth kompatibel apparat och automatiskt upprätthålla en anslutning med apparaten [Want, 2011].

NFC Data Exchange Format

NFC data överförs mellan kompatibla enheter med NFC Data Exchange Format (NDEF), vilket är ett protokoll definerat av NFC-forum för tvåvägs kommunika-tion mellan NFC-enheter. Ett NDEF meddelande består av ett godtyckligt antal

(24)

8 2 Teori

NDEF meddelande (record), där varje meddelande innehåller längd och typ in-formation som förklarar meddelandets tänkte funktion [Want, 2011]. Det finns ett par stycken definitioner av vanligen använda typmeddelanden (record type definitions, RTD), se tabell 2.2.

Typ Funktion

text type

Enkel form som används för att skicka text-strängar i ASCII eller unicode format, tillsammans med paramterar som

t.ex. definerar språk. unique resource

identifier type

Används för URLs. Där header definitionen, t.ex. "http://"komprimeras till ett 1-bytes fält. generic control type

Innehåller en rekommendation att starta ett program, spara överförd data eller göra modifikationer på

mottagar enheten.

signature type Inkluderar algoritmer för att hantera signaturer. smart poster type Tillåter flera NDEF meddelanden i en tagg, vilket skapar

ett smart objektsom beskriver sig självt. Tabell 2.2:NDEF typmeddelanden

(25)

2.4 Bluetooth 9

Specifikation Classic Bluetooth Bluetooth Low Energy

Radio Frequency 2.4 GHz 2.4 GHz

Distance/Range 10-100 meter 10-100 meters

Application Throughput 0.7-2.1Mbps 305kbps

Active slaves 7 Unlimited

Securty 56-128bit 128bit AES

Latency (from not connected

to send data) 100+ ms <6 ms

Power consumption 1 (reference value) 0.01 to 0.5 (of reference value) Tabell 2.3:Jämförelse mellan Bluetooth Classic och Bluetooth LE

2.4

Bluetooth

Bluetooth kommer i två olika former, Bluetooth Classic och Bluetooth Low Ener-gy, se tabell 2.3 för jämförelse.

2.4.1

Bluetooth Classic

Bluetooth (IEEE 802.15.1) är ett trådlöst system, ursprungligen designat av Erics-son för att ersätta RS-232 kablar i dataöverföringssyfte.

Dataöverföringen sker på ISM bandet1mellan 2.4 till 2.485 GHz.

Hastigheten på överföringarna varierar mellan 780 kbit/s till 2.1 Mbit/s beroen-de på vilken version av Bluetooth som används.

Räckvidden på överföringen beror på vilken klass av radio man använder, den mest använda är klass 2 vilket har en räckvidd på cirka 10 meter och använder 2.5 mW effekt vid dataöverföring. Klass 1 har en mycket längre räckvidd, 100 meter, men har självfallet mycket högre effektförbrukning, 100 mW [Lee et al., 2007] [SIG, 2015].

2.4.2

Bluetooth Low Energy

Bluetooth LE (BLE) är den senaste versionen av Bluetooth, men tekniken skiljer sig helt ifrån Blueooth Classic och stödjer därför ingen form av bakåt kompabili-tet.

BLE är utvecklat av Bluetooth Special Interest Group (SIG) för kommunikation över korta avstånd. BLE riktar sig främst mot applikationer inom sjukvård, fit-ness och smarta hem, där en sensornod kan hållas vid liv med ett knappcells batteri i upp till 10 år.

Tillskillnad ifrån tidigare versioner av Bluetooth har BLE designats för att vara energisnålt, men samtidigt behålla liknande räckvidd som klassisk Bluetooth. Implementeras antingen som single-mode eller dual-mode. Single-mode2, där enheten kan vara en sensor som med ett visst intervall skickar ut data till alla

1Licensfritt frekvensband, ISM (Industrial, Scientific and Medical)

(26)

10 2 Teori

som lyssnar. Eller dual-mode som är mer en utveckling av klassisk Bluetooth, där två enheter pratar med varandra, t.ex. en dator och en telefon [Gomez et al., 2012].

2.5

Hårdvara

I följande avsnitt diskuteras hårdvaran som potentiellt kan vara en del av slutpro-dukten.

2.5.1

Raspberry Pi

Raspberry Pi är en liten enkortsdator som är utvecklad av Raspberry Pi Founda-tion, tänkt som en billig plattform att lära ut grundläggande datavetenskap till barn och ungdomar [Upton and Halfacree, 2014].

Raspberry Pi foundation har släppt ett flertal olika version av datorn, i rapporten diskuteras den senaste versionen, Raspberry Pi 2, se tabell 2.4 för specifikationer över Raspberry Pi 2. Se figur 2.2 för ett foto av Raspberry Pi 2.

Specifikation Raspberry Pi 2

CPU 900 MHz ARM Cortex Quad Core

GPU Broadcom VideoCore IV

Memory (RAM) 1GB

GPIO 40Pin

Storage microSD

Tabell 2.4:Raspberry Pi specifikation

Figur 2.2:Bild på Raspberry Pi 2

2.5.2

Rfid-läsare

Omnikey 5321

En 13.56 MHz läsare från HID Global som kan läsa i princip vilket smart cards som helst. Ansluts till PC via USB. Se figur 2.3 för bild.

MFRC522

Kombinerad läsare/skrivare, har stöd för Mifare3 13.56 MHz kort. Ansluts via

SPI, I2C eller UART. Se figur 2.4 för en bild av MFRC522, på bilden syns

(27)

2.5 Hårdvara 11

Figur 2.3:Bild på Omnikey 5321

ningslisten längst till höger som används för att ansluta till SPI, I2C eller UART, man kan även se antennen till vänster och LED’s som när läsaren är aktiv, kan användas till olika former av diagnostik.

Figur 2.4:Bild på MFRC522

PN532

Liknande MFRC522, höjd funktionallitet med t.ex. emulering av taggar. Se figur 2.5 för bild, som är väldigt lik MRFC522 till utseendet men har fler anslutnings-möjligheter och därmed fler anslutnings-möjligheter för konfiguration.

BLED112

Bluetooth dongel från Bluegiga, kompatibel med Bluetooth 4.0 Low Energy, ej Bluetooth classic.

(28)

12 2 Teori

(29)

2.6 Mjukvara 13

2.6

Mjukvara

I följande avsnitt diskuteras mjukvaran som potentiellt kan vara en del av slut-produkten.

2.6.1

Snappy Ubuntu Core

Snappy Ubuntu Core är Ubuntus minimala operativsystem för molnservrar och IoT4. Operativsystemet är väldigt säkert, vilket gör det intressant. För det första så hålls operativsystemets filer och applikationsfilerna separata, som read-only5, vilket gör att filerna inte går att manipulera. För det andra så sparas automatiskt alla gamla filer när operativsystemet eller applikationer uppdateras, vilket gör det lätt dra tillbaka en uppdatering av en applikation, om den inte fungerar som tänkt [Canonical, 2015].

2.6.2

Node-RED

Node-RED är ett verktyg, framtaget av IBM, för IoT. Det går ut på att program-mera grafiska flöden med hjälp av olika noder. Noderna är scriptade i javascript och kan t.ex. scriptas för att läsa av sensorer, läsa av information från websidor eller skicka Twitter meddelanden. Det grafiska gränssnittet för att redigera flöde-na nås via en webläsare, se figur 2.6. Det följer även med mycket information om hur man bygger sina egna noder med hjälp av javascript och hela Node-RED är opensource och finns tillgängligt på Github [IBM, 2015].

Figur 2.6:Skärmdump på ett Node-RED flöde

4Internet of Thing (Sakernas Internet), samlings begrepp för utvecklingen av uppkopplade

maski-ner.

(30)
(31)

3

Metod

Metoden syftar till att beskriva hur arbetet har genomförts och hur frågeställning-arna har besvarats.

Inledesvis gjordes omfattande litteraturstudier, vilket i största del bestod i att studera liknande implementationer av RFID inom vården och läsa datablad för den tidigare presenterade hårdvaran.

Sedan utfördes laborativt arbete för att fastställa vilken mjukvara, hårdvara och miljöer som fungerade bäst tillsammans och var mest passande för att uppfylla syftet.

3.1

Bluetooth

Teorin kring Bluetooth visade att Bluetooh classic hade begränsningen med maxi-malt sju stycken parkopplingar samtidigt, däremot är antalet parkopplingar obe-gränsade med Bluetooth LE.

Att testa möjligheterna kring detta kan ske simpelt genom att implementera mjukvara som kan parkoppla med ett flertal olika Bluetooth LE kompatibla en-heter, och samtidigt särskilja dem.

Möjligheterna att parkoppla Bluetooth Classic kompatibla enheter med hjälp av RFID borde kunna beprövas på ett liknande sätt. I och med att alla Bluetooth-enheter går att unikt identifieras, så om de är markerade med varsin RFID-tagg, vars serienummer är lagrat tillsammans med Bluetooth enhetens serienummer och potentiella lösernord på Raspberry Pi, så borde mjukvara kunna utföra en parkoppling när enhetens tag scannas av Raspberry Pi.

En applikation till iPhone OS, BLE Utility som finns på Apple Store1, uppges kun-na simulera en uppsjö av olika BLE protokoll, där ibland heartrate monitor och

1Apples applikations butik

(32)

16 3 Metod

health thermometer, som Bluegiga har exempelmjukvara till, som kan ta emot data från ett par olika Bluetooth profiler. Det borde vara lämpligt att använda BLE Utility för att simulera medicintekniska instrument. Se figur 3.1 som visar de olika data som går att manipulera för en hjärtmonitor och en termometer, t.ex. vart någonstans på kroppen en sensor är placerad eller med vilket intervall mät-ningarna ska utföras.

Figur 3.1:Bild på BLE Utility

3.2

Raspberry Pi 2

Hjärtat av projektet är en Raspberry Pi 2(RPi), därför måste kompabiliteten mel-lan RPi och all kringutrustning studeras. Det som bör studeras innan det labora-tiva arbetet är:

• Hur anslutningar sker mellan RPi och extern hårdvara

• Vilka alternativ till drivrutiner som finns för att styra hårdvaran med RPi

3.2.1

RFID-läsare

Omnikey 5321

Anslutningen sker via USB till RPi, vilket i sig borde fungera väl, då RPi tillhanda-håller fyra stycken USB portar. Men företaget bakom Omnikey 5321, HID Global,

(33)

3.2 Raspberry Pi 2 17

har inga drivrutiner som stödjer ARM2arkitekturen.

MFRC522

För att kommunicera med MFRC522 så används RPi’s GPIO3 pinnar, specifikt

dess SPI-buss4. För att få åtkomst till RPI’s GPIO och SPI-bussen finns det ett par olika mjukvarubibliotek som är lämpliga, Wiring Pi som är skrivet i C för BCM28355 och för Python finns RPi.GPIO. I figuren 3.2 syns MRFC522 ihop kopplad med Raspberry Pi via GPIO pinnarna med ett par centimeter långa kab-lar.

Figur 3.2:Bild på anslutningen av MFRC522 och Raspberry Pi

3.2.2

Snappy Ubuntu Core

För att testa Snappy Ubuntu Core och dess möjlighet att kommunicera med hård-varan så installerades först operativsystemet, se appendix för instruktioner. Det första som testades med operativsystemet var huruvida nätverksåtkomst var en möjlighet utan modifikationer. Det visade sig att ethernet porten på RPi funge-rade utan problem, men att det inte följde med några drivrutiner för trådlösa nätverkskort. Ubuntu bygger på Linux distrubutionen Debian, vilket brukar an-vända sig av pakethanteraren “apt”, men Snappy Ubuntu Core använder sig av egen, säkrare pakethanterare som dem helt enkelt kallar Snappy. I och med att operativsystemet är väldigt nytt så finns det inte mycket färdig mjukvara i Snap-py’s paketbibliotek, vilket betyder att om man ska installera mjukvara, som t.ex.

2Familj av RISC (Reduced Instruction Set Computing) processorer 3General Input Output, direkt anslutning till ARM processorn. 4Serial Peripheral Interface

(34)

18 3 Metod

drivrutiner för trådlöstnätverk, så får man gå omvägar, där man måste ommon-tera filsystemet, i och med att filsystemet enbart är läsbart som standard, och installera paketen via dpkg6, se appendix för instruktioner.

Drivrutinerna för det trådlösa nätverkskortet gick utan vidare att installera, men sedan att konfigurera anslutningen mot ett nätverk var lite mer komplext, i och med att Snappy Ubuntu Core saknar textredigerare. Det som fick ske var att RPi’s sdkort monterades i en annan dator, där anslutnigen kunde konfigureras, se ap-pendix för instruktioner.

När väl nätverket fungerade utan problem så var det dags för RFID-läsaren, MFRC522, att installeras och testas. I och med att den är ansluten via GPIO pin-narna så behövdes biblioteken för GPIO installeras, på samma sätt som trådlösa nätverkskortet. När dock läsaren var inkopplad visade det sig att oavsett om driv-rutiner och bibliotek var installerade för GPIO, så kunde inte Snappy Ubuntu Core klara av att kommunicera med GPIO.

Rasbian

I och med att Snappy Ubuntu Core inte fungerade som tänkt så fick experimen-tert med Raspbian, ett annat Linux baserat operativsystem för RPi, utföras. Raspbian är i många fall lättare att hantera än Snappy Ubuntu Core, då även fast det är ett stabilt och tillförlitligt operativsystem så har inte Raspbian all den sä-kerhet som Snappy Ubuntu Core använder. Raspbian optimiseras även hela tiden för Raspberry Pi, av Raspberry Pi Foundation7, vilket bör innebära stabilitet och kompabilitet.

3.2.3

Node-RED

Arbetet med Node-RED innebar mestadels enbart en installation på RPi, och test tillsammans med befintlig mjukvara för RFID. För att komma åt befintlig mjuk-vara i Node-RED så finns det ett verktyg, en nod, som kan starta underprocesser, och på så vis få tillgång till det som rfid-mjukvaran skickar ut, när rfid-läsaren upptäcker ett id-kort.

Noden i fråga skickar sen ut hela serienummret som en sträng, som kan hante-ras av andra noder, så som t.ex. en egenskriptat funktions-nod som kan jämföra innehållet i strängen mot en databas.

Det finns även ett par intressanta sätt att kommunicera med Bluetooth LE enheter med hjälp av Node-RED. Ett sätt är att använda de verktyg som finns för Linux att scanna och använda Bluetooth LE enheter, t.ex. hcitool. Det kan användas på samma sätt som min RFID mjukvara, de vill säga starta underprocesser i Node-RED, och ta hand om de strängar som underprocesserna skickar ut.

Men i och med att Node-RED bygger på node.js så kan även node.js kompatibla moduler användas, t.ex. noble, som är en Bluetooth LE modul. Det här borde vara det lämpligaste sättet att samla parkoppla och samla in data från enheter.

6Lågnivå pakethethanterings system, använt av Debian baserade distributioner. 7Grundarna av Raspberry Pi

(35)

3.3 RFID 19

3.3

RFID

Huvudelen i projektet handlar just om att ta fram mjukvara till en av RFID-läsarna, så att den kan läsa in och bearbeta en RFID-taggs unika serienummer. Koden skrivs i C, då språket gör det möjligt att programmera effektiva och hård-varunära program.

Mycket av koden som skrivs till Raspberry Pi är skriven i Python, då Raspberry Pi foundation förespråkar Python. Därav finns det redan mycket färdig kod till Raspberry Pi skriven i Python, t.ex. mjukvara för att driva MFRC522 och PN532. Men i och med att Python använder sig av en interpreter, programmen kompile-ras alltså inte, utan körs med Python’s interpreter i realtid, vilket jag gärna vill undvika, då jag framförallt är intresserad av skriva så effektiv kod som möjligt. Om vi ser till MFRC522 så finns det väldigt mycket C-kod redan färdigskriven till olika platformar, framförallt finns det ett bibliotek skrivet i C till Arduino8, som tar hand om all hårdvarunära kommunikation via SPI-bussen till MFRC522. Till Raspberry Pi däremot finns det inga lika modulära och lätthanterliga biblio-tek. Därför kan det vara lämpligt att ta det redan färdigskrivna C-biblioteket till Arduino och översätta koden så att Raspberry Pi kan använda den för att styra MFRC522. Arduino’s SPI bibliotek är nämligen inte helt olik Raspberry Pi’s SPI bibliotek till C, vilket borde göra översättningen relativt simpel.

3.3.1

NDEF

Med PN532 är det möjligt att skicka meddelanden från Raspberry Pi till en NFC kompatibel Android telefon. Specifik mjukvara för att styra PN532 är nödvändig och måste skrivas, alternativt lokaliseras, och även mjukvara för att ta emot ett NDEF-meddelande på en Android telefon, vilket borde existera på t.ex. Google Player Butiken9. Framförallt kommer möjligheterna att skicka fält av data, ge-nom användning av redan existerande mjukvara för Raspberry Pi undersökas.

8Microcontroller board

(36)
(37)

4

Resultat

Resultatet presenteras genom att gå igenom individuella resultat av projektets olika delmoment för att sedan avslutas med en sammanfattning av resultatet.

4.1

Introduktion

I och med att projektet har bestått av olika delar, från laboration med hårdvara till konstruktion av mjukvara så presenteras resultatet i olika delar. De resultat som ska tas upp är resulternade experiment med Snappy Ubuntu Core, konstruk-tionen av RFID-mjukvara och hur Node-RED använts tillsammans med RFID och dess mjuk och hårdvara.

4.2

RFID

I RFID-avsnittet presenteras de olika delarna i projektet som relateras huvudsak-lingen till just RFID, såsom läsare och mjukvaran som hanterar just RFID-läsaren.

4.2.1

RFID-läsare

Den RFID-läsaren som beställaren ville använda sig av, Omnikey 5321, gick ej att använda då dess tillverkare, HID Global, inte tillhandahåller några drivruti-ner för ARM arkitekturen. Det finns heller inga tecken på att dem skulle släppa drivrutiner till ARM, då Omnikey 5321 är några år gammal och en produkt som inte är i produktion längre och att dem inte tycks ha några produkter som stödjer ARM arkitekturen.

(38)

22 4 Resultat

Därav fick istället ett substitut identifieras och beställas. Det som var intressant när en ny läsare skulle väljas ut var huruvida den var plattformsoberoende, de vill säga, den borde fungera till alla plattformar och processorarkitekturer. De läsare som visade högst potential var MFRC522 och PN532, då båda dessa läsa-re ansluts diläsa-rekt via SPI1, som finns på Raspberry Pi’s GPIO port. Dessa läsare går att beställa för några få kronor, och är betydligt mer prisvärda att använda än Omnikey 5321, vilket är en intressant faktor om man ser till att systemet kan tänkas användas i alla salar i ett sjukhus.

Vid eftersökningar på bland annat github och Raspberry Pi’s användarforum så visade det sig att det fanns en väldigt stor opensource kodbas, skriven i C till MFRC522, fast för Arduino2.

Efter att ha noggrant studerat Arduino biblioteket så upptäcktes det att den kod och dess funktioner är väldigt lika de som används av Raspberry Pi, för att t.ex. kommunicera med SPI. Det gjorde proceduren att skriva om hela biblioteket, så att det istället för att fungera till Arduino, nu kunde initiera en anslutning till Raspberry Pi’s SPI interface och ansluta mot MFRC522 via GPIO istället.

Resultatet blev ett kodbibliotek som kan inkluderas i ett C/C++ program för att sedan läsa av en tag med MFRC522. I figuren 4.1 så kan man se RFID-mjukvaran i en terminal, ett RFID-kort är inscannat och dess serienummer visas i terminalen.

Figur 4.1:Skärmdump på en terminal som kör RFID-mjukvaran

4.2.2

NDEF

Det var förvånansvärt svårt att hitta mjukvara som skickade data mellan Rasp-berry Pi och Android via PN532. Det verkar som att folk på RaspRasp-berry Pi’s och

1Serial Peripheral Interface

(39)

4.3 Snappy Ubuntu Core 23

andra forum tycker det är mer intressant att använda PN532 för att enbart läsa av taggar och inte använda den i syfte att skicka data från Raspberry PI till en annan enhet.

Det som hade behövts göras för att uppnå ett bra resultat, ett resultat med enkel och fin mjukvara som endast syftar till att skicka meddelanden mellan Raspberry Pi och t.ex. en Android telefon, vore att från grunden skriva all kod som behövs för ändamålet.

Men det som skedde var ett test med redan existerande mjukvara, ett försök till att manipulera mjukvaran att skicka egna meddelanden. Hur som helst så resulte-rade försöken i att ett program som kunde skicka korta fält av chars3som kunde läsas upp i en Android4telefon.

4.3

Snappy Ubuntu Core

Även fast Snappy Ubuntu Core är ett väldigt stabilt och säkert operativsystem, där administratören har stor kontroll över vilka paket som installeras och enkelt kan dra tillbaka en applikation till tidigare versioner, i och med att applikatio-nernas tidigare versioner sparas undan vid varje uppdatering, så visade det sig att operativsystemet har lite för många brister i dagsläget för att kunna användas till det som beställaren tänkt sig.

Det största problemet är att operativsystemet inte stödjer kommunikation via GPIO, vilket både MFRC522 och PN532 använder tillsammans med SPI. Därav kunde varken Omnieky 5321 användas, i och med dess inkompabilitet med ARM och då inte heller MFRC522 och PN532, vilket uteslutningsvis resulterar i att ope-rativsystemet inte går att använda för det tänkta syftet.

Men oavsett vad det kan användas till för tillfället så resulterade experimenten med Snappy Core Ubuntu i instruktioner över hur operativsystemet ska instal-leras och hur man kan installera mjukvara utanför Snappy Ubuntu Core’s egna mjukvarubibliotek, vilket kan vara intressant vid vidare försök till tillämpningar. Instruktioner finns beskrivna i appendix.

4.3.1

Raspbian

I och med att Snappy Ubuntu Core visade sig ha bristande tillgänglighet till GPIO så fick det istället bli operativsystemet Raspbian, som även det är ett Linux ba-serat operativsystem, som fick användas. Raspbian är det officiella operativsyste-met till Raspberry Pi, och på så sätt har mycket stöd ifrån Raspberry Pi’s tillver-kare och användarforum.

Installationen av Raspbian resulterade i att projektet kunde fortgå och RFID-läsaren och dess kod fungerande felfritt då Raspbian tillåter utan några svårig-heter att man ansluter sig mot GPIO och SPI.

3Char, datatyp som innehåller ett ascii-tecken 4Operativsystem till blandannat mobiltelefoner

(40)

24 4 Resultat

4.4

Node-RED

Den största delen av arbetet med Node-RED utgjordes av laborerande med de no-der som redan fanns inlagda i Node-RED direkt ifrån installationen, men även en nod som hittades bland Node-RED’s databas av noder skapade av användare. En nod som startar ett program som en daemon5. Daemon-noden har tillgång till att återstarta programmet om det avslutas, vilket inte Node-RED’s egna nod för att starta program kan. Daemon noden användes tillsammans med RFID-mjukvaran, som enbart väntar på att ett RFID-kort eller tagg ska scannas, printa ut dess se-rienummer för att sedan avslutas. Det här resulterar i ett flöde som upprepade gånger kan användas för att scanna av ett RFID-kort och för att sedan bearbeta dess serienummer på vilket sätt man vill, t.ex. jämnföra med en databas av RFID-kort.

I figuren 4.2 kan man se en Node-RED server som körs i en terminal på Raspber-ry Pi med operativsystemet Raspbian, man ser bland annat att servern skapar en webbsida med adressen http://127.0.0.1:1880/ där man kan gå in för att redigera och köra sina flöden. I figur 4.3 så ser man det grafiska gränssnittet, webbsidan, där ett flöde är upplagt med två noder. Den ena noden “Read RFID”, är en nod som anropar RFID-mjukvaran och noden “msg.payload” tar in en sträng från “Re-ad RFID” för att skriva ut den i debug-fönstret som syns till höger, där man även ser ett serienummer för ett inscannat RFID-kort.

Figur 4.2:Skärmdump på en terminal som kör en Node-RED server

(41)

4.5 Bluetooth 25

Figur 4.3:Skärmdump på Node-REDs grafiska interface

4.5

Bluetooth

Det uppnådda resultatet med Bluetooth är att BLE Utility kan skicka data från en simulerad hjärtmonitor till Raspberry Pi, med hjälp av Bluegigas egna exemplpro-gram. I figuren 4.4 visas en terminal som kör Bluegigas mjukvara för att ansluta mot en hjärtmonitor och ta in dess data.

Även om det har visat sig att det teoriskt är möjligt att parkoppla flera Bluetooth LE/Classic kompatibla enheter via RFID taggar, så är det något som ej har kunnat bekräftas, i och med bristen på enheter och mjukvara att testa med.

Men tester med RFID-mjukvaran har visat att den kan användas tillsammans med Node-RED, och enligt [Pedrinaci, 2014] finns det möjligheter för Node-RED att på kommando scanna efter Bluetooth LE enheter. Det här tyder på att Node-RED tillsammans med RFID-mjukvaran, kan användas tillsammans för att kon-struera ett system som kan scanna av RFID-taggar och automatiskt ansluta till taggarnas relaterade Bluetooth LE enheter.

(42)

26 4 Resultat

Figur 4.4:Skärmdump på en terminal som visar Bluegigas mjukvara för att ansluta och ta emot data från en hjärtmonitor

4.6

Sammanfattning

För att kort sammanfatta resultatet i sin helhet så resulterade projektet i en Rasp-berry Pi 2, med operativsystemet Raspbian installerat. Bra strukturerad och lät-tanvänd mjukvara för att hantera inläsning ifrån RFID-läsaren MFRC522, som kan användas tillsammans med Node-RED servern som även den är installerad på samma system eller så kan mjukvaran användas självständigt för att enbart läsa ett RFID-kort.

Experiment som påvisar att Snappy Ubuntu Core inte går att använda tillsam-mans med hårdvara som använder sig utav GPIO-porten på Raspberry Pi och varför det inte fungerar.

Även att möjligheterna finns för att utföra parkopplingar med Bluetooth kom-patibla mätinstrument via en RFID-tagg har studerats och ser teoretiskt ut att fungera.

(43)

5

Diskussion

Diskussionen syftar till att diskutera resultatet och huruvida syftet uppfylles. Syftet är i sig delvis uppfyllt, Snappy Ubuntu Core är testat och visat sig inte riktigt moget för att användas tillsammans med Raspberry Pi’s GPIO. Det här är självfallet något som kommer att förändras med tiden, och då möjliggör använ-dandet av Snappy Ubuntu Core tillsammans med den RFID-läsare och kod som har använts.

5.1

Resultat

Problemställningen i inledningen har besvarats, i teori kapitlet såväl som resultat kapitlet.

Däremot så är det system som skulle ha konstruerats inte fullständigt i dagsläget, utan arbetet som har utförts har resulterat i ett par bitar, som har potential att vara en del av det större pusslet i ett färdigt system.

RFID-läsarens mjukvara fungerar utmärkt och går att implementera i olika sam-manhang för Raspberry Pi. Ett stort Arduino bibliotek för MFRC522 har översatts till att fungera tillsammans med Raspberry Pi, oavsett vilket operativsystem som används.

PN532 har testats och visat sig kan skicka fält av data mellan Raspberry Pi och en Android-telefon. Men eftersom det inte fanns något tydligt syfte bakom tanken att skicka data mellan Raspberry Pi och en telefon så gav jag det inte mer tid än att just testa konceptet.

Node-RED har installerats och fungerar utmärkt på Raspberry Pi. Visade sig va-ra enkelt att starta externa progva-ram, såsom mitt RFID progva-ram. Det finns även potential att skriva mjukvara för MFRC522 direkt i javascript till Node-RED, och även för andra enheter, t.ex. Bluetooth instrument.

(44)

28 5 Diskussion

I viss mån kan mätadata från ett mätinstrument visas, via Bluegigas egna mjuk-varu exempel, som tar emot data från en hjärtmonitor. Den här exempelkoden är välskriven och har potential att utvecklas till att ta emot data från andra typer av Bluetooth profiler1.

5.2

Metod

Projektets metoder var passande för projektet. Litteraturstudien visade många sätt att attackera problemen som uppstod och det laborativa arbetet har ökat kunskaperna om Raspberry Pi och dess möjligheter. Framförallt så hade aldrig Snappy Ubuntu Core visat sig så pass obrukbart, om jag inte hade laborerat med möjligheterna att ansluta och installera hårdvaran i början av projektet. Det här ledde i och för sig till att det inte fanns tid kvar för syftet att uppfyllas helt och hållet, men jag tycker ändå att den informationen som det resulterade i var värd tiden och har potential att användas i framtiden.

(45)

6

Avslutande kommentarer

Ett par avslutande tankar om projektet och förslag på dess vidareutveckling. Allt som allt är jag nöjd med min insats, det har varit ett givande projekt och jag tror att informationen som det har resulterat i har potential att användas i framtida försök till olika implementationer där Raspberry Pi används.

6.1

Förslag på vidare utveckling

Jag känner att jag knappt har berört ytan av potentialen som kan nås med Rasp-berry Pi, Node-RED, RFID och Bluetooth.

Node-RED har potential att använda extern mjukvara såväl som interna skript. Dessa skript skrivs i Javascript, eller egentligen NodeJS, vilket är det system som Node-RED bygger på. Communityt runt Node-RED är stort och det är andra som har gjort noder för bland annat kommunikation med Bluetooth LE och andra RFID-läsare. Som jag ser det skulle det alltså gå att implementera hela det exem-pel system, beskrivet i inledningen, i Node-RED. Det tycks även finnas möjlighe-ter att direkt koppla upp ett Node-RED flöde till databaser, vilket kan innebära att man kanske kan manipulera data i journaler direkt från det flödet?

Även Snappy Ubuntu Core är förmodligen någonting värt att hålla koll på i fram-tiden, då jag är övertygad om att någon i Raspberry Pi’s community kommer att implementera sätt att kommunicera med GPIO, vilket är det enda som hindrade mig från att använda just Snappy Ubuntu Core.

Bluegigas exempelskript är något jag hade velat kunna ägna mer tid åt. Om man har tillgång till lite olika medicinsktekniska instrument, så kan man nog med lite tid ta fram mjukvara som kan hantera vilket Bluetooth LE instrument som helst. Själva konceptet med NDEF och skicka data mellan Raspberry Pi och en tele-fon, eller annan enhet, tycker jag verkar vara intressant och skulle kunna tänkas

(46)

30 6 Avslutande kommentarer

användas för att överföra mätdata eller journaldata från en Raspberry Pi.

Men jag tror och anser att koden för ett sådant projekt borde skrivas ifrån grun-den då det inte finns mycket mjukvara som gör just det, skickar data från Rasp-berry Pi till en annan enhet via NFC. Och den mjukvara som finns har oftast ett annat huvudsyfte, så om man försöker bygga någonting utifrån det som finns, så skulle koden bli ineffektiv och förmodligen rätt oläsbar.

(47)
(48)
(49)

A

Instruktioner

Här följer instruktioner för att replikera det konstruerade systemet.

A.1

Instruktioner för installation av mjukvara och

hårdvara

Här följer instruktioner för att kunna installera Raspberry Pi på ett sådant sätt att det går att replikera det arbetet som utförts i examens arbetet.

Jag börjar med att gå igenom hur Snappy Ubuntu Core installeras, även om det inte kan användas tillsammans med RFID-läsare och Bluetooth-läsare.

A.1.1

Snappy Ubuntu Core

För att installera Snappy Ubuntu Core på en Raspberry Pi 2 så behövs först och främst en avbild av operativsystemet, vilket kan laddas ner ifrån Raspberry Pi’s officiella hemsida http://www.raspberrypi.org/downloads/ . Där finns också mer detaljerade installations instruktioner för olika operativsystem, då jag framförallt tar upp hur installationen sker ifrån Linux.

Den här avbilden behöver sedan föras över till ett microSD kort, genom nedan-stående instruktioner:

Anslut microSD kortet i en dator och öppna en terminal och skriv följande kom-mando:

sudo dd bs=1M if=snappycore.img of=/dev/sdkort

Byt ut snappycore.img mot avbildfilens korrekta namn och sdkort mot sdkortets korrekta namn.

(50)

34 A Instruktioner

När microSD kortet är färdigt får du ett meddelande i terminalen och kan avmon-tera kortet i din dator för att sedan ansluta det i Raspberry Pi.

Om operativsystemet inte startar efter några minuter så kan det vara ett problem med HDMI-anslutningen, testa då att återansluta microSD kortet i en annan da-tor och lägg till raden “hdmi_safe = 1” i filen config.txt, för att potentiellt lösa problemet.

Raspberry Pi har ingen intern klocka, vilket krävs för att i Snappy Ubuntu Core installera så kallade snappy apps. Därför behövs klockan ställas in manuellt ge-nom att skriva följande kommando i terminalen:

sudo date –set”Sun Apr 11 08:00:00 UTC 2015

Trådlöst nätverk

För att installera ett trådlöst nätverkskort och sedan konfigurera det så behövs först ett par paket laddas ned.

Ladda ned följande filer till en dator:

• http://ports.ubuntu.com/pool/main/w/wpasupplicant/wpasupplicant_0.7.3-6ubuntu2.3_armhf.deb

• http://ports.ubuntu.com/pool/main/libn/libnl3/libnl-3-200_3.2.24-2_armhf.deb • http://ports.ubuntu.com/pool/main/libn/libnl3/libnl-genl-3-200_3.2.24-2_armhf.deb • http://ports.ubuntu.com/pool/main/p/pcsc-lite/libpcsclite1_1.8.11-3ubuntu1_armhf.deb Dessa är .deb filer, som är filendelsen för paket i Debian, vilket Snappy Ubuntu

Core baseras på. De installeras genom dpkg, vilket kräver ett par instruktioner i Snappy Ubuntu Core. Först och främst behöver filerna föras över till Raspberry Pi, det går att göra på ett par olika sätt. Det går att montera microSD kortet i datorn man har laddat ned filerna på och sedan föra över filerna direkt till kortet. Annars om man har en nätverksanslutning via kabel till Raspberry Pi så kan man föra över filerna via SSH/SFTP till Raspberry Pi. Sedan när filerna är överförda så behöver Raspberry Pi’s filsystem ommonteras med skrivrättigheter, då skriv-rättigheterna är reducerade för en ökad säkerhet i operativsystemet. Det här görs genom att skriva följande i terminalen:

sudo mount -o remount,rw /

Sedan installeras alla paket i ett directory genom att skriva följande

sudo dpkg -i *.deb

eller alternativtsudo -i filnamn.deb och byta ut filnamn mot den filen som ska

installeras.

För att ansluta till ett trådlöst nätverk behöver en konfigurationsfil för wlan ska-pas. Det görs genom att skapa filen “/etc/network/interfaces.d/wlan0” och lägga

(51)

A.2 RFID 35

till följande rader med information om nätverksanslutningen. allow-hotplug wlan0

iface wlan0 inet dhcp wpa_ssid “WIFI SSID” wpa_psk “WIFI PASSWD”

Spara sedan filen. Sedan behöver filen få korrekta rättigheter genom att skriva följande kommando:

sudo chmod go-r /etc/network/interfaces.d/*

Avsluta sedan med att ta tillbaka skrivrättigheterna för filsystemet genom att använda följande kommando:

sudo mount -o remount,ro /

A.1.2

Raspbian

Precis som för Snappy Ubuntu Core så kan Rasbian laddas ned från Raspberry Pi’s officiella hemsida. Se Appendix 1.1 för instruktioner över hur en avbild av operativsystemet installeras på ett microSD kort.

När operativsystemet är startar så välkomnas man av en terminal där man får skriva in sitt användarnamn och lösenord, vilket är pi/raspberry som standard. Därefter går det att starta det grafiska gränssnittet genom kommandot:

startx

A.2

RFID

RFID-läsaren kollas in via GPIO-bussen på Raspberry Pi, se tabell A.1 för att se vilka pinnar på Raspberry Pi som kopplas samman med MRFC522 för att den ska fungera med den kod jag har skrivit. Dessa värden är naturligtvis variabla och går att ändra i koden om så önskas.

När RFID-läsaren är ansluten till Raspberry Pi så behöver Raspberry Pi’s SPI-port aktiveras, då det är möjligt att den är avaktiverad som standard efter installatio-nen.

Detta görs genom att redigera filen “/etc/modprobe.d/raspi-blacklist.conf”, ge-nom att öppna den med en textredigerare.

sudo vi /etc/modprobe.d/raspi-blacklist.conf

Lägg till ett# framför spi-bcm2708 för att ta bort svartlistning och aktivera

(52)

36 A Instruktioner

Signal MFRC522 Pin RPi Pin

RST/Reset RST 22

SPI SS SDA 24

SPI MOSI MOSI 19

SPI MISO MISO 21

SPI SCK SCK 23

3V 3V 1

GND GND 0.01 to 0.5 (of reference value) Tabell A.1:Anslutning mellan Raspberry Pi och MRFC522

Efter det bör RFID-läsaren fungera som tänkt, och kan testas med antingen mitt program, som kan hämtas frånhttps://github.com/paguz/RPi-RFID.git eller något

annat program som kan göra avläsningar ifrån en MFRC522.

A.3

Programkod

Det program jag har skrivit är väldigt simpelt, det enda det gör är att skapa en anslutning med MFRC522 för att sedan försättas i en evighetsloop som läser ett RFID-kort en gång varje sekund. Programmet och kodbiblioteket behöver dock först kompileras genom följande kommando:

g++ Read.cpp MFRC522.cpp -o Read -lbcm2853

Om ej biblioteket bcm2853 är installerat, så installeras det genom följande kom-mandon:

wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.42.tar.gz cd bcm2835-1.42/

./configure make

sudo make install

Programmet körs sedan genom kommandot:

sudo ./Read

Då börjar inläsningen, som går att testa med alla typer av MIFare kort.

För att testa möjligheterna kring BLED112 och uppmätning via olika Bluetooth LE kompatibla mätinstrument så hänvisar jag till Bluegiga [2014], då deras snabb-starts guide beskriver hur man kan använda deras hårdvara tillsammans med Raspberry Pi, och hur man köra lite av deras exempelkod.

(53)

A.4 Node-RED 37

A.4

Node-RED

För att köra Node-RED på Raspberry Pi så startar man servern i en terminal ge-nom följande kommando:

sudo node-red-pi

Vilket egentligen är det enda som behövs för att köra Node-RED.

För att sedan redigera flöden så går man in på http://127.0.0.1:1880/ och använ-der noanvän-derna som finns i menyn till vänster, se figur 4.3 för en skärmdump över hur Node-RED ser ut, vart noderna finns och vart de placeras.

(54)
(55)

Litteraturförteckning

R Aller. Patient id missing in action. A discussion on how accurate specimen and transfusion identification can avert disaster, 2002. Cited on page 6.

Bluegiga. Using BLED112 with Raspberry Pi - Quick Start Guide, 2014. URL http://docs-europe.electrocomponents.com/webdocs/ 12eb/0900766b812eb651.pdf. Cited on page 36.

Canonical. Snappy Ubuntu Core, 2015. URL http://developer.ubuntu. com/en/snappy/. Cited on page 13.

N Changler. What’s the difference between RFID and NFC?,

2012. URL http://electronics.howstuffworks.com/

difference-between-rfid-and-nfc1.htm. Cited on page 7.

P Fuhrer and D Guinard. Building a smart hospital using rfid technologies. ECEH, 91:131–142, 2006. Cited on page 6.

C Gomez, J O, and J Paradells. Overview and evaluation of bluetooth low ener-gy: An emerging low-power wireless technology. Sensors (Switzerland), 12(9): 11734–11753, 2012. ISSN 14248220. doi: 10.3390/s120911734. Cited on page 10.

IBM. Node-RED, 2015. URL http://nodered.org/. Cited on page 13. J S Lee, Yu W S, and Chung C S. A comparative study of wireless protocols:

Blue-tooth, UWB, ZigBee, and Wi-Fi. In IECON Proceedings (Industrial Electronics Conference), pages 46–51, 2007. ISBN 1424407834. doi: 10.1109/IECON.2007. 4460126. Cited on page 9.

MF Murphy and JDS Kay. Patient identification: problems and potential solutions. Vox sanguinis, 87(s2):197–202, 2004. Cited on page 5.

C Pedrinaci. NodeRed Extensions. 2014. URL http://people.kmi.open. ac.uk/carlos/resources/software/nodered-extensions. Cited on page 25.

C.M. Roberts. Radio frequency identification (RFID), 2006. ISSN 01674048. Ci-ted on pages 6 and 7.

(56)

40 Litteraturförteckning

K Sazama. Reports of 355 transfusion-associated deaths: 1976 through 1985. Transfusion, 30(7):583–590, 1990. Cited on page 6.

Bluetooth SIG. Basics | Bluetooth Technology Website, 2015. URL http://www. bluetooth.com/Pages/Basics.aspx. Cited on page 9.

E Upton and G Halfacree. Raspberry Pi user guide. John Wiley & Sons, 2014. Cited on page 10.

R Want. Near Field Communication. Pervasive Computing, IEEE, 10(3), pages 4–7, 2011. ISSN 1932-6203. doi: 10.1109/MPRV.2011.55. Cited on pages 7 and 8.

(57)

Upphovsrätt

Detta dokument hålls tillgängligt på Internet — eller dess framtida ersättare — under 25 år från publiceringsdatum under förutsättning att inga extraordinära omständigheter uppstår.

Tillgång till dokumentet innebär tillstånd för var och en att läsa, ladda ner, skriva ut enstaka kopior för enskilt bruk och att använda det oförändrat för icke-kommersiell forskning och för undervisning. Överföring av upphovsrätten vid en senare tidpunkt kan inte upphäva detta tillstånd. All annan användning av dokumentet kräver upphovsmannens medgivande. För att garantera äktheten, säkerheten och tillgängligheten finns det lösningar av teknisk och administrativ art.

Upphovsmannens ideella rätt innefattar rätt att bli nämnd som upphovsman i den omfattning som god sed kräver vid användning av dokumentet på ovan beskrivna sätt samt skydd mot att dokumentet ändras eller presenteras i sådan form eller i sådant sammanhang som är kränkande för upphovsmannens litterära eller konstnärliga anseende eller egenart.

För ytterligare information om Linköping University Electronic Press se förla-gets hemsida http://www.ep.liu.se/

Copyright

The publishers will keep this document online on the Internet — or its possi-ble replacement — for a period of 25 years from the date of publication barring exceptional circumstances.

The online availability of the document implies a permanent permission for anyone to read, to download, to print out single copies for his/her own use and to use it unchanged for any non-commercial research and educational purpose. Subsequent transfers of copyright cannot revoke this permission. All other uses of the document are conditional on the consent of the copyright owner. The publisher has taken technical and administrative measures to assure authenticity, security and accessibility.

According to intellectual property law the author has the right to be men-tioned when his/her work is accessed as described above and to be protected against infringement.

For additional information about the Linköping University Electronic Press and its procedures for publication and for assurance of document integrity, please refer to its www home page: http://www.ep.liu.se/

Figure

Updating...

References

Related subjects :
Outline : NDEF Raspbian