https://bker001.tistory.com/429
위에서 거의 완성되어오던 장치이지만, 아무래도 방송을 하나만 감지할 수 있기에 조금은 범용성이 떨어진다고 생각해왔습니다. 그래서 예전부터 코드를 수정해봤는데 이번에 조금 진척이 있었습니다..!
저는 이런식으로 확인할 수 있으면 좋겠다고 생각해왔습니다
//여기서부터 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 추가해서 여러 기능을 추가시켜보려고 합니다