Sometimes I just do not have time to connect to the internet and check current weather conditions. This is the reason why I made this indoor LCD weather display based on Atmega328 Arduino MCU. The circuit board consists of two LP2950 voltage regulators, MCU, four buttons, ENC28J60 Ethernet module and LCD12864 graphic display module.
The Ethernet module is used to connect to this website and to download current data. With it I am not limited to use only at home, but it can be used in any place with internet access. The input voltage is 3V3 so this is the reason why I have two voltage regulators. The connection to MCU is established using SCK, MISO, MIMO and SS digital pins.
The LCD12864 display uses ST7920 controller that has the option of parallel and serial communication. Serial communication is preferred because it uses only three digital pins (3, 8 and 9) instead of ten or more for parallel. Another advantage with this display is that it can be used in graphic mode. With it you can control individual pixels on screen. I used this to draw the sun or clouds depending on a outside conditions.
LCD display in action. On the first screen you can see the current weather data (temperature, humidity, wind pressure, cloud coverage and sky temperature), the time when they were recorded and if the change from earlier time is positive, negative or constant. On the second picture the display is showing maximum and minimum within certain period and they can even be reset.