• 베리게러
    접속 : 4129   Lv. 52

    Category

    Profile

    Counter

    • 오늘 : 69 명
    • 전체 : 82935 명
    • Mypi Ver. 0.3.1 β
    [호작질] nodemcu wifi clock (0) 2021/12/19 PM 03:03


    img/21/12/19/17dd148abf0a2bb8.png

    내 네이버 블로그에 ino 파일 있음 >> https://blog.naver.com/oreo9635/222237756521

    https://download.blog.naver.com/close/50c54cfceeb5b46844aac6f3cb2856288fdc24cc8f/fLJ6iipk6pI4iS49aESLTwPxzeASxuo0Di1rloGueQJc2gtYOgToZWKj7o6g2wkTPOHcLhDZdDwEd-53_o48cKJo_J97fuTn1jH5iCO8S_8/ESP8266_NTP_CLOCK_1.ino


    #include

    #include

    #include

    #include //

    #define CLK D2 // Define the connections pins:

    #define DIO D3

    TM1637Display display = TM1637Display(CLK, DIO); // Create display object of type TM1637Display:

    int ldr = A0;

    int ldr_value = 0; //황화카드뮴 값 초기화

    const char *ssid = "TAEYANG";

    const char *password = "96tjr35hsh0!";

    const long utcOffsetInSeconds = 3600*9; //타임존

    // Define NTP Client to get time

    WiFiUDP ntpUDP;

    NTPClient timeClient(ntpUDP, "pool.ntp.org", utcOffsetInSeconds, 3600000);

    // 7segment abcdefg와 dp 세팅

    int led[8] = {14,15,10,13,1,12,5,3};//2,16을 넣으면 led가 켜짐. 핀 수가 모자라서 dp는 더미로 RX(3)를 넣음

    byte number[10][8] =

    {

    {0,1,0,0,1,0,0,1}, // S sunday

    {0,1,0,1,0,1,0,1}, // M monday

    {1,1,1,0,0,0,0,1}, // t tuesday

    {1,0,1,0,1,0,0,1}, // W wednsday

    {1,1,1,1,0,1,0,1}, // r thursday

    {0,1,1,1,0,0,0,1}, // F friday

    {0,0,0,1,0,0,0,1}, // A saterday

    {1,1,1,1,1,1,1,0}, // dot

    };

    uint8_t blank[] = { 0x00, 0x00, 0x00, 0x00 }; //tm1637모듈 리셋

    void setup(){

    Serial.begin(115200);

    for(int i =0; i<8; i++){

    pinMode(led[i],OUTPUT);

    } //핀세팅

    display.clear(); // Clear the display:

    WiFi.begin(ssid, password);

    while ( WiFi.status() != WL_CONNECTED ) {

    delay ( 500 );

    Serial.print ( "." );

    }

    timeClient.begin();

    timeClient.update();

    }

    void loop() {

    int A,B,C,D;

    A = timeClient.getHours() * 100 + timeClient.getMinutes(); //A는 4자리이고, 앞의 두 자리는 시, 뒤의 두 자리는 분

    B = timeClient.getSeconds();

    C = timeClient.getDay();

    D = A+B;

    if(D==0){

    display.setSegments(blank); //00시에 tm1637모듈 리셋

    delay(1500);

    }

    if(A<100) { //00시 xx분일 때

    if((B % 2) == 0) //1초에 1번씩 도트를 깜박이게.

    {

    display.showNumberDecEx(A, 0b10000000 , true, 3, 1); //(숫자, 도트, true면 앞자리 0일 때 살림, 3자리수 취급, 맨앞부분 1자리 띄울게요)

    }

    else

    {

    display.showNumberDecEx(A, 0b00000000 , true, 3, 1);

    }

    }

    else // 00시 xx분이 아닐 때

    {

    if(A > 1259) A=A-1200; //12시간제로 세팅(13시부터 아래 꼴임)

    if((B % 2) == 0)

    {

    display.showNumberDecEx(A, 0b01000000 , false, 4, 0); //(숫자, 도트, false로 해야 앞부분이 빔, 4자리수 취급, 맨앞부분부터 채울게요)

    }

    else

    {

    display.showNumberDecEx(A, 0b00000000 , false, 4, 0);

    }

    }

    switch(C)

    {

    case 0: {//Sunday 만들기

    int i=0;

    for(int j=0; j<8; j++)

    {

    digitalWrite(led[j], number[i][j]);

    }

    break;}

    case 1: {//Monday 만들기

    int i=1;

    for(int j=0; j<8; j++)

    {

    digitalWrite(led[j], number[i][j]);

    }

    break;}

    case 2: {//tuesday 만들기

    int i=2;

    for(int j=0; j<8; j++)

    {

    digitalWrite(led[j], number[i][j]);

    }

    break;}

    case 3: {//Wednesday 만들기

    int i=3;

    for(int j=0; j<8; j++)

    {

    digitalWrite(led[j], number[i][j]);

    }

    break;}

    case 4: {//thuRsday 만들기

    int i=4;

    for(int j=0; j<8; j++)

    {

    digitalWrite(led[j], number[i][j]);

    }

    break;}

    case 5: {//Friday 만들기

    int i=5;

    for(int j=0; j<8; j++)

    {

    digitalWrite(led[j], number[i][j]);

    }

    break;}

    default: //Saterday 만들기

    int i=6;

    for(int j=0; j<8; j++)

    {

    digitalWrite(led[j], number[i][j]);

    }

    break;

    }

    // 밝기 자동 조절 //

    ldr_value = analogRead(ldr); //cds(황화카드뮴)=ldr 값 읽어오기

    if (ldr_value > 300 ) {

    display.setBrightness(249); //248-255. 총 8단계

    }

    else {

    display.setBrightness(255); //248-255

    }

    // 밝기 자동 조절 끝 //

    }


    신고

     
    X