I have a wonderful Davis weather station my brother gave me in 2018. Solar powered, it reliably transmits temperature, humidity, wind speed, wind direction, and rainfall to a console in our kitchen 24/7, in all the types of weather that Minnesota throws at it. Recently, I went to access the serial port on the unit to get the data stream so I could log it to the Internet. The connection was quick, and the unit responded with “No”. Really? It turns out, one needs to give Davis another $225 for their official interface which contains a chip with a code that is transmitted over another channel when the interface is installed to confirm they got their $225. Then it will go beyond “No”. I was annoyed that the data already in my kitchen was not mine.
Rather than program up the requisite chip with the requisite code, it occurred to me that the science of tipping bucket rain gauges is rather well known, and it might be simplest to make my own gauge where I can be sure who owns the data. Hackaday.com had featured a design by Sebastian Sokołowski where he made a wireless rain gauge and he was kind enough to share his design at his website https://smartsolutions4home.com/. (His video is very fun to watch) I printed it in polyester, and used nylon tube and a stainless shaft from a disposable electric toothbrush for the critical bearings for the tipping bucket. Mr. Sokołowski’s design printed nicely, and I substituted a reed switch with a lead wire (going in to the house) for his electronics package.
Mr. Sokołowski left nice instructions for calibrating, and I set mine up for 0.037″ per bucket tip. The stainless steel cap screws are cool to adjust during the calibration process. But the third decimal place is a bit speculative. In spite of Mr. Sokołowski’s very solid design, surface tension affecting water flow and physical leveling limits the precision of the device. Regardless, it agrees quite well with the nearby Davis instrument, and a nearby test tube gauge even though I didn’t follow quite as “immersive” a calibration program as Mr. Sokolowski.
In the house, a Raspberry Pi Pico W microcontroller accepts the signal from the reed switch. The signal conditioning is simply a 220 ohm pullup to 3V, and a 0.1 capacitor to ground. The protection diodes in the Pico seem quite robust, but if it dies, I’ll maybe add some transient protection. Putting it in the house, using the hole already there for the old satellite dish, allows me to avoid battery power for the unit.
And that brings me to the nuclear-powered bit. In the US, currently, about 18% of our electricity comes from nuclear generation. My power co-op gets twice that from wind, almost none from coal, but 14% from “market” sources. So my rain gauge, instead of being battery powered, is line powered. And perhaps 2.5% of my line power comes from nuclear generation. Sorry – would you have read about a battery powered rain gauge?
IOT devices in our house log data to the “Switchboard” server we run (somewhere on the Internet) that accepts XML log data packets containing real-time data. It operates perhaps like an MQTT host might work. This allows IOT devices to get rid of their data quickly, minimizing the need for buffering at endpoints.
Periodically, (every 3 hours in the case of the rain gauge) another Windows app running on our media server pulls the accumulated data from Switchboard, and massages (bludgeons?) it into a CSV file which it leaves in a folder which is shared using Box.com. A prettier result could have been had by generating HTML and dropping that on the web server by SFTP – but dropping CSV on a shared folder left me more free time for more worthwhile things – such as keeping up with my new Threads feeds.
You can find the data at nesse.org, on “Ted and Mona’s Pages”.