Psst… Ik heb een webserver onder mijn zetel en hij knippert.

Of beter gezegd: er zit een Raspberry Pi onder mijn zetel, ik heb hem geconfigureerd als webserver en hij kan ook knipperen. (want ik kan hem nog niet laten knipperen via een webpagina)

Onlangs weer iets teveel gerief besteld bij Adafruit (je bestelt altijd teveel, maar het moet ook de moeite waard zijn om het op te sturen nietwaar). Onder andere een Makey Makey, dat had je misschien al gelezen, maar ook een proto pi plate en een tweede Raspberry Pi (de eerste heb ik gewonnen met deze blogpost en de tweede was een cadeautje van Adafruit).

Wat is een Raspberry Pi? Een volledige computer in bankkaartformaat, ideaal om mee te leren of te spelen. Omdat een Raspberry Pi goedkoop is (35 euro) en omdat hij een aantal Interface pins heeft: je kan er knoppen, LEDs en sensoren aanhangen (wat iets ingewikkelder is met een gewone computer.

een Raspberry Pi (computer ter grootte van een bankkaart)

Omdat kabels vastmaken aan die pinnetjes daar bovenaan niet erg handig is, heb ik een prototyping pi plate besteld. Een prototyping-bord dat ik bovenop een Raspberry Pi kan bevestigen en dat het mogelijk maakt om iets makkelijker en sneller dingen zoals sensoren en lampjes te bevestigen.

Ik wil die Pi namelijk gebruiken als testbank om mee te leren en te experimenteren. Ondertussen heb ik al wat geëxperimenteerd: ik heb er m’n eerste webserver via SSH op geïnstalleerd en er een lampje mee doen knipperen.

Die webserver ging vlot. Ik ben eerlijk gezegd nog een redelijke Linux-leek. Ik ben nooit echt veel verder geraakt dan een distro installeren en er even in rondkijken, maar dankzij die Raspberry Pi heb ik er ondertussen toch een stuk meer over bijgeleerd. Onder andere dankzij de Creating a LAMP server with the Raspberry Pi-tutorial van Penguin Tutor. Een LAMP-server is een veelgebruikte combinatie op het internet omdat alle basisonderdelen (Linux, Apache, MySQL en PHP/Perl/Python) gratis zijn. Nu heb ik dus een kleine testserver onder de zetel staan. (dat was de handigste plek, vlak naast de router)

Daarna was het tijd om dat knipperlichtje aan de praat te krijgen.

Maar het eerste werk was die Proto Pi Plate assembleren: Hij werd namelijk geleverd als een printplaatje met wat losse onderdeeltjes erbij dus kon ik mijn soldeerskills weer wat bijschaven.

Zo op het eerste zicht ziet dat er goed uit

Het resultaat is wel ok, maar halverwege heb ik toch even gevloekt: er was een bolletje soldeersel in een gaatje gevallen en daar natuurlijk gestold. Lastig om dat eruit te krijgen. Uiteindelijk heb ik het opgelost door het gaatje een paar seconden te verwarmen en de connector die erin moest er dan maar door te duwen.

Soldeerfoutje. Op dat ene gaatje heb ik toch even gevloekt.

Volgende stap: testen of het allemaal een beetje werkt. Ik vond een handige gids om een lichtje te doen knipperen op mijn Pi (het lijkt zo stom, lichtjes doen knipperen, maar als dat lukt, weet je zo’n beetje dat de rest ook wel snor zit en kan je met andere dingen zoals deze bewegingssensor beginnen te experimenteren) op thirdeyevis.com.

Hij stelt voor om eerst een klein circuit te bouwen dat licht geeft vanaf je de Raspberry Pi aanzet, door het lampje rechtstreeks aan de stroombron te hangen. Dat werkte, al was het maar een zwak lichtje:
hier brandt de LED

Dus kon ik aan de volgende stap beginnen: de LED aansluiten op één van GPIO-pins. GPIO staat voor General Purpose Input/Output, in- en uitgangen die je kan gebruiken zoals je zelf wilt door hem te programmeren, ze hebben dus geen vooraf bepaald nut.

Volgens de tutorial moest ik mijn LEDje aansluiten op Pin 7, maar doordat ik die Proto Pi Plate gebruikte, kon ik moeilijk zien dewelke dat was. Gelukkig maakte er iemand a “Simple Guide to the RPi GPIO Header and Pins”.

Volgende stap: leren programmeren in Python. Python is de programmeertaal die een beetje standaard voorzien wordt op de Raspberry Pi. Het is niet zo’n heel ingewikkelde taal en je kan er heel uiteenlopende dingen mee doen. Maar je moet de taal natuurlijk wel leren. Gelukkig kan je daar ook makkelijk voorbeelden van vinden op het internet. Zelfs filmpjes van mensen die net als mij vanop een windows-PC op een Raspberry Pi willen programmeren!

Nog één horde te nemen: om de GPIO-pins te kunnen gebruiken, moet je Python uitleggen hoe ze werken. Gelukkig geeft thirdeyevis.com ook een mooie uitleg over hoe je de GPIO-bibliotheek kunt installeren en gebruiken in Python.

Tijd om een programmaatje te schrijven. Ik heb me beperkt tot “overschrijven”, maar daar leer je ook al veel van en ik wilde vooral weten of dat bordje nu werkte of niet. Het resultaat zie je hieronder.

 

Maar shhhhht… Niet aan Lotte vertellen. Ze heeft die Raspberry Pi nog niet ontdekt onder de zetel.