Vegard lagde Harry Potter-klokke til foreldrene sine, så de kan se hvor alle barna deres er

Sånn fiksa han "Weasley-klokka" med Raspberry Pi, Firebase, Python og Pushcut.

Tre brødre med tre visere som viser hvor de er; akkurat som klokka du kanskje har sett eller lest om i Harry Potter. Vegard Gamnes forklarer hvordan han lagde sin Weasley-klokke. 📸: Privat
Tre brødre med tre visere som viser hvor de er; akkurat som klokka du kanskje har sett eller lest om i Harry Potter. Vegard Gamnes forklarer hvordan han lagde sin Weasley-klokke. 📸: Privat Vis mer

De store teknologi-gigantene vet jo allerede skremmende mye om oss, så hvorfor ikke la mor og far også få gleden av å følge med på hvor vi er i verden?

Jeg og mine brødre bestemte oss for å lage en såkalt “Weasley-clock” til mamma og pappa i julegave, etter å ha tenkt på det i mange år.

En sen kveld i 2022 falt omsider de siste brikkene på plass.

Klokkeviserne er skrudd fast i servoene under, og så har vi limt ansiktet til hver av oss på toppen av viseren
Klokkeviserne er skrudd fast i servoene under, og så har vi limt ansiktet til hver av oss på toppen av viseren Vis mer

To år etter

Det hele startet sommeren 2019, med håp om å fullføre prosjektet innen 24. desember samme år. Vi hadde som sagt tenkt på noe slikt i mange år, men ikke hatt den riktige anledningen for å lage en slik klokke. Julegave til mor og far dukket plutselig opp som en ypperlig mulighet og vi bestemte oss for å kjøre på.

Det ble dessverre ikke noen fungerende klokke julen 2019... Vi ga bort en halvfungerende klokke med et løfte om å gjøre den ferdig ved en senere anledning.️

“Den fungerer egentlig, liksom. Og vi skal fullføre den, altså. Nå snart. En vakker dag. Vi lover. Tror vi. Håper vi...”

Endelig, ca to år etter, har vi omsider holdt det vi lovet; en magisk Gamnes-klokke som kunne vært tatt rett ut av Harry Potter-universet!

Design i PowerPoint

Den opprinnelige planen var å ha tre visere på samme plass på klokken, som en vanlig klokke.

En tidlig prototype
En tidlig prototype Vis mer

Mangelen på timer i døgnet og dårlig samvittighet gjorde at vi tok en avgjørelse om tre individuelle visere i stedet, for å forenkle mekanikken på baksiden. I tillegg byttet vi ut den tradisjonelle klokke-look’en med en bilderamme.

Baksiden av Gamnes-klokka
Baksiden av Gamnes-klokka Vis mer

Designet på framsiden laget vi enkelt og greit i Power Point, og er printet på vanlig fotopapir. På baksiden har vi en tynn kryssfinér-plate tilpasset bilderammen, og så har vi boret tre hull til de enkelte servoene basert på designet på framsiden.

Framsiden av Gamnes-klokka
Framsiden av Gamnes-klokka Vis mer

Lokasjoner 🌍

Etter å ha avslørt julegaven i 2019, med et løfte om en ferdig og fungerende klokke ved en senere anledning, kunne vi sitte ned med gamlingene og bestemme lokasjonene i fellesskap. Vi ble enige om følgende:

  • Hjemme-hjemme
  • På villspor
  • KKN
  • TRH
  • OSL
  • Jobb
  • Hjemme

KKN, TRH og OSL er henholdsvis Kirkenes, Trondheim og Oslo Lufthavn. Ikke like lett å komme på overraskelsesbesøk nå, men vi får håpe gleden av å følge med på flyturene veier opp for dette. Hjemme-hjemme er da hjemme hos mor og far, mens På villspor blir alle andre steder enn de som er nevnt på klokka. Jobb og Hjemme sier seg selv, og er da også de eneste som er forskjellig fra bror til bror.

Hvordan henger det hele sammen egentlig..? 🤷

Godt spørsmål! Her kommer fremgangsmåten.

Firebase-database 💾

Vi opprettet en enkel database i Firebase for å lagre posisjonene våre. Databasen inneholder kun tre verdier:

{ bPos: 0, vPos: 0, gPos: 0}

Denne databasen vil da oppdateres hver gang en bror oppdaterer posisjonen sin, og klokken kan hente ut denne dataen for å oppdatere viserne og vise riktig status.

Lokasjonstriggere 📱

Alle brødrene har installert Pushcut på telefonen sin, som tillater automatiske bakgrunnsjobber med lokasjonstriggere. Vi har lagt inn triggere for “Til” og “Fra” fra alle de stedene som vi hadde blitt enige om, hvor “Fra” blir lik for alle (sender viseren til På villspor).

Det fine med Pushcut er at disse triggerne kan kjøre automatisk i bakgrunnen, uten at vi som brukere trenger å trykke “Kjør” eller lignende for hver posisjonsendring. Skjermbildene under viser et eksempel på en slik trigger, og man kan da enkelt koble på Arriving-/Leaving-triggere til ønskede lokasjoner.

Vi bruker app-en Pushcut for å trigge lokasjonsendringer
Vi bruker app-en Pushcut for å trigge lokasjonsendringer Vis mer

Hver lokasjonstrigger kjører et API-kall mot Firebase, med verdi basert på gitt lokasjon. Eksempelvis vil Vegard sende “vPos: 1” ved ankomst hos mor og far, eller “vPos: 2” ved avreise.

Klokkekonstruksjon 🕰

Klokken er bygget opp av en Raspberry Pi Zero W med tre servoer koblet til hver sin GPIO-pin.

Ved oppstart vil et Python-script bli startet gjennom en cron-jobb, som sjekker denne Firebase-databasen hvert minutt og oppdaterer riktig servo basert på verdiene der. På toppen av servoene har vi da skrudd og limt fast klokke-visere med et lite bilde av hver bror.

Tre servoer; én per bror. Disse er tilkoblet en Raspberry Pi Zero W
Tre servoer; én per bror. Disse er tilkoblet en Raspberry Pi Zero W Vis mer

Simsalabim! 🧙

That’s it. Ikke så mye hokus pokus, sånn egentlig. Så lenge vi har installert Pushcut og aktivert disse bakgrunnstriggerne, og klokken hjemme hos mor og far har Internett og er skrudd på, så fungerer alt automagisk av seg selv. Hvis noen av oss vil gå undercover kan vi bare deaktivere automatikken i Pushcut.

Demo av Gamnes-klokka - en versjon av Weasley-clock fra Harry Potter til familien. Vis mer

Suksess 🙌

Vi er alle veldig fornøyde med prosjektet, og da også sluttresultatet.

Mor og far er glade for å kunne glimte bort på klokken før de eventuelt prøver seg på en videosamtale med barnebarn, og vi fikk lage familie-klokken vi har tenkt på siden første gang vi leste om den i Harry Potter-bøkene.

Ikke nøl med å ta kontakt angående spørsmål eller kommentarer til prosjektet! Vi er alle lett tilgjengelige gjennom hver vår brev-ugle… 🦉