Titel

Internet of Things

Thema

Techniek en onderzoek

Beschrijving

Ik ga een product bouwen dit past bij het onderwerp Internet of Things. Deze maakt gebruik van een bijpassende vorm van NFC en maakt het gebruik van een dagelijks product makkelijker en leuker voor de gebruiker.

Ik ga met gebruik van NFC en Arduino iets bouwen waarmee je met je schoenen je deur kan openen. Ik ga in de schoen een NFC/RFID-chip plaatsen, een ontvanger hiervoor in de deurmat. Wanneer de chip hoort bij de goede deur, zal deze openen.

uitleg

Ik wil mij in dit programma vooral richten op de techniek. Ik heb hier namelijk nog weinig ervaring in. Ik wil graag nieuwe technieken onderzoeken en deze gebruiken, en mijn technische skills verbeteren. Ik wil graag een prototype maken die voor zo ver mogelijk lijkt op het eindproduct.

Doelen

Tijdens het hele programma wil ik door middel van onderzoek antwoorden vinden op mijn deelvragen en deze doorvoeren in het product.

De volgende punten wil ik tijdens dit programma gaan uitvoeren:

  • Onderzoek doen naar de mogelijkheden van bijvoorbeeld verschillende vormen en mogelijkheden van NFC voor mijn project.
  • Mijn product programmeren
  • Een werkend prototype maken

Eisen

Toen ik eindelijk een idee had om uit te gaan werken, heb ik deze eerst verder uitgedacht. Ik heb een plan van eisen opgesteld met hierin de eisen waarvan ik vind dat mijn product moet voldoen. Op basis hiervan heb ik bijvoorbeeld ook betere keuzes maken voor het volgende onderdeel (Onderzoek techniek).

Programma van eisen


Onderzoek techniek

Eerst ben ik beginnen met onderzoek naar het verschil tussen iBeacons en NFC/RFID. Deze waren voor mij de meest voor de hand liggende technieken voor mijn product. Ik heb eisen opgesteld door middel van een Plan van Eisen waar deze techniek aan zou moeten voldoen.

Ik ben op internet op zoek gegaan naar wat beide technieken eigenlijk betekenen en wat de verschillen zijn. Hierover heb ik bijvoorbeeld ook een infographic gevonden.

Schermafbeelding 2015-06-02 om 10.30.49

Uiteindelijk heb ik er voor gekozen om te kiezen voor NFC/RFID omdat deze ook verbinding kan leggen tussen 2 devices, zonder dat er een smartphone in het spel hoeft te zijn.


Onderzoek platform

arduinovspi-720x340

Nadat ik had besloten dat ik NFC/RFID zou gaan gebruiken, ben ik gaan onderzoeken welk platform ik het best zou kunnen gebruiken. Ik kwam al snel uit op 2 mogelijkheden: de Raspberry Pi en Arduino.

Beide platformen lijken in het eerste opzicht best wel op elkaar. Sommige projecten kan je namelijk wel op beiden realiseren, maar het kan (afhankelijk van je project) veel makkelijker zijn op het ene platform dan de andere. Ik heb over de verschillen en de voordelen bijvoorbeeld artikelen gelezen als de volgende: http://www.makeuseof.com/tag/arduino-vs-raspberry-pi-which-is-the-mini-computer-for-you/.

Raspberry Pi: De Raspberry Pi is een computer op zich met een interface waar je in moet werken. Je sluit hier dus ook een toetsenbord en monitor op aan. Je programmeert de Pi dus ook vanuit zichzelf en niet vanaf een externe computer.

Arduino: De Arduino is iets wat je met USB aansluiten op je computer. Het is dus niet een computer, maar slechts een onderdeel. Als je wil programmeren voor de Arduino, doe je dit op de computer waar je hem op hebt aangesloten.

Een belangrijk punt in de keuze was ook de programmeertaal/programma. Op Raspberry Pi is de manier om te programmeren namelijk door middel van Python. Dit is een programmeertaal op zich die in het bijzonder hoort bij de Pi. Op de Arduino kan je programmeren met de programmeersoftware van Arduino zelf. Deze lijkt aardig veel op Javascript.

Ik heb er uiteindelijk voor gekozen om de Arduino te gaan gebruiken. Tijdens mijn onderzoek ben ik er achter gekomen dat de Arduino geschikter en makkelijker is voor technische projecten. Het is bijvoorbeeld veel makkelijker om dingen als een RFID-reader aan te sluiten op de Arduino en hier voor te programmeren dan bij de Pi.


Arduino

Nadat ik had besloten om gebruik te maken van de Arduino heb ik deze geleend van school en ben ik hier mee gaan experimenteren.

Ik ga namelijk voor mijn eindproject de output, dus de deur die open of dicht gaat, vervangen voor 2 ledjes die dezelfde actie imiteren. Ik ben dus alvast gaan experimenteren met ledjes en de Arduino.

Ik heb bijvoorbeeld code gevonden en deze zelf aangepast, en hiermee iets leuks gemaakt wat er hetzelfde uitziet en functioneert als lampjes van de auto uit Knight Rider (IMG_2094). (https://www.arduino.cc/en/Tutorial/ForLoop)

Hiermee heb ik code geschreven (gebaseerd op de bestaande code) die ik kan gebruiken voor mijn eigen project.


RFID-reader

Ik ben op zoek gegaan naar wat ik nodig zou hebben om een NFC/RFID-tag uit te kunnen lezen, en dit door te geven aan de Arduino. Na onderzoek op internet en hulp van een leraar, heb ik een RFID reader/writer gevonden die geschikt is.

Toen ik deze had, kwam ik er echter achter dat mijn Arduino model zo oud is dat hij er niet op aangesloten kon worden. Toen ik daar dus nog niet verder mee kon, ben ik alvast gaan zoeken naar code die ik kon gebruiken voor de reader/writer. Dit is na veel onderzoek op bijvoorbeeld het forum van arduino.com en externe websites gelukt, en ik begrijp de code nu ook.


Arduino Uno

ArduinoUNO_Front

Toen de RFID-reader niet werkte op mijn oude Arduino, heb ik de Arduino Uno aangeschaft. Eerst ben ik verder met LED-lampjes gaan experimenteren om de Arduino, de code, het breadboard en de LED’s beter te kunnen begrijpen.

Hierna heb ik geprobeerd om de RFID-reader aan te sluiten en deze werkend te krijgen, door middel van bestaande code. Dit bleek lastiger dan verwacht. Ik had een library gevonden die overal aangeprezen en gebruikt werd (https://github.com/miguelbalboa/rfid). Deze wou ik dus ook gaan gebruiken. Toen ik deze echter geïnstalleerd had, was ik van plan om hier een programma van te runnen. Deze zou wanneer je een RFID-chip voor de reader zou houden, alle informatie die hier op staat moeten tonen in de seriële monitor, zoals de unieke UID van de chip die ik van plan was om te gebruiken. Echter, toen ik dit probeerde kreeg ik steeds een foutmelding. Ik heb hierna het hele internet afgezocht naar een oplossing voor dit specifieke probleem, maar deze was niet te vinden.

Hierna heb ik nog verschillende andere codes gebruikt die ongeveer hetzelfde zouden moeten doen als de eerste library, maar deze gaven een soortgelijke foutmelding. Ik kon dus in principe niet verder met mijn project.

Na het na een poosje nog een keer te proberen lukte dit nog steeds niet. Totdat, ik opeens het bestand eerst savede… Hierna werkte het programma op miraculeuze wijze opeens wel. Hierna ben ik hier mee verder gegaan, en kwam ik er ook achter dat de reader in een goede positie moet staan omdat er anders ook soms foutmeldingen verschijnen.


Afronding

Precies de dag voordat de reader opeens bleek te werken, had ik te horen gekregen dat ik mijn documentatie voor Project 3 zou moeten herkansen (en dat dit veel werk zou kosten). Hierdoor heb ik mijn project voor excellentie niet af kunnen ronden en dus werkend kunnen maken.

Wel heb ik de afzonderlijke onderdelen kunnen laten werken: de LED’s (die de actie van een opengaande deur vervangen), en de RFID-reader.

In de video en foto hier onder zie je de complete aansluiting en de werkende RFID-reader die een chip uitleest.

DSC_0242

 


 

Kennis delen

Het is natuurlijk ook het idee dat ik mijn opgedane kennis ga delen met anderen. Ik had het idee dat ik met de volgende vakken zou kunnen helpen:

  • Project 3
  • Ubicomp
  • SRP

Voor beide vakken zou ik (samen met Pien en Suus) een inspiratieles kunnen geven om anderen op nieuwe ideeën te brengen.

Ik zou bij Ubicomp kunnen helpen als studentassistent, of een presentatie geven over mijn project om mensen zo te introduceren bij het vak en inspiratie te geven.

Ik zou samen met Pien een SRP kunnen geven over apparaten als de Raspberry Pi en de Arduino, omdat wij hier beiden veel kennis over op hebben gedaan.


Reflectie

Ik heb erg veel van dit programma geleerd.

Ten eerste heb ik beter geleerd om individueel te werken en zelf alles te moeten regelen.

Ten tweede heb ik een beter technisch niveau gekregen, omdat ik nu veel meer weet van de Arduino en de Raspberry Pi en hoe je hier mee moet werken. Ditzelfde geldt voor NFC, RFID en iBeacons.

Ook heb ik door Arduino wat meer inzicht gekregen in Javascript, omdat de taal die daar gebruikt wordt erg lijkt op Javascript.

Als laatste heb ik ook geleerd hoe je ideeën beter kan realiseren. Ik heb door Arduino en Raspberry Pi meer inzicht gekregen in technische prototypes en hoeveel mogelijkheden hier wel niet mee zijn.

One Comment

  • kopo says:

    Je projectvoorstel moet concreter. Wat ga je precies maken? Wat kan een gebruiker doen? Waarom? Daarna een PvA opstellen.