The weather conditions shown are those at the author's house, located in Concord, CA. For a detailed description of the methods used to collect and serve this information to you, refer to the diagram below and click on the appropriate subsection.

 

Weather Station

The weather station is a Heath (Heathkit) model ID-5001 Advanced Weather Computer, circa 1988.

The ID-5001 comes standard with the following sensors:

  • Outdoor Temperature- T
  • Indoor Temperature- t
  • Wind Speed and Direction- W
  • Barometric Pressure- b

It also offers the following options, all of which are in use at this installation:

  • Outdoor Humidity Sensor- H
  • Indoor Humidity Sensor- h
  • Rain Gauge- R
  • RS-232 Serial Communication Port- C

In addition to the simple data measurements listed above, the station is also capable of advanced functions such as rate of change of measurements, readings from 24 hours ago, display of data in multiple units, and others.

The station collects the data from the sensors, and transmits the data to the Data Collection PC via RS-232 at 9600 baud. The station can also receive commands from the Data Collection PC for things such as setting its internal clock, resetting measurements, clearing the internal alarm, etc.

Unfortunately the Heath company no longer manufactures electronic kits. This makes getting replacement parts difficult. At the present time, the indoor humidity sensor at this installation is defective, and its reading should be disregarded. I hope to track down a replacement part for the defective sensor soon.

Top

Data Collection PC

The Data Collection PC is a standard pc clone running Microsoft Windows. A custom application - Ice Station Zenith - written by the author using Delphi, runs full time on the pc and performs many functions.

Ice Station Zenith communicates with the station via RS-232, receiving real-time data measurements and sending various commands as needed. The program takes advantage of Delphi's form inheritance so that it can interface to different brands of weather stations with minimal recoding. This is an important feature since Heath no longer supports the weather station currently in use, which will eventually need to be replaced.

All data values are periodically stored in an internal database for archival and querying purposes.

In addition to the current weather data measurements obtained from the station, the program also calculates three derived entities. Dew Point and Heat Index are calculated based on the current temperature and the relative humidity, and Wind Chill is calculated based on current temperature and wind speed. For all displayed values, the user can select from among all common measurement units from the Preferences menu.

As can be seen in the screen shot, several other types of historical data are also displayed on the main screen, including the day's high and low for temperature and humidity, 24 hr change for several of the measurements, and all-time record measurements for some of the measurements, among others. A planned feature of the program, though not yet complete, is the ability to query the stored data for whatever information the user might want. For instance, the user could request the average high or low temperatures for a given month, or the average rainfall in a given month.

Finally, the outdoor temperature, barometric pressure, and wind speed measurements for each of the last 24 hours are shown in graph form. This gives a quick visual indication of the values and rates of change of these measurements over the last 24 hours. These graphs are implemented using Delphi's support for custom components. The graphs are highly generic- they can represent any kind of numerical data with any number of elements, making them reusable in other applications which display historical data.

To produce a web page that can be displayed by a visitor's browser, the program reads in a web page template in XML form, parses the document, and substitutes the current weather data for custom tags in the template. It then uses FTP to send the parsed document to the web server. Since the template is in XML form, it's appearance can easily be changed with any text editor or html editor. No modifications to the Delphi program are required! The template can also be extended (one of XML's primary features) with the addition of new tags. This would require only minor modifications to the Delphi program to support the new tags.

Top

Linux Web Server

The web server is a PIII-166 box running Red Hat Linux 7.1 and Apache web server software. It also acts as an internal FTP server, allowing Ice Station Zenith to upload updated web pages with the current weather conditions. In addition to the weather data, the web server also serves up all pages on the BerrisBob Home Page to visitors via that wonderful thing known as the Internet.

Top

Visitor's Browser

This is your browser running on your machine in your home or office. What you see on the main weather page is the result of the parsed XML template by the Ice Station Zenith application. The resulting HTML code has a bit of JavaScript in it that automatically refreshes itself every 60 seconds so that it is always up to date.

Eventually I plan to add some forms to the page that will allow the visitor to query the historical weather data that has been collected. Stay tuned.

Top