Thingiverse
7 segment clock by random1101 for ESPHome by Alex18881
by Thingiverse
Last crawled date: 3 years, 4 months ago
This is the electronics remix for the 7 segment clock made by random1101.
It uses the ESP-01s for everything.
Once it connected to the Home Assistant it may be controlled over the entity card. It supports separate color, brightness and on/off for hours, minutes and colon parts of the clock. Current time is syncronised with SNTP servers. Note: if you prefere to use static IP is't important to configure at leat 1 DNS server in WIFI section of the config (in my case I use the IP of my router).
WARNING There're 2 modifications of ESP-01 one has 1MB of flash memory and one with only 512kb. The firmware compiled from this configuration takes about 36kb of RAM and 404.5kb of Flash memory. If you have a 512kb there will be no room for the firmware for OTA updates.
Electronics BOM:
1) ESP-01s
2) 5v to 3.3v downshifter to power ESP-01s like this
3) Any 5v wall plug power supply on about 1 amp of current
PS, I'm still a noob in electronics. Please feel free in pointing me if there's any mistace in wiring schematics. Thanks
ESPHome configuration
substitutions:
device_name: led_clock
esphome:
name: $device_name
platform: ESP8266
board: esp01_1m
on_boot:
- light.turn_on:
id: led_strip
brightness: 100%
red: 0
green: 0
blue: 0
effect: "${device_name} Time effect"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "${device_name} Fallback Hotspot"
password: !secret wifi_fallback_api_password
logger:
level: DEBUG
# Enable Home Assistant API
api:
password: !secret hassio_api_password
ota:
password: !secret ota_password
globals:
- id: hours_red_value
type: int
restore_value: yes
initial_value: '0'
- id: hours_green_value
type: int
restore_value: yes
initial_value: '0'
- id: hours_blue_value
type: int
restore_value: yes
initial_value: '0'
- id: minutes_red_value
type: int
restore_value: yes
initial_value: '0'
- id: minutes_green_value
type: int
restore_value: yes
initial_value: '0'
- id: minutes_blue_value
type: int
restore_value: yes
initial_value: '0'
- id: dots_red_value
type: int
restore_value: yes
initial_value: '0'
- id: dots_green_value
type: int
restore_value: yes
initial_value: '0'
- id: dots_blue_value
type: int
restore_value: yes
initial_value: '0'
output:
#======== Hours ============
- platform: template
id: hours_red_output
type: float
write_action:
lambda: |-
id(hours_red_value) = 255.0 * state;
- platform: template
id: hours_green_output
type: float
write_action:
- lambda: |-
id(hours_green_value) = 255.0 * state;
- platform: template
id: hours_blue_output
type: float
write_action:
lambda: |-
id(hours_blue_value) = 255.0 * state;
#========= Minutes ===========
- platform: template
id: minutes_red_output
type: float
write_action:
lambda: |-
id(minutes_red_value) = 255.0 * state;
- platform: template
id: minutes_green_output
type: float
write_action:
lambda: |-
id(minutes_green_value) = 255.0 * state;
- platform: template
id: minutes_blue_output
type: float
write_action:
lambda: |-
id(minutes_blue_value) = 255.0 * state;
#========= dots ===========
- platform: template
id: dots_red_output
type: float
write_action:
lambda: |-
id(dots_red_value) = 255.0 * state;
- platform: template
id: dots_green_output
type: float
write_action:
lambda: |-
id(dots_green_value) = 255.0 * state;
- platform: template
id: dots_blue_output
type: float
write_action:
lambda: |-
id(dots_blue_value) = 255.0 * state;
time:
- platform: sntp
id: sntp_time
timezone: "Europe/Moscow"
servers:
- 0.pool.ntp.org
- 1.pool.ntp.org
- 2.pool.ntp.org
light:
- platform: rgb
name: "${device_name} hours lights"
id: 'hours_lights'
red: hours_red_output
green: hours_green_output
blue: hours_blue_output
- platform: rgb
name: "${device_name} minutes lights"
id: 'minutes_lights'
red: minutes_red_output
green: minutes_green_output
blue: minutes_blue_output
- platform: rgb
name: "${device_name} dots lights"
id: 'dots_lights'
red: dots_red_output
green: dots_green_output
blue: dots_blue_output
#--------- LED strip ----------------
- platform: fastled_clockless
id: led_strip
name: "Led strip"
internal: True
pin: GPIO3
num_leds: 30
chipset: WS2812B
rgb_order: GRB
effects:
- addressable_lambda:
name: "${device_name} Time effect"
update_interval: 200ms
lambda: |-
const int ledsInDigitCount = 7;
const int digitsCount = 4;
int digitsLeds[10][ledsInDigitCount] = {
{0,1,3,4,5,6,-1},
{3,6,-1,-1,-1,-1,-1},
{0,1,2,3,4,-1,-1},
{0,2,3,4,6,-1,-1},
{2,3,5,6,-1,-1,-1},
{0,2,4,5,6,-1,-1},
{0,1,2,4,5,6,-1},
{3,4,6,-1,-1,-1,-1},
{0,1,2,3,4,5,6},
{0,2,3,4,5,6,-1}
};
int ledOffsets[digitsCount] = {23 , 16, 7, 0};
auto time = id(sntp_time).now();
int colors[4][3] = {
{id(hours_red_value), id(hours_green_value), id(hours_blue_value)},
{id(hours_red_value), id(hours_green_value), id(hours_blue_value)},
{id(minutes_red_value), id(minutes_green_value), id(minutes_blue_value)},
{id(minutes_red_value), id(minutes_green_value), id(minutes_blue_value)}
};
int values[digitsCount] = {};
values[0] = time.hour / 10;
values[1] = time.hour % 10;
values[2] = time.minute / 10;
values[3] = time.minute % 10;
it.all() = ESPColor::BLACK;
if ((time.second % 2) > 0) {
it[14] = ESPColor(id(dots_red_value), id(dots_green_value), id(dots_blue_value));
it[15] = ESPColor(id(dots_red_value), id(dots_green_value), id(dots_blue_value));
}
for (int valueI = 0; valueI < digitsCount; valueI++) {
int ledsOffset = ledOffsets[valueI];
int timeValue = values[valueI];
int *color = colors[valueI];
int *leds = digitsLeds[timeValue];
for (int ledI = 0; ledI < ledsInDigitCount; ledI++) {
if(leds[ledI] >= 0) {
int ledIndex = leds[ledI] + ledsOffset;
it[ledIndex] = ESPColor(color[0], color[1], color[2]);
}
}
}
It uses the ESP-01s for everything.
Once it connected to the Home Assistant it may be controlled over the entity card. It supports separate color, brightness and on/off for hours, minutes and colon parts of the clock. Current time is syncronised with SNTP servers. Note: if you prefere to use static IP is't important to configure at leat 1 DNS server in WIFI section of the config (in my case I use the IP of my router).
WARNING There're 2 modifications of ESP-01 one has 1MB of flash memory and one with only 512kb. The firmware compiled from this configuration takes about 36kb of RAM and 404.5kb of Flash memory. If you have a 512kb there will be no room for the firmware for OTA updates.
Electronics BOM:
1) ESP-01s
2) 5v to 3.3v downshifter to power ESP-01s like this
3) Any 5v wall plug power supply on about 1 amp of current
PS, I'm still a noob in electronics. Please feel free in pointing me if there's any mistace in wiring schematics. Thanks
ESPHome configuration
substitutions:
device_name: led_clock
esphome:
name: $device_name
platform: ESP8266
board: esp01_1m
on_boot:
- light.turn_on:
id: led_strip
brightness: 100%
red: 0
green: 0
blue: 0
effect: "${device_name} Time effect"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "${device_name} Fallback Hotspot"
password: !secret wifi_fallback_api_password
logger:
level: DEBUG
# Enable Home Assistant API
api:
password: !secret hassio_api_password
ota:
password: !secret ota_password
globals:
- id: hours_red_value
type: int
restore_value: yes
initial_value: '0'
- id: hours_green_value
type: int
restore_value: yes
initial_value: '0'
- id: hours_blue_value
type: int
restore_value: yes
initial_value: '0'
- id: minutes_red_value
type: int
restore_value: yes
initial_value: '0'
- id: minutes_green_value
type: int
restore_value: yes
initial_value: '0'
- id: minutes_blue_value
type: int
restore_value: yes
initial_value: '0'
- id: dots_red_value
type: int
restore_value: yes
initial_value: '0'
- id: dots_green_value
type: int
restore_value: yes
initial_value: '0'
- id: dots_blue_value
type: int
restore_value: yes
initial_value: '0'
output:
#======== Hours ============
- platform: template
id: hours_red_output
type: float
write_action:
lambda: |-
id(hours_red_value) = 255.0 * state;
- platform: template
id: hours_green_output
type: float
write_action:
- lambda: |-
id(hours_green_value) = 255.0 * state;
- platform: template
id: hours_blue_output
type: float
write_action:
lambda: |-
id(hours_blue_value) = 255.0 * state;
#========= Minutes ===========
- platform: template
id: minutes_red_output
type: float
write_action:
lambda: |-
id(minutes_red_value) = 255.0 * state;
- platform: template
id: minutes_green_output
type: float
write_action:
lambda: |-
id(minutes_green_value) = 255.0 * state;
- platform: template
id: minutes_blue_output
type: float
write_action:
lambda: |-
id(minutes_blue_value) = 255.0 * state;
#========= dots ===========
- platform: template
id: dots_red_output
type: float
write_action:
lambda: |-
id(dots_red_value) = 255.0 * state;
- platform: template
id: dots_green_output
type: float
write_action:
lambda: |-
id(dots_green_value) = 255.0 * state;
- platform: template
id: dots_blue_output
type: float
write_action:
lambda: |-
id(dots_blue_value) = 255.0 * state;
time:
- platform: sntp
id: sntp_time
timezone: "Europe/Moscow"
servers:
- 0.pool.ntp.org
- 1.pool.ntp.org
- 2.pool.ntp.org
light:
- platform: rgb
name: "${device_name} hours lights"
id: 'hours_lights'
red: hours_red_output
green: hours_green_output
blue: hours_blue_output
- platform: rgb
name: "${device_name} minutes lights"
id: 'minutes_lights'
red: minutes_red_output
green: minutes_green_output
blue: minutes_blue_output
- platform: rgb
name: "${device_name} dots lights"
id: 'dots_lights'
red: dots_red_output
green: dots_green_output
blue: dots_blue_output
#--------- LED strip ----------------
- platform: fastled_clockless
id: led_strip
name: "Led strip"
internal: True
pin: GPIO3
num_leds: 30
chipset: WS2812B
rgb_order: GRB
effects:
- addressable_lambda:
name: "${device_name} Time effect"
update_interval: 200ms
lambda: |-
const int ledsInDigitCount = 7;
const int digitsCount = 4;
int digitsLeds[10][ledsInDigitCount] = {
{0,1,3,4,5,6,-1},
{3,6,-1,-1,-1,-1,-1},
{0,1,2,3,4,-1,-1},
{0,2,3,4,6,-1,-1},
{2,3,5,6,-1,-1,-1},
{0,2,4,5,6,-1,-1},
{0,1,2,4,5,6,-1},
{3,4,6,-1,-1,-1,-1},
{0,1,2,3,4,5,6},
{0,2,3,4,5,6,-1}
};
int ledOffsets[digitsCount] = {23 , 16, 7, 0};
auto time = id(sntp_time).now();
int colors[4][3] = {
{id(hours_red_value), id(hours_green_value), id(hours_blue_value)},
{id(hours_red_value), id(hours_green_value), id(hours_blue_value)},
{id(minutes_red_value), id(minutes_green_value), id(minutes_blue_value)},
{id(minutes_red_value), id(minutes_green_value), id(minutes_blue_value)}
};
int values[digitsCount] = {};
values[0] = time.hour / 10;
values[1] = time.hour % 10;
values[2] = time.minute / 10;
values[3] = time.minute % 10;
it.all() = ESPColor::BLACK;
if ((time.second % 2) > 0) {
it[14] = ESPColor(id(dots_red_value), id(dots_green_value), id(dots_blue_value));
it[15] = ESPColor(id(dots_red_value), id(dots_green_value), id(dots_blue_value));
}
for (int valueI = 0; valueI < digitsCount; valueI++) {
int ledsOffset = ledOffsets[valueI];
int timeValue = values[valueI];
int *color = colors[valueI];
int *leds = digitsLeds[timeValue];
for (int ledI = 0; ledI < ledsInDigitCount; ledI++) {
if(leds[ledI] >= 0) {
int ledIndex = leds[ledI] + ledsOffset;
it[ledIndex] = ESPColor(color[0], color[1], color[2]);
}
}
}
Similar models
thingiverse
free
2in blind motor 28 byj-48 by Clynchp
...tep plus"
turn_on_action:
stepper.report_position:
id: my_stepper
position: 0
stepper.set_target:
id: my_stepper
target: 200
thingiverse
free
Capacitive Soil Moisture Sensor with ESP8266 (no battery) by Johnny_Woo
...; 0.29) {
return 100;
} else {
return (0.53-x) / (0.53-0.29) * 100.0;
}
name: "grapefruit_watering"
update_interval: 2s
thingiverse
free
Simple Pixel Lamp : led_lamp13x8
...dressable_rainbow:
addressable_scan:
addressable_twinkle:
addressable_random_twinkle:
addressable_fireworks:
addressable_flicker:
thingiverse
free
Wemos D1 Mini Presence cube by atxbyea
...ger:
platform: webhook
webhook_id: hadoken
action:
service: light.turn_on
data:
entity_id: light.teamscube
rgb_color: [255,255,0]
thingiverse
free
Open Source Hydroponic with smart aquarium
... output: pwm_obeh_hydroponia
name: "pump hydropony"
speed:
low: 0.25
medium: 0.35
high: 0.35
thingiverse
free
nfc reader by philsson
... place with double sided tape. the rc522 could also just be snapped into place. to hold the two neopixels i've used hot glue.
thingiverse
free
Password keeper digispark by me by Andrusevich
...ter -2]); // pc achrome_1
hold = 1;
single = 0;//
}
}
lastreading = reading;
}
///////////////////////////code end
thingiverse
free
3DX TRAFFIC LIGHT
...digitalwrite(ledg, low);
digitalwrite(ledy, high);
delay(3000);
digitalwrite(ledr, high);
digitalwrite(ledy, low);
delay(1000);
}
thingiverse
free
esp01s ws2812 wireless led ring enclosure
...:- platform: neopixelbusname: "3d printer led light"type: grbpin: gpio2id: printer_lednum_leds: 24method: esp8266_uart1
thingiverse
free
Co2 Monitor with SCD30 by rakrat
... number, so i display only that. you could modify "lambda" in the yaml to display temperature and humidity as you want.
Alex18881
thingiverse
free
Сhopsticks helper by Alex18881
...сhopsticks helper by alex18881
thingiverse
i used a filamentarno filament which is semi-flexible.
thingiverse
free
Main russian hieroglyph by Alex18881
...main russian hieroglyph by alex18881
thingiverse
the most famous russian hieroglyph
thingiverse
free
Russian hieroglyph double yat by Alex18881
...russian hieroglyph double yat by alex18881
thingiverse
one of several russian hieroglyphs
thingiverse
free
Wire clip by Alex18881
...81
thingiverse
a wire clip for prusa i3 steel (aka leonardo i guess) to zip-tie wires on the frame through the oval holes in it.
thingiverse
free
RacerStar RS20A lite esc protection by Alex18881
...racerstar rs20a lite esc protection by alex18881
thingiverse
racerstar escs protection for realac 215 purple frame.
thingiverse
free
HAND FAN ORIGINAL textile pattern by Alex18881
...le pattern by alex18881
thingiverse
10 deg. offset pattern for 0.7 times scaled hand fan:http://www.thingiverse.com/thing:904337
thingiverse
free
Arduino adapter for Chassis for Drawing Bot with Batt Holders by Alex18881
...att holders by alex18881
thingiverse
an arduino uno adapter for this chasis: http://www.thingiverse.com/thing:1289315.
abs/pla.
thingiverse
free
Aceline S-60 action camera side mount by Alex18881
... s-60 action camera side mount by alex18881
thingiverse
requires m5 screw with hex head. i printed it in petg 3 walls 40% infill
thingiverse
free
Arduino WIFI drawing bot by Alex18881
...e.com/thing:1397069
update 1: added a cover and a button holder models. button holder is just glued to the chasis with abs juice.
thingiverse
free
Excentric pull for Direct drive extruder for Wilson or Prusa i3 rework by Alex18881
...ll for this extruder for prusa i3. very useful if you want to print in many colors. it allows to switch filament in 2 clicks :).
Esphome
thingiverse
free
ESPHome Velux Remote by mrflobow
...v3
velux remote (see pictures)
additional links
more input for wiring and software here:
https://github.com/mrflobow/velux_remote
thingiverse
free
Pizza Oven Temperature Sensor - ESPHOME by c_wolsey
...p between vcc & gnd)
esp32 pin 2 (cs) to max6675 (cs)
esp32 pin 18 (sck) to max6675 (sck)
esp32 pin 19 (miso) to max6675 (so)
thingiverse
free
ESPHome Doorbell (Rounded) by Coedy
...it works great once i had learnt how to use esphome!
i am waiting on my power-supply & button before i am able to print this.
thingiverse
free
Smarthome Sensor ESPHome 8266 Temp, Humidity, Light, Air pressure
...the sensor
i send the wemos into deepsleep and wake it every 5min for 30sec (dont forget to connect d0 and rst)
more info soon...
thingiverse
free
Lampe néon Leds + Wemos D1 / Esphome
...mds=cart_middle_products&cur_warehouse=cn
flash with esphome, to control with home assistant and google assistant by voice ;)
thingiverse
free
Angle Adjustable Motion Sensor for Home Assistant (RCWL 0516 + Esp32 via ESPHome) by thomasgresch
...___number: gpio12______mode: input_pullup____name: "pir sensor"____device_class: motion
(replace leading _ with spaces)
thingiverse
free
Waveshare 2.9 Inch Case - for esphome/homeassistant display by DigitalUrban
...orum under eink (https://community.home-assistant.io/t/e-paper-display/138625/51)
print with the largest surfaces flat on the bed
thingiverse
free
2-Gang Relay Pack Case for High Amp Relay (espHome) by malamaker
... switching power supply module ac to dc converter
1x - 2.2k 0.25w resistor
4x - m3 x 8mm shcs
video: https://youtu.be/df8izztl60i
thingiverse
free
Home Assistant ESPHome Raspberry Pi tower case by glmnet
... meant to go bottom, it's not very stable but works well
optionally you can print the base, it can be screwed to a wall too.
thingiverse
free
ESPHome Garage Door Sensor / Opener by LCSteve
...y original plan was to use a 12v step down to 5v to power the unit since my garage doors have 12v battery backup already on them.
Segment
archibase_planet
free
Segment
...segment
archibase planet
playground sports ground
segment 1 - 3d model (*.gsm+*.3ds) for interior 3d visualization.
archibase_planet
free
Segment
...segment
archibase planet
playground chute slide
segment 2 - 3d model (*.gsm+*.3ds) for interior 3d visualization.
archibase_planet
free
Segment
...segment
archibase planet
playground sports ground
segment 3 - 3d model (*.gsm+*.3ds) for interior 3d visualization.
archibase_planet
free
Segment
...segment
archibase planet
sports ground playground
segment 4 - 3d model (*.gsm+*.3ds) for interior 3d visualization.
archibase_planet
free
Segment
...segment
archibase planet
playground sports ground
segment 5 - 3d model (*.gsm+*.3ds) for interior 3d visualization.
archibase_planet
free
Segment
...segment
archibase planet
chute playground slide
segment 6 - 3d model (*.gsm+*.3ds) for interior 3d visualization.
archibase_planet
free
Segment
...segment
archibase planet
sports ground playground
segment 8 - 3d model (*.gsm+*.3ds) for interior 3d visualization.
archibase_planet
free
Segment
...segment
archibase planet
playground sports ground
segment 7 - 3d model (*.gsm+*.3ds) for interior 3d visualization.
archibase_planet
free
Segment
...segment
archibase planet
playground sports ground
segment 9 - 3d model (*.gsm+*.3ds) for interior 3d visualization.
archibase_planet
free
Segment
...segment
archibase planet
playground sports ground
segment 10 - 3d model (*.gsm+*.3ds) for interior 3d visualization.
Clock
3d_ocean
$4
Clock
...clock
3docean
clock hand kitchen clock time watch
a clock
archibase_planet
free
Clock
...clock
archibase planet
clock table clock alarm-clock
clock orange - 3d model (*.gsm+*.3ds) for interior 3d visualization.
archibase_planet
free
Clock
...clock
archibase planet
clock table clock alarm-clock
clock yellow - 3d model (*.gsm+*.3ds) for interior 3d visualization.
archibase_planet
free
Clock
...clock
archibase planet
clock alarm-clock
clock n100707 - 3d model for interior 3d visualization.
archibase_planet
free
Clock
...clock
archibase planet
clock table clock
clock - 3d model (*.gsm+*.3ds) for interior 3d visualization.
archibase_planet
free
Clock
...clock
archibase planet
clock striking clock
clock - 3d model (*.gsm+*.3ds) for interior 3d visualization.
archibase_planet
free
Clock
...clock
archibase planet
clock wall clock
clock 1 - 3d model (*.gsm+*.3ds) for interior 3d visualization.
archibase_planet
free
Clock
...clock
archibase planet
clock wall clock
clock 2 - 3d model (*.gsm+*.3ds) for interior 3d visualization.
archibase_planet
free
Clock
...clock
archibase planet
clock wall clock
clock 3 - 3d model (*.gsm+*.3ds) for interior 3d visualization.
archibase_planet
free
Clock
...clock
archibase planet
alarm clock alarm-clock
clock - 3d model (*.gsm+*.3ds) for interior 3d visualization.
7
turbosquid
$6
Rock 7-7
...urbosquid
royalty free 3d model rock 7-7 for download as obj on turbosquid: 3d models for games, architecture, videos. (1647866)
turbosquid
$8
Rock 7-7
...id
royalty free 3d model rock 7-7 for download as ma and fbx on turbosquid: 3d models for games, architecture, videos. (1693416)
design_connected
$16
No 7
...no 7
designconnected
sibast no 7 computer generated 3d model. designed by sibast, helge.
3ddd
$1
Team 7
...team 7
3ddd
team 7
моделилось с кталога team 7
3d_export
$5
hinge 7
...hinge 7
3dexport
hinge 7
turbosquid
$9
IS-7
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
turbosquid
$12
Calligraphic Digit 7 Number 7
...hic digit 7 number 7 for download as max, obj, fbx, and blend on turbosquid: 3d models for games, architecture, videos. (1389338)
3ddd
free
team 7
...team 7
3ddd
team 7
стол фабрики team 7.
типы размеров /900,1000/x/1750,2000,2250/x/750/
раздвигается +600 или +1200
3ddd
$1
PLANTS 7
...plants 7
3ddd
цветы , горшок
plants 7.. hope u all enjoying the series
3ddd
$1
Pillows #7
...pillows #7
3ddd
подушка , pillows
pillows #7
3ds max 2011,fbx + textures