Weather Station

NAS 氣象站

2016-08-14-15-08-30

有想過把自己 NAS 變成氣象站嗎?

其實很容易,你只需要透過 NAS 本身內建的 Docker (or Container Station),就可以達成自己在家架設一台專業的氣象站。

首先,需要準備:

  1. Weather Station WH2080 + 顯示面板 + USB
  2. NAS (需要支援 docker)
  3. Weather Station image for docker
  4. MQTT Server

如下圖,將 WH2080 的顯示面板透過 USB 插入到 NAS 上,透過 NAS 將氣象站資訊推送到 MQTT,最後透過 Node-Red 處理相關的資料後,就可以呈現氣象站的資料; 如果要儲存到資料庫或是雲端服務,再透過 Node-Red 處理資料並上傳或儲存到雲端或資料庫裡。

qnap_weather_station

 

將氣象站顯示面板連結到 NAS 後,直接建立新的 docker image,記得把 “your-mqtt-server” 換成自己架設好的 MQTT Server 喔!

# docker run -t -i --cap-add=SYS_ADMIN --privileged --security-opt seccomp:unconfined -v /dev/bus/usb:/dev/bus/usb jarvischung/weather-station node /root/weather.js your-mqtt-server

此 docker image 基本上已經自動設置好 USB 與 氣象站的資訊,每分鐘會透過USB的方式,將氣象站資料取得,並註冊 “jarvis-weather-station” 到發送到 MQTT Server,接下來可以透過 Node-Red MQTT node 註冊 “jarvis-weather-station” 後,就可以取得氣象站資料。

目前氣象站的 JSON 格式:

{
'rf.delay': 27,
'rf.hum_in': 43,
'rf.temp_in': 28.1,
'rf.hum_out': 51,
'rf.temp_out': 24.1,
'rf.abs_pressure': 1017.5,
'rf.wind_ave': 0,
'rf.wind_gust': 0,
'rf.wind_dir': 2880,
'rf.rain': 1687.2,
'rf.status': {
b1: false,
b2: false,
b3: false,
b4: false,
b5: false,
lost_sensor_contact: false,
rain_overflow: false,
b8: false
}
}

下圖是 Node-Red 目前處理的方式,處理的流程為:

MQTT –> Parsing JSON –> Node-Red Dashboard

screen_shot_2016-11-09_at_2_14_30_pm

如需要上面Node-Red Flow的檔案,可以直接在此下載(不含MQTT Server及DB的相關Flow)。

Node-Red Dashboard 呈現的畫面(當資料密度太細時,不太建議用 Node-Red Dashboard,會處理的非常緩慢)

pasted_image_09_11_2016__2_29_pm

 

有沒有覺得將氣象站連接 NAS 很簡單呢?!

之後會再介紹如何將資訊站的資料上傳到 WU Weather,為 open data 盡一點心力!

下圖是我目前將氣象站的資料分享到 WU Weather 上,名稱是 IMIAOLI3

pasted_image_09_11_2016__2_47_pm