Inhoudsopgave:

Nachtkastje MP3 Alarmbrief Klok - Ajarnpa
Nachtkastje MP3 Alarmbrief Klok - Ajarnpa

Video: Nachtkastje MP3 Alarmbrief Klok - Ajarnpa

Video: Nachtkastje MP3 Alarmbrief Klok - Ajarnpa
Video: Заброшенное городское кафе и жилой дом в Бельгии – замороженные во времени! 2024, November
Anonim
Nachtkastje MP3 Alarmbrief Klok
Nachtkastje MP3 Alarmbrief Klok

Voor dit project wilde ik een handige en volledig functionele bedwekker maken.

Mijn persoonlijke vereisten voor een bedwekker zijn:

  1. Afleesbaar bij elk licht, terwijl het 's nachts niet verblindt
  2. MP3-alarmmelodieën
  3. Aantrekkelijk en klein formaat
  4. Snooze-functie
  5. Geheugenfunctie, zodat tijd, alarmtijd, beltoon en volume niet verloren gaan wanneer de stroom wordt uitgeschakeld.
  6. Verjaardagsfunctie: op mijn verjaardag (en die van mijn familieleden) wil ik gewekt worden door "happy birthday" in plaats van de standaard ringtone

Ik kon geen instructable vinden die al deze combineert; vandaar dit instructable.

De klok is gebouwd rond een 8X8 WS2812B Matrix. Door het lage aantal LED's kunnen niet alle woorden uit opeenvolgende letters bestaan. De meeste 8x8 woordklokken (zoals deze mooie) lossen dit op door meer letters over een enkele LED te groeperen, hoewel andere creatievere oplossingen hebben. Ik besloot voor een oplossing te gaan die meer lijkt op deze, waarbij woorden worden gemaakt van niet-opeenvolgende letters. Dit geeft het een magische draai, omdat je de woorden niet ziet voordat ze worden verlicht. Om de leesbaarheid te vergroten, hebben letters van hetzelfde woord dezelfde kleur. In het begin is het even puzzelen om te lezen, maar na een tijdje lees je het in een flits uit. Dit is ook de reden waarom ik het een letterklok noem in plaats van een woordklok. De klok maakt me elke ochtend wakker en ik sta nog steeds versteld van hoe de woorden worden gevormd!

Benodigdheden

Afgezien van de elektronica zijn bijna alle componenten hergebruikte of teruggewonnen items die ik al in huis had. Het enige gereedschap dat je echt nodig hebt en waarschijnlijk niet bij de hand hebt voor de wijzerplaat is een lasersnijder. Gelukkig zijn er veel fablabs en makerspaces die je daarbij kunnen helpen. Bedankt Makerspace De Prins!

Elektronische componenten:

  • 8X8 WS2812B LED-matrix
  • Arduino nano
  • DS3231 real-time klokmodule
  • DFPlayer mini
  • micro SD-kaart om in de DFPlayer mini te plaatsen (de kleinste/goedkoopste die je kunt vinden, zal het werk prima doen)
  • Een fotodiode
  • Eén RGB-LED
  • 1000 F condensator
  • een zo klein mogelijke luidspreker
  • generieke draden, connectoren, weerstanden, knoppen
  • Wat hout, MDF,.. voor de doos

Stap 1: Maak de doos

Maak de doos
Maak de doos
Maak de doos
Maak de doos

Voor de doos zelf heb ik wel wat snitten van onze houten vloer gebruikt. Dit zijn mooie eiken planken van 9 mm dik. Met behulp van een verstekzaag heb ik 4 stukken van 10,5 x 8,6 cm gesneden (eigenlijk heb ik er een extra gesneden om eventuele fouten te corrigeren!). Langs de korte rand is een groef van 5 mm gemaakt om het voor- en achterpaneel te verbergen. De lange randen zijn in een hoek van 45° gesneden om een mooie vierkante doos te maken. Dit zijn geen gezamenlijke houtbewerkers die wild worden, vanwege het kleine lijmgebied aan de uiteinden. Maar ik hou van het uiterlijk van de verbinding die in de hoek is verborgen en het is nog steeds voldoende sterk voor de toepassing. Maar dit is slechts mijn oplossing met de materialen die ik bij de hand had. Elke doos die de matrix bevat, zal het werk prima doen. Voordat we de onderdelen aan elkaar lijmen, moeten we de elektronica maken en monteren. Dus op naar de volgende stap.

Stap 2: De wijzerplaat

De wijzerplaat
De wijzerplaat
De wijzerplaat
De wijzerplaat

Geen klok zonder wijzerplaat. Dit is een van de slimmere, snelle en goedkope manieren om de letters doorschijnend te maken, terwijl al het andere licht wordt geblokkeerd. Je hebt maar een klein stukje (10 x 10 cm) acrylglas (AKA plexi), wat spuitverf en een lasersnijder nodig. Ik ben begonnen met een teruggewonnen helder acrylglas; de dikte is niet belangrijk, zolang het maar in de uitsparing van je doos past. Aan de ene kant heb ik wel een hoek opgeruwd met wat schuurpapier en die heb ik afgedekt met wat zwarte spuitverf. Maak je geen zorgen over druipende verf enzovoort, want dit is de achterkant. De andere kant daarentegen moet je zo ongerept mogelijk houden. Nu heb je toegang nodig tot een lasersnijder om de verf en een deel van het acrylglas te verwijderen, waar de letters moeten komen met behulp van de meegeleverde SVG; vergeet niet dat de letters gespiegeld moeten worden! Et voila: een goedkope, snelle en gemakkelijke manier om een perfect uitziende frontplaat te maken, met vrijwel geen lichtlekkage! Waarschijnlijk moet je de volgorde van de letters veranderen, deze zijn namelijk bedoeld voor een nederlandse klok.

Nu heb je toegang tot de laser, snij ook een matrix (ook bestand bijgevoegd) uit ongeveer 6 mm MDF. Dit gaat tussen de LED-matrix en de voorplaat om het licht te verspreiden en lichtlekkage naar aangrenzende letters te voorkomen.

Stap 3: Solderen van de elektronica

De elektronica solderen
De elektronica solderen
De elektronica solderen
De elektronica solderen
De elektronica solderen
De elektronica solderen

Nu is het tijd voor de kern van onze klok; de elektronica.

Het hart van ons project is de arduino nano. Ik heb een op Atmega328P gebaseerde versie gebruikt. Dit werkt, maar tijdens de softwareontwikkeling kwam ik wel vaak geheugenproblemen tegen. Dus waarschijnlijk is een nano elke of zelfs een ESP32 misschien beter geschikt.

Voordat je alles aan elkaar gaat solderen is het verstandig om alle componenten en aansluitingen op een breadboard te testen. Door de grote hoeveelheid componenten en benodigde aansluitingen ziet dit er rommelig uit. Vervolgens breng ik alle componenten één voor één over op een geperforeerde printplaat. Houd de componenten dicht bij elkaar aangezien de doos relatief klein is en oriënteer ze zo dat dingen zoals SD-kaart, batterij, … toegankelijk zijn door het achterste gedeelte te verwijderen. Van boven ziet alles er netjes en verzorgd uit, terwijl de achterkant een spaghetti op zijn best is. Maar door alle verbindingen te maken en direct te testen kun jij dit ook! Je kunt hier wat advies vinden voor deze prototyping boards.

Hieronder vind je alle aansluitingen die gemaakt moeten worden voor de verschillende componenten:

RTC (real-time klok) DS3231: 4 pinnen zijn rechtstreeks verbonden met de arduino

  • VCC naar 5V
  • GND naar GND van arduino
  • SDA naar A4
  • SCL naar A5

DFPlayer Mini: deze is een beetje anders dan in de meeste voorbeelden. Om I2C-busproblemen te voorkomen, sluit ik het aan op de seriële poort van de Arduino, in plaats van een softwarebus te gebruiken. De micro SD-kaart die in de DFPlayer Mini gaat, moet 12 MP3-beltonen bevatten (met de naam 0001.mp3, 0002.mp3, …) en een gelukkige verjaardag-beltoon met de naam 0014.mp3 (13 wilden niet werken!?!).

  • VCC naar 5V
  • GND naar GND
  • RX naar TX op arduino, niet rechtstreeks maar via een weerstand van 1 kohm; sluit de TX van de DFPlayer mini niet aan, we gebruiken de feedback van de module niet en het zal de juiste werking van de klok verpesten!
  • spk1 & spk2 naar de luidspreker

WS2812 led-matrix:

  • Positief en negatief zijn rechtstreeks verbonden met de stroomaansluiting
  • Din van de eerste LED / letter is verbonden met de D6-pin van de arduino, niet rechtstreeks maar via een weerstand van 330 ohm

Condensator van 1000 µF: Dit is om de LED's te beschermen, waarschijnlijk werkt het ook prima zonder.

Het positieve been is verbonden met de positieve kant van de LED-matrix (en dus ook de DC-aansluiting); het negatieve been is verbonden met de minkant van de LED-matrix

RGB-LED: De LED die ik gebruik, heeft ingebouwde weerstanden, de meeste niet, dus voeg ze indien nodig toe.

  • Het langste been is verbonden met de grond
  • De andere poten worden aangesloten op pin D8, D9 en D10 van de arduino.

Fotodiode

  • Een been van de fotodiode is verbonden met de 5V,
  • het andere been is verbonden met de A0-pin op de Arduino en met de grond via een 4,7 kohm-resitor

Knoppen: je hebt 3 knoppen nodig; 1 grote alarmknop en 2 kleinere voor de op en neer functie. De knoppen zijn verbonden met digitale pinnen op de arduino. Je moet ook 10kohm pull-down weerstanden toevoegen, zoals mooi uitgelegd in deze instructable.

  • Alarmknop is aangesloten op pin D7
  • Up is verbonden met pin D12
  • Omlaag knoppen is aangesloten op pin D11

Stap 4: Montage van de klok

De klok in elkaar zetten
De klok in elkaar zetten
De klok in elkaar zetten
De klok in elkaar zetten
De klok in elkaar zetten
De klok in elkaar zetten

Vanwege de beperkte ruimte voor alle componenten is het belangrijk om alle componenten te testen. Daarom heb ik alle componenten met connectoren aangesloten, om ze gemakkelijk van het moederbord te kunnen verwijderen. De alarmknop die ik wel heb gebruikt is te lang en ik heb hem op een heel vreemde manier gemonteerd. Dit omdat ik het rode plastic niet mooi vond. Nu is het veel dieper in de klok gepositioneerd, om plaats te maken voor een kleine houten schijf die nu als knop fungeert en beter past bij het uiterlijk van de klok. De schijf is eigenlijk gesneden uit het handvat van een oude kwast; je ziet dat ik graag oude spullen hergebruik! De achterplaat is ook een hergebruikt item: een stukje afgesneden van een gouden dibondplaat, die dienst doet als achterwand in onze keuken. Snijd gewoon de achterplaat op maat met je verstekzaag en boor een gat voor de DC-aansluiting. Het wordt met schroeven gemonteerd om later toegang te krijgen tot de binnenkant. Als alles lijkt te passen en te functioneren, is het tijd om de doos te lijmen. Lijmen is eenvoudig, plak gewoon alle 4 de zijden aan elkaar met plakband, breng de lijm aan en wikkel ze in elkaar. De LED-matrix wordt op de LED-afdekkingsmatrix geplakt en deze wrijving past op zijn plaats. De voorplaat is bovenop gemonteerd met dubbelzijdig plakband. De eerste nachten heb ik wat "testavonden" gedaan toen alles bij elkaar werd gehouden door elastiekjes, en ik voelde dat zelfs op de laagste stand de LED's te fel waren! Dit werd opgelost door 2 lagen papier toe te voegen tussen de LED-afdekkingsmatrix en de voorplaat.

Stap 5: De software

De software is waarin deze klok verschilt van de meeste andere. Omdat ik van plan ben hem als mijn belangrijkste wekker te gebruiken, heb ik veel functies nodig, die met slechts 3 knoppen kunnen worden bediend! Ik geef ook de voorkeur aan een standalone apparaat, in plaats van er verbinding mee te moeten maken via wifi, bluetooth, … voor simpele dingen als het wijzigen van de beltoon, tijd, … enzovoort.

Hier een overzicht van alle functies die ik heb opgenomen.

  • Kort indrukken van de alarmknop activeert/deactiveert de alarmfunctie. Als het alarm actief is, is de LED rood.
  • Bij activering van het alarm wordt de alarmtijd getoond en kan men de alarmtijd wijzigen met de omhoog en omlaag knoppen (uren wanneer de rode LED knippert, dan minuten wanneer de blauwe LED knippert)
  • Om de beltoon en het volume te wijzigen; u moet het instellingenmenu activeren door tijdens het instellen van de alarmtijd tegelijkertijd op de omhoog en omlaag knop te drukken.
  • Wanneer het alarm afgaat, krijgt u door kort op de alarmknop te drukken 5 minuten sluimertijd. Om echt uit te schakelen: druk nogmaals, of druk lang totdat de alarm-led uitgaat.
  • Om de tijd te wijzigen, moet u het instellingenmenu activeren door tijdens normaal gebruik tegelijkertijd op de omhoog- en omlaag-knop te drukken.
  • Om de datum te wijzigen (gebruikt voor de verjaardagsfunctie), moet u het instellingenmenu activeren door tijdens het instellen van de tijd tegelijkertijd op de omhoog- en omlaag-knop te drukken.
  • En als laatste een paaseitje: lang indrukken van de alarmknop activeert de regenboogmodus. Dit ziet er niet alleen cool uit, maar kan zelfs dienen als nachtlampje!

De benodigde arduino-schets is bijgevoegd. Maar zou kunnen profiteren van een herschrijving vanaf het begin, omdat het te veel zijn organische groei laat zien en daarom een beetje gebrek aan logica heeft. Maar aangezien alles werkt, wil ik er niet meer tijd aan besteden dan ik al deed.

De belangrijkste functie die deze klok onderscheidt, is deze:

String TextToLED(String InputText, int animatie, int StartLed)

Het bevat een algoritme dat de nodige letters opzoekt om voor u op te lichten en de kleuren op elke spatie in de InputText afwisselt. In de meeste andere klokken zijn alle woorden hard gecodeerd, wat betekent dat wanneer je de wijzerplaat verandert, je alles opnieuw moet coderen. Hier is het gewoon een kwestie van de juiste lettervolgorde in de string zetten

ClockFace = String("HETMISDTKWARVIENTBIJFGNAVOORHALFDNTWZEVRPHIAGERNALJFCHTSDUURAPMY"). En het is vooral handig bij het wijzigen van de namen voor de verjaardagsfunctie.

Stap 6: Toekomstige verbeteringen

Zelfs na enkele maanden gebruik ben ik nog steeds erg blij met de build. Voor de meeste van mijn projecten denk ik: "Dit moet beter, anders was dit beter geweest, …" Maar deze, nee; het voelt en functioneert zoals ik het wilde. Een probleem kan het stroomverbruik zijn. Dit kan hoger zijn dan de gemiddelde wekker die je koopt. Maar het hangt sterk af van de hoeveelheid licht gedurende de dag, want de LDR doet zijn werk heel goed. Als het helemaal donker is, gaat mijn klok in nachtmodus; dit betekent rode en groene letters op de zwakste stand. In deze modus neemt de klok 0,08 ampère en verbruikt dus ongeveer 0,4 Watt. Bij vol daglicht loopt dit op tot 0,3 ampère of zo'n 1,5 Watt, terwijl de regenboogmodus zelfs 5 watt verbruikt.

Hoe dan ook, als ik naar het eindresultaat kijk, ben ik ervan overtuigd dat het alle energie waard is die ik erin heb gestoken!

Vergeet niet op mij te stemmen in de klokkenwedstrijd! Bedankt voor het lezen tot het einde.

Aanbevolen: