반응형

void callback(char* topic, byte* payload, unsigned int length) {
  Serial.print("Message arrived [");
  Serial.print(topic);
  Serial.print("] ");
  for (int i = 0; i < length; i++) {
    Serial.print((char)payload[i]);
  }
  Serial.println();
}

ESP8266에서 MQTT로 수신받은 데이터가 처리되는 지점의 코드이다!

subscribe한 topic는 char*이고 payload는 byte*이다!

특히 payload는 처리하기가 약간 상그럽다!

 

대부분 녹칸다의 예제에서는 위 코드를 아래와 같은 형태로 수정을해서 사용한다!

void callback(char* topic, byte* payload, unsigned int length) {

  String myTopic = topic;
  String myPayload = "";
  
  Serial.print("Message arrived [");
  Serial.print(myTopic);
  Serial.print("] ");
  for (int i = 0; i < length; i++) {
    myPayload += (char)payload[i];
  }
  Serial.println(myPayload);

  if(myPayload == "녹칸다"){
    //OK!!
  }
}

(위 예제가 사용/적용된 예제/#179-1)

https://bota.tistory.com/1418

반응형
Posted by 덕력킹
,