Weather Station

I’ve always been interested in being able to measure weather data – you know, try to find that perfect week statistically for vacation in the Pacific Northwest (ha! there is NO perfect week). After pricing the various stations on the market I found they were pretty much beyond my means for home and hobby use.  Fortunately I acquired a weather station made by MetOne Instruments that was going to be tossed (!).   This project has been a great vehicle for learning programming using different languages.  I originally wanted to learn about assembly language programming on the 8051 microcontroller, and I thought developing weather station software based this chip in assembly language would be a fun learning project. Well, it was fun for a while…until I realized the scope of the project. I got the 8051 to address a 1-wire device, and  I got the 1-wire search algorithm to work also. But then doing all the other stuff in assembly would be NUTS!

To make a long story short(er), I tried 8051 assembly language (too low level) and Java Micro Edition on a Raspberry Pi.  I gave up on J2ME since many of the J2ME evangelists left Oracle and there was no support.  Now I’m learning about the ultra-cheap ESP8266/8255/ESP32 chips, NODE-Red, and other platforms but I hate to just toss all my J2ME work that I’ve already done but may have to do that. <sigh>  I still might use some of the Maxim/Dallas 1-wire devices, however, but using Espressif devices.

Possible 1-wire sensors for the weather station, type, and output:

MeasurementDeviceDevice NameWhatScalar
Windspeed1-wireDS2423countinteger
Wind Direction1-wireDS2438voltagedouble
Humidity1-wireDS2438voltagedouble
Precipitation1-wireDS2423countinteger
Outdoor temp1-wireDS18S20tempdouble
Indoor temp1-wireDS18S20tempdouble
BarometerI2CBMP180Hg/Pascalsdouble