• No results found

3.3 RFID

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

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

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.

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.

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 program, såsom mitt RFID program. 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.

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.

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

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.

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.

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

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 SPI-

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.

Related documents