현재 이 블로그는 방치되어있습니다. 그리고 마지막 업데이트가 안되있어서...안될껍니다. 아마도 댓글에서 보시면 알겠지만.... 공공데이터쪽 api가 아마 달라졌을 꺼같은데...저도 이거 손 놓은지 오래라서...확인해야 합니다. ㅡ_ㅡ;;

23년 말에는 이 블로그를 다 폐쇄하고 다시 정리 해서 새로운 곳에서 해당 정보가 검색되도록 할 예정입니다. (그리고 24년에.......)

그나마 https://www.youtube.com/@impoto 유투브는 가끔은 로그인을 하니까 이쪽 커뮤니티나 댓글로 연락을 주시면...조금은 더 빠르게...(라고 하고 방치한 댓글이..쿨럭..... 하여간... 최근엔 또 공부하고 있으니까....지키지 못할 약속을 또...)

 

#include <ESP8266WiFi.h> // ESP 8266 와이파이 라이브러리
#include <ESP8266HTTPClient.h> // HTTP 클라이언트


String url = "http://openapi.airkorea.or.kr/openapi/services/rest/ArpltnInforInqireSvc/getMsrstnAcctoRltmMesureDnsty?serviceKey=당신의 API키값&numOfRows=1&pageNo=1&stationName=%EC%84%9D%EB%B0%94%EC%9C%84&dataTerm=DAILY&ver=1.3";

void setup()
{
  // 시리얼 세팅
  Serial.begin(115200);
  Serial.println();

  // 와이파이 접속
  WiFi.begin("공유이이름", "비밀번호를 넣으세요"); // 공유기 이름과 비밀번호

  Serial.print("Connecting");
  while (WiFi.status() != WL_CONNECTED) // 와이파이 접속하는 동안 "." 출력
  {
    delay(500);
    Serial.print(".");
  }
  Serial.println();
}

void loop() {
  if (WiFi.status() == WL_CONNECTED) // 와이파이가 접속되어 있는 경우
  {
    WiFiClient client; // 와이파이 클라이언트 객체
    HTTPClient http; // HTTP 클라이언트 객체

    if (http.begin(client, url)) {  // HTTP
      // 서버에 연결하고 HTTP 헤더 전송
      int httpCode = http.GET();

      // httpCode 가 음수라면 에러
      if (httpCode > 0) { // 에러가 없는 경우
        if (httpCode == HTTP_CODE_OK || httpCode == HTTP_CODE_MOVED_PERMANENTLY) {
          String payload = http.getString(); // 받은 XML 데이터를 String에 저장
          
          /////////////////////////////////////////////////////////////////////////
          int start_point = payload.indexOf("<pm10Value>");
          int end_point = payload.indexOf("</pm10Value>");
          String pm10=payload.substring(start_point+11,end_point); //더하기11은 <pm10Value>글자수
          Serial.println("PM10 : " + pm10);
          ////////////////////////////////////////////////////////////////////////
        }
      } else {
        Serial.printf("[HTTP] GET... 실패, 에러코드: %s\n", http.errorToString(httpCode).c_str());
      }
      http.end();
    } else {
      Serial.printf("[HTTP] 접속 불가\n");
    }
    delay(600000);
  }
}

//////////////이부분이 추가되었습니다./////////////

PM10 : 40

 그래서 시리얼 부분에 보이는 모습은 PM수치만 나옵니다.

 

이전 문서와 같이보세요

https://jpal.tistory.com/440

+ Recent posts