I used an Arduino Teensy as the brain of the UV meter, and it detects ambient UV radiation by reading the analog output of a GUVA-S12SD UV light sensor. The Teensy communicates with a ST7789 LCD screen using SPI, which displays the current UV index and helpful texts/graphics for the user. The whole setup is powered by a LiPo battery connected to a TP4056 battery charger board, making it easy to recharge the meter when needed.
I built the enclosure of the B.U.R.N. Meter out of a 3D printed shell, back cover, and snap fit plug for the charging port. The opening to the UV sensor was covered by a piece of high UV transmission fused quartz plate to protect the sensor without blocking UV light. I likewise covered the LCD screen with a sheet of laser cut acrylic so that small particles like sand don't make their way into the box.
I had a lot of fun creating the backend software of the B.U.R.N. Meter from scratch, particularly with generating dynamic images on the LCD screen that correspond with the sensor reading. The more UV radiation the meter detects, the more red the face on the B.U.R.N. Meter becomes, and the battery icon on the screen also changes with the voltage the Arduino Teensy reads from the battery. Go to my GitHub repository to download my code.