(c) Dr. Scott M Baker, smbaker@sb-software.com
Purpose:
This software is designed to operate with the WX-200 Weather
Station, as sold by Tandy/RadioShack. The WX-200 is a modestly
priced (Approx $300) computerized weather station that offers
temperature, humidy, barometer, wind, and rain features. It
supports an RS-232 interface for transmitting data to your
computer. The WX-200 is sold under other names, including the
Oregon Scientific WM-918.
SBWeather also supports the new Wireless Weather Stations:
WMR-918 and WMR-968. Support for the wireless stations is very
new, so please forward any bug reports.
Although RadioShack includes software with the WX-200, I
decided to offer my own in order to establish the following extra
features:
- Client/Server support. You can connect one machine
(server) to the WX-200 itself, and share the weather data
amongst many computers (clients) in your house connected
by a LAN.
- Better visual layout. This is a subjective matter, but I
like mine better! :)
- Elimination of extraneous programs -- the default
software includes a bunch of stuff for downloading
weather information from a pay service which really isn't
necessary for most users.
- Almanac: SBWeather will record weather data over time and
allow you to view it at your leisure
One of the goals behind SBWeather is to support remote weather
monitor stations, connected by telephone, cellular modem, or
other means. This is the main reason for using UDP/IP for network
connections, it scales fairly well and is supported by a diverse
range of hardware. You can actually connect a SBWeather server to
the Internet if you wish and allow anyone in the world to access
weather data.
SBWeather can also be used with the Linux wx200d. Wx200d is a
program for the Linux operating system that acts as a daemon to
support hooking up the weather station to your Linux computer.
[If you're a Linux user, then your probably know exactly what
this means -- don't worry about it if you're a Windows user]
Configuration: (standalone or server operation)
- The WX-200 Weather Station includes an RS-232 (serial)
port for connection to your computer. You'll need the
appropriate cable to connect the WX-200 to one of your
serial ports. Presumably you've already done this.
- Execute the SBWeather software by clicking on it's icon,
or whatever method you prefer. The software defaults to
COM1, and if this is not the correct port, you'll receive
one or more "serial port" errors. Ignore them
for now.
- If you need to correct the COM port, then click the
"setup" tab, move down to the "com
port" feld, and select the appropriate port.
- If you want this machine to act as a server for other
machines on a LAN, then click the "enable
server" checkbox. The UDP port of 59651 is probably
fine, although you can modify it if you want to (make
sure you know what you're doing before changing UDP
ports!)
- Everything should now be working. You can click on the
"graphical" tab to see the gauges.
Configuration: (clients)
SBWeather supports connecting multiple computers (clients) to
a main computer (server) so that you can share weather data
amongst multiple computers in your house. You'll need one machine
configured as the server, which will be connected to the WX-200.
On the server, you will need to check the "enable
server" checkbox.
You will need to know the server's IP address.
You can find this by looking in the Windows-95 control pane on
the serverl: Settings:Control_Panel:Networking. Look for an entry
in the list that looks something like "TCP_IP -->
Ethernet adapter". Click this and look at the "IP
Address" tab. This is a little bit complicated, and I'm
afraid I don't have the time to explain it fully. If someone
whose good at writing documentation (and knows a bit about Win95
networking) would like to write me up a section on it, I would be
very grateful.
Now, on to configuring the individual client computers:
- Install SBWeather as usual on the clients
- Execute SBWeather; You may get a "serial
error", if so ignore it.
- Click "settings" and select the radio button
under "WX-200 input" that says "Internet
(UDP/IP)". This will designate that you want to
communicate over your network rather than through a
serial port. This radio button is next to the "IP
Address" field.
- Under "IP Address", you will need to enter the
IP Address (or name) of the server computer. This is all
the stuff I told you about above. Enter it here.
- The UDP Port of 59651 can usually be left alone, unless
you changed it on the server.
- SBWeather will open a TCP connection approximately 5
seconds after you finish entering the IP address and UDP
port.
- SBWeather should begin communicating with the server
(assuming the server is running and the network is up).
You can check the "debug log" panel to see if
any debug messages are arriving.
[Linux Users] Configuration (wx200d Client)
SBWeather is able to operate as a client to a linux machine
that is running wx200d. We'll assume that you already have wx200d
installed on your Linux machine and operating properly.
- Install SBWeather on your client computer(s)
- Execute SBWeather; You may get a "serial
error", if so ignore it.
- Click "settings" and select the radio button
under "WX-200 input" that says "Internet
(TCP/IP)". This will designate that you want to
communicate over your network rather than through a
serial port. This radio button is next to the "IP
Address" field.
- Under "IP Address", you will need to enter the
IP Address (or name) of the server computer. This is all
the stuff I told you about above. Enter it here.
- The default TCP port of 9753 is what wx200d uses -- only
change it if you've modified your linux computer to use a
different port.
- SBWeather will open a TCP connection approximately 5
seconds after you finish entering the IP address and TCP
port.
- SBWeather should begin communicating with the server
(assuming the server is running and the network is up).
You can check the "debug log" panel to see if
any debug messages are arriving.
WMR-918/968 Support
The wireless weather stations, WMR-918 and WMR-968 differ
slightly from the wired versions (WX-200 and WM-918). For this
reason, there's a selection in the "setup" tab of
SBWeather to choose which weather station protocol to use.
Unfortunately, the wireless stations do not report as much
information to the computer as the wired stations do, so some of
SBWeather's fields will be blank -- these are primarilly the min
and max measure (min/max temp, min/max humid, etc).
Graphical Weather Instruments:
I've used some fairly decent ActiveX/OCX controls for all of
the gauges, their meaning should be fairly intuitive. Units can
be switched between english and metric on the setup page.
Network Information:
I use the UDP protocol for network communication. UDP is an
Internet protocol, similar to TCP, and normally runs on top of
IP. UDP is the "user datagram protocol" and supports
unreliable streams of fixed size messages. Upon receiving a data
packet from the WX-200, the server checks it's UDP port for any
incoming messages and blasts out a data packet to every one it
finds. This is a simple protocol and easy to implement. If you'd
like to know the format of any of the packets, just send me an
email at smbaker@sb-software.com.
I'm not interested in releasing source code at this time, so
don't ask. I will provide details on the UDP record structures
though, in case you want to be able to receive datagrams from the
server in one of your own programs.
SBWeather also supports the TCP/IP protocol for communicating
with the linux wx200d.
Voice Support:
SBWeather does include support for voice announcements of the
weather. I did this mainly just for fun and I'm not sure what
practical purpose it has. The format is designed after the
weather announcements at the local airport and if hooked up to an
aviation base station, it might actually make a useful automated
weather system. Of course, you would need the proper FCC license
to do this, and the WX200 is probably not legally accurate for
this purpose, but....
Anyhow, if anyone finds any useful purpose for the voice
support feature, I would love to hear it. You can record your own
voice into the announcements by placing wav files in the
SBWeather directory. The names of the .wav files are: one, two,
three, four, five, six, seven, eight, nine, ten, zero, wind, at,
temp, dew, space, press, barom, intro, alt, humid, and rain. For
example, if you record a file called "into.wav" and put
it into the SBWeather directory, then SBWeather will play that
sound rather than my default voice.
Registration:
This program is shareware, and if you continue to use it, I
would appreciate a registration payment. The payment is very
small, and serves to help me continue my efforts. I consider this
part of my series of "SB" utilities (SBNews, SBJV,
SBPop, etc) and one registration fee pays for all of them,
including all past, present, and future versions. For more
information, see my website at http://www.sb-software.com/curproj.html,
that is my current projects page and has details on all the
"SB" utilities.
Details on my registration policy may be found at http://www.sb-software.com/credit/register.html.
Contact Information:
You can find the SBWeather page at http://www.sb-software.com/sbweather
You can reach me by mail at:
Scott Baker
2241 W Labriego
Tucson, Az 85741
I can be reached via email at smbaker@sb-software.com,
and you can find my whole website at http://www.sb-software.com./
Keywords:
RadioShack Radio Shack Tandy WX-200 WX200 Weather Station
AccuWeather AccuData WM-918 WM918 WM-968 WM968 Oregon Scientific
Revision History:
- Version 1.0
- Version 1.1
- Graph samples limited to every 30 seconds
- Graphs sample buffer raised to 10,000
- Added data logging capabilities
- Version 1.2
-
- Fixed time zone in log file to reflect local time
- Added barometric pressure chart
- Added a place for registered users to input their
registration codes
- Added print command
- Fixed formatting problems in log file
- Print the correct representation of the UDP port.
This is a goof of mine, I intended to use 1001,
but put it in the wrong byte order (which is
59651). Now I'm going to have to live with it
since people have started running servers with
the old port number!
- Version 1.3
- Fixed low outdoor humidity reading
- Modified pressure chart to graph sealevel
pressure, not local
- Modified graphical barometer to display correct
reading, even if off-scale
- Added textual barometer reading
- Version 1.4
- Added option to turn off indoor gauges on
graphical display
- Added option to switch between degrees and
compass descrptions on wind speed gauge
- Made maximum wind speed gauge range selectable
- Added extra X-tics to pressure gauge
- Version 1.5
- Fixed pressure graph to hold >200 observations
- Added option to turn chart symbols on/off
- Reduced all charts to 2000 sample maximum
- Added auto-minimization algm to keep chart sample
counts low
- Switching english/metric units no longer clears
charts
- Added statistics page
- Chart data is saved between sessions
- Fixed inconsistent coloring of indoor/outdoor on
graphs
- Added color key to temp/humid graphs
- Added Wind Chill
- Added Dew Point
- Reshaped thermometers to include additional
information
- Added toggles to setup page to turn individual
charts on/off
- Version 1.6
- Added clear button to reset charts/statistics
- Added checkbox to synchronize chart X axis
panning
- Version 1.7
- Added almanac. Yeah!
- Fixed stats so restart won't include '0'
measurements
- Version 1.8
- Fixed almanac date off-by-one error
- Added export command to almanac
- Added almanac details
- Version 1.9
- Fixed reversal of high and low readings in
almanac details
- Added title to data logging
- Added periodic flushing of data log file to disk
- Version 2.0
- Fixed low almanac problem
- Recompiled with Borland C++ Builder 3.0
- Fixed problem with december slowing program down
to a crawl
- Fixed problem with almanac having wrong number of
days per month
- Version 2.1
- Changed barom and humid gauge backgrounds to
lighter shade
- Added voice announce mode
- Fixed problem with large wind speed on startup
- Added almanac clipboard export
- Added numeric panel
- Fixed resize/display problems on systems with
large fonts
- Version 2.2
- Fixed socket error on systems w/o networking
installed
- Fixed about box display in wrong position when
reg entered
- Updated email and web addresses
- Made web address click-able
- Fixed number of digits in text display
- Added sun and moon to text display
- Disabled maximize button
- Attemped to fix the NT serial problem (let me
know...)
- Added heat index to graphical display
- Added test of WX200 checksum to reject bad
packets
- Version 2.3
- Recompiled with new version of compiler
- Minor cosmetic bug fixes
- Version 2.4
- Fix spelling error in temperature tab
- Correct old @primenet address to new smbaker@sb-software.com
address
- Remove references to registration fee amount; for
current registration fee, see
http://www.sb-software.com/
- Fix program not exiting properly under new
versions of windows
- Version 2.5
- Added TCP/IP input mode: supports linux wx200d
daemon
- Connect opening is delayed 5 seconds after
changes to input mode, addresses, com port, etc
- added "opening input connect" dialog
- created "debug" tab and moved
status/client lists there
- Added option to choose wx-200/wm-918 (wired) or
wmr-918/968 (wireless)
- Fixed barom gauge sometimes freaking out
- Added "connect now" button to setup screen
- Support DNS names in addition to IP addresses
- Version 2.6
- Fixed win NT/2000/XP compatibility problems with serial port
- Verified WMR-968 support (I actually bought one of the things!)
- Added wait message
- Fixed heat index improperly computed
- Version 2.6
- Fix maximum heat button not working on text page for wm918/wx200 users
- Version 2.7
- Add checkboxes to treat wmr918/968 extra sensors as outdoor sensors
- Fixed miscalculation of BP for wmr918 type 6 indoor packets
- ver 2.7a: fix barom displayed on wmr918 only when outdoor packet received (it should be indoor)
- Version 2.8
- Make chart displays initialize when program loaded (instead of waiting
for first sample)
- Added <Year>, <Month>, <Day>, <Week> buttons to chart display
- Version 2.9
- Added autoload and taskbar options
- Version 3.1
- Added option to set rain gauge range