본문 바로가기
ESP32

CircuitPython 전원 스마트 알람 시계 만들기

by 모빌리티키즈 2025. 3. 20.
728x90
반응형

스마트한 알람 시계가 필요하신가요? 이 프로젝트에서는 빛과 움직임에 반응하는 똑똑한 알람 시계를 만들어 봅니다. 이 시계는 방이 어두울 때 디스플레이를 자동으로 끄고, 방이 밝으면 다시 켭니다. 또한 Wi-Fi 동기화로 시간을 설정하고, 아침에 실시간 날씨 업데이트까지 표시합니다.

 

필요한 재료

  • Matrix Portal M4
  • 64 x 32 RGB LED 매트릭스
  • Adafruit VCNL4040 조명 및 근접 센서
  • Stemma QT 4핀 케이블
  • USB-C 케이블

단계별 제작 과정

1단계: Matrix Portal 설정

먼저 Matrix Portal M4에 CircuitPython을 설치합니다. 최신 버전을 여기에서 다운로드하고, USB-C 케이블로 컴퓨터에 연결하세요.

2단계: 코드 업로드

Matrix Portal에 연결 후, 이 GitHub 리포지토리의 데이터를 circuitpy 디스크에 업로드하세요. 이 코드는 시계의 핵심 기능들을 포함합니다.

3단계: Secrets.py 설정

Wi-Fi 연결 및 API 인증을 위해 secrets.py 파일을 설정합니다. 다음 내용을 수정하세요:

  • SSID 및 비밀번호: Wi-Fi 네트워크 정보
  • aio_username 및 aio_key: Adafruit IO에서 생성된 키
  • openweather_token: OpenWeatherMap API 키
  • location: 원하는 지역 설정 (예: '미국 뉴욕')

4단계: 하드웨어 연결

  1. Matrix Portal을 LED 매트릭스에 연결합니다.
  2. Stemma QT 케이블로 조명 센서를 보드에 연결합니다.
  3. 각 구성 요소를 정확히 연결하고 디스플레이를 확인하세요. 작동 여부는 디스플레이의 밝기 조정 및 움직임 감지 테스트로 알 수 있습니다.

5단계: 맞춤형 케이스 제작

디스플레이와 센서를 보호하기 위한 케이스를 만들어보세요.

  1. MakerCase를 이용해 케이스 설계.
  2. 레이저 커터를 사용해 나무와 아크릴로 절단.
  3. 구성 요소를 조립하고 케이블 및 센서를 고정합니다.

공급

시계 및 날씨 매트릭스 포털 디스플레이를 만들어 준 Adafruit의 John Park에게 특별한 감사를 드립니다. 이 프로젝트는 그가 만든 많은 코드를 사용합니다. 프로젝트에 대한 링크는 다음과 같습니다.

  1. https://learn.adafruit.com/network-connected-metro-rgb-matrix-clock/code-the-matrix-clock
  2. https://learn.adafruit.com/weather-display-matrix/code-the-weather-display-matrix
network-connected-metro-rgb-matrix-clock.pdf
5.24MB
weather-display-matrix.pdf
4.70MB

 

 

재료 목록:

  1. 매트릭스 포털 M4: https://www.adafruit.com/product/4745
  2. 64 x 32 RGB LED 매트릭스: https://www.adafruit.com/product/2278
  3. Adafruit VCNL4040 조명 및 근접 센서: https://www.adafruit.com/product/4161
  4. Stemma QT 4핀 케이블: https://www.adafruit.com/product/4210
  5. USB C 케이블

1단계: Matrix Portal 설정

먼저 최신 버전의 circuit python으로 매트릭스 포털을 설정해야 합니다. 이에 대한 다운로드 링크는 다음에서 찾을 수 있습니다.

이것은 이전에 circuitpython으로 작업한 적이 있는 경우 모든 circuitpython 보드에 대해 동일한 프로세스입니다. USB 유형 c를 사용하여 보드를 컴퓨터에 연결해야 합니다.

 

이전에 한 번도 해본 적이 없는 경우 매트릭스 포털의 경우 수행하는 방법에 대한 좋은 자습서가 있습니다.

 

다음은 매트릭스 포털 m4용 circuitpython의 최신 버전에 대한 다운로드 링크입니다.

  1. https://circuitpython.org/board/matrixportal_m4/

 

2단계: 매트릭스 포털 코딩

이제 보드가 컴퓨터에 연결되어 있는지 확인하십시오. circuitpy의 모든 데이터를 다음 GitHub 리포지토리의 데이터로 바꿉니다.

 

https://github.com/koster51/SmartAlarmClock/tree/main

 

 

3단계: Secrets.py 설정 및 코드 구성

다음으로 알람 시계가 Wi-Fi에 연결하고, 시간을 얻고, 날씨 API를 사용할 수 있도록 secrets.py 폴더를 설정해야 합니다.

 

secrets.py 두 번 클릭하면 다음과 같은 내용이 표시됩니다.

secrets = {

'ssid' : '',

'password' : '',

'aio_username' : "",

'aio_key' : '',

'openweather_token':'',

'location' : 'New York, US'

}

  1. ssid를 Wi-Fi 네트워크 이름과 동일하게 설정하십시오.
  2. Wi-Fi 네트워크 비밀번호로 비밀번호 설정
  3. https://io.adafruit.com/ 로 이동하여 계정 생성
  4. 계정을 만들었으면 "개요"로 이동하여 열쇠 아이콘을 클릭하십시오. 이렇게 하면 'aio_username'과 'aio_key'에 입력할 사용자 이름과 비밀번호가 제공됩니다.
  5. https://openweathermap.org 에서 계정에 가입하세요.
  6. 계정을 클릭하고 API 키를 가져옵니다. 이것을 'openweather_token'에 복사합니다. 이것이 알람 시계가 매일 아침 날씨에 액세스하는 방법입니다
  7. '위치'에서 위치를 입력합니다. 위의 예와 동일한 형식인지 확인하십시오.

 

이제 코드의 주요 섹션으로 이동하여 알람 시계에서 조작할 수 있는 다양한 설정에 대해 이야기하겠습니다. 이 코드와 좋아하는 회로 파이썬 코드 편집기 (아마도 MU 또는 PyCharm)를 열 수 있습니다

 

BLINK = True #Changes is Colon Blinks of Doesn't
DEBUG = False
UNITS = "imperial" #Changes Units for the Weather
LOCATION = secrets['location'] #Changes City that code asks API for
WEATHER_TIME_DISPLAY = 15 # Changes How long Weather is displayed upon wakeup
font = bitmap_font.load_font("/spleen-12x24.bdf")
light_sensor_threshold = 6.5
shaker_threshold = 10.5

 

이 코드는 알람의 특정 측면을 제어합니다.

  1. 눈 깜박임 변화는 결장이 깜박이는지 여부를 나타냅니다.
  2. 단위는 영국식이 마음에 들지 않으면 "미터법"으로 변경할 수 있습니다.
  3. 날씨 시간 표시는 다시 시계로 전환하기 전에 날씨 API가 표시되는 시간을 변경합니다.
  4. 글꼴은 내가 선호하는 글꼴 파일에 연결되어 있지만 약 12 x 24 인 원하는 비트 맵 글꼴을 업로드 할 수 있으며 작동합니다.
  5. light_sensor_threshold 조명이 꺼지려면 방이 얼마나 어두워야 합니까?
  6. 시계를 다시 켜shaker_threshold 바꾸기 위해 얼마나 세게 흔들어야 하는지는 입니다.

 

ntp = adafruit_ntp.NTP(pool, tz_offset=-4, cache_seconds=3600)

또한 여기에서 tz_offset 변경하여 표준 시간대에 맞게 조정해야 합니다. 이것은 현재 미국 동부 해안에서 작동하도록 설정되어 있습니다.

4단계: 구성 요소 연결

보드를 코딩한 후 이제 모든 것을 연결할 수 있습니다

  1. 먼저 빨간색과 검은색 전선을 매트릭스 m4 포털의 터미널에 나사로 고정합니다. 빨간색은 '5v' 옵션에 연결되고 검은색은 'gnd'에 연결되었는지 확인합니다.
  2. 그런 다음 Stemma QT 케이블을 사용하여 VCNL4040 센서를 보드에 연결합니다. 매트릭스 포털 m4의 포트는 두 번째 사진과 같이 왼쪽 하단에 있으며 VCNL4040에는 양쪽에 있지만 왼쪽을 사용해야 합니다
  3. 그런 다음 보드를 LED 매트릭스에 연결합니다. 매트릭스에 바로 꽂고 싶다면 바깥쪽이 약간 튀어나올 것입니다. 잘못된 쪽이나 거꾸로 연결하면 작동하지 않으므로 주의하십시오. 보드가 튀어나오는 것을 원하지 않았기 때문에 점퍼 케이블을 사용하여 보드를 제공된 와이어에 연결한 다음 제공된 와이어를 보드에 연결했습니다. (나는 이것을하는 더 좋은 방법이 있다고 확신하지만, 나는 시간이 부족했고 이것이 내가 알아낼 수있는 가장 좋은 방법이었다)
  4. 이제 보드를 연결하십시오.

 

이 시점에서 모든 전자 장치가 작동해야 합니다. 광 센서를 덮으면 디스플레이가 꺼집니다. 디스플레이가 꺼져 있는 동안 매트릭스 포털을 흔들면 디스플레이가 5초 동안 다시 켜져야 합니다. 그리고 광 센서에서 손을 떼면 디스플레이가 다시 켜지고 시계로 다시 전환되기 전에 몇 초 동안 날씨를 표시해야 합니다.

5단계: 상자 만들기

원하는 상자의 크기/매트릭스 포털의 크기에 따라 상자의 정확한 치수가 달라집니다. 스마트 알람 시계를 수용할 레이저 절단 상자를 만드는 일반적인 과정을 안내해 드리겠습니다.

 

먼저 https://en.makercase.com/#/basicbox 에 가서 상자를 만들었습니다. 다음은 치수를 계산하는 방법입니다.

  1. 레이저로 절단하는 나무의 두께부터 시작하십시오. 우리는 이것이 x와 같다고 말할 것입니다. 그런 다음 디스플레이의 치수를 높이에 대해 h, 너비에 대해 w, 두께에 대해 t를 호출합니다.
  2. 메이커 케이스에서 상자의 내부 치수를 (h + 4x + 0.1) x (w +4x + 0.1) x (알람 시계에 대해 선택한 깊이가 무엇이든 모든 구성 요소를위한 많은 공간을 확보하기 위해 6 인치를 수행했습니다)와 동일하게 설정하십시오.
  3. 이 svg 파일을 어도비 일러스트 레이터로 이동하고 전면 패널 중 하나에 디스플레이의 높이와 너비 인 구멍을 그립니다. 반대쪽 패널에 케이블에 맞는 구멍을 그리고 센서 상단에 1인치 x 3/4인치 크기의 구멍을 그립니다.
  4. 다음으로 tx l 인 6 개의 사각형을 만듭니다.
  5. 그런 다음 t x (h-2x) 인 사각형 4 개를 만듭니다.
  6. 레이저 절단기의 상자
  7. 이제 별도의 파일을 만듭니다(이것은 디스플레이와 센서의 아크릴 덮개를 자르는 것입니다). 하나는 1.2인치 x 1인치이고 다른 하나는 (h + 4x +) x (w +4x+) 인치여야 하는 두 개의 사각형을 만듭니다.

 

다음으로 상자를 조립해야 합니다

  1. 외부 조각을 조립합니다(면을 열어 두는 것을 잊지 마십시오).
  2. 큰 아크릴 조각을 밀어 넣습니다.
  3. 나무의 직사각형을 사용하여 아크릴 조각을 지원합니다.
  4. 디스플레이 배치 위치
  5. 직사각형 나무 조각으로 디스플레이를 지지합니다.
  6. 모든 것을 함께 배선
  7. 센서를 상자의 상단 컷아웃에 테이프로 붙입니다.
728x90
반응형