Arduino Nano reptile data logger for both temperature and UV

March 30, 2025
Description
Reptile temperature and UV data logger
I wanted to be able to monitor the temperatures and UV for our skink more closely.
This was my first time using Arduino so it was a bit of a learning curve for me.
So this is how I am doing it.
This data logger is built around an Arduino nano with a BMP280 temperature and pressure sensor along with a HW837 UV sensor. It uses a datalogging shield to output the data to a micro SD card. It records it in a txt file which makes it really easy to open with Excel and the graph the data as you would like. An example of the output it is in the attached images along with an image of how to interpret the data.
It is all powered by a USB C cable, making it really simple to place anywhere.
To start with I printed it is ABS. I was going to use ASA but I wasn't certain that the ASA I had was going to be quite enough.
Printing the case
The settings I used were the standard Voron ones. I used the default profile in the slicer for generic ABS, and then used 4 walls, 40% infill and the only part that needed any supports was the lid. The holes in the lid allow you to see the LEDs on the datalogging shield so that you can see it is turned on.
The micro SD card is accessed through the hole in the side of the case. It needs to be put in once the nano and data logging shield are fitted. The Micro SD card needs to be formatted in FAT32. I used a 16gb one and it works perfectly.
Wiring
Rather than using jumper leads I soldered all of the connections. This way none of them were going to come off.
I wired the following
HW837 - UV sensor
SIG to pin A3
GND to GND pin
VCC to +5v
BMP280 - temperature and pressure sensor
SDA to A4
SCL to A5
GND to GND pin
VCC to +3v3
A wiring diagram is in the attached images, along with the pin outs of each of the sensors.
Code
Here is a link to the code that I used
It is a modified version of the original code for the data logging shield with the UV sensor added into it. For where I live the pressure formula was incorrect and gave a wrong altitude. I have also added in the UV sensor as well.
The original code is here (it includes temperatures in F if anyone would like to add those back in)
kaptery.com/files/documents/nanodataloggerbmpv2.ino
Parts list
Here are all of the items that I used
7 x M3 x5mm heat inserts
4 x M3 x 8mm bolts (I only used one for holding the nano in place inside the box but there are 4 inserts)
1 Arduino nano board
1 Arduino nano data logging shield (I used this one Arduino Nano Data Logging Shield | ePartners NZ)
1 Micro SD card
1 1220 battery
1 BMP280 sensor
1 HW837 sensor
7 Wires
As I already had the SD card, wires and heat inserts I suspect it cost me around $40 (NZ $)
Other notes
The micro SD card is accessed through the hole in the side of the case. It needs to be put in once the nano and data logging shield are fitted. The Micro SD card needs to be formatted in FAT32. I used a 16gb one and it works perfectly.
One thing I learned using Arduino for the first time was it wouldn't upload to the Nano. My issue was that I needed to be using "ATmega328P (old bootloader). After changing this under Tools/Processor in Arduino IDE it uploaded without any other issues.
If I did this again I would probably redesign it slightly. I would do the lid differently so that it could be bolted in place. I would probably add in a humidity sensor as well
For it anyone would like them here are my OnShape design files, feel free to make any changes you would like to :-)
Thanks for your interest in this