Digitale klok

De klok die ik al meer dan tien jaar op mijn slaapkamer heb staan, wordt langzaam aan wel toe aan vervanging. Nou heb ik hier een artikel over het maken van een woordklok voorbij zien komen, maar dat sprak mij eigenlijk niet echt aan, mijn voorkeur had een klok met 7-segment displays. Dus ben ik die maar gaan maken!

De schets van de klok
De schets van de klok

Nou heeft zo’n klok natuurlijk wel een naam nodig. En aangezien ik de trotse eigenaar ben van de gratis én advertentievrije online spelletjessite N&M Games, besloot ik hem de Officiële N&M Games Klok te noemen, zoals je in de rechts bovenin de foto van de schets ook ziet. Voor de rest van dit artikel verwijs ik er gewoon naar met ‘de klok’. Maar nu we de naam hebben, kan het laseren beginnen!

Het uitlaseren van de schets van de klok
Fun fact: de laser deed hier meer dan een halfuur over!

De klok gebruikt NeoPixels om de tijd te laten zien. Om scherp te hebben waar ze precies moeten komen, heb ik een soort ‘PCB’ gemaakt in de schets, waarop gegraveerd staat waar ze geplakt moeten worden. Die lijntjes hadden eigenlijk pijltjes moeten zijn die de richting aangeven, maar daar is helaas iets misgegaan.

NeoPixels aanbrengen


En toen kwam de missie die de meeste tijd in beslag nam: alles tot één geheel solderen!

Het PCB van de klok na het vastsolderen van alle NeoPixels
En dan nu: tijd voor de eerste test!

Zoals je ziet doen alle NeoPixels het goed, maar lichten de segmenten die aanstaan ook een beetje hun buren op, en dat ziet er niet mooi uit. Om dat te bestrijden, ga ik schotjes tussen de segmenten plaatsen. Verderop in dit artikel zie je die.

Daarnaast ben ik daadwerkelijk van plan om deze klok aan de muur van mijn slaapkamer op te hangen, maar die houtkleur is dan natuurlijk niet heel mooi. Daarom ging ik alle buitenkanten van het hout in de juiste kleur verven. Ook dat was niet bepaald makkelijk, maar het is toch gelukt.

Ook al zijn de themakleuren van N&M Games donkerblauw en paars, deze verfkleur past het best bij mijn slaapkamer.

Terwijl de verf aan het drogen is, leg ik even wat meer uit over de elektronica in de klok. De NeoPixels, waar ik het al even over had, worden aangestuurd door een ESP32. Dat is een system-on-a-chip die erg op een Arduino lijkt, maar nog sneller is én beschikt over wifi. En van dat laatste punt gaan we dankbaar gebruik maken, want de klok moet natuurlijk wel de correcte tijd laten zien. En er moet ook het een en ander mee in te stellen zijn, bijvoorbeeld een wekker en de kleur/helderheid.
Een nadeel van de ESP32 is dat deze niet werkt met 5 volt, maar met 3.3 volt. Dat is niet voldoende om zo’n grote hoeveelheid NeoPixels te voorzien van stroom. Daarom heb ik een 5 volt-voeding gekocht, waar zowel de ESP32 als de NeoPixels op aangesloten kunnen worden. Aangezien er 230 volt in die voeding gaat, vond ik het er leuk uitzien om zo’n 230 volt-stekker en een schakelaar aan de zijkant te plaatsen.
Verder komt er nog een zoemer in de klok zodat deze ook als wekker kan functioneren, en een Light Dependent Resistor (LDR) om de helderheid automatisch aan te kunnen passen aan het licht. In het donker wil je niet dat het licht al te storend is, maar overdag wil je de tijd ook gewoon kunnen zien.

1: ingang voeding, 2: aan/uit-schakelaar, 3: LDR, 4: zoemer

Nu is het moment aangekomen dat de doos in elkaar gezet moet worden. Dat wordt ook weer een leuk klusje, want er moet het een en ander in de doos geplaatst worden, zoals:

  • De plaat met alle NeoPixels erop. Deze moet, om op de juiste hoogte geplaatst te worden, vastgeschroefd worden op een balk, die op zijn beurt weer wordt vastgelijmd aan de zijkanten;
  • De ESP32;
  • De onderdelen voor in de openingen aan de zij- en bovenkant van de doos, die hierboven nader zijn omschreven;
  • De bekabeling. Eerst 230 volt langs de schakelaar naar de adapter, en vanaf daar naar de ESP32 en de NeoPixels. Vanaf de ESP32 moeten overigens ook nog kabels naar de LDR en zoemer gaan.

Dat pakte ik aan door alle zijkanten aan elkaar vast te lijmen, en de voor- en achterplaat door middel van magneetsnappers vast te zetten, zodat die later nog een keertje weg te halen zijn voor onderhoud.

De klok zonder voor- en achterplaat, waarop nu ook de schotjes aangebracht zijn.

Dan komen we nu aan bij het programmeren van de ESP32. Ik zal je even een hele lap code besparen voor dit artikel, maar in hoofdlijnen komt het hierop neer:

  • Maak verbinding met wifi zodra de klok op netstroom wordt aangesloten;
  • Vraag – uiteraard bij N&M Games – de tijd op met een HTTP-client;
    • NB: Het gebruik van NTP (Network Time Protocol) is in overweging genomen, maar voor enkel het ophalen van uren en minuten is werken met een HTTP-client toch eenvoudiger.
  • Geef de tijd weer op de NeoPixels;
  • Meet in de tussentijd de lichtsterkte in de kamer en pas de helderheid van de klok erop aan;
  • Als het huidige tijdstip gelijk is aan het tijdstip waarop de wekker geprogrammeerd is én als de wekker actief is, ga dan tijdens die hele minuut om de seconde wit flitsen en piepen (en daarmee is het de effectiefste wekker die ik ooit heb gehad!);
  • En om die instellingen te wijzigen heeft de ESP32 een webserver waarop ingelogd kan worden, dus moet-ie clients die iets willen veranderen niet teleurstellen (mits ze het wachtwoord weten).
En dan kan de hele klok in elkaar gezet worden en is dit het resultaat!

Als allerlaatste wil ik de klok – zoals ik al zei – aan de muur ophangen. Een goede manier om dat te doen is twee gaten boren in de achterplaat van de klok. In de muur boor je ook twee gaten op de juiste plaats, doe je er een plug in en draai je schroeven in die gaten. De klok kan je dan door de gaten aan de schroeven hangen, en dan hangt hij behoorlijk stevig.

En dan is de klok eindelijk helemaal klaar!

Het maken van zo’n klok is uiteraard niet 100% gratis. De meeste onderdelen zijn wel gratis op DJO verkrijgbaar, sommige onderdelen zijn tegen betaling op DJO te bemachtigen en andere onderdelen moeten online besteld worden. Hieronder staat een overzicht van welke onderdelen een prijskaartje hebben, en waar die verkrijgbaar zijn.

OnderdeelBenodigde hoeveelheidVerkrijgbaar opTotale kostprijs*
3mm multiplex1gamma.nl€7,79
ESP321DJO€6,40
NeoPixels (60 LED/m)86 (2 x 60)DJO€11,40
Platte stekker1allekabels.nl€2,29
Voedingsadapter1allekabels.nl€10,99
Voedingskabel1allekabels.nl **€3,19
Kunststof plaat1kunststofshop.nl€4,19
* Dit zijn de kostprijzen exclusief verzendkosten ten tijde van de publicatie van dit artikel en kunnen mogelijk veranderd zijn.
** Dit onderdeel is weliswaar aanwezig op DJO, maar is eigendom van DJO en moet je zelf kopen om in een project te verwerken.


Kortom: voor zo’n €50 kan je een mooie, duidelijke, instelbare en goed werkende klok in elkaar zetten! Heeft dit artikel jou gemotiveerd om zelf ook een klok zoals deze te bouwen? Ik geef helaas geen officiële N&M Games-bestanden weg, maar er zijn genoeg begeleiders op DJO die je willen helpen om de perfecte klok voor jou te ontwerpen en te maken!