아두이노 기상청 만들기 / RSS 날씨 정보 가져오기 (XML) / ESP8266 & MAX7219


안녕하세요, 디바이스마트 입니다 :)


이번 시간엔 아두이노(ESP8266)를 이용해서
기상청 시스템을 만들어 볼려 합니다.

어떻게 만들 것이냐 !

기상청 RSS 데이터를 WIFI로 접속해 특정 지역의 날씨 정보를 받아옵니다. 이후
LED 도트 매트릭스 (MAX7219)를 통해 순차적으로 출력 하는 방식으로 구현합니다.


「준비물」

<키트>


 ▲ 아두이노(ESP-12E) 구독자 카운터 키트 (링크)
(사용)


<단품>
    

 ▲ NodeMCU V3 ESP-12E 와이파이 개발보드 CH340 (링크)


 ▲ MAX7219 아두이노 8X64 도트 매트릭스 모듈 (링크)



▲ USB 5핀 케이블 (링크)





「아두이노 기상청 만들기」

1. 보드매니저 및 라이브러리 설치

ESP8266 설치

아두이노IDE > 파일 > 환경설정 > 추가적인 보드 매니저 URLs
https://arduino.esp8266.com/stable/package_esp8266com_index.json
입력 후 확인



툴 > 보드 > 보드매니저 
esp8266 설치




라이브러리 설치

NTPClient
MD_Parola.h
MD_MAX72xx.h

아두이노IDE > 툴 > 라이브러리 관리
위 텍스트 검색 후 다운



2. 기상청 RSS 접속 및 URL 확인

기상청 홈페이지 접속 (링크)


RSS 접속 (링크)


각각 시도 / 구군 / 읍면동 선택 한 이후 RSS 버튼을 누르고, 
Enter키를 누르면 RSS xml로 접속 됩니다.

(위 예시는 인천광역시 주안 5동의 날씨 정보를 출력하기 위한 예시 입니다.)


RSS xml 접속 
인천 주안 - (링크) 
https://www.kma.go.kr/wid/queryDFSRSS.jsp?zone=2817766000

해당 링크중 /wid 부터 코드 작성에 필요하기 때문에 기억해주셔야 합니다.

RSS 데이터 링크에 접속하시면 위와 같이 XML형식코드가 나열 되어 있습니다.
많은 날씨 정보 중 <data seq="0"> 안에 있는 데이터를 아두이노(ESP)로 받아올 수 있습니다.

<temp> 온도 </temp>
<wfKor> 날씨(한글) </wfKor>
<wfEn> 날씨(영어) </wfEn>
<reh> 습도 </reh>

위 4가지 데이터를 아두이노(ESP)를 통해 받아와 기상청을 만들어 보도록 하겠습니다.



3. 코드 업로드

날씨 정보 시리얼 모니터 출력

아두이노 코드 - (시리얼 출력 코드)

작성 필수
//---------------------------------------------
const char* ssid = "*********"; // WIFI ID
const char* password = "*********"; //WIFI PASSWORD
const String url = "/wid/queryDFSRSS.jsp?zone=2817766000"; // 지역 주소
String area = "********"; // 지역 (영어만 가능)
//---------------------------------------------


ex) 인천 주안
(https://www.kma.go.kr/wid/queryDFSRSS.jsp?zone=2817766000) - RSS 주소(RSS 접속 참조)

지역 주소 : /wid/queryDFSRSS.jsp?zone=2817766000
지역 : Incheon Juan 

위 코드는 RSS 데이터 정보를 시리얼 모니터로 출력하는 예제 코드입니다.
별도 모듈과 연결은 필요 없으며, 보드(ESP-12E)만 사용하여 나타낼 수 있습니다.






날씨 정보 LED 도트 매트릭스 출력 (MAX7219)⭐

배선도&회로도


아두이노 코드 - (LED 매트릭스 출력 코드)

작성 필수
//---------------------------------------------
const char* ssid = "*********"; // WIFI ID
const char* password = "*********"; //WIFI PASSWORD
const String url = "/wid/queryDFSRSS.jsp?zone=2817766000"; // 지역 주소
String area = "********"; // 지역 (영어만 가능)
//---------------------------------------------

ex) 인천 주안
(https://www.kma.go.kr/wid/queryDFSRSS.jsp?zone=2817766000) - RSS 주소(RSS 접속 참조)

지역 주소 : /wid/queryDFSRSS.jsp?zone=2817766000
지역 : Incheon Juan 

위 코드는 RSS 날씨 정보를 LED 도트 매트릭스(MAX7219)를 통해
순차적으로 출력하는 코드 입니다.




지금 까지 아두이노를 통해 기상청을 만드는 과정 이였습니다~ 





<상품정보>

 아두이노(ESP-12E) 구독자 카운터 키트 (링크)

 - NodeMCU V3 ESP-12E 와이파이 개발보드 CH340 (링크)
 - MAX7219 아두이노 8X64 도트 매트릭스 모듈 (링크)
- USB 5핀 케이블 (링크)

댓글 쓰기

0 댓글