산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

DS3231, BME280, BH1750 및 ESP01이 포함된 LED 매트릭스 NTP 시계

구성품 및 소모품

Arduino Nano R3
× 1
Maxim 통합 DS3231MPMB1 주변기기 모듈
배터리 폭발을 막기 위해 저항을 제거한 Ebay의 저렴한 제품
× 1
SparkFun 대기 센서 브레이크아웃 - BME280
Ebay의 저렴한 제품
× 1
BH1750 광 센서
Ebay에서
× 1
Max7219 32x8 LED 매트릭스
× 1
커패시터 10μF
× 2
Espressif ESP8266 ESP-01
NTP를 통해 시간을 설정하려는 경우 선택 사항
× 1
LM3940IT3.3
ESP01용 3.3v LDO 조정기
× 1
SparkFun 레벨 시프터 보드
ESP01에 필요
× 1

이 프로젝트 정보

이것이 나를 Arduino에 빠지게 한 것입니다. Nick의 LED 워드 클락을 우연히 발견했고, 그것을 만들고 싶다고 생각했습니다.

그의 코드를 다운로드한 이후로 ESP01을 추가할 뿐만 아니라 추가 센서와 버튼을 포함하도록 수정했습니다.

BH1750은 조명 조건에 따라 디스플레이를 자동으로 어둡게 하는 데 사용되며 밤에는 디스플레이를 끌 수 있습니다. BME280은 온도, 습도 및 압력을 보여줍니다. ESP01은 pool.ntp.org에서 시간을 가져오는 데 사용됩니다.

추가 버튼이 있어 설정을 쉽게 조정할 수 있습니다. 버튼을 사용하여 광 센서 설정을 조정하고 글꼴 및 NTP/DST/UTC 설정을 변경할 수 있습니다.

6개의 새로운 글꼴이 추가되었으며 다음을 사용하여 글꼴을 만들었습니다. http://dotmatrixtool.com/.

나는 워드 클록에 상당한 변화를 주었다. 이제 더 많은 워드가 있고 RAM을 절약하기 위해 PROGMEM으로 꽤 많이 옮겼다.

Nick의 프로젝트 페이지:https://123led.wordpress.com/mini-led-clock/

내 코드:https://github.com/Ratti3/miniclock

알려지지 않은 버그와 여기저기서 수정한 것을 제외하고 코드는 이제 완성되었습니다. 이에 대한 사례를 만들겠습니다.

조명 조건에 맞게 광 센서 코드를 조정해야 합니다. 창 옆에 밝은 햇빛이 있을 때 이 코드를 코딩했습니다.

ESP01은 NTP를 통해 시간을 가져오는 데 사용되며 ESP01은 필요하지 않을 때 절전(와이파이 끄기)으로 코딩되고 직렬을 통해 깨워 UNIX 형식으로 시간을 가져옵니다. SSID 이름과 비밀번호는 편의성을 위해 Arduino 코드를 통해 전달됩니다.

이 버전에는 DST/UTC 및 BST 계산 기능도 있습니다. 이 설정은 메뉴를 통해 조정하거나 비활성화할 수 있습니다.

설정은 EEPROM에 저장됩니다. 즉, 전원을 껐다가 다시 켜면 메뉴를 통해 변경한 내용이 저장됩니다.

다음은 Github의 코드 파일입니다.

Github의 코드 [https://github.com/Ratti3/miniclock]:Arduino LEDClock32x8.ino ProgmemData.hArduino ESP-01_NTP.ino LEDClock32x8_ESP01-NTP.ino ProgmemData.h 

ESP01이 Arduino 직렬을 실행하면 다음이 표시됩니다.

Arduino :ESP01ESP01에 NTP 요청을 보냈습니다. Arduino[시도 1/3]에서 NTP 요청을 받았습니다. -42dBm다음으로 NTP 패킷 보내기:195.195.221.100 [시도 1]다음으로 NTP 패킷 보내기:195.195.221.100 [시도 2]UNIX1562848457WiFi 비활성화....ok 

더 많은 사진과 지침이 제공됩니다...

종합해보면:

배선:

DS3231, BH1750 및 BME280:SCL PINS =A5 SDA PINS =A4 VCC =3.3vLED 매트릭스:CLK =D11 CS =D10 DIN =D12 VCC =5v스위치:D2 - 메뉴 D3 - 날짜 / + D4 - 온도 / - D5 - 디스플레이 옵션ESP01 - 옵션 D7 - ESP01의 TX 핀 D6 - ESP01의 RX 핀 

변경할 수 있는 전역 변수는 다음과 같습니다.

// 전역 변수(기본값 변경 가능), [] 괄호 안의 숫자는 해당 값의 EEPROM 저장 위치입니다.// 시계 설정// [200] 기본 강도/밝기(0-15), 설정 가능 menubyte intensity =2;// [201] 기본 클럭 모드를 통해. 기본값 =0(basic_mode)byte clock_mode =0; // [206] 무작위 모드 정의 - 몇 시간마다 표시 유형을 변경합니다. 기본값 =0(꺼짐)bool random_mode =0; // [207] 글꼴 무작위 모드 정의 - 몇 시간마다 글꼴을 변경합니다. 1 =임의의 글꼴 onbool random_font_mode =0; // [208] 12시간 또는 24시간을 정의합니다. 0 =24시간. 1 =12시간 부울 암페어 =0; // 조명 설정// [202] 기본 디스플레이 켜기/끄기 모드, 조도 센서에서 사용합니다. 0 =정상, 1 =항상 켜짐, 2 - 항상 꺼짐, 3 - 5 =hour_off_1,2,3byte로 정의됨 display_mode =5; // [209] 기본 자동 조명 강도 설정 bool auto_intensity =1; // 이 세 가지는 시간 광 센서가 충분히 어두우면 디스플레이를 끌 수 있음을 정의합니다. 형식은 24시간이며, // 이 루틴은 8.00과 다음 값 중 하나 사이를 확인합니다.byte hour_off_1 =21; 바이트 hour_off_2 =22; byte hour_off_3 =23;// 글꼴 설정 - 글꼴 설정 메뉴를 통해 설정됩니다. 모든 기본값은 set_font_case() 루틴을 참조하십시오.:// [203] 기본 시계 큰 글꼴 stylebyte font_style =2; // [204] 기본 시계 큰 글꼴 오프셋 조정 바이트 font_offset =1; // [205] 기본 시계 큰 글꼴 열 조정바이트 font_cols =6; // DST NTP 및 UTC 설정// [210] DST 기능 활성화, 1 =활성화, 0 =비활성화bool dst_mode =1; // [211] NTP 기능 활성화, 1 =활성화, 0 =disablebool ntp_mode =1; // DS3231에 적용하기 전에 NTP 값을 조정하는 데 걸리는 시간(초), ESP01 데이터 바이트를 처리하는 데 수백 밀리초가 걸립니다. ntp_adjust =1; // [213] UTC 오프셋 조정, hoursint8_t utc_offset =0; // 매일 NTP/DST 동기화가 발생하는 시간, DST 모드를 사용하는 경우 오전 2시에 남겨두어야 합니다. modebyte ntp_dst_hour =2; // NTP 요청 재시도 횟수 1 =총 35초(ish), 값 1 - 9byte ntp_max_retry =3; // 데이터를 수신하지 않을 때 ntp()를 종료할 시점을 계산하는 데 사용됩니다. 값은 초 단위로 ntp_max_retrybyte를 곱합니다. ntp_timeout =45; // 전역 상수 - WiFi용 SSID 및 암호, SoftwareSerial을 통해 ESP01에 전달// 결합된 SSID 및 암호 길이는 72자를 초과할 수 없습니다.// SSID 이름의 길이, 예:SSID =MyWifi, ssid_len =6const byte ssid_len =8; // SSID 이름, 예:MyWificonst char ssid[] ="YourSSID"; // SSID 암호의 길이, 예:password =password, pass_len =8const byte pass_len =12; // SSID 비밀번호, 예:passwordconst char pass[] ="YourPassword";  
<섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

코드

Ratti3의 Github
https://github.com/Ratti3/miniclock

회로도

BH1750은 없었고 BME280과 같은 방식으로 연결됩니다.

제조공정

  1. 이슬람 기도 시간이 있는 Arduino 시계
  2. Bluetooth가 탑재된 Arduino로 LED 제어!
  3. 아날로그 스타일 LED POV 시계
  4. 뜨거운 접착제 LED 매트릭스 램프
  5. Cortana로 LED 제어
  6. 단일 LED 매트릭스 Arduino 플립 시계
  7. Arduino Uno로 LED 매트릭스 제어
  8. GPS 기반의 저렴하고 정확한 시계
  9. 스크롤링 텍스트가 있는 Arduino Bluetooth 제어 매트릭스
  10. DS1302 RTC가 있는 간단한 알람 시계