Innholdsfortegnelse:

Wifi -synkroniserte lamper: 10 trinn (med bilder)
Wifi -synkroniserte lamper: 10 trinn (med bilder)

Video: Wifi -synkroniserte lamper: 10 trinn (med bilder)

Video: Wifi -synkroniserte lamper: 10 trinn (med bilder)
Video: Собаку бросили в лесу с коробкой макарон. История собаки по имени Ринго. 2024, Juli
Anonim
Image
Image

Et prosjekt for noen som lyser opp livet ditt …

For 2 år siden, i julegave til en langdistansevenn, laget jeg lamper som ville synkronisere animasjoner via internettforbindelse. I år, to år senere, opprettet jeg denne oppdaterte versjonen med kunnskapen fra de ekstra årene med elektronikkdabbling. Denne versjonen er mye enklere, uten eksterne skjermer eller tastaturer som trengs (og bare en enkel brikke, ikke to!) I tillegg til et enkelt telefonappgrensesnitt (takket være Blynk IoT) i stedet for nettsted og fysisk mykt potensiometer.

Det er knapper i appen som gir mer fleksibilitet i hvilke animasjoner du vil legge til: Det er 3 glidebrytere for RGB -kontroll, i tillegg til en widget nederst som lar deg velge farger fra et kart (slik at du ikke har for å finne ut hva RGB -tallene er for fargen du vil ha). Det er også forhåndsinnstilte knapper for glad, sint, trist og "meh", slik at du enkelt kan formidle følelsene dine til den andre personen i form av lampeanimasjoner, for de gangene du har noe du vil snakke om, men ikke vil å plage personen med mange tekster.

Ingen elektronikkopplevelse? Ingen bekymringer! Det er bare tre hovedtrinn: å koble til maskinvaren, laste opp koden og opprette Blynk -appen. Husk imidlertid at det som kan gå galt, vil gå galt. Legg alltid til god tid til feilsøking.

Hvis du bruker akkurat det jeg gjorde og laster opp akkurat det jeg har, bør du ha det bra selv om du aldri har jobbet med elektronikk. Selv om du foretar justeringer i prosjektet, bør du lese gjennom denne opplæringen en følelse av hva du må endre hvis du bruker dette som en guide. Kostnaden ble også holdt så lav som mulig: total kostnad, hvis du absolutt ikke har noen av komponentene, er ~ $ 40 maks per lampe.

Trinn 1: Materialer

Dette er materialene du trenger for EN lampe (multipliser med antall lamper du vil lage):

  • 1x NodeMCU ESP8266 chips ($ 7 hver, $ 13 for 2)
  • 1x protoboard eller breadboards (~ $ 1 hver)
  • loddejern og loddetinn
  • 1x neopikselringer ($ 10 hver, $ 8 hvis du kjøper fra adafruit.com)
  • 1x 5V strømforsyning (minst 500mA utgang, så 1A eller 2A vil være perfekt) med microUSB -tilkobling (eller fatkontakt, men kjøp en fatkontakt til bare ledninger) ($ 8 hver)
  • Ikke strengt nødvendig, men anbefales på det sterkeste for kretsbeskyttelse (noen få cent hver, men du må kanskje kjøpe i bulk)

    • 1x 300-500Ohm motstand (jeg brukte 200Ohm og slapp unna med det)
    • 1x 100-1000uF kondensator
  • elektrisk ledning (eller du får disse båndtypene) (enkeltkjerne er best) (noen få cent for 5 )

    Du trenger ikke så mye ledning; bare 5 "vil være nok

  • Du kan gjøre hva du vil for den utvendige lampen (ovenfor er deler bare for elektronikken). Jeg gikk med laserskåret tre og akryl, med skissebokspapir for lysdiffusjon.

Jeg la ved Amazon -lenker ovenfor for de billigste alternativene jeg kunne finne (fra 20. desember 2018), men du kan definitivt finne komponenter billigere fra forskjellige steder. Jeg er fortsatt en universitetsstudent, så jeg hadde tilgang til kondensatorer og motstander: prøv å spørre venner som jobber med elektronikk. Neopixels kan kjøpes på adafruit.com for billigere hvis du har andre ting du vil bestille derfra (for å spare fraktkostnader..). Du kan få motstander og kondensatorer fra DigiKey eller Mouser også for mye billigere, selv om frakt kan være høyere. For strømforsyningene vil en gammel telefonlader være bra (eller bare microUSB -kabelen hvis du vil koble lampen til en USB -port i stedet for en stikkontakt). Hvis du absolutt ikke har noen av disse komponentene, vil kostnaden være maks ~ $ 40 per lampe (og mindre per lampe jo mer du lager, siden du vanligvis kjøper disse komponentene i bulk: protoboard kan for eksempel komme i pakker med 5). Jeg hadde ting liggende, så det var bare $ 5 for meg (ja, jeg er en hoarder med venner som tilfeldigvis slapp mange ting - pluss at jeg gjenbrukte neopikselringer fra forrige gang).

Arduino -kode og Adobe Illustrator -filer (for laserskjæringsboksen) er vedlagt nedenfor.

Trinn 2: Oversikt: Hvordan lampene fungerer

Ok, så når du først har materialene, lurer du kanskje på hvordan de kommer sammen. Her er en forklaring:

NodeMCU ESP8266 er en mikrokontroller som opererer på 3.3V logikk (i motsetning til 5V logikk som de fleste Arduinos). Den inkluderer en innebygd wifi -chip og GPIO -pinner for bruk av digitale og analoge signaler med komponenter du kobler til. Du bruker en av pinnene som kan sende PWM -signaler (se pinout her: enhver pin med ~ ved siden av kan generere de analoge signalene i motsetning til digitale signaler på bare 0 eller 1, LOW eller HIGH) for å kontrollere neopikselring. For å programmere det, kan du gjøre dette enkelt gjennom Arduino IDE, enkelt nedlastbart her. (Vær oppmerksom på at jeg ga Adafruit -guiden til ESP8266 HUZZAH i stedet for NodeMCE -en vi har. Guiden gjelder fortsatt for begge brettene, men du må bare velge et annet brett for opplasting i Arduino.)

Neopikselringen er det som skaper de fargede animasjonene til lampen. Den har adresserbare lysdioder i ringformasjonen, som hver kan kontrolleres individuelt. Det kjører normalt ved hjelp av 5V -logikk, som vanligvis krever nivåskift (forklart her), men heldigvis har Adafruit neopikselbibliotek blitt oppdatert for å støtte ESP8266. Selv om 5V -komponenter ikke reagerer like pålitelig på 3,3V -signaler, fungerer det ganske pålitelig når neopiksen drives med lavere spenning (så 3,3V i stedet for 5V). Se detaljer om dette her.

Når det gjelder tilkoblingen fra mikrokontrolleren til neopikslen, er det tryggest å sette en 300-500 Ohm motstand mellom datalinjen til neopikslen og GPIO-pinnen du sender signaler fra (for å beskytte lysdiodene mot plutselige overspenninger). Du bør også legge til en 1000uF kondensator koblet parallelt til neopikselringens strøm- og jordledninger: dette er for å gi beskyttelse mot plutselige overspenninger i strømmen. Les dette for flere gode fremgangsmåter for bruk av disse LED -ringene (og her for hele brukerveiledningen til Adafruit).

For å koble til Blynk IoT -plattformen, har Arduino et bibliotek for bruk av Blynk. Du kan lese dokumentasjonen her for å lære mer om bruk av Blynk generelt. For å komme i gang var dette en praktisk instruerbar spesielt for NodeMCU ESP8266 og Blynk.

Ikke bekymre deg hvis noen av disse tingene ikke gir mening! De fremtidige trinnene vil skissere nøyaktig hva du skal laste opp, laste ned, koble til osv. Les gjennom alt (ja, det er en lang opplæring, men minst skum) før du begynner å bygge !!! Det vil hjelpe deg med å finne ut hvordan ting henger sammen i stedet for bare å følge instruksjonene blindt.

Trinn 3: Maskinvare

Bilde
Bilde
Bilde
Bilde

For å begynne, koble til maskinvaren din som vist på bildene ovenfor. Neopiksen skal komme til deg med hull for lodding på ledninger. Du må først lodde ledninger til hullene merket PWR (strøm), GND (jord) og IN (inngang for analoge signaler) før du kobler ledningene til ESP8266s 3.3V-, jord- og D2 -pinner (se dette for pinout). Som en tommelfingerregel er rød ledning for strøm, svarte ledninger indikerer bakken, og jeg liker å bruke blått for neopikslens datalinje (koblet til D2 -pinnen, som er i stand til PWM -signaler).

Sørg for å koble kondensatoren i riktig retning: kondensatoren har polaritet, noe som betyr at det spiller noen rolle hvilken side du kobler parallelt med neopikslens jord og kraft. Hvis du ser på din 1000uF kondensator, er det en grå stripe langs siden som indikerer den negative siden av kondensatoren (du kan også se den i fritzing -diagrammet ovenfor). Dette er siden som skal kobles parallelt med neopikslens bakke. Motstanden har ikke polaritet, så du trenger ikke å bekymre deg for retningen.

Når det gjelder å opprette en fast forbindelse, er den beste måten å bruke protoboard, slik at du kan lodde komponentene sammen i stedet for å bare koble ledningene til et brødbrett og risikere at de kommer ut. Jeg brukte et brødbrett fordi jeg hadde kort tid, men igjen er protoboard å foretrekke. Det fine med brødbrettet er at det har en klissete bakside, så jeg fjernet bare klistremerket for å feste alt til lampefoten min. For protoboardet kan du skru den inn i basen ved hjelp av de 4 hullene de vanligvis har i hjørnene, eller bare tape/lime den fast.

Trinn 4: Arduino -kode

. Ino Arduino -koden er festet nederst i dette trinnet for referanse. Det ser langt og ordrikt ut, men ikke bekymre deg: mye av det innebærer kommentarer for å forklare alt. Jeg liker også å hoppe over linjer for å legge til mellomrom for differensierende seksjoner, noe som får koden til å se lengre ut.

Hoveddeler som skal redigeres for å passe koden din:

  • Blynk -autorisasjonstoken/-kode (sendt til deg fra Blynk når du oppretter en enhet i appen: se neste side for mer informasjon)

    Du trenger en egen autorisasjonskode for hver lampe

  • wifi domenenavn (mellom de to apostrofene ")
  • wifi -passord (mellom de to apostrofene ")

Annet enn det, så lenge du bruker min nøyaktige Blynk -app og generelle maskinvare (så bruk min nøyaktige Blynk -appkonfigurasjon i neste trinn, ha 12 lysdioder i neopikselringen, bruk ESP8266s D2 -pinne for neopiksel datalinje, osv.), du trenger bare å laste opp koden nøyaktig til ESP8266. Vær oppmerksom på at du må bruke forskjellige autorisasjonskoder for hver av lampene dine! Se neste side for å legge til separate enheter og få disse kodene. Ikke glem å matche wifi -domenet og passordet til lampen også, hvis de er forskjellige steder. Du vil sannsynligvis redigere andre ting avhengig av hvilke animasjoner og farger du vil ha, eller kanskje til og med hvilke pins du bruker. Jeg har kommentert koden for å hjelpe deg med å endre ting etter behov. (les også gjennom Adafruit Neopixel -bibliotekets prøveeksempelkode for ideer).

Før du kan bruke koden, må du laste ned bibliotekene som koden bruker (de øverst i koden). Les gjennom og følg denne veiledningen fra Adafruit (start med "Bruke Arduino IDE") for hva du trenger å gjøre for å sette opp for ESP8266. Ja: du må installere CP2104 -driveren, legge til de ytterligere Board Manager -nettadressene i Arduino -preferanser, installere ESP8266 -pakken (gå til Sketch> Include Library> Manage Libaries … og søk opp det du trenger - se bildet nedenfor), og installer også de andre bibliotekene øverst i koden for neopixel, Blynk, etc.

Bilde
Bilde

For å laste opp kode til ESP8266-brikken fra Arduino IDE, må du velge riktig kort (NodeMCU ESP8266 ESP-12E), blitsstørrelse, port, osv. (Se bildet nedenfor). Den riktige porten SLAB_USBtoUART vises ikke med mindre du kobler ESP8266 til datamaskinen. Men når den er tilkoblet, og du er sikker på at du har koblet kretsen din riktig i forrige trinn, kan du fortsette og trykke på pilen i øvre venstre hjørne for å laste opp koden til brettet. Ja, det tar lengre tid enn din vanlige opplasting-til-Arduino-prosess. Du vil se den kompilere koden sakte, deretter en streng med oransje perioder ……………… når den lastes opp (vises i Arduino -vinduets nederste sorte del).

Bilde
Bilde

Her er en oversikt over koden. Den første delen inneholder biblioteker som funksjonene skal bruke og initialiserer globale variabler (variabler som kan nås med en hvilken som helst funksjon i koden). BLYNK_WRITE (virtualPin) -delene styrer hva som gjøres når widgetene i Blynk -appen (som er koblet til virtuelle pins) veksles (dvs. slås på/av, skyveposisjoner endres). Det er 7 av disse for de 7 virtuelle pinnene jeg bruker i min Blynk -app. Den neste delen av void colorWipe (), regnbue (), etc. er å definere funksjoner som resten av koden bruker. Disse funksjonene er stort sett lånt fra Adafruit eksempelkode på neopikselbiblioteket (spesifikt strandtest). De siste delene er ditt standard void -oppsett () og void loop () som går i all Arduino -kode: void setup () definerer operasjoner som skjer bare en gang med brettet er slått på, og void loop () definerer operasjoner som brettet kontinuerlig sløyfer gjennom når den er slått på. void loop () definerer stort sett hvilken animasjon lampen vil gå gjennom basert på variabelen "animasjon" som jeg opprettet.

Trinn 5: Blynk IoT

Blynk IoT
Blynk IoT
Blynk IoT
Blynk IoT
Blynk IoT
Blynk IoT

Jeg valgte Blynk fremfor Adafruit IO for denne versjonen 2.0 lampe. Adafruit IO er flott, men det var to ting Blynk hadde i motsetning til Adafruit IO: et appgrensesnitt og muligheten til å godta "tomt" som et wifi -passord (så hvis du kobler deg til et offentlig wifi som ikke har et passord, kan du la passorddelen være tom, dvs. bare ""). Vennen min går ofte til sykehus for behandling, så jeg ønsket å ha denne muligheten når hun overnatter, men vil ha et virtuelt selskap: hun vil fortsatt kunne koble til wifi på sykehuset.

Start med å gå til Google Play -butikken eller iPhone App Store for å laste ned Blynk -appen til telefonen. Opprett en konto gratis og lag et nytt prosjekt. I øvre høyre hjørne ser du en QR -kode skannerknapp: bruk den til å skanne QR -koden på bildet nedenfor for å kopiere alle knappene mine og slikt inn i det nye prosjektet. Se denne siden for mer informasjon om hvordan dette fungerer ("del prosjektets konfigurasjon"). Den siden gir også nyttig informasjon for å dele prosjektet med lampens mottaker senere.

Bilde
Bilde

Selvfølgelig kan du tilpasse knappene slik du vil! Sveip til høyre for å avsløre hvilke widgets du kan legge til. Du bør forstå hvilke alternativer du har for widgetene skjønt: Jeg har lagt ved bilder (med notater på hvert bilde) av knappens innstillinger og forslag til bruk av dem øverst i dette trinnet.

Forresten, å legge til widgets koster poeng i appen, og alle starter med et visst beløp gratis. Å legge til flere poeng koster penger ($ 2 for 1000 ekstra poeng). Jeg endte opp med å legge til 1000 poeng for å få konfigurasjonen til å fungere, men du kan ganske enkelt fjerne en eller to knapper for å få det til å fungere med gratisbeløpet.

I prosjektet må du trykke på mutterknappen øverst til venstre (ved siden av den "spill" trekantede knappen) for å få tilgang til prosjektinnstillinger.

Bilde
Bilde

Du må legge til enheter i prosjektet for å få autorisasjonstokener/koder for hver lampe, som du endrer i Arduino -koden som tidligere nevnt. Trykk på høyre pil på Enheter for å opprette nye enheter. Når du oppretter en enhet, ser du tokenet som på bildet nedenfor (uskarpt i rødt).

Bilde
Bilde

Når du har koden, husk å skrive inn riktig token, wifi -domene og passord i Arduino -koden for hver lampe. Du bør sannsynligvis skrive inn din egen wifi -legitimasjon først for å sikre at hver lampe fungerer som den skal og feilsøke etter behov, men oppdater deretter med mottakerens wifi -domene og passord før du sender den ut.

Sørg for at du slår på appen for å faktisk bruke knappene dine! Når appen er "på" (trykk på avspillingsknappen i øvre høyre hjørne, ved siden av nøtteknappen for innstillinger), blir bakgrunnen solid svart i stedet for det prikkede rutenettet du ser når du er i redigeringsmodus. Hvis du har lastet opp Arduino -koden til ESP8266 og plugget den inn, bør brikken automatisk koble til wifi. Sjekk dette ved å trykke på det lille mikrokontrollerikonet øverst til høyre (bare synlig når appen er på): du bør se en liste over enheter du opprettet for prosjektet, og hvilke som er online.

Bilde
Bilde

Trinn 6: Lampedeksel

For selve lampen gikk jeg med laserskåret tre (1/8 "bjørkfiner) og akryl (gjennomsiktig, 1/4", for undersiden slik at lyset skinner gjennom). Treet hadde utskjæringer som var unike for min venn og meg, men jeg la ved Adobe Illustrator -filer for puslespillets ansiktsdesign (lager en 4 "terning) som du kan kutte ut hvis du liker formen (filer er vedlagt dette trinnet, Advarsel: bunnflaten må være 1/4 "tykk for at brikkene skal passe sammen i disse filene. Hvis du vil lage en annen størrelse eller ha alt med en tykkelse, kan du bruke makercase.com til å generere filer for laserskjæring av en boks.

Bilde
Bilde
Bilde
Bilde

Ikke glem å legge igjen et hull for strømkabelen for å komme ut av lampen. Jeg glemte å inkludere den, men klarte å bruke wire cutters til å skjære et lite trekantet hull gjennom 1/8 treet.

Trinn 7: Dele lamper med mottakere

Når du sender lampen til mottakeren din, må de også laste ned Blynk -appen til telefonen fra Google Play Store eller Apples App Store for å kontrollere lampen. Du kan enten få dem til å opprette en egen konto eller bruke samme pålogging. Hvis de oppretter en egen konto, kan du dele en spesiell QR -kode som andre kan bruke for 1000 poeng (IKKE den jeg delte i forrige Blynk -trinn; denne QR -koden gir tillatelse til å bruke samme app som deg, men de kan ' t endre noen av knappinnstillingene eller konfigurasjonen - les gjennom denne siden, spesielt "del tilgang til maskinvaren din"). Du må sørge for at du slår på appen (trykk på avspillingsknappen øverst i høyre hjørne, slik at du ser mikrokontrollerknappen i stedet for knappen for mutterinnstillinger) for at andre skal kunne bruke appen.

Jeg kom rundt 1000 poengkostnaden ved å gi vennen min påloggingsinformasjon slik at hun kunne logge på appen via kontoen min. Hvis du sender disse lampene til folk som ikke er så flinke med elektronikk (eldre, generelt), vil jeg anbefale å bruke $ 2 dollar på å opprette en delt lenke slik at de ikke har tilgang til kontoen din og kan t rotet inn appinnstillingene dine. Med dette QR -alternativet (1000 poeng kostnad) har de fortsatt en klon av appen din, men kan ikke endre noe.

Trinn 8: Bruke appen

Nå, hvordan kan du bruke appen til å kontrollere lampene?

Slå lampen på og av med den store strømknappen (rød når den er slått av, grønn når den er på). Hvis lampen er slått av, slår den automatisk av alle andre knapper i appen og setter RGB til 0, 0, 0. Når du trykker for å slå på lampen igjen, starter lampen med pulserende hvitt.

Det er de tre RGB -glidebryterne øverst til høyre for å kontrollere RGB -fargeutgangen i lampene som blinker. De oppdaterer fargen i sanntid mens du justerer glidebryterne. Du kan også justere fargen med det sebraformede fargekartet nederst i appen. Dette er koblet til RGB -glidebryterne, så glidebryterne oppdateres basert på hvilken farge du velger på kartet, og omvendt. Dette kartet er nyttig hvis du har en nyanse du vil ha spesielt, men ikke vet de riktige RGB -tallverdiene.

Det er knapper på venstre side av appen med forhåndsinnstilte animasjoner for glad, sint, trist og meh. "Glad" får lampen til å blinke gjennom regnbuens farger, "sint" får lampen til å blinke mellom rødt og gult, "trist" får lampen til å blinke gjennom blått og himmelblått, og "meh" får lampen til å skape en roterende regnbue hjul. Jeg valgte regnbuen for glade og meh siden de mer sannsynlig er standard hverdagsanimasjoner. Når du trykker på en av de forhåndsinnstilte knappene, blir alle andre knapper slått av (dvs. hvis du var på "glad", men trykker på "sint", ville lykkeknappen automatisk slå seg av etter noen sekunder). Vær oppmerksom på at det vil ta lengre tid å bytte fra de glade og meh -animasjonene fordi lampen må gå gjennom hele regnbue -animasjonen før den kan endre animasjon. Hvis du slår av noen av de forhåndsinnstilte knappene, vil lampen som standard blinke tilbake til hvilken farge RGB -glidebryterne tilsvarer. Hvis du har noen av de forhåndsinnstilte animasjonene slått på, men endrer RGB -glidebryterne, skjer ingenting: den forhåndsinnstilte animasjonen dominerer.

Før du kobler fra lampen, må du trykke på strømknappen i appen som en god tommelfingerregel. Trykk deretter på strømmen i appen når du kobler lampen til igjen. IKKE juster appknappene når noen av lampene ikke er slått på eller koblet til wifi (ikke verdens ende, men det vil ødelegge lampen operasjon). Se neste trinn for hvorfor …

Trinn 9: ** ADVARSEL FOR Riktig drift **

Det er ett smutthull i driften av lampene. Blynk -grensesnittet tillater meg ikke å selektivt kontrollere hva som kan skiftes når noe annet er på eller av, men jeg setter betingelser i koden slik at hvis du veksler noe som ikke burde skiftes når lampen er slått av eller en annen animasjon er på, vil bryteren angre seg selv: det tok mye feilsøking, men det fungerer ganske bra (demonstrert i videoen ovenfor: appen avviser endringer som skjer når lampen er slått av, og hvis de forhåndsinnstilte animasjonene er på, endres eventuelle endringer i glidebryterne påvirker ikke animasjonen før den forhåndsinnstilte knappen er slått av)!

Den ene gjenværende fallgruven er at hvis du bytter ting i appen når brikken ikke er koblet til internett, vil denne automatiske "angre" -funksjonen ikke fungere, og lampen vil ikke følge det appen kommandoer. Når du slår på lampen, reflekterer den ikke det du gjør nøyaktig (uansett hva, lampen starter med hvitt blinkende når du slår den på). For å fikse dette, trykk bare på den store på/av -knappen: en strømsyklus vil tilbakestille alt i appen, slik at lampen fungerer som forventet.

Lang historie kort: Når du starter lampen, må du bare slå på strømknappen i appen for å tilbakestille alt. Bare gjør dette hvis du noen gang kobler fra lampen eller bruker appen når lampen ikke er koblet til (eller hvis lampen plutselig ikke reagerer ordentlig, selv når du gir den tid til å reagere, kanskje hvis wifi -enheten din tilfeldig kobler fra)

Trinn 10: Ferdig

Og det er en wrap! Det er en fin gave til alle du har et langdistanseforhold med: lag en til foreldrene dine før du drar på college eller flytter til en annen stat for din nye jobb, lag en til besteforeldrene dine når du har mindre tid til å besøke dem, gjør en for å holde SO -selskapet ditt på jobb, etc.

Her er noen flere varianter du kan gjøre:

  • Du kan blinke gjennom flere farger (rød oransje gul) i stedet for den falmede pulsen jeg har

    • Ha fargekontroll for de flere blinkene (første røde, andre oransje, tredje gule) i stedet for bare å blinke lyse og svake versjoner av samme nyanse
    • For det vil du legge til et eget fargekart eller sett med glidebrytere for å kontrollere fargene som hver animasjon går gjennom (så i stedet for alltid rød oransje gul, ha den individuelt kontrollerbar, slik at du kan ha rosa hvit, grønn lilla blå, etc.)
  • Det er andre animasjonstyper du kan prøve i Adafruit Neopixel strandtest -eksempelkoden, for eksempel theaterChase -alternativet.
  • Hvis du vil legge til et høyttalerkort, kan du også ha et musikkalternativ for lampene dine. Kanskje få dem til å spille forskjellig musikk til forskjellige anledninger. Eller i stedet for musikk, stemmeopptatte meldinger.

Ha det gøy å tilpasse lampene! Send meg gjerne en melding eller spørsmål.

Anbefalt: