Arduino Based Concrete Clock With Touchless Night Lamp

by deniz_er in Circuits > Arduino

165 Views, 1 Favorites, 0 Comments

Arduino Based Concrete Clock With Touchless Night Lamp

Screenshot 2023-06-12 004148.png
Visiting Designer - Final Teslim - Çağlar Akarsu

Today, I will show you how to create an Arduino Based Concrete Clock With Touchless Night Lamp

Supplies

Designing the 3D Model

Screenshot 2023-06-12 002350.png

Before making a genuine version of my product, I always enjoy building a 3D model of it. This helps me determine the right measurements for the finished project and provides me a clearer idea of how the final product will look. So I created this 3D model using the free "Windows 3D-builder" program.




The location of the TM1637 Digital Clock Module will be within the on-screen black bar. The 5 Blue LEDs, which can be turned on or off by moving your hand over the IR Module, will be housed in the void in the circular concrete frame.



The IR Sensor Module fits into these two holes. The remaining electronic parts will be housed inside the concrete foundation bar.

Creating the Template

Screenshot 2023-06-12 002521.png

I created this 2D template using my 3D model.


The template is available for download from the link in the description below. Print it on an A4 sheet of paper.

Schematic Diagram

Screenshot 2023-06-12 002614.png

The Arduino's D4 and D5 pins are used to connect the TM1637 Digital Clock Module.


The A1, A2, and A3 pins on the Arduino are used to connect the DS1302 RTC Module.


The D11 pin of the Arduino is connected to the two White LEDs that are visible on either side of the digital clock. The minutes counter is reset to "00" when these two LEDs flash three times every hour. 


The blue cluster of LEDs connected to the Arduino's D12 pin are controlled by the IR module, which is attached to the D6 pin.

To set the clock's time, my initial thought was to link 2 to 3 push buttons to the Arduino's D2 and D3 pins. However, I added an extra line of code to my application to do that in the final version. This will be fully explained when we talk about the code.

3D Printing the Shape

For this part, I drew a 3D model from rhino and 3D printed from filaments

Preparing the Top - Electronics

Screenshot 2023-06-12 002846.png

Okay, let's begin attaching the electronic parts to the clock's top section.


This opening will accommodate the 4-Digit LED clock module. I'll conceal it with a black plastic film that I tore out of some wrapping paper.


I'm using a compressed wood board for the back. I'm going to drill several holes in the board and add three push button switches based on my original design.


The gap at the back of the circular part will be hot-glued with the blue LED cluster.




The Blue LED clusters were covered with a milk bottle cutout made of plastic. It had a dismal appearance due to the white plastic, which was simply fantastic.

I

Preparing the Base - Electronics

Screenshot 2023-06-12 004219.png

Okay, let's now assemble the remaining electronic parts within the clock's foundation. I made the baseplate using the same compressed wooden board, and then I soldered and hot-glued each electronic component to it individually. One of my own DIY IR modules was the IR module I utilized for this project. Please visit my Tutorial No. 21 - All About IR Modules and how to create your own DIY IR Module if you want to learn more about the module.

Coding

I compile and upload the code to the Arduino while the concrete was drying.


The "ArduinoRTClibrary" and "TM1637Display" libraries must be included in your code for this project. From the github link provided in the summary below, you can download them.

Let's begin by describing the variables that the RTC module will utilize before creating an instance of the RTC module.

Define all of the LED pins next, then make a new instance of the TM1637 module and specify all of its variables.

Define the pins the IR module uses next. 

If you intend to use the push button switches, the first two lines of the setup section can be used to attach an interrupt to the code. However, I commented out the buttons in my code because I am not utilizing them.


I then increased the display's brightness to its maximum value of 7, inserted the "showNumberDecEx" function, and added the colon to the code.


I then defined in the code each pin mode utilized by the attached components.

Final Demo

Screenshot 2023-06-12 004148.png

So this is how it finally looks like. 

Do comment and let me know if there are any scopes of improvement.