Weather Station

Ever since I was a kid, I’ve been fascinated by the weather.  For a LONG time now, I’ve been working on a weather station to be able to measure weather data.   After pricing the various commercial weather stations, e,g. Davis, I found they were pretty much beyond my means for home and hobby use.  Fortunately, many moons ago, 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 bit-bang an I/O pin to get the 1-wire search algorithm to work for finding 1-wire devices on the “microlan”. But then doing all the other stuff in assembly, for saving the data and such, would be pretty much insane!

So I gave up on that idea.  Java Micro Edition, that worked on a Raspberry Pi looked very cool, but I gave up on J2ME since many of the J2ME evangelists left Oracle and there basically was no support except for searching the Internet, and there wasn’t much there either.  Whatever I DID find was pretty old information or not really pertinent.   Now I’m using Visual Studio Code (aka VSCode) with the PlatformIO extension to write firmware for the ultra-cheap ESP8266/8255/ESP32 chips.  So now I have Node-Red 2.2 working on a Raspberry Pi accepting messages from pieces of the station via MQTT and the dashboard looks pretty nice so far.   I modified existing code for the DS2482 1-Wire master (the original versions had a few issues) on GitHub, and released my own version.  So far, I have the Model 370 rain gauge counting bucket tips (using the DS2482 1-Wire master and DS2423 1-Wire counter/memory chip), the anemometer, and humidity/temperature from the 083B sensors.   The wind vane is another issue: the 360 degree precision potentiometer for some reason reads OPEN!  I’m working on fitting it with a Melexis MLX90316 angle sensor from an article I saw on the Instructables web site.   So now, besides putting all the modules together, I’m learning KiCAD to build PCBs for the wind vane retrofit and the DS2423 counter mod for the 370 rain gauge.