…生活與工作…個人的生活雜記….

Oregon氣象站 WMR928NX on QNAP 與加入WUnderground服務

萬物皆可淘…699RMB

請依說明書安裝.

1.下載RealTerm並安裝: https://realterm.sourceforge.io/index.html#downloads_Download

2.抓取Hex值:

連線WMR928NX,通訊設定 9600 N 8 1

因為要抓取的是HEX,所以在Display設定Hex[space]與Binary Sync Chars [0xFF 0xFF]

OK之後就可以開始抓值了,大致數值如下。

然後將Hex數值與機器所取得數值交互比較並記錄………….

其實,不用這麼麻煩……….

有人已經整理好了XD

http://www.hetweer.nu/design/wmr_interface.html

http://www.netsky.org/WMR/Protocol.htm

大致上整理一下,標準版的WMR928有提供室外溫濕度、室外雨量、室外風向風速、室內溫溼度與大氣壓。

他的通訊協定如下:


Data
Data Type
風速計雨量計戶外溫濕度計額外BTH主機時間
(分)
 Header1Bit 0-7FFFFFFFFFF

 Header2      
Bit 0-7FFFFFFFFFF

 3rd Byte
(Device type)
Bit 0-700
01
03
060E

 4th Byte     
Bit 0-3個位數
Bit 4預測風速超過預期雨量超過預期結露結露十位數

 

Bit 5平均風速超過範圍總雨量超過範圍
Bit 6低電壓低電壓低電壓低電壓
Bit 7昨日雨量超過範圍低電壓

 5thByte     
Bit 0-3個位數
風向
個位數
目前雨量
mm/hr
小數一位
溫度
°C
小數一位
溫度
°C
   Check-sum   
Bit 4-7十位數
風向
十位數
目前雨量
mm/hr
個位數溫度°C個位數溫度°C

 6thByte     
Bit 0-3百位數
風向
百位數
目前雨量
mm/hr
 十位數溫度°C 十位數溫度°C 
Bit 4-5小數一位
瞬間風力
m/sec
小數一位
總雨量
mm
百位數溫度°C百位數
溫度
°C
Bit 6溢位溢位
Bit 7符號符號

 7thByte     
Bit 0-3個位數
瞬間風力
m/sec
個位數
總雨量
mm
 個位數濕度 個位數
濕度
Bit 4-7十位數
瞬間風力
m/sec
十位數
總雨量
mm
 十位數
濕度
 十位數
濕度

 8thByte     
Bit 0-3小數一位
平均風力
m/sec
百位數
總雨量
mm
個位數
結露溫度
個位數
結露溫度
Bit 4-7個位數
平均風力
m/sec
千位數
總雨量
mm
十位數
結露溫度
十位數
結露溫度

 9thByte     
Bit 0-3十位數
平均風力
m/sec
個位數
昨日雨量
mm
Check-sum大氣壓
讀值
Bit 4 —十位數
昨日雨量
mm
Bit 5體感溫度無資料
Bit 6體感溫度溢位
Bit 7符號

 10thByte     
Bit 0個位數
體感溫度
°C
百位數
昨日雨量
mm
 ADCbit9 
Bit 1
Bit 2
Bit 3
Bit 4-7個位數
體感溫度
°C
千位數
昨日雨量
mm
天氣狀態

 11thByte     
Bit 0Check-sum   開機時間
個位數
Bit 1
Bit 2
Bit 3
Bit 4開機時間
十位數
小數一位數
海平面補償
mb
Bit 5
Bit 6
Bit 7

 12thByte     
Bit 0 開機時間
個位數
個位數
海平面補償
mb
Bit 1
Bit 2
Bit 3
Bit 4開機時間
十位數
十位數
海平面補償
mb
Bit 5
Bit 6
Bit 7

 13thByte
Bit 0開機時間
個位數
百位數
海平面補償
mb
Bit 1
Bit 2
Bit 3
Bit 4開機時間
十位數
千位數
海平面補償
mb
Bit 5
Bit 6
Bit 7

 14thByte     
Bit 0開機時間
個位數
Check-sum
Bit 1 
Bit 2 
Bit 3
Bit 4開機時間
十位數
Bit 5
Bit 6
Bit 7

 15thByte     
Bit 0開機時間
個位數
 
Bit 1
Bit 2
Bit 3
Bit 4開機時間
十位數
Bit 5
Bit 6
Bit 7

 16thByte     
Bit 0 Check-sum   
Bit 1
Bit 2
Bit 3
Bit 4
Bit 5
Bit 6
Bit 7

當然,要從頭開始寫也是可以,但是….人就是懶啊 直接到github找前人貢獻 https://github.com/jensmoes/wmr

只要make就可以給QNAP使用

make -k Makefile all

新安裝的linux必須新增以下套件

sudo apt-get install libxml2-utils curl gcc cpp make g++

執行方式:

./wx serial port output file

如: ./wx /dev/ttyUSB0 /var/www/mywmr.xml

接下來就是買一條FTDI的USB轉RS232線,PCHOME就有了。

插上USB後,查詢一下FTDI USB在QNAP的位置

dmesg | grep tty
[4163171.356811] usb 7-1: FTDI USB Serial Device converter now attached to ttyUSB0

再來是關閉YEC_UPS的偵測,這個功能會把USB孔鎖住,造成FTDI USB收不到資料

/sbin/daemon_mgr ups_yec stop "/sbin/ups_yec &"
rm /tmp/ups_temp
echo '#!/bin/sh' > /sbin/ups_yec

OK之後執行,應當可以收到資料顯示在console了。

如果必要,可以使用nohup命令將他卡在init

nohup ./wx /dev/ttyUSB0 /var/www/mywmr.xml &

**使用小型路由器作為gateway的方法 http://wiki.meteoplug.com/Getting_Started

如果要再把資料呈現在網路上,我這邊是使用WUnderGround的PWS(Personal Weather Station)服務。

申請還蠻簡單的,先註冊,再加入PWS(在網頁最下面)

當然,前面一個選項是跟你說哪邊可以買到好的氣象站,不過我們已經有了XD

接下來就是設定你的安裝位置,可以輸入地址或是拖紅點的方式。

按了下方的藍色ICON後,就會要你填一些基本資料(顯示名稱)、站台種類與安裝位置等等。

基本上就是按箭頭的填寫就行。

OK之後你就會拿到一個帳號與密碼,這個就是你要填寫在上傳的URL上面,這些站台資訊也可以在My PWS看到

要將資料post上去大概就是以下步驟:
附件在此下載:wunderground.zip

解壓xml_encode.tar並覆蓋xml_encode.cpp

重新make

解壓縮 wunderground.tar到wmr目錄(方便)

vi wunderground.sh

修改裡面的參數部分

相關的協定可以在
http://wiki.wunderground.com/index.php/PWS_-_Upload_Protocol
找到

增加crontab 15秒一次

* * * * * sleep 15;/share/wmr-master/wunderground.sh
* * * * * sleep 30;/share/wmr-master/wunderground.sh
* * * * * sleep 45;/share/wmr-master/wunderground.sh
/etc/init.d/crontab.sh restart

完成