메이킹 일지 (진행 중)/Twitch 방송 알림 장치

Twitch 방송 알림 장치 - 6. 다중 방송 확인

  • -

https://bker001.tistory.com/429

 

Twitch 방송 알림 장치 - 5. 일러스트 활용 작업 + 케이스 작업

https://bker001.tistory.com/413 Twitch 방송 알림 장치 - 4. Esp8266 인식 불가 & 종류 변경 & 일러스트 https://bker001.tistory.com/408 bker001.tistory.com 저번에 이어 작업입니다. Esp32로 잘되는거를 확인하고 이제 더이

bker001.tistory.com

 

 

 

위에서 거의 완성되어오던 장치이지만, 아무래도 방송을 하나만 감지할 수 있기에 조금은 범용성이 떨어진다고 생각해왔습니다. 그래서 예전부터 코드를 수정해봤는데 이번에 조금 진척이 있었습니다..!

 

 

 

 

 

저는 이런식으로 확인할 수 있으면 좋겠다고 생각해왔습니다

 

 

//여기서부터 2
    Serial.print("Connecting to: ");
    Serial.println(HOST);
  
    if (!client.connect(HOST, 443)) {
      Serial.println("Connection error");
      delay(REFRESH * 1000);
      return;
    }
    client.print(String("GET ") + PATH + "?user_login=" + USERNAME2 + " HTTP/1.1\r\n" +
                 "Client-Id: " + CLIENT_ID + "\r\n" +
                 "Host: " + HOST + "\r\n" +
                 "Authorization: Bearer " + bearer + "\r\n" +
                 "Connection: close\r\n\r\n");

    int32_t timeout2 = millis() + 1000;
    while (client.available() == 0) { 
      if (timeout - millis() < 0) { 
        Serial.println(">>> Client Timeout !"); 
        client.stop(); 
        return;
      }
    }
    String resp2 = client.readString();
    Serial.print("Response: ");
    Serial.println(resp2);

    // If authentication failed, reauthenticate
    if (resp2.indexOf("\"error\":") != -1) {
      if (resp2.indexOf("\"Unauthorized\"") != -1) {
        if(resp2.indexOf("401") != -1) {
          Serial.println("Refreshing login token");
          get_bearer();
          return;
        }
      }
    }

    i2sStreaming = false;

    // If the string "type": is in the stream, then assume stream is live
    if (resp2.indexOf("\"type\":") != -1) {
      i2sStreaming = true;
    }

    Serial.print("Streaming status: "); Serial.println(i2sStreaming);
    if (i2sStreaming) {
      digitalWrite(REL, HIGH);
      delay(5000);
       Serial.println("On");
      digitalWrite(REL, LOW);
      delay(2000);
      } 
    else {
    }
    Serial.println("Disconnecting from server.");
    client.stop();
  }

 

 

기존에 resp를 resp2로 바꾸고, isstreaming과 i2sstreaming으로 바꾸면서 기존 코드에 추가만 했습니다

 

결과는 1.5초 간격으로 확인시켜줄 수 있게 잘 나왔습니다. 이대로 LED등만 잘 추가해서 코드로 만들면 충분히 방송을 다중으로 확인가능할 것으로 보입니다

 

 

 

 

일단 기존 프로젝트를 전부 완성시키긴했으나 어떻게 더 발전시킬 수 있을까해서 LCD 추가해서 여러 기능을 추가시켜보려고 합니다

반응형
Contents

포스팅 주소를 복사했습니다!

이 글이 도움이 되었다면 추천 부탁드립니다!