Raspberry Pi test & research | Connected devices | Intracto

30 juli 2013

Raspberry Pi test & research | Connected devices

Bij Intracto loopt ondertussen heel wat volk rond, in alle geeky vormen en maten. Een simpele discussie tijdens de middagpauze over toiletgebruik loopt zo al snel uit tot high-tech knip- en plakwerk met camera’s, Raspberry Pi en PHP trickery. En nu kunnen we dus online zien of het toilet bezet is of niet. :)

blog-raspberry_pi_test_and_research_connected_devices-image2

De truuk met de webcam

Hoe we het systeem van toiletgebruik hebben opgezet, is al enige tijd stof tot discussie bij enkele concullega’s. Vergezochte oplossingen met druksensoren onder de toiletbril of kaboutertjes in een kooitje met een switch zijn jammer genoeg niet waar.

In al zijn ontnuchterende eenvoud hebben we een webcam in het toilet geplaatst die gelukkig géén compromitterende beelden schiet, maar wel de lichtintensiteit meet. De cam neemt een nietszeggende foto van het voorhalletje en gaat dan met een PHP-GD module pixel per pixel de brightness een waarde toekennen.

Vanuit die -100 of +100 waarden wordt het gemiddelde berekend en die gemiddelde waarde bepaalt dan of het toilet bezet is of niet. Weinig licht betekent weinig pot-actie en veel licht betekent ‘danger zone in action’. - Of de poetsvrouw is aan haar ronde bezig.

Technische set-up Toiletcam

De Raspberry Pi is een zogenaamde singleboard PC, waarbij alle componenten op dezelfde PCB (Printed Circuit Board) zitten. Op deze micro-PC sloten we een USB-hub aan, waarlangs de Raspberry zijn stroom krijgt. En verder koppelden we 2 USB webcams (2 toiletten) aan om de foto’s te nemen, plus een USB-stick waarop het besturingssysteem is geïnstalleerd en een SD-kaart waarmee de Raspberry kan opstarten.

Het berekenen van het al dan niet bezet zijn van een WC gaat als volgt:

  1. Het Linuxprogramma Streamer neemt een ‘still’ met de webcam en slaat het op.
  2. Met behulp van PHP-GD wordt de intensiteit (= helderheid) van (een deel van) de pixels van het beeld bepaald. Hiervan wordt het gemiddelde genomen en de huidige status van het toilet afgeleid.
  3. Het resultaat wordt vergeleken met hetgeen lokaal gecached is. Is er een verschil, dan gebeurt er iets!
  4. Het gebeuren wordt naar een database weggeschreven als een log.
  5. Het script pauzeert één seconde, om de arme micro-PC wat rust te gunnen.
  6. Wisselen van WC, rinse and repeat.

Tegelijk biedt de Raspberry ook een (lokale) website aan die elke vijf seconden, door middel van een Ajax-call, de meest recente logs voor beide WC’s opvraagt en deze op een propere (pun intended) manier weergeeft.

blog-raspberry_pi_test_and_research_connected_devices-image1

Verrassende handigheidjes op de werkvloer

Werken bij Intracto heeft heel wat verrassingen in petto. ’s Morgens kan je nog klagen over de immer bezette toiletten bij je wandelingen naar het WC en in de namiddag is er al een handigheidje in de maak om het leed wat te verzachten.

Volgende innovatie op het lijstje is het realtime peil van de koffiekan weergeven! ;-)

Heb je zelf creativiteit te veel en is internet wel je ding? Misschien moest je dan maar eens solliciteren! Bekijk onze vacatures.