Kerstboom

Elk jaar rijst de vraag of ik al een kerstboom heb neergezet. Nu ben ik niet zo’n kerstbomenfan (want gedoe) maar in m’n schuur lag wel een klein mini nep kerstboompje al jaren te verstoffen. De lampjes waren namelijk kapotgegaan en zodoende had ik m’n al een een paar jaar niet meer naar binnen gehaald.

Maar een nieuwe kerst, een nieuwe kans. Dus de lampjes vervangen en boompje opgetuigd neergezet. Alleen gewoon een boompje neerzetten is saai, en daar het boompje zo klein is dat er geen kerstversiering in kan heb ik wat beters bedacht:

De Internet of Things 2.0 Kerstboom met REST API en responsive HTML5 cloud app!

Zo dat waren wat kansloze buzzwoorden, maar inderdaad een kerstboom die ik via een appje op m’n telefoon overal op aarde aan of uit kan zetten.

Wat hieronder volgt heeft een heel hoog nerd-gehalte, maar het resultaat zie je onderaan in de video.

Ja, je ziet er het niet vanaf, maar dit boompje heeft een app.
Ja, je ziet er het niet vanaf, maar dit boompje heeft een app.

Raspberry Pi

Het begint eigenlijk in december 2012 toen ik een Raspberry Pi besteld had, zonder een specifiek doel ervoor te hebben.

M'n Raspberry Pi 1 Model B met 433MHz antennes en weerstation.
M’n Raspberry Pi 1 Model B met 433MHz antennes en weerstation.

Afgelopen zomer kreeg ik echter het briljante idee om m’n te gebruiken om een draadloos weerstation mee uit te lezen via 433MHz. Dus ik had een ontvangertje en zendertje voor £ 5,40 op eBay besteld en op de GPIO-pinnen van m’n Raspberry Pi aangesloten.

Alleen had ik nog software nodig om het signaal uit te lezen. Via Tweakers wat tutorialtjes gevonden en met wat knip-en-plakwerk heb ik m’n eerste C++ programmaatje gecompileerd. Het programmaatje loopt als daemon op de achtergrond en controleert elk kwartier of er een signaal binnenkomt (de interval van het weerstation is 43 sec), vervolgens wordt het signaal gedecodeerd en weggeschreven in een lokale MySQL database op m’n Raspberry Pi.

Maar ja, wat moet je met een database die volstaat met temperatuur- en luchtvochtigheidswaardes? Helemaal niets. Bovendien is m’n Raspberry Pi alleen benaderbaar via m’n thuisnetwerk. En om nu thuis in een database te gaan kijken hoe warm het binnen is… Nee.

Swimalytics App

Dus heb ik de Swimalytics App, die ik in 2014 gemaakt heb om m’n snelheid en afstand bij te houden tijdens het zwemmen, hergebruikt. Swimalytics is een HTML5 app die draait op WordPress. Ik heb een nieuwe app gemaakt d.m.v. een child-theme en op m’n ontwikkelomgeving geïnstalleerd. Deze nieuwe app kan verbinding maken met de MySQL database van de Raspberry Pi en kan de data verwerken.

Naast temperatuur en luchtvochtigheid heb ik gelijk de camera’s in m’n woning via een reverse-proxy beschikbaar gemaakt in m’n app. Die camera’s hebben van zichzelf een crappy Chinese beveiliging, dus ook die had ik via m’n firewall onbereikbaar gemaakt vanaf het internet. Maar doordat m’n ontwikkelomgeving wel beveiligd is, kan ik nu ook op afstand m’n huisje in de gaten houden zonder bang te zijn dat er iemand mee kijkt.

Maar terug naar de kerstboom. Want met de 433MHz ontvanger kan ik leuk de signalen van m’n weerstation verwerken, maar ik had natuurlijk ook nog een zender. En met een 433MHz zender kun je ook Klik-Aan Klik-Uit apparatuur bedienen. Dus ik naar de Gamma en heb daar een starterskitje gekocht, en via weer wat knip-en-plakwerk een programmaatje geschreven. Het programmaatje kan een signaal naar m’n kerstboom sturen en wordt aangeroepen via een REST API, zodat ik hem via m’n appje kan bedienen.

Dus tadaa… een demo van m’n kerstboom met zelfgemaakte app:

Lees ook...

Geef een reactie

Geef hier je reactie. Je e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *