Sommartidsprojekt

posted in: Nörd | 0

Det behövs rätt tid.
Idag infaller sommartid, dvs man ska kludda med att flytta alla sina klockor framåt en timme. Det är bökigt. Tur att EU håller på och funderar på ifall man ska låta bli dylika aktiviteter.

Men hur som helst så behövs rätt tid, för idag får man inte bara ändra en timme, utan även justera så att klockeländet går exakt.

Var hittar man rätt tid?
– Man kan ringa fröken ur: 90510. Funkar fortfarande, men det är inte så smidigt.
– Man kan köpa/bygga sig en DCF77-styrd klocka och titta på.
– Man kan köpa/bygga sig en NTP-styrd klocka och titta på
Valet föll på det sistnämnda eftersom jag hade alla delar till en sådan manick hemma i bra-å-ha-lådorna™

Man tager sig:
1st Arduino Uno
1st Ethernet shield
1st LCD-display av behaglig storlek (16×2 tecken)
Något trevligt att smacka ihop ovan i, så det ser snyggt ut. Jag tog en träbit…

Dessa tre pilledutter ihopsättes på lämpligt sätt.
* Ethernet shield passar liksom bara på ett sätt, så den är onödig att kommentera ytterligare.
* Displayen har kopplats på PortB på Arduinon på följande sätt:
PortB bit 2: data bit 0
PortB bit 3: data bit 1
PortB bit 4: data bit 2
portB bit 5: data bit 3
PortB bit 6: LCD Enable
PortB bit 7: LCD Register Select
(data bit 4-7 är oanslutna på LCD-displaymodulen)

När man nu kommit så här långt måste man hitta på en programkod för att få eländet att göra något av värde.
Mina kunskaper i C har legat i träda ganska länge, så det behöver fräschas upp. Detta är ett utmärkt tillfälle.
Lite kodsnuttar samlas ihop, testas, kastas, görs om osv. och till slut så kommer version 0.1 upp som verkar fungera på någorlunda tillfredställande sätt. Inte buggfri, men gör något.


Min kod kan du ladda hem här!

När klockan är programmerad och uppkopplad kommer den automatiskt att begära ett IP-nummer från en DHCP-server (dvs från en router). IP-numret visas en kort stund på displayen.
I din webbläsare skriver du nu exempelvis:
http://10.0.0.224
(siffrorna 10.0.0.224 byter du till det nummer du fick på displayen)

Först får du en display som visar aktuell tid i din webbläsare. Klicka på ”Setup…” längst upp för att komma åt inställningar för vilken NTP-server och tidszon som du vill använda. Tryck därefter på Submit för att lagra i Arduinons eeprom. Inställningarna kommer den därefter ihåg efter nästa strömavbrott ex.vis.
NTP-servrar kan du ex.vis hitta här, om du inte har en egen som snurrar i något skrymsle.

…..
NU kan jag ställa alla mina andra klockor efter den här. 🙂