萬物皆可淘…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 | 主機時間 (分) | ||
Header1 | Bit 0-7 | FF | FF | FF | FF | FF |
Header2 | Bit 0-7 | FF | FF | FF | FF | FF |
3rd Byte (Device type) | Bit 0-7 | 00 | 01 | 03 | 06 | 0E |
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 0 | Check-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
完成