Automatic Temperature Control System using Arduino – Flowcode
Watch the Video Tutorial part 1:
An automatic temperature control system has the ability to monitor and control the temperature of a specified space without human intervention. The primary purpose is to manage the temperature of a given area based on settings by a user of the system.
Figure 1: Automatic Temperature Control Block diagram
This project uses an Arduino UNO but any different Arduino board with enough pins can also be used like an Arduino MEGA for example.
The controlled area could be a small plant, a house or any place or device that require a controlled temperature like an incubator (egg) for example. Figure 1 shows the block diagram of the system to be designed. The desired temperature setting is entered using a keypad and stored in non volatile memory of Arduino in the EEPROM to keep the settings even during system reset or power OFF.
The temperature of the area is measured using an analog temperature sensor, the LM35 precision integrated-circuit temperature sensor is used for this.
The Arduino reads the temperature continuously and compares it with the desired value. If the desired value is higher than the measured value, then the heater is turned ON to heat the area. The heater is switched OFF once the desired temperature is reached. If on the other hand the measured value is higher than the desired value, then the fan is switched ON to cool off the area until the required temperature is reached. An LCD display shows the measured temperature continuously.
Figure 2 shows the circuit diagram of the project. The LM35 precision analog temperature sensor chip is connected to the analog input pin A0. A 16×2 LCD, a 3×4 keypad and two relays are used and connected as shown on figure 2. The ‘*‘ key of the keypad is used to access setting menu and the ‘#‘ key is used to ENTER (save) the setting in Arduino EEPROM. The heater and the fan are controlled using transistors and relays connected to pins D4 and D3 of the Arduino respectively.
During Startup, the LCD will display: “Automatic Temp Control”, after 2 seconds, if there is no reference temperature set, the program will go in setup mode and prompt the user to enter the reference temperature and save it in Arduino EEPROM. But if the reference temperature has already been set, the program will go straight in operation mode displaying the reference temperature and the actual temperature.
Figure 2: Automatic Temperature Control using Arduino Circuit diagram
Flowcode for Arduino is used in this project. Flowcode is worlds number graphical programming for embedded development, no prior programming knowledge is required with Flowcode, it simplifies everything for beginners.
For more information, please read the article:
The terminals ratings of the relay should depend on the power of the Heater and the Fan. If you decide to use 220V Heater and Fan, use appropriate relays which can handle that voltage and current. Don’t use high voltage on the relay if connected on a breadboard, it’s very dangerous, we are using a breadboard in this demonstration because we are using low voltage 12V and 5V.
The low voltage DC of the coil should be preferably 5V and with low current for the BC108 transistor to handle, or you can use a different transistor. Please observe the safety precaution as 220V (or 110V if you are living in the USA) is very dangerous, if you have never worked with high voltage before, please seek assistance, don’t attempt to do it on your own.
You can buy the components used in this project from our Online Store
3D System Panel
Figure 3: Automatic Temperature Control Flowcode 3D System panel
Flowcode Main Flowchart
Figure 4: Automatic Temperature Control main Flowchart
We are using macros in this project which are like functions in traditional programming for easy programming. We have the Setup_Temp_Ref, Read_Temperature and Compare_Temperature Macros.
Please watch the videos below to learn how to create macros in Flowcode.
You may be interested: Automatic Temperature Control System using PIC with MPLAB XC8 compiler
You may be interested: Automatic Temperature Control System using PIC with mikroC Pro for PIC compiler
You may be interested: Automatic Temperature Control System using PIC with Flowcode for PIC
Watch the Video Tutorial part 2:
Watch the Video Tutorial part 3:
As we have mentioned above, please don’t use high voltage on relay on a breadboard, it’s very dangerous, we are using a breadboard in this demonstration because we are using low voltage 12V and 5V. Never attempt 220V or 110V.
You could use Relay modules on PCB they are more safer for high voltage but you still have to observe all the safety precautions as high voltage like 220V or 110V is very dangerous.
You could also design your own PCB for the relays, buzzer, keypad and LCD components, this will make your design robust and safe.
In any electronic design, the PCB is one of the most crucial parts with its quality affecting the overall quality of all these devices. For rapid prototyping or for commercial products it’s always a must to use specialized reputable PCB manufacturer instead of doing it yourself.
For cheap and good quality PCB for rapid prototyping or for commercial, we recommend PCBWay a China Shenzhen-based manufacturer specializing in PCB prototyping, small-volume production and PCB Assembly.
You can now get SMT-Stencil from only $10 in 1 day! Only $5 for 10 PCB pcs 1-2 layers and only $30 for SMT Assembly with FREE worldwide shipping. Please click on the image below for more information or visit them on https://www.pcbway.com/
You can download the full project files (Flowcode Project, Proteus Schematic design files) below here. All the files are zipped, you will need to unzip them (Download a free version of the Winzip utility to unzip files).
Arduino Flowcode Project: Automatic Temp Control Arduino Flowcode
Arduino Proteus Schematic: Automatic Temp Control Arduino Flowcode Proteus