I got my first weather station almost two decades ago. It was a very basic weather station by Davis and only supported rain, temperature and wind speed. After that one finally kicked the bucket, I ended up with a similar Peet Brothers weather station and for a brief period of time I used it for reporting weather over APRS.
Now that I am getting back into gardening again and starting to care about my lawn more, I would like to be able to have a better idea of what is going on. I’d like to be able to monitor the weather in the garden and be able to analyze it over the years.
So, I decided that I am going to build my own weather station out of a Raspberry Pi 4. The Raspberry Pi will interface with a rain guage, temperature sensor and hygrometer. I’m not worried about wind speed because my house is surrounded by many very tall trees, so I will never be able to get an accurate measurement.
On the software side, I wanted to be able to record the data for as long as possible and to have a convenient way to display and manipulate the data. To do this, I plan on using Postgresql and Grafana hosted on an AWS t3a.nano instance.
I looked into using Prometheus, but it was not as flexible or easy to use as I would like. Part of the problem is that my house is behind a NAT gateway and I have no plans on opening any ports or bothering with any VPNs. Out of the box, Prometheus only records data for 15 days. That can be changed using a modern version, but I’m always worried about a configuration file getting overwritten during an update and losing data.
Hardware
- Raspberry Pi 4
- Rainwise Rainew 111 Rain Guage
- TEMPer1F_H1 temperature/humidity sensor
Software
- T3a Nano AWS instance
- Postgres Database
- Grafana for visualization
- Python3 to hold everything together