SB Weather: Software for the WX-200 Electronic Weather Station

(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:

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)

  1. 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.
  2. 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.
  3. 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.
  4. 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!)
  5. 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:

  1. Install SBWeather as usual on the clients
  2. Execute SBWeather; You may get a "serial error", if so ignore it.
  3. 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.
  4. 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.
  5. The UDP Port of 59651 can usually be left alone, unless you changed it on the server.
  6. SBWeather will open a TCP connection approximately 5 seconds after you finish entering the IP address and UDP port.
  7. 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.

  1. Install SBWeather on your client computer(s)
  2. Execute SBWeather; You may get a "serial error", if so ignore it.
  3. 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.
  4. 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.
  5. 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.
  6. SBWeather will open a TCP connection approximately 5 seconds after you finish entering the IP address and TCP port.
  7. 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: