Dear friends, welcome to another tutorial.
In this tutorial, we are going to build an Art Deco style analog thermometer! The design of this thermometer is fantastic in my opinion. It is based on the design of a commercial thermometer that was designed 100 years ago. I made some changes to the design in order to fit inside modern electronics, a photoresistor to detect darkness, some LEDs to illuminate at night, and of course, an Arduino as the brains of the thermometer.
I 3D printed the enclosure using wood filament. As you can see, the project is reporting the temperature, and in my opinion, it looks great. I love vintage objects and I am very excited now that I can make my own using my 3D printer! Let’s see how to build this project!
Step 1: Get All the PartsThe parts needed in order to build this project are the following:
- Arduino Nano ▶ http://educ8s.tv/part/ArduinoNano
- Analog Voltmeter ▶ http://educ8s.tv/part/AnalogVoltmeter
- DS18B20 Sensor ▶ http://educ8s.tv/part/DS18B20
- A 100Ω and 100KΩ Resistors ▶ http://educ8s.tv/part/Resistors
- Α Photoresistor ▶ http://educ8s.tv/part/Photoresistors
- 2 Diffused LEDs ▶ http://bit.ly/DiffusedLEDs
- Plexiglass Sheet ▶ http://bit.ly/PlexiglassSheet
- Small Breadboard ▶ http://educ8s.tv/part/SmallBreadboard
- 3 in 1 wires ▶ http://educ8s.tv/part/Wires
- Power Bank ▶ http://educ8s.tv/part/Powerbank
The cost of the parts is around 10$. You can find links for all the parts in the description of the video below.
Also you are going to need some filament. The enclosure needs 220gr of material in order to print. I used wood filament in this project which costs 35$ per 500gr roll. So the cost of the enclosure is around 16$ if you print it at home. So the total cost of the project is around 26$!
Step 2: The Analog VoltmeterThis is a low cost DC analog voltmeter. It has a range from 0 to 5V DC. It is very easy to use, you simple connect the leads to a voltage source and it will display the voltage.
I find this voltmeter very useful because of its range. We can easily output any voltage from 0 to 5V from a digital pin of the Arduino using the PWM functionality. So, this way we can control the position of the needle at will! This way we can build any analog meter we like! We can build amazing projects using Voltmeters like this one. The cost of the voltmeter is around $2.5.
You can get it here ▶ http://educ8s.tv/part/AnalogVoltmeter
Step 3: The DS18B20 Temperature SensorThe DS18B20 is a digital thermometer that accurately measures temperature in the range -10°C to +85°C and also includes alarm functions and trigger points.
It is a very easy sensor to use because it uses the One-Wire interface. So, we only need to connect one wire to make it work! I have used this sensor a lot in the past, and I am going to use it a lot in the future as well because of it's ease of use and accuracy. The cost of sensor is around $2.
You can get it here ▶ http://educ8s.tv/part/DS18B20
Step 4: Build the Prototype CircuitA few weeks ago I published an tutorial where I used an analog voltmeter like this one, and I converted it into a thermometer. I encourage you to read this tutorial by clicking here. You will understand exactly how this project works. The idea is that by using a PWM pin of the Arduino we can output an analog value from 0 to 5V and then display this value on the Voltmeter. In other words, we can control the needle of the voltmeter at will. Now, if we convert the temperature we read from the sensor into voltage we can display it on the Voltmeter! We only need to print a new face for the display, and we have converted the Voltmeter into a thermometer! Let’s begin!
First we have to build the circuit on a breadboard and make sure it works as expected. The circuit works like this. The Arduino reads the temperature from the sensor, and the light intensity from the photoresistor every second. The temperature is displayed on the voltmeter. If it detects darkness, it will turn the LEDs on and it will keep them on for 1 minute, if it is still dark. Any time the sensor detects that there is light in the room, it will turn the LEDs off. Of course you can change the code and make it work the way you like. You can find the schematic diagram attached on this tutorial.
Now that the circuit is ready, we can move on to the enclosure.
Step 5: 3D Print the EnclosureI designed the enclosure in Fusion 360. I tried a lot of different 3d design software but Fusion 360 became my favorite for the following reasons.
- It is very powerful
- It is free
- It is relatively easy to use
- There are a lot of tutorials online on how to use this software
Despite the fact that this enclosure is the most complicated object I have ever designed, it took me only 2 hours in Fusion 360! This software is really fantastic!
The enclosure consists of three parts that they have to be glued together afterwards. I have uploaded the enclosure files on Thingiverse so you can download them from this website for free.
Get it here ▶ https://www.printables.com/model/222676-retro-arduino-thermometer-with-art-deco-style
As I said before, I 3D printed the enclosure using Form Futura’s EasyWood Birch filament.
Get it here ▶ http://educ8s.tv/part/WoodFilament
This filament looks feels and smells like real wood! It has a fantastic feel, it does not look plastic like PLA that’s why I prefer to use it my projects. Printing the parts, took a lot of time. It took around 10 hours but the result is great! I really love it. As you can see, the enclosure is quite big, that’s why it took 10 hours to print. Now it’s time to post process the parts to make them look even better.
Step 6: Finish the 3D PrintAt first I sanded everything with fine sand paper. This procedure took more than 2 hours because I needed the parts to have a smooth surface. I could have sanded the parts even more but I was really excited to see the project completed so I stopped when I achieved this result. Then I used wood putty to make the parts I couldn’t sand smooth. After letting the putty to dry I sanded the parts once more and then it was time to apply the oak wood varnish. I tried to apply the varnish with a paintbrush but it didn’t work out well. So I used a napkin to apply the varnish at first, and another clean one to get an even distribution of the color. After 10 minutes, all the parts were ready and I let them dry for 24 hours.
Step 7: Connecting Everything TogetherThen I cut asmall piece of Plexiglas using my dremel tool. It was the first time I was using the dremel tool so the result is far for perfect but it will work just fine. I glued it place and it was time to prepare the electronics.
I glued the LEDs in place and then I soldered everything together according to the scematic diagram. As you can see, I created a giant mess. I placed the photoresistor in its opening, and then it was time connect the voltmeter. Using the dremel tool again I removed the two plastic screw holes from the Voltmeter in order to be able to glue the new bigger voltmeter face. See the attached photo.
I printed the new face using thick photographic paper, which does not deform easily and it looks better than plain print paper. I designed the face in Photoshop using an Art Deco font. You can find the file for the new face attached on this tutorial.
Then it was time to put the voltmeter inside the enclosure. I used some clay to place the voltmeter in the exact position I wanted it to be. I also used a lot of hot glue to keep everything in place and it was time to glue the enclosure parts. First the back of the enclosure, and then the base. That’s it, the project is ready and it looks so cool! The thermometer can be powered by any 5V power supply, such a cheap phone charger. It only draws 4mA of current in operation!
Step 8: The Code of the ProjectLet’s nowtake a quick look at the software side of the project. As you can see, the code of the project is the simplest part of it.
void loop() { float temperature = getTemperature();
int lightIntensity = getLightIntensity();
if(lightIntensity < 30 && counter<60)
{
counter++;
digitalWrite(12,HIGH);
}
else if(lightIntensity < 30 && counter>=60)
{
digitalWrite(12,LOW);
}
else if(lightIntensity >= 30)
{
counter = 0;
digitalWrite(12,LOW);
}
int voltage = temperatureToPWM(temperature);
analogWrite(9,voltage);
delay(1000);
}
At first we read the temperature and the light intensity from the sensors. If it is dark and the LEDs are not on for more than a minute, se turn the LED on, else we turn them Off. Then we convert the temperature to a voltage from 0 to 5V and we send this value to a PWM pin.
As always you can find the code of the project attached to this tutorial. In order to download the latest version of the code you can check the project's website: http://educ8s.tv/art-deco-analog-thermometer
Step 9: Final ResultI really like the final result, it is one of my favorite projects, and definitely the most difficult I have ever built.
I made many mistakes and I learned a lot of things from this project. For example, from now on I will try to put all the electronics on a pcb in order to reduce the chaos inside the enclosure. Because of this chaos I didn’t notice a connection error and the first Arduino Nano I used died because of a short-circuit. Also, the Plexiglas is a great material but harder to cut than I originally thought. Despite the mistakes I really enjoyed building this project, it was a great learning experience and the result is really rewarding.
I would love to hear your opinion about this project. Do you like how it looks and do you have any tricks or ideas to share with us? Please post them in the comments section below, and don’t forget to like this tutorial if you find it interesting!
Comments