1 / 7
LED Wall Clock with Mechanical Hands — zdjęcie 1
1 / 7

LED Wall Clock with Mechanical Hands

Zamów wydruk tego modelu

Obliczymy ostateczną cenę na podstawie wybranego pliku. Sprawdzisz ją i zaakceptujesz przed płatnością.

Zapisane na tym urządzeniu.

A wall clock combining colorful LEDs with a traditional mechanical hands.

Ocena
0 / 5
Polubienia
3
Pobrania
23
Wydruki
0
Wyświetlenia
313
Oceny
0

Aktualizacja u źródła:

Informacje o modelu

Źródło
Printables
Kategoria
Wall-mounted
Licencja
Creative Commons — Attribution — Noncommercial — Share Alike

This wall clock merges modern technology with classic design. It uses individual colored LEDs (WS2812) to display the time in a vibrant and eye-catching manner, while also featuring a standard mechanical movement for traditional hands.

An ESP8266 microcontroller running ESPHome firmware controls the LEDs, allowing for easy setup and integration with smart home systems. The LEDs are configured to light up only when motion is detected in the room and the ambient light level is below a certain threshold, measured using a BH1750 light sensor. This ensures the clock is illuminated only when needed, conserving energy and enhancing its functionality.

After printing, I recommend first inserting all the LEDs into their respective holes and soldering them directly while they are mounted on the clock. For power and ground, you can use a single continuous wire, but for the data lines, it's necessary to split the wire between individual LEDs to ensure proper communication.

The model was printed with a 0.25 mm layer height, and it's necessary to change filament color for the clock parts to achieve the desired appearance.

If you need to modify any part of the model, you can do so here: Onshape CAD Model.

ESPHome Configuration for the LEDs:

light:
  - platform: neopixelbus
    id: led
    variant: ws2812x
    pin: D2
    num_leds: 72
    name: "Clock"
    on_turn_on:
      - light.turn_on:
          id: led
          effect: "Clock"
    effects:
      - addressable_lambda:
          name: "Clock"
          update_interval: 1s
          lambda: |-
            auto now = id(homeassistant_time).now();
            it.range(0, 72) = Color::BLACK;
            auto second = (now.second-1)%60;
            if (second == -1) {
              second = 59;
            }
        auto minute = (now.minute-1)%60;
        if (minute == -1) {
          minute = 59;
        }
        
        auto hour = 59+((now.hour)%12);
        if (now.hour == 0 || now.hour == 12 || now.hour == 24) {
          hour = 71;
        }
        
        auto pointColor = Color(255,255,255);
        it[62] = pointColor;
        it[65] = pointColor;
        it[68] = pointColor;
        it[71] = pointColor;
        
        it[second] = Color(0,0,255);
        it[minute] = Color(0,255,0);
        it[hour] = Color(255,0,0);

Tagi