Sensors
Temperature and humidity
The temperature measurement is done by a DHT22 sensor. (https://www.adafruit.com/product/385) This is accurate to +- 0.5 °C which is more than good enough for my use. The sensor is contained in a shield. This protects the sensor from direct sunlight as well as drops of moisture. In a preliminary measurement, temperature differences of 15 °C compared to the nearby weather station were reached in direct sunlight. I managed to get a hold of a shield with an installed DHT sensor from a decommissioned weather station of a nearby school. The shield also contains a 10 kΩ resistor. The resistor is required for accurate reading of the DHT sensor. (Link)
The sensors are placed the following way on the balcony:
80 cm from the ground, 10 cm from the wall, 75 cm from the guardrail.


The sensor is connected using a ribbon cable going beneath the balcony door and daisy chained jumper wires to the micro controller in my flat. There is no way any of these wires will ever come loose.
The shield containing the sensor is able to get direct sunlight until about noon.
Time
It’s kept using a DS3231 real-time clock. https://learn.adafruit.com/adafruit-ds3231-precision-rtc-breakout
Integration and Logging
The program (https://github.com/AndreasMeier12/balconytemperature/blob/main/balconytemperature.ino) runs on an Arduino micro UNO controller. The measurements are taken every 30 minutes. The measurements are taken as-is, they are not averaged. After every measurement, all written data is logged to the serial port for easy reading via USB.
The power supply is conveniently located in my flat. That way, I don’t have to worry much about weather proofing of most of my setup.
Schematic:


Please note that the DHT22 includes a resistor. Components I could not find were replaced with similar ones I could find.