NeoPixel klok

NeoPixel klok

Een supergave WiFi klok die je zelf gemaakt hebt? Wie wil dat nou niet.

Deze elektronische klok is de perfecte mix tussen een digitale en een analoge klok. Bij de bouw van de klok leer je precies werken, programmeren en solderen. De tijd wordt bekomen via het internet, de klok loopt dus altijd juist.

Maaktijd: 1 tot 4u.

Deze handleiding werd ontwikkeld door Hans Caluwaerts voor Maakbib

Benodigdheden

Materialen:

  • 1 WEMOS D1 ESP8266 microcontroller
  • 4 Neopixel ¼ cirkel print 15 neopixels
  • 1 LDR
  • 1 Krimpkous lengte 33 mm diameter 2.5 mm
  • 1 Krimpkous lengte 23 mm diameter 2.5 mm
  • 1 Micro USB kabel 1 meter
  • 10 cm geïsoleerde draad rood soepel 0.2m²
  • 10 cm geïsoleerde draad zwart soepel 0.2m²
  • 10 cm geïsoleerde draad groen soepel 0.2m²
  • 4 mm geïsoleerde draad stijf 0.2m²
  • MDF 3 mm
  • Gereedschap:

    • elastiek
    • halfronde zoetvijl
    • hetelucht blazer
    • kniptang
    • lasercutter
    • soldeerbout met fijne tip
  • soldeertin
  • striptang
  • universele bektang
  • houtlijm
  • alleslijm
  • lasercutter
  • Materialen

    Voeding

    De Neopixel klok werkt op 5V DC. Je kan de klok voeden via een USB aansluiting, het stroomverbruik bedraagt maximum 0,5 Ampère.

    Aan de slag

    MDF laseren

    Voor het solderen van de vier NeoPixel ¼ cirkel printjes is het aangeraden om een mal te gebruiken. Het gebruik van de mal verhoogt aanzienlijk de kans om een “ronde cirkel” te bekomen na het solderen van de vier NeoPixel ¼ cirkel printjes.

    Alvorens je de mal kan monteren, moet deze eerst uitgelaserd worden. Dit kan je doen bij Ingegno Maker Space in Drongen of een ander FabLab in je buurt of vraag bij een bibliotheek in je buurt.

    Lasercutfile

    Montage van de mal

    1. Breng lijm aan op de onderkant van de dekplaat.
    2. Plaats de dekplaat op de bodemplaat.
    3. Centreer beide platen.
    4. Verwijder alle overtollige lijm.
      Materialen
    5. Plaats de afvalring in de dekplaat.
      Materialen
    6. Breng lijm aan op de onderkant van de centreerplaat.
    7. Lijm de centreerplaat in het midden van de bodemplaat.
      Materialen
    8. Laat 10 minuten drogen.
    9. Verwijder voorzichtig de afvalring zonder de centreerplaat te verschuiven.

    De mal is nu klaar voor gebruik.

    Materialen

    Monteren van de NeoPixel klok houder

    1. Breng houtlijm aan op de achterkant van de onderste sierplaat.
    2. Lijm de onderste sierplaat op de achterwand. • LET OP DE CORRECTE ORIENTATIE!.
    3. Verwijder alle overtollige lijm.
    4. Laat de lijm 15 minuten uitharden.
      Materialen

    5. Plaats een Neopixel ¼ cirkel printje tegen de onderste sierplaat.
      Materialen

    6. Breng houtlijm aan op de achterkant van de bovenste sierplaat.
    7. Lijm de bovenste sierplaat op de achterwand.
    8. Duw de “sierplaat boven” tot tegen het Neopixel ¼ cirkel printje.
      Materialen

    9. Verwijder het Neopixel ¼ cirkel printje zonder de “sierplaat boven” te verschuiven.
    10. Verwijder alle overtollige lijm.
    11. Laat de lijm 5 minuten uitharden.
      Materialen

    12. Vul de afgesloten opening voor de helft met houtlijm.
      Materialen

    13. Schuif de voet met de nok in de afgesloten opening van de achterwand. • DE TEKST OP DE VOET MOET NAAR ONDER GERICHT ZIJN.
    14. Vorm een hoek van enkele graden minder dan 90°
    15. Verwijder alle overtollige lijm.
    16. Laat de lijm 30 minuten uitharden.
      Materialen

    17. Lijm de Wemos D1 tegen de onderkant van de Wemos houder met alleslijm.
    18. Laat de lijm 5 minuten uitharden.
      Materialen

    19. Knip 1 cm af van 1 draad van de LDR.
    20. Schuif een krimpkous 33 mm over de langste draad van de LDR.
    21. Schuif een krimpkous 23 mm over de kortste draad van de LDR.
      Materialen

    22. Steek de aansluitdraden van de LDR door de opening in de Wemos houder.
    23. Duw de LDR volledig in het gat.
      Materialen

    24. Soldeer de lange LDR draad aan Wemos pin 3V3.
    25. Soldeer de korte LDR draad aan Wemos pin A0.
      Materialen

    26. Soldeer de 4 Neopixel ¼ cirkel printjes aan elkaar, zie Stappenplan voor het solderen van de neopixelcirkel.
    27. Smeer alleslijm in de gleuf tussen de onderste sierplaat en de bovenste sierplaat.
      Materialen

    28. Steek de aansluitdraden langs de voorkant door het gat van de achterwand.
      Materialen

    29. Plaats de Neopixel ring tussen de onderste en de bovenste sierplaat.
    30. Draai de Neopixel ring om de eerste neopixel te centreren met de punt van de driehoek. • De eerste neopixel zit links van de naad tussen de 2 Neopixel printjes.
    31. Druk de Neopixel ring tegen de achterwand.
    32. Leg de Neopixelring met de Neopixels op een platte ondergrond.
    33. Laat de lijm 15 minuten uitharden.
      Materialen

    34. Soldeer de GND draad aan het G soldeereiland van de WEMOS D1.
    35. Soldeer de IN draad aan het D2 soldeereiland van de WEMOS D1.
    36. Soldeer de VCC draad aan het 5V soldeereiland van de WEMOS D1.
      Materialen

    37. Breng een bolletje alleslijm van enkele mm dik aan in het midden van de voet. • Deze lijm dient om de WEMOS D1 tegen de voet te lijmen.
    38. Breng een druppel houtlijm aan in de opening in de achterwand waar de nok van de WEMOS houder in past. • Deze lijm dient om de WEMOS houder tegen de achterwand te lijmen.
    39. Draai een elastiek rond de voet.
    40. Laat de lijm 15 minuten uitharden.
      Materialen

    Solderen van de NeoPixelcirkel

    Dit stappenplan maakt gebruik van de mal. Indien je niet over de mal beschikt kan de vier neopixel ¼ cirkel printjes op een vlakke ondergrond kleven met plakband. Probeer een zo rond mogelijke cirkel te maken.

    1. Soms worden de Neopixel ¼ cirkel printjes nog met elkaar verbonden geleverd.
    2. Breek de Neopixel ¼ cirkels printjes voorzichtig los van elkaar.
    3. Verwijder de verbindingsstukjes
      Materialen

    4. Gebruik een halfronde zoetvijl om alle oneffenheden aan de rand het Neopixel ¼ cirkel printje weg te vijlen.
    5. Verwijder de bramen van de hoeken van het Neopixel ¼ cirkel printje.
    6. Herhaal deze stap voor de vier Neopixel ¼ cirkel printjes
      Materialen

    7. Plaats de 4 Neopixel ¼ cirkel printjes in de mal.
    8. Als de 4 Neopixel ¼ cirkel printjes niet goed passen in de mal moet je hier en daar nog wat bijvijlen.
    9. Zorg ervoor dat de soldeereilandjes niet samenvallen met de gaten
      Materialen

    10. Knip 11 stukjes ongeïsoleerde stijve draad van 4 mm lengte. Je kan hiervoor ook aansluitdraad van een weerstand, LED,… gebruiken.

      DETAIL A

      Materialen

    11. Verbind de soldeereilandjes VCC met een stukje ongeïsoleerde stijve draad van 4 mm.
    12. Verbind de soldeereilandjes IN en OUT met elkaar met een stukje ongeïsoleerde stijve draad van 4 mm.
    13. Verbind de soldeereilandjes GND met een stukje ongeïsoleerde stijve draad van 4 mm.
    14. Verbind nog op 2 ander plaatsen de soldeereilandjes met elkaar zoals hierboven beschreven.

      DETAIL B

      Materialen

    15. Verbind de soldeereilandjes VCC met een stukje ongeïsoleerde stijve draad van 4 mm.
    16. Strip 2 mm isolatie aan beide uiteinden van een soepele rode, roze of paarse draad met lengte 58 mm.
    17. Soldeer de draad aan de VCC soldeereilandjes.
    18. Strip 2 mm isolatie aan beide uiteinden van een soepele witte, gele of groene draad met lengte 45 mm.
    19. Soldeer de draad aan het IN soldeereilandje.

      LET ZEER GOED OP DAT TIJDENS HET SOLDEREN DE IN EN OUT EILANDJES NIET MET ELKAAR VERBONDEN WORDEN.

    20. Strip 2 mm isolatie aan beide uiteinden van een soepele witte, gele of groene draad met lengte 55 mm.
    21. Soldeer de draad aan de GND soldeereilandjes.

    Je bent klaar met de constructie!

    Materialen

    Programmeren en instellen van de arduino

    Om de klok te laten werken, kan je volgende handleidingen volgen:

    Op de WeMos dien je met de Arduino IDE de code te zetten. Je kan de code als een zip downloaden. Unzip deze, en open met de Arduino IDE. Volg bovenstaande handleiding om de code op de WeMos te plaatsen.

    Vergeet zeker niet om je eigen wifi te connecteren in de code door ssid en wachtwoord aan te passen in de code: WiFi

    Weetjes

    • Network Time Protocol

    David L. Mills is de uitvinder van het Network Time Protocol. Het Network Time Protocol of Netwerktijdprotocol (NTP) is een protocol waarmee computers die onderling met elkaar in verbinding staan, hun interne klok kunnen synchroniseren met andere computers. Het is een van de oudste internetprotocollen dat nog in gebruik is.

    David L. Mills

    • Tijd vragen aan een tijdserver

    Een tijdserver is een computer die op verzoek de juiste tijd doorstuurt. Het verzoek moet verlopen volgens het formaat dat vastgelegd is in het NTP protocol. Het NTP protocol gebruikt het UDP protocol (User Datagram Protocol) voor het verzoek en voor het antwoord waarin de tijd gecodeerd staat. Door het gebruik van bibliotheken kan je relatief eenvoudig de tijd opvragen aan een tijdserver. Tijdservers gebruiken UTC tijd.

    • Epoch (= tijdstip) time is niet zo simpel als je zou denken

    Epoch (= tijdstip) time is niet zo simpel als je zou denken. NTP servers gebruiken 1 januari 1900 als epoch (referentietijdstip). Dit wil zeggen dat de ontvangen tijd overeenstemt met het aantal seconden sinds 1 januari 1900. Dit is niet gemakkelijk te lezen of te interpreteren.
    De ontvangen tijd is de UTC tijd, deze tijd moet je nog aanpassen aan je lokale tijdzone.
    UTC tijd houdt geen rekening met de lokale gewoontes voor zomer- en winteruur.

    Computers werken met UNIX tijd; UNIX tijd gebruikt als epoch 1 januari 1970. Een voorbeeld van de nummers die je doorkrijgt en wat deze betekenen:

    1
    2
    3
    4
    5
    
    NTP tijd: 3797841198 (= seconden sinds 1/1/1900)
    UNIX tijd: 3797840660 – 2208988800 = 1588851860 (UNIX tijd = seconden sinds 1/1/1970)
    = donderdag 07/05/2020 11:44:20 GMT
    = donderdag 07/05/2020 13:44:20 
        lokale tijd (Brussel = GMT+2 (zomeruur)
    

    De UNIX tijd wordt bewaard in een 32 bit variabele, op 19 januari 2038 zal er overflow optreden, computercodes worden daar nu voor aangepast.

    Voor eenvoudige toepassingen totaal onbelangrijk maar leuk om te weten is dat de UTC tijd aangepast wordt met schrikkelseconden om het verschil in lengte tussen de gemiddelde zonnedag en de op de klok gebaseerde periode van precies 24 uur te corrigeren.

    • WiFi LED klok

    De WiFi LED klok gebruikt 60 Neopixels om de tijd aan te duiden.
    Een Neopixel is een adresseerbare RGB LED (RGB staat voor Rood - Groen - Blauw). Adresseerbaar betekent dat aan de Neopixel een nummer toegekend wordt.

    De helderheid van de R,G en B LED kan onafhankelijk van elkaar ingesteld worden op 256 verschillende waardes (= 8 bit gecodeerd), daardoor kan een Neopixel (256 x 256 x 256) 16,7 miljoen verschillende kleuren tonen door het principe van additieve kleurenmenging.

    Kleurmenging

    • WIFI Neopixel klok

    Meestal worden in een opstelling meerdere Neopixels gebruikt. Een Neopixel heeft 4 aansluitingen, massa (GND), 5V (= 5 Volt), DIN (Data In) en DOUT (Data OUT).
    DIN is verbonden met de microcontroller en DOUT gaat naar DIN van de volgende Neopixel. Je kan onbeperkt Neopixels toevoegen aan de ketting als je microcontroller voldoende geheugen heeft. Hoe langer de ketting hoe langer de reactietijd wordt.

    Neopixel

    • Stroomverbruik

    De WiFi LED klok wordt gevoed via de USB kabel.
    Bij maximum helderheid (= wit) verbruikt een 1 Neopixel 60 mA (3 x 0,02 = 0,06 Ampère).
    Dit lijkt weinig maar als je 60 Neopixels gebruikt zoals in de WiFi LED klok dan kan de stroom stijgen tot 3,6 Ampère, dit is te veel voor een klassieke USB voeding.
    De WiFi LED klok is zo geprogrammeerd dat de Neopixels nooit allemaal samen op volle intensiteit zullen oplichten. De WiFi LED klok verbruikt daardoor maximum 0,2 Ampère.

    Wil je meer weten over NeoPixels?

    Je kan (bijna) alles over NeoPixels leren in dit document.

    STEM

    In deze high tech activiteit komt heel wat techniek aan bod! We hebben in deze handleiding tenslotte zelf ons eigen klok gemaakt! En je hebt vooral getraind op het veilig en nauwkeurig werken.

    Challenge!

    Kan je een binaire klok maken?

    Maak het je eigen

    • Kies je eigen kleuren voor de verschillende ‘wijzers’.
    • Versier de klok zoals jij maar wil.

    Voorbeelden

    Heb je een foto van je eigen NeoPixel klok? Stuur hem ons!

    Downloads

    Montagehandleiding: Download


    Bedieningshandleiding: Download


    ESP8266 installatie in de Arduino IDE: Download


    Lasercutfile: Download


    zip Time Arduino bibliotheek: Download


    zip Arduino code: Download