



1975년 독일 베를린에 한 시계가 설치되었는데, 대부분의 사람들은 이 시계가 시간을 알려준다는 사실조차 눈치채지 못한 채 그냥 지나쳐 버립니다. 시계 바늘도, 숫자도, 디스플레이도 없습니다. 마치 추상 미술 작품처럼 보이는 구조물 위에 줄지어 있는 색색의 불빛들뿐입니다. 이 시계는 ‘멘겐레흐어(Mengenlehreuhr)’—집합론 시계—라고 불리며, 작동 원리를 한 번 이해하면 그 시계를 계속 눈여겨보게 됩니다.
이 아이디어는 매우 우아합니다. 네 줄로 나열된 램프들, 각 램프는 하나의 값을 나타냅니다. 이 값들을 더하면 시간을 알 수 있습니다. 맨 위 줄은 5시간 단위를, 두 번째 줄은 1시간 단위를, 세 번째 줄은 5분 단위를 나타냅니다. 맨 아래 줄은 1분 단위를 나타냅니다. 올바른 조합의 불빛이 켜지면 시간을 알 수 있습니다. 이는 수학을 물리적으로 구현한 것이며, 원리를 깨닫는 순간 깊은 만족감을 줍니다.
저는 한동안 LED 매트릭스 시계 — 단어 시계, 날씨 디스플레이, 다양한 변형 등 — 를 실험해 오던 중 문득 이런 생각이 들었습니다. 건물 외관과 집합론 시계는 본질적으로 같은 것이라는 사실입니다. 빛을 내는 창문들. 의미를 지닌 행들. ‘멘겐레어(Mengenlehreuhr)’는 건물처럼 보이도록 설계된 것은 아니었지만, 마치 건물인 것처럼 보일 수도 있었습니다.
그 깨달음이 바로 이 프로젝트가 되었습니다. ‘브라운스톤 시계(Brownstone Clock)’는 고전적인 뉴욕 브라운스톤 아파트 건물의 외관을 입은 베를린 집합론 시계입니다. 불이 켜진 창문들이 시간을 알려줍니다. 건물 자체가 시계 문자판입니다. 그리고 가장 멋진 점은 건물이 단지 겉모습일 뿐이라, 원하는 대로 무엇이든 만들 수 있다는 것입니다. 제게 영감을 준 건물 외관을 특징으로 하는 이진 시계를 제작한 ‘라 파브리크 DIY(La Fabrique DIY)’에 감사를 표합니다.
멘겐레어 시계의 작동 원리
무언가를 만들기 전에, 무엇을 만들 것인지 이해하는 것이 도움이 됩니다. 베를린 집합론 시계는 네 줄로 배열된 램프를 통해 시간을 알려줍니다. 읽는 방법은 다음과 같습니다:
● 맨 위 줄 — 램프 4개, 각 램프는 5시간을 나타냅니다. 램프 2개가 켜져 있으면 10시간입니다.
● 두 번째 줄 — 램프 4개, 각 램프는 1시간을 나타냅니다. 램프 3개가 켜져 있으면 3시간입니다.
● 세 번째 줄 — 램프 11개, 각 램프는 5분을 나타냅니다. 7개가 켜지면 35분입니다.
● 맨 아래 줄 — 램프 4개, 각 램프는 1분을 나타냅니다. 램프 2개가 켜져 있으면 2분입니다.
시간을 읽으려면 각 줄의 램프 개수를 더하면 됩니다. 맨 위 줄의 램프 2개와 두 번째 줄의 램프 3개를 더하면 13시간입니다. 세 번째 줄의 램프 7개와 맨 아래 줄의 램프 2개를 더하면 37분입니다. 따라서 시간은 13시 37분입니다.
원래 베를린 시계에서는 세 번째 줄의 대부분 위치에 노란색 램프를 사용하지만, 3, 6, 9시 위치에는 15분, 30분, 45분과 같은 15분 단위를 표시하기 위해 빨간색 램프를 사용합니다. 또한 맨 위에는 2초마다 깜빡이는 램프 하나가 있는데, 이는 초 표시기입니다.
이제 작동 원리를 알게 되었으니, 제작에 관심이 있으시다면 계속 읽어주세요. 이 프로젝트를 진행하기 위해 반드시 레이저 커터가 필요한 것은 아닙니다. 아래에 설명된 대로 시계판을 제작하는 데는 세 가지 다른 방법이 있습니다.


이 프로젝트 전체의 기반은 개별적으로 제어 가능한 LED로 구성된 13열 × 16행의 그리드입니다. 총 208개의 LED로 이루어져 있습니다. 각 LED는 모든 색상을 표시할 수 있는 단일 WS2812B 픽셀입니다.
스트립은 뱀 모양 패턴(지그재그 또는 부스트로페돈 레이아웃이라고도 함)으로 배선되어 있습니다. 0행은 왼쪽에서 오른쪽으로 이어지고, 1행은 오른쪽에서 왼쪽으로 이어지며, 2행은 다시 왼쪽에서 오른쪽으로 이어집니다. 이 패턴은 16개 행 전체에 걸쳐 반복됩니다. 코드가 어떤 그리드 위치에 어떤 물리적 LED가 대응되는지 계산할 때 각 행의 방향을 고려해야 하기 때문에 이는 중요한 사항입니다.
208개의 LED 전부가 시계 정보를 표시하는 데 사용되는 것은 아닙니다. 시계는 램프 형태로 배열된 특정 LED 그룹을 사용하며, 나머지는 단순히 꺼져 있습니다. 덕분에 사용되지 않는 LED를 다른 용도로 활용하거나 그냥 무시할 수 있어 유연성이 매우 높습니다. 마침 다른 프로젝트를 위해 13x16 매트릭스를 가지고 있었기에 그것을 사용했습니다.
납땜 작업을 시작하기 전에, LED 그룹이 그리드 내에서 정확히 어디에 배치될지 미리 계획해야 합니다. 이 시계의 경우, 건물 외관 디자인의 창문 위치와 일치하도록 램프 위치를 선정했습니다. 두 위치가 정확히 일치해야만 창문이 올바르게 점등됩니다.
다음은 이번 제작물의 램프 배치도입니다:
직접 파사드를 디자인할 때 가장 중요한 제약 조건은 코드 내 램프 위치와 파사드 레이어의 창 개구부 위치가 정확히 일치해야 한다는 점입니다. 어느 한 쪽을 확정하기 전에 두 가지 모두를 종이에 스케치해 보세요.
MDF나 다른 재질의 판재를 완성된 시계 문자판 크기에 맞게 잘라주세요. 이 판재는 나머지 모든 부품을 고정할 구조적 토대가 됩니다. 또한 LED 스트립을 단단히 부착할 수 있는 기반이 되어줍니다. 저는 1/8" MDF를 사용했지만, 두꺼운 골판지, 폼보드, 아크릴, 플라스틱 등도 사용할 수 있습니다. 첨부된 파일은 제가 사용한 격자 패턴입니다.
판에 격자선을 표시하세요 — 13열 16행으로. 모든 LED 위치를 일일이 표시할 필요는 없지만, 행을 표시해 두면 스트립을 부착할 때 일직선으로 유지하는 데 도움이 됩니다.
LED가 방해가 되기 전에 미리 장착용 구멍을 뚫어 두세요. 모서리에 네 개의 구멍을 뚫으면 걸거나 받침판을 프레임에 나사로 고정하는 데 유용합니다.
WS2812B 스트립은 연속된 릴 형태로 제공됩니다. LED 사이의 표시된 절단 지점에서 길이에 맞게 잘라주세요. 절대로 LED 한가운데를 자르면 안 됩니다. 그렇지 않으면 스트립이 손상될 수 있습니다. 13개의 LED로 구성된 각 행마다 별도의 잘라낸 스트립이 필요합니다.
왼쪽 상단부터 시작하여 0번 행을 왼쪽에서 오른쪽으로 배치합니다. 자른 후, 1번 행을 오른쪽에서 왼쪽으로 배치합니다. 이것이 ‘뱀 모양’ 배열 방식입니다. 데이터 라인은 한 행에서 다음 행으로 연속적으로 흐르므로 배선 시 방향이 중요합니다.
각 행의 끝부분에서는 해당 행의 데이터 출력 단자와 다음 행의 데이터 입력 단자를 연결하는 짧은 전선을 납땜해야 합니다. 이 연결 전선은 짧게 하고 길이를 일관되게 유지하십시오. 또한 모든 행에 걸쳐 전원과 접지를 연결하십시오. 스트립 전체에 전원을 공급하는 데 데이터 선에만 의존해서는 안 됩니다.


LED 스트립은 ESP32에 데이터 핀 하나만 연결하면 됩니다. 전원 공급 장치의 5V와 접지를 스트립과 ESP32에 직접 연결하십시오. ESP32 보드는 전류 부하를 감당할 수 없으므로, ESP32 보드를 통해 전원을 공급하지 마십시오.
스트립의 시작 부분(LED 0, 왼쪽 상단)에 있는 데이터 라인은 ESP32의 GPIO 핀에 연결됩니다. 제공된 코드에서는 GPIO 핀 5를 사용합니다. 배선 방식에 따라 다른 핀을 사용해야 하는 경우 코드에서 해당 핀을 변경할 수 있습니다.
전원 공급 장치의 접지도 ESP32의 접지 핀에 연결하십시오. 이 공통 접지는 매우 중요합니다. 접지가 없으면 데이터 신호가 제대로 작동하지 않습니다.
데이터 라인에 300~500옴 저항을 직렬로 연결하는 것은 신호 반사를 방지하기 위한 좋은 방법입니다. 전원 공급 단자 양단에 1000마이크로패럿 커패시터를 연결하면 많은 LED가 한꺼번에 켜질 때 발생하는 전류 스파이크를 완화하는 데 도움이 됩니다. 저는 개인적으로 이 두 가지 모두 사용하지 않았지만, 지금까지는 아무런 문제도 발견하지 못했습니다.
다른 작업을 시작하기 전에 테스트 스케치를 업로드하여 모든 LED가 정상적으로 작동하는지 확인하십시오. 케이스를 조립한 후에 배선 문제를 해결하는 것보다 지금 해결하는 것이 훨씬 쉽습니다.
테스트 스케치는 몇 가지 간단한 애니메이션을 실행해야 합니다. 색상 채널이 작동하는지 확인하기 위한 빨강, 초록, 파랑 색상 전환, 뱀 모양 배선이 올바른지 확인하기 위한 행별 스윕, 그리고 각 LED를 개별적으로 확인하기 위한 체이스 애니메이션 등이 포함됩니다. 만약 특정 행이 잘못된 방향으로 켜진다면, 해당 행의 뱀 모양 배선 순서가 배선 과정에서 반대로 연결된 것이므로 수정해야 합니다.
ESP32 배선에 대한 8단계의 팁을 참조하십시오.




이 부분에서 프로젝트가 개인적인 차원으로 이어집니다. 건물 외관은 단순한 디자인일 뿐이며, 원하는 어떤 건축 양식이든 선택할 수 있습니다. 고전적인 뉴욕 브라운스톤, 조지아 양식의 타운하우스, 빅토리아 양식의 연립주택, 현대적인 아파트 단지, 심지어 등대나 헛간도 가능합니다. 유일한 조건은 LED 램프 그룹과 일직선이 되도록 적절한 위치에 창문이나 개구부가 있어야 한다는 점입니다. 시작점으로 삼을 수 있는 깔끔한 건물 외관 사진 한 장과 SVG 파일 두 개를 첨부했습니다.
*팁 — AI 프로그램에 간단한 뉴욕 스타일 브라운스톤 아파트 선화를 그려달라고 요청했습니다. 첨부된 파일이 바로 그것입니다.
원하는 건축 양식의 참고 이미지를 먼저 준비하세요. 창문 위치가 LED 램프 그룹과 일치하도록 선을 따라 그리거나 다시 그려보세요. 창문의 크기가 LED 그룹과 꼭 같을 필요는 없습니다. 사실 창문 개구부를 뒤에 있는 LED 그룹보다 약간 작게 만들면 더 깔끔하고 선명한 조명 효과를 얻을 수 있습니다.
이번 제작에서는 디자인을 디지털로 제작한 후 레이저 커터로 전송했습니다. 파일에는 전체 외관 형태, 창문 개구부, 그리고 코니스, 벽돌 질감, 창틀과 같은 장식적 디테일이 포함되었습니다. 상단의 원형 메달리온은 별도로 분리 가능한 부품으로 설계되었습니다.
제 제작 과정을 따라 하지 않는 한, 여러분의 방법은 제 방식과 다를 것입니다. 저는 유료 사진 편집 소프트웨어나 앱을 가지고 있지 않아서 즉흥적으로 해결했습니다. 단순히 건물 이미지를 LightBurn으로 불러왔습니다. 그 후 창문의 윤곽선을 따라 그리고 마스크를 적용했습니다. 이렇게 하면 윤곽선 안쪽의 이미지는 그대로 유지하고, 윤곽선 바깥쪽은 모두 숨겨집니다. 그 결과 창문 이미지만 남게 되었습니다. 작업이 끝나자 창문의 크기와 모양을 쉽게 변경할 수 있었습니다. 벽돌, 처마, 건물 장식 부분에도 이 과정을 반복했습니다. 건물의 모든 “부품”을 준비한 후에는, 크기를 조정하고 모든 부품을 제자리에 배치하기만 하면 되었습니다.
다른 아이디어를 원하신다면 ‘다음 단계’ 섹션으로 이동해 보세요.
*팁 — 나무나 판지를 자르기 전에, 일반 흰색 프린터 용지에 외관 디자인을 실제 크기로 출력해 보세요. 이렇게 하면 두 가지 이점이 있습니다. 재료를 사용하기 전에 창문 위치가 LED 그리드와 일치하는지 확인할 수 있고, 레이저 커터를 사용할 수 없는 경우 이 출력물을 완성된 외관 레이어로 바로 활용할 수도 있습니다.
인쇄한 종이를 LED 그리드 위에 올려놓고 전원을 켜보세요. 켜진 각 LED 그룹이 올바른 창을 통해 빛이 비치는지 확인하세요. 정렬이 어긋난 부분이 있다면 디자인을 조정하고 다시 인쇄하세요. 이 단계에서는 수정하는 데 비용이 들지 않습니다.
종이만 사용하는 방식을 택한다면, 이 인쇄된 종이가 완성된 전면 패널이 될 수 있습니다. LED의 빛이 종이를 통해 아름답게 비쳐 나오며, 의도적으로 연출한 듯한 따뜻하고 은은한 빛을 선사합니다. 간단한 액자에 끼워 넣으면 효과를 완성할 수 있습니다.



얼굴이 완성되면 이제 확산 레이어를 위한 템플릿이 준비된 것입니다.
워드 클럭을 본 적이 있다면, 각 램프 주위에 라이트박스를 만드는 방식이 꽤 복잡하고 부피가 커질 수 있다는 것을 아실 겁니다. 다행히 더 간단한 방법이 있습니다.
이 제작 과정에서 가장 중요한 비결은 바로 골판지 확산층이며, 비용도 전혀 들지 않습니다. 이 확산층이 없다면, 각 LED는 창 전체를 부드럽고 고르게 채우는 빛 대신 밝은 개별 점, 즉 ‘핫스팟’으로 보일 것입니다. 골판지 층은 LED와 전면판 사이에 물리적 간격을 만들어 이 문제를 해결합니다.
백커 보드와 같은 크기의 골판지를 한 장 잘라내세요. 그런 다음 각 LED 램프 그룹이 위치할 곳에 대략적인 구멍을 뚫으세요. 핵심은 ‘대략적으로’라는 점입니다. 이 구멍들을 위쪽 표면층의 실제 창구멍보다 더 크게 만들어 두세요. 나중에 스스로에게 고마워하게 될 겁니다. 이렇게 크기를 크게 하면 여러 LED에서 나오는 빛이 표면에 닿기 전에 퍼지고 어우러져, 핫스팟과 빛이 제대로 채워지지 않는 현상을 없앨 수 있습니다. 실제 구멍 크기는 표면층에 맞춰 결정하세요.
더 깊은 공간이 필요하면 골판지를 두 겹으로 쌓으세요. LED와 전면 레이어 사이의 간격이 넓을수록 확산 효과는 좋아지지만, LED 밝기를 더 높여야 합니다. 이번 제작에서는 표준 골판지 두 겹을 사용했을 때 적절한 효과를 얻을 수 있었습니다. 원본 베를린 시계를 보면 엄청난 핫스팟이 있습니다. 이 부분은 전적으로 여러분의 선택에 달려 있습니다. 제가 사용한 2겹 구조에서는 가장 가까운 창문에서도 빛이 새어 나오지 않았으며, 확산 효과도 고르고 충분했습니다.
골판지 스페이서를 제자리에 고정한 후, 골판지 전면 전체에 종이 한 장을 테이프로 붙이세요. 이 종이 층이 실제 확산판 역할을 하여 각 LED 그룹에서 나오는 빛을 부드럽고 고른 빛으로 흩어줍니다.
일반 복사용지면 충분합니다. 너무 두꺼운 종이를 사용하면 빛이 제대로 통과하지 못하니 피하십시오. 벨룸이나 트레이싱 페이퍼처럼 반투명한 종이는 사용하지 마세요. 빛이 너무 많이 투과되어 확산 효과가 사라집니다.



이제 얼굴 레이어의 경로를 선택하세요. 사용 중인 도구와 작업 목표에 따라 세 가지 좋은 옵션이 있습니다:
4~5단계에서 출력한 종이가 바로 얼굴이 됩니다. LED 백판과 골판지, 종이 확산 레이어를 액자에 끼운 다음, 그 앞에 인쇄한 얼굴 디자인을 올려놓으세요. 끝입니다. 의외로 멋지게 보이며, 충분히 완성도 있는 결과물입니다. 예술적 재능이 있다면 마커, 물감, 색연필 등을 사용해 볼 수도 있습니다.
튼튼한 골판지(이중벽 골판지가 가장 적합합니다)로 외관 모양을 오려냅니다. LED 그룹이 위치할 곳에 창문 구멍을 정밀하게 뚫습니다. 추가적인 골판지 조각과 형태를 활용해 처마, 창틀, 문 주변, 벽돌 줄무늬 등 건축적 디테일을 만들어 냅니다. 취향에 따라 페인트를 칠하거나 질감을 더해 보세요. 이 방법은 공예 기술을 발휘할 수 있게 해주며, 독창적인 수제 결과물을 만들어 냅니다.
벡터 소프트웨어로 외관을 디자인한 후, 원하는 재료를 선택하거나 가지고 있는 재료를 레이저 커터로 절단하세요. 레이저는 절단과 동시에 벽돌 질감, 창문 프레임, 장식용 몰딩과 같은 표면 디테일을 새길 수 있습니다. 가볍게 사포질하고, 목재 스테인을 바른 뒤 투명 코팅으로 마무리하세요. 이 방법은 가장 세련된 결과물을 만들어 냅니다.
직접 파사드를 3D 프린팅해 보세요. 저는 3D 프린팅 경험이 없으므로 이 부분에 대해서는 도움을 드릴 수 없습니다.
그 커다란 원을 채울 무언가가 필요합니다. 다시 말하지만, 디자인은 전적으로 여러분의 선택에 달려 있습니다. 저는 B-more에 경의를 표하며 Natty 로고를 사용하기로 했습니다. 여러분이 좋아하는 스포츠 팀 로고, 캐릭터, 심볼, 모노그램 등을 사용해 보시길 권합니다. 여기에는 제한이 전혀 없으니 마음껏 창의력을 발휘해 보세요. 제가 한 일은 로고를 레이저 커팅하고, 검은색 마커로 색을 칠한 뒤, 아주 얇고 소량의 접착제를 사용해 종이 디퓨저에 직접 붙인 것뿐입니다.





이쯤 되면 조립 방법은 꽤 분명할 테지만, 그래도 단계별 순서를 적어 보겠습니다.
뒤에서 앞쪽으로 쌓는 순서는 다음과 같습니다.
고정하기 전에 각 층을 주의해서 정렬합니다. 전면층의 창 개구부가 뒤에 있는 LED 램프 그룹의 중앙에 오도록 해야 합니다. 정렬이 끝나면 층들을 서로 고정합니다. 목재 층에는 모서리를 관통하는 작은 나사가 잘 맞습니다. 종이와 판지에는 테이프를 사용하면 됩니다. 핫 글루는 두 재료 모두에 사용할 수 있습니다.
*팁—제 LED 뒷받침판과 전면 패널에는 구멍이 있습니다. 판지의 구멍까지 맞추려 하니 어려웠고 판지가 찢어졌습니다. 제가 찾은 가장 쉬운 조립 방법은 판지의 모서리를 잘라내고 앞면 및 뒷면 패널의 구멍만 사용하는 것이었습니다. 나사가 층 사이에서 판지를 단단히 샌드위치처럼 고정하므로 판지가 움직이지 않습니다.
전원 공급 케이블과 ESP32 USB 프로그래밍 케이블은 조립체의 뒤쪽이나 아래쪽으로 빼냅니다. 필요할 때 다시 프로그래밍할 수 있도록 ESP32를 분리할 수 있을 만큼 케이블을 충분히 느슨하게 남겨 둡니다.
*또 다른 팁—필요한 전선은 3가닥뿐이므로 전자 부품을 시계 안에 장착할 이유가 없다는 것을 알게 되었습니다. 이렇게 하면 케이스를 최소한으로 유지할 수 있습니다. 제가 하는 방법은 6' USB 케이블의 한쪽 끝을 자르고 전원선, 접지선, 데이터선을 LED 스트립에 접속하는 것입니다. 반대쪽 끝에서는 USB 쪽을 잘라내고, 절단된 양쪽 끝에서 전원선, 접지선, 데이터선의 피복을 벗깁니다. 이 각각에 짧은 전선을 하나씩 더하고, 전원선·접지선·데이터선을 각각 다시 이어 붙입니다. 이제 ESP32에 연결할 추가 전선 3가닥이 생깁니다. 물론 작은 브레드보드를 사용해 시계 뒷면에 붙여도 됩니다. 다른 팁이나 요령이 있다면 댓글로 남겨 주세요.

이 시계는 Arduino IDE를 통해 프로그래밍된 ESP32 마이크로컨트롤러로 작동합니다. Arduino를 사용해 본 적이 없다면, 다음이 필요합니다:
제공된 코드는 Wi-Fi 네트워크에 연결하고, NTP 시간 서버에서 시간을 자동으로 동기화하며, LED 그리드에 클래식 Mengenlehreuhr 형식으로 시간을 표시합니다. 이 코드는 일광 절약 시간제를 자동으로 처리하며, 기본값은 미국 동부 표준시(EST)로 설정되어 있고 매일 오전 3시에 한 번씩 시간을 재동기화합니다.
Arduino IDE에서 스케치를 엽니다. 파일 상단의 구성 섹션을 찾아 Wi-Fi 네트워크 이름과 비밀번호를 입력하세요. 또한 시간대를 현재 위치에 맞게 변경해야 합니다. 스케치에 알려진 모든 시간대를 포함시켰으므로, 해당 시간대를 찾아 주석 처리를 해제하기만 하면 됩니다. 반드시 하나의 시간대만 주석 해제되어 있는지 확인하십시오. ESP32에 업로드하십시오. 115200 보드의 속도로 시리얼 모니터를 열어 연결 상태를 확인하십시오.
첫 부팅 시 다음과 같은 메시지가 표시됩니다:
시작 애니메이션이 모든 램프 위치를 순차적으로 스캔하므로, 시계가 작동하기 전에 모든 LED 그룹이 정상적으로 작동하는지 확인할 수 있습니다.
이제 프로그램이 실행되었으니, 시간을 읽는 방법에 대한 간단한 안내를 드리겠습니다:
예시: 맨 위 줄 2개(10) + 두 번째 줄 3개(3) = 13시간. 세 번째 줄 6개(30) + 맨 아래 줄 4개(4) = 34분. 현재 시간은 오후 1시 34분입니다.
시계를 보는 것이 본능적으로 느껴지기까지는 약 일주일 정도 시계를 흘끗흘끗 쳐다봐야 합니다. 그 후에는 스스로 조금 자랑스러워하게 될 것입니다.
모서리 구멍이나 액자용 고정 부품을 이용해 시계를 벽에 걸거나 선반 위에 올려놓으세요. 전원선은 시계 뒤쪽에 숨기거나 벽을 따라 콘센트까지 연결할 수 있습니다. ESP32는 프로그래밍이 완료된 후에는 전원이 공급되기만 하면 되며, 정상 작동 시 컴퓨터에 연결할 필요가 없습니다.
일단 벽에 걸면 시계가 스스로 작동합니다. 시간을 자동으로 동기화하고 일광 절약 시간제에도 자동으로 조정됩니다.
건물의 외관은 그저 겉껍질에 불과합니다. 그 뒤에 있는 LED 그리드는 빈 캔버스와 같습니다. 커뮤니티가 이를 활용해 볼 수 있는 몇 가지 방향은 다음과 같습니다:
코드, 그리드, 확산 효과 기법이 기초가 됩니다. 그 외의 모든 것은 여러분이 직접 창의력을 발휘해 만들어가시면 됩니다.
이 Instructable에 제공된 코드는 의도적으로 기본적으로만 구성되었습니다. 이 코드는 Wi-Fi에 연결하고, 시간을 동기화한 뒤, 전통적인 빨간색과 노란색으로 시간을 표시합니다. 이는 완성된 제품이 아니라 여러분이 시작할 수 있는 출발점입니다.
LED 색상 변경, 블루투스 제어 추가, 창 채움 순서 무작위화, 날씨 데이터 추가, 야간 모드 시간 조정 등 — 이 모든 것은 코드를 파고들어 수정하고자 하는 사람이라면 누구나 쉽게 할 수 있는 간단한 수정 사항입니다. FastLED 라이브러리 문서는 매우 훌륭하며, ESP32는 이 시계가 요구하는 것보다 훨씬 더 많은 작업을 수행하기에 충분한 성능을 갖추고 있습니다.
제가 코드에 가장 먼저 추가한 기능은 블루투스 연결과 명령어였습니다. 덕분에 별도의 조작이나 연결 없이도 휴대폰에서 바로 시간, LED 색상, 밝기를 설정할 수 있게 되었습니다.
이 기반을 바탕으로 흥미로운 작품을 만들게 된다면, 꼭 공유해 주세요. 이 프로젝트를 공유하는 가장 큰 목적은 커뮤니티가 이를 어떻게 발전시켜 나갈지 지켜보는 데 있습니다.
원문: https://www.instructables.com/The-Brownstone-Clock-a-Modern-Take-on-the-Berlin-S/