This weather station is a bit unconventional compared with other stations. It's not connected to Weather Underground because they like to work with recognised brands of weather station and mine is home built. It's also hard-wired into the house instead of transmitting by radio, but there is a radio link from the unit in our lounge to my PC in another room.
I've had a weather station for several years, but over time things started to fail. The last thing to go was the indoor display, and it was going to cost me $150.00 for a new one. With my interest in Arduino it was a no-brainer to make my own weather station. I still had the rain bucket and the anemometer and the housing for the thermo/hygro from the previous weather station, so all I needed was something to read temperature and humidity inside and out and also something to read barometric pressure.
AliExpress was the obvious place to shop, and the parts I needed would cost no more than $US15.00.
Arduino comes in many sizes and flavours, and I decided to use an Arduino Nano. Originally I was just going to have an LCD display in the lounge but it proved unreliable so I decided to use an OLED instead. It's very small - only 0.96 inches but it has extremely good resolution. For the internal temperature and humidity and also barometric pressure I chose a BME280 which is also very small (about a square inch). For the outside measurements I use a DHT-22. I've added a DS3231 real time clock mainly for the program to know when to empty the rain bucket (at the start of each month) and to start/end daylight saving.
Later on I decided I wanted to be able to interact with the weather data, so I added an HC-12 433mHz transmitter. At the PC end I have another HC-12 as a receiver and it receives a signal every 8 seconds.
It's attached to another microcontroller, but this time it's an ATTiny85 which is an 8 pin chip. The receive unit is connected to the computer via a com port (in my case Com5).
The program I've written on the computer (in Delphi) reads the serial port, processes the data and passes it out to the website every 12 seconds.