Dieses Tutorial beschreibt den Aufbau eines Tageslichtweckers, der sich über eine Android App via WLAN steuern lässt. Vom Weckzeitpunkt bis hin zur vollen Lichstärke benötigt der Wecker etwa 15 Minuten. Über einen kapazitiven Schalter lässt sich das Licht ausschalten. Optional (falls man einfach mal Licht auf dem Nachttisch braucht), kann man das Licht auch darüber einschalten.

 

# Bezeichnung ~Preis
1 ATMEL ATmega328P inkl. Arduino Bootloader 2,00 €
3 Kondensator 22 Pf (Keramik) 0,10 €
1 Kondensator 3600 uF (Elko) 0,30 €
1 Kondensator 0,47 uF (Elko) 0,05 €
1 Kondensator 1 uF (Elko) 0,05 €
1 Kondensator 1000 uF (Elko) 0,10 €
1 Quarz 16 MHz 0,10 €
1 Widerstand 1M Ohm 0,02 €
1 Widerstand 1K Ohm 0,02 €
1 Wiederstand 10K Ohm 0,02 €
2 Widerstand 1,5K Ohm 0,04 €
1 Widerstand 220 Ohm 0,02 €
8 Widerstand 100 Ohm 0,16 €
1 IC-Sockel 28 Polig 0,10 €
1 IC-Sockel 18 Polig 0,10 €
1 Spannungsregler 3,3V: L78L33 0,25 €
1 Wifi Modul ESP8266 4,00 €
1 Darlington-Array ULN2803 0,31 €
16 Weiße LEDs 5,00 €
1 Grüne oder Rote Status LED 0,05 €
2 Kippschalter 0,30 €
  Diverse Stiftleisten, Kabel und Stecker 1,00 €
  Gehäuse  
    < 15 €

 

Benötigte Werkzeuge:
# Bezeichnung
1 Breadboard und Steckverbinder oder Lötkolben und Lochrasterplatine
1 USB-Seriell Wandler (zum Programmieren des ATMEGA)
1 Netzteil 5V DC

 

Als erstes müsst ihr euch Gedanken darüber machen, in was für eine Hülle ihr den Wecker bauen wollt. Ich habe dafür eine Lampe von Grundig umgebaut:

Diese baut ihr erst einmal auseinander:

Nun bohrt ihr kleine (0,7mm) Löcher im Abstand von 5mm in den äußeren Ring. Für die LEDs bohrt ihr in den inneren Ring 16 Löcher mit 5 mm Durchmesser:

Nun lötet ihr kleine Drahtstücke am äußeren Ring zusammen und verbindet die LEDs. Dabei müsst ihr zunächste alle Anoden (+ Pol, längeres Beinchen!) mit einander verknüpfen (hier im inneren Ring).

Das ganze lötet ihr dann an einen Stecker mit folgender Belegung (sicht von oben, die Farben geben meine gewählte Kabelfarbe an):

LED1(Green) LED7(Green)
LED2(Green) LED8(Green/black)

LED3(Green) StatusLED (Yellow)

LED4(Green) Vcc (Red)

LED5(Green) CapSense (Blue)

LED6(Green) GND (Black)

Fertig sieht es dann so aus:

 

Kommen wir nun zur eigentlichen Platine. Dafür baut ihr die folgende Platine auf. Die Fritzing-Datei findet ihr hier.

Aufgebaut sieht das ganze dann so aus:

Weitere Ansichten inkl. der Schalter draußen:


Nun müsst ihr die Firmware darauf flashen. Diese findet ihr in diesem Repository im Verzeichnis "tageslichtwecker_wifi". Dabei ist es wichtig, dass ihr erst in der "tageslichtwecker.ino"-Datei eure WLAN-SSID  (WIFISSID, Zeile 53) und das Passwort (WIFIPASSWORD, Zeile 54) eintragt. Ich habe das ganze mit der Firmwareversion AI-v0.9.5.0 AT entwickelt.

Als Library habe ich die arduino-ESP8266 von Diaoul verwendet. Allerdings habe ich sie um das senden eines char-Arrays und eines Strings erweitert:

Hier die ESP8266.cpp:

// Sending a char*
size_t ESP8266::write(const char* buffer)
{

      if (send(_id, buffer) != ESP8266_COMMAND_OK)
        return 0;

    return 1;
}

// Sending a String
size_t ESP8266::write(String buffer)
{

    char tab2[100]; // Attention: max buffersize here!!
    strcpy(tab2, buffer.c_str());

    return write(tab2);
}

und die ESP8266.h:

	size_t write(const char* buffer);
	size_t write(String buffer);

Ihr könnt euch die von mir angepasste Library hier herunterladen.

Den Deckel mit den LEDs habe ich mit einer großen Schraube und einer Mutter (im inneren Ring, nicht im Bild sichtbar) fixiert:

Die Steuersoftware für Android befindet sich in dem o.g. Repository im "TageslichtweckerWifiAndroid"-Verzeichnis. Sie unterstützt sogar das Steuern von zwei Weckern gleichzeitig, falls man (wie ich) einen pro Bettseite baut.
Hier ein paar Screenshots:

 

 

Kommentare  

#1 Winter 2016-08-21 12:34
Hallo,
ich verstehe nicht warum ein Arduino und RTC-Modul eingebaut wurde, da Sie einn Treiber benutzen, können Sie alles auf dem ESP8266 Modul programmieren und ansteuern.Die Uhrzeit kann von einem der vielen Zeitdienste im Web abgerufen werden.
Das eingesparte Budget könnte man in einen kleinen LiPo Akku und Laderegler investieren. Die kleinen LED's durch einen COB 10W RGB ersetzen.
Oder man lässt die LED's weg und baut nur einen IR sender der eine E27 RGB LED Leuchte ansteuert.
#2 Marcel I. 2016-08-21 13:16
Hallo Winter,

das hatte ich auch mal überlegt. Ich habe den Gedankengang verworfen, da ich davon ausgegangen bin, dass das ESP-01 Modul keine PWM Pins hat. Aber du hast Recht, es müsste auch mit einem ESP-12 und Software PWM funktionieren. Die resultierende Schaltung wäre sogar noch simpler und kleiner.

grüße
Marcel
#3 Paul 2018-08-10 21:12
Hallo,
Seit einiger Zeit habe ich in ein Projekt im Kopf.
Ich möchte einen Wecker bauen der mich sowohl mit Licht und dann mit Ton (am besten MP3) wecken kann.
Im besten fall würde ich die eingebauten Speaker auch zum abspielen von MP3 über die bisher genutzte App nutzen.

Dabei bin ich über dieses Projekt gestolpert und dachte vielleicht habt ihr idee, wie man das Projekt abwandeln kann um eben das zu verwirklichen.

Ich hoffe ich bekomme bald Rückmeldung!

Beste Grüße,
Paul
#4 marcel i. 2018-08-11 15:01
@Paul:
Klar geht das. Du kannst z. B. das Soundmodul aus dem Projekt hier nehmen:
https://frag-duino.de/projekte/48-volleycounter-volleyball-punktetafel-arduino-wtv020sd
Dafür müsstest du aber vorher die MP3s umkonvertieren.
Ich würde aber von dem o.g. Projekt (Tageslichtweck er) abstand nehmen, auf den ATMEL328P verzichten und direkt alles direkt mit dem ESP8266 implementieren.

grüße
Marcel
#5 Paul 2018-08-13 21:51
Hey,
Erstmal danke für die schnelle Antwort!

Ich muss gestehen, dass es in meiner Vorstellung Ideal wäre, wenn man eine mp3 vom Handy "streamen" könnte, das aber im Code auf den Tageslicht Wecker abstimmt.

Ich bin noch ein neuling auf dem Gebiet arduino und esp8266 Programmierung, habe aber an dieser Idee einen Narren gefressen.
Leider bin ich nur echt nicht sicher, ob es umsetzbar ist.

Viele Liebe Grüße!
Paul
#6 Marcel I. 2018-08-14 08:05
Hey Paul,

ich würde da mit einem MP3 decoder (z.b. VS1053B) Streams aus dem Internet abspielen. Dann hättest du keine Abhängigkeit zum Handy. Falls zu dem Zeitpunkt keine Internetverbind ung zur Verfügung steht, würde ich mir ein Fallback überlegen (z.b. eine klassiche Klingel).

Für den Einstieg ist dies aber sehr aufwändig.

Grüße
Marcel
#7 Paul 2018-08-14 16:12
Hallo,
Ich weiß, dass es ein etwas großes projekt fur den anfang ist..

Wenn ich das richtig gesehen habe kann man mithilfe des VS1053B auch einfache audio dateien von einer SD-Karte Abspielen.. Das wäre ja auch für eine "Offline" Weck funktion nutzbar..

Ich werde jetzt erstmal anfangen mit dem ESP8266 zu spielen und mich nach und nach an das geplante Projekt wagen :-)

Vielen Dank für die Ideen und bis bald
Paul