My wife wanted to know where best to plant things in the yard, and proposed a device to measure sunlight. I settled on a wifi-based client-server model so I wouldn't have to go out and collect SD cards every day. Each microcontroller has an ID corresponding to its garden bed, and it sends an update to the server every five minutes. The server calculates the hours of shade, sun, and dappled light from the most recent twenty-four hours of data and displays a graph for each bed. You can see the latest data for our garden here.
I opted to go for a DIY hardware style this time. Instead of buying the best components made specifically for the job, I'm using cheap parts that I already have on-hand and adjusting for non-linearity in software. Note that the ESP32 ADC is known to be very non-linear.
You can find the esp32 code on GitHub at https://github.com/kamocat/esp32_telemetry
Python/Django code is available upon request.