Inhoudsopgave:

Zonsopgangwekker met Arduino - Ajarnpa
Zonsopgangwekker met Arduino - Ajarnpa

Video: Zonsopgangwekker met Arduino - Ajarnpa

Video: Zonsopgangwekker met Arduino - Ajarnpa
Video: PHILIPS WAKE UP LIGHT GEBRUIKT VOOR 30 DAGEN EN DIT GEBEURDE ER! 2024, November
Anonim
Image
Image
Zonsopgangwekker met Arduino
Zonsopgangwekker met Arduino

Wintertijd kan verdrietig zijn. Je wordt wakker, het is donker en je moet je bed uit. Het laatste wat je wilt horen is het schetterende geluid van je wekker. Ik woon in Londen en ik kan 's ochtends moeilijk wakker worden. Ook mis ik het wakker worden met natuurlijk licht.

In deze tutorial gaan we een Sunrise Alarm Clock bouwen. Het is een wekker zoals elke andere, omdat je het uur en de minuut kunt instellen waarop je wakker wilt worden, maar met het extra voordeel dat je licht gebruikt om je slaapkamer gedurende een bepaalde periode op te fleuren, zoals een zonsopgang om je natuurlijker wakker te maken.

Er zijn Sunrise-lampen op de markt, maar ze kunnen duur zijn (een snelle zoekopdracht op Amazon levert producten op in het bereik van £ 100), fragiel en behoorlijk klinisch ogend. We gaan iets een stuk goedkoper en een stuk mooier maken.

Alle onderdelen worden in de volgende stap vermeld. De code kan worden gedownload van mijn Github repo gold-sunrise-clock. Alle schema's en buildbestanden voor de case zijn beschikbaar om te downloaden in deze tutorial.

Laten we gaan:)

Als je problemen ondervindt of hallo wilt zeggen, stuur me dan een bericht [email protected] of volg me op Instagram @celinechappert.

Stap 1: Verzamelen van de componenten

De componenten verzamelen
De componenten verzamelen

Om te beginnen gebruiken we een klok als input en een ultraheldere LED als output om onze zonsopgang te simuleren.

Om het circuit te bouwen hebben we nodig:

- een klok. We gaan de RTC DS3231 (£ 5) gebruiken

- een MOSFET om de helderheid van het licht te regelen (£9)

- een superheldere LED (£ 1)

- 9V-batterij om de LED van stroom te voorzien (£ 3)

- een breadboard voor eenvoudige montage (£ 3)

- een Arduino Uno (€ 20)

- een drukknop (optioneel - alleen voor demo-doeleinden)

Totale prijs = £ 41

Als je thuis al een Arduino, een breadboard en een 9V-batterij hebt, kost het hele project je minder dan £ 15.

Om de acrylkoffer te maken, heb je nodig:

- 2 vellen 0.3mm Perspex acrylaat platen, 1 vel per kleur voor de zon en de kast.

- toegang tot een lasersnijder.

Ik heb het geluk dat ik toegang had tot de werkplaats van mijn school, dus deze kosten werden grotendeels gedekt. Ik heb wel een extra vel acryl gekocht omdat mijn ontwerp een oranje tint voor de zon vereiste, wat £ 14 per vel kostte (perspex is duur!).

Stap 2: Het circuit monteren

Image
Image
Het circuit samenstellen
Het circuit samenstellen
Het circuit samenstellen
Het circuit samenstellen

U kunt verwijzen naar de zwart-wit schets van mijn circuit (excuseer de rommelige) en naar het diagram met de Arduino (gemaakt met Fritzing).

In wezen is hier een uitsplitsing van wat is verbonden met wat:

Klok:

(-) maakt verbinding met GND

NC staat voor 'Not Connected' en maakt nergens verbinding mee

C/SCL maakt verbinding met pin A5 op de Arduino

D/SDA maakt verbinding met pin A4 op de Arduino

(+) maakt verbinding met 5V op de Arduino

MOSFET

Gate-pin gaat naar pin ~ 9 op de Arduino Uno omdat het PWM is

Afvoerpin gaat naar de negatieve kant van de LED

Bronpin gaat naar GND op de Arduino

LED

Negatieve kant is verbonden met de afvoerpin op de MOSFET

Positieve kant is verbonden met 5V op het breadboard

9V batterij

(+) tot (+) op het breadboard, hetzelfde met (-).

Arduino Uno

Vergeet niet om 5V aan te sluiten op (+) op het breadboard en GND op (-). Vergeet niet om (-) aan de ene kant van het breadboard aan te sluiten op (-) aan de andere kant.

Vervolgens zullen we onze klok instellen met behulp van de DS3231-bibliotheek.

Stap 3: Installeren en instellen van de klok

De klok installeren en instellen
De klok installeren en instellen
De klok installeren en instellen
De klok installeren en instellen
De klok installeren en instellen
De klok installeren en instellen

De bibliotheek die ik gebruik om deze klok te laten draaien, is te vinden op Rinky-Dink Electronics (screenshots hierboven). Klik op de link en zorg dat je op de DS3231-pagina bent. Download het zip-bestand, sla het op en plaats het in de map /libraries van je Arduino.

Om nu de juiste tijd op de klok in te stellen, opent u Arduino en gaat u naar Voorbeelden/DS3231/Arduino/DS3231_Serial_Easy.

Verwijder de commentaar bij de drie regels code (oranje weergegeven in de schermafbeelding), controleer de tijd en plaats die juiste tijd in die drie regels code in militair formaat.

Druk op Uploaden.

Nu kunt u de opmerkingen van die drie regels verwijderen en nogmaals op Uploaden drukken.

Open uw seriële monitor en controleer of uw tijd correct is.

Onze klok is gezet! We hebben ons circuit, laten we nu beginnen met coderen. Nogmaals, de repo is beschikbaar op Github.

Stap 4: Coderen

Image
Image

Download de code en zorg ervoor dat de bibliotheek voor de DS3231 correct is geïnstalleerd.

Eerst willen we onze instellingen definiëren.

fadeTime is hoe lang het licht in minuten van 0 naar de maximale helderheid zal vervagen. setHour/setMin komen overeen met de tijd waarmee we wakker willen worden (let op: dit is in militaire notatie, dus 24 uur tijd is vereist). We definiëren ook pin 9 op de Arduino als onze OUTPUT.

Zorg er in setup() voor dat het SerialBegin-nummer (hier 96000 baud) overeenkomt met het nummer van de seriële monitor.

In loop() controleert een if-statement of het tijd is om wakker te worden. De code loopt in een lus en controleert elke keer of de uur- en minuutwaarden die door de klok worden geretourneerd, overeenkomen met onze setHour/setMin-variabelen. Als dat het geval is, retourneert de instructie if een active() functie.

De active() functie bestaat uit twee delen. Eerst beginnen we het licht geleidelijk te vervagen: de vertragingsfuncties zijn hier om te voorkomen dat de LED te snel te fel wordt in de 'vroege' stadia van de fadeTime. Vervolgens regelt een for-lus de snelheid waarmee het licht helderder en helderder moet worden, afhankelijk van de fadeTime. Ten slotte schakelen we het licht uit door een waarde van 0 door te geven aan onze LED in de functie analogWrite().

De video hierboven toont het circuit dat werkt in een van de prototype behuizingen van acryl.

Stap 5: Kartonnen prototype (optioneel)

Kartonnen prototype (optioneel)
Kartonnen prototype (optioneel)
Kartonnen prototype (optioneel)
Kartonnen prototype (optioneel)

Voorafgaand aan dit project had ik nog nooit met een lasersnijder gewerkt. Door een kartonnen prototype te maken, kon ik vertrouwd raken met de machine terwijl ik testte hoe goed het object eruitzag (grootte, uiterlijk, enz.) In de echte ruimte. Case plannen om te downloaden.

Aanbevolen: