경험을 통해서

[RasberryPi][Linux][Xml] 기상청 날씨 프로그램 만들기 (1) 본문

Coding Diary/Linux(rasberry pi, ubuntu)

[RasberryPi][Linux][Xml] 기상청 날씨 프로그램 만들기 (1)

할일이 많다 2024. 12. 18. 13:44

아버지께서 농사일을 하고 계시는데 

옆에서 본 결과 날씨가 그르케 중요하더라

 

근데 전에 만들어 놓은게 있는데 (내가 응용프로그래머라...)

컴터에서 밖에 못써서... 곰곰히 생각해보니까

UI 없이 그냥 날씨 로그만 만드는 프로그램을 만들어보려고 한다..

 

이게 전 프로그램

뭔가 있어보이게 모자이크 처리

 

온도랑 습도 그리고 현재 날씨를 30분간격 서버에서 받아와서 뿌려주는 그런 프로그램인데

이게 PC를 켜야 쓸 수 있는 단점이....ㅠㅠㅠㅠ

 

 

물론 지역도 변경 되고 알람도 뜬다 (얼마나 유용한데 PC만 켜면..)

(그래서 난 일할 때 켜놓긴 하는데... 로그 쌓이라고...)

 

 

이제 서버에서 돌아가는 프로그램으로 만들어 보자

 

준비물 

라즈베리파이(외부접속 가능한..)

파이썬 기초 지식 (리눅스에서 돌아가는 게 c랑 파이썬 밖에...(내가 아는 언어중에)

 

기상청 api는 워낙 많이 나오니까 검색하시길~

<category>서울특별시 동작구 신대방제2동</category>
<title>동네예보(도표) : 서울특별시 동작구 신대방제2동 [X=59,Y=125]</title>


<description>
 <header>
  <tm>202412181100</tm>
  <ts>3</ts>
  <x>59</x>
  <y>125</y>
 </header>
 <body>
  <data seq="0">
   <hour>15</hour>
   <day>0</day>
   <temp>-0.0</temp>
   <tmx>0.0</tmx>
   <tmn>-999.0</tmn>
   <sky>1</sky>
   <pty>0</pty>
   <wfKor>맑음</wfKor>
   <wfEn>Clear</wfEn>
   <pop>0</pop>
   <r12>0.0</r12>
   <s12>0.0</s12>
   <ws>3.0</ws>
   <wd>7</wd>
   <wdKor>북서</wdKor>
   <wdEn>NW</wdEn>
   <reh>40</reh>
   <r06>0.0</r06>
   <s06>0.0</s06>
  </data>



...


  <data seq="19">
   <hour>24</hour>
   <day>2</day>
   <temp>1.0</temp>
   <tmx>4.0</tmx>
   <tmn>-2.0</tmn>
   <sky>4</sky>
   <pty>0</pty>
   <wfKor>흐림</wfKor>
   <wfEn>Cloudy</wfEn>
   <pop>30</pop>
   <r12>0.0</r12>
   <s12>0.0</s12>
   <ws>1.4000000000000001</ws>
   <wd>3</wd>
   <wdKor>남동</wdKor>
   <wdEn>SE</wdEn>
   <reh>90</reh>
   <r06>0.0</r06>
   <s06>0.0</s06>
  </data>
 </body>
</description>
</item>
</channel>
</rss>

 

 

분석 아닌 분석을 해보자면

 

 <data seq="19">
   <hour>24</hour>
   <day>2</day>
   <temp>1.0</temp>
   <tmx>4.0</tmx>
   <tmn>-2.0</tmn>
   <sky>4</sky>
   <pty>0</pty>
   <wfKor>흐림</wfKor>
   <wfEn>Cloudy</wfEn>
   <pop>30</pop>
   <r12>0.0</r12>
   <s12>0.0</s12>
   <ws>1.4000000000000001</ws>
   <wd>3</wd>
   <wdKor>남동</wdKor>
   <wdEn>SE</wdEn>
   <reh>90</reh>
   <r06>0.0</r06>
   <s06>0.0</s06>

 

<hour> 노드 부분에서 시간을 알 수 있다

시간은 위에 보면 측정 시간이 있다 그 시간을 기준으로 24임을 알 수 있다

이제부터 요약본:

hour = 시간

day = 일자 (측정 시간에서 몇일이 지났는가..)

temp = 온도

sky = 날씨(이 부분은 사용 설명서에 표기 되어 있다 )

wfkor = 날씨(오 바로 나온다 흐림이다 4번은)

wfEng = 날씨(영어버전)

 

...

나머지는 풍속 풍향 등 이런건데 필요 없으니 패스~

 

이제 만들러 가보자!!!

 

2탄에서~