마음 속 하늘은 항상 맑음~!

기상 예보 스테이션. 본문

기타

기상 예보 스테이션.

파르셀수스 2019. 9. 29. 14:26

 

 대충 포맥스로 글루건을 이용해서 상자를 만들고 집어넣었다. 8266+0.96인지 I2C를 연결하기만 했고, 기상 데이터 API는 OpenWeatherMap을 사용했다. 3시간 마다 예보를 보여주는데, 무료 API 제한이라 어쩔 수 없다.

 

 데이터를 받아와서 뿌려주는데 아이콘이 없어서 도안을 찾고 다시 그리느라 좀 힘들었다.

 이미지 로딩 문제가 있었는데, 이게 GIMP로 만들어진 XBM(데이터 형식의 문자열 파일)은 제대로 지원하지 않는데 약간의 트윅이 필요한데 스크립트에서 반전해주는 것으로 해결할 수 있었다.

 5분마다 상태를 업데이트하고 맨 상단에는 타이머 이벤트로 시간이 업데이트 되도록 했다.

 nodemcu 펌웨어로 만들었는데 최신 펌웨어에서는 타이머 이벤트를 이제 정해진 숫자로 지정할 수 없고, 와이파이를 설정하는 enduser setup이 제대로 동작하지 않아서 그냥 SSID/Password를 넣는 방법으로 바꿨다.

 

 인터넷 연결 부분은 아직 좀 더 손봐야 하는데 nodemcu의 enduser setup의 문제가 해결되야 다시금 손댈 것 같다.

 

 u8g2라이브러리의 경우에는 설정에서 ssd1306_128x64_noname으로 설정하면 되었다. 단, 주의할 점이 SPI는 이용하지 않는다며 펌웨어 빌드 설정에서 SPI 화면 설정을 잘못 설정했을 경우에는 메모리 버퍼를 작은 화면에 맞추게 되어서 일부 화면 부분이 안보이는 경우도 있다.

 그리고 u8g2.sendBuffer()를 실행하지 않으면 몇몇 u8g2 기능은 내용을 직접 화면에 띄우지 않는 것도 유의해야 한다.

 

 하루정도 돌렸는데 큰 문제는 나타나지 않았고, 지금도 잘 돌아가고 있다.

 단, 3시간 간격 업데이트라서 정확도는 떨어진다.

 날씨가 이상한지 기온과 습도도 틀리고 날씨는 그냥 대충 맞는 것 같다.

 

 측정기가 맞다면 피크 전력소비는 1.1W인 것 같고, 일반적인 경우에는 0W로 표시된다.

 

 (10/16) 간단한 소스코드는 다음과 같다. WiFi, 위도 경도, 그리고 openweathermap의 API appid가 필요하다.

 공개적으로 appid를 사용할 수 없는 이유는 API call의 제한이 걸려있기 때문이다.

 간단하게 무료로 제공되는 API를 이용해서 사용할 수 있다.

 

8266_weather_station-master.zip
0.83MB

'기타' 카테고리의 다른 글

간단한 NCV 디텍터.  (0) 2019.11.24
TTP223 터치 스위치 회로.  (0) 2019.11.02
간단한 통신사 웹리다이렉션 방지 확장 프로그램.  (0) 2019.09.10
아두이노 ADC값 측정기.  (0) 2019.09.08
AN8008 도착.  (0) 2019.07.29