Energy Monitoring and Temperature Control System Muhammad Abdullah Zafar Ghauri School of Mechanical and Manufacturing Engineering (SMME) National University of Science and Technology (NUST) H-12 Islamabad, Pakistan mazghauri2004@gmail.com Muhammad Ali Tariq School of Mechanical and Manufacturing Engineering (SMME) National University of Science and Technology (NUST) H-12 Islamabad, Pakistan Muhammad Qasim Kamal School of Mechanical and Manufacturing Engsineering (SMME) National University of Science and Technology (NUST) H-12 Islamabad, Pakistan ali.tariq6n@gmail.com qkamal1050@gmail.com Sufyan Ahmed School of Mechanical and Manufacturing Engineering (SMME) National University of Science and Technology (NUST) H-12 Islamabad, Pakistan Sufyan7r@gmail.com Abstract— Energy monitoring stands as a cornerstone in the optimization of industrial energy consumption. By employing advanced monitoring systems, industries gain real-time insights into their energy profiles, enabling proactive identification of inefficiencies and strategic energy management. This not only facilitates cost savings but also contributes significantly to the reduction of carbon footprints, aligning with global efforts to mitigate climate change. Temperature control and regulation, integral components of industrial processes, play a pivotal role in ensuring product quality, equipment longevity, and overall operational efficacy. Maintaining precise temperature parameters enhances the performance of various manufacturing processes, such as chemical reactions, material processing, and product assembly. Furthermore, temperature regulation mitigates the risk of equipment failure and downtime, promoting uninterrupted production and minimizing associated economic losses. The synergistic integration of energy monitoring and temperature control further amplifies the efficiency gains in industrial operations. By dynamically adjusting energy consumption based on realtime temperature data; industries can optimize resource utilization without compromising product quality or process integrity. This holistic approach not only fosters economic sustainability but also aligns with the evolving regulatory landscape that demands heightened environmental responsibility. Keywords— Energy Monitoring, Optimization, Temperature Control and Regulation, Energy Management, Economy, Energy Consumption I. INTRODUCTION Energy monitoring and temperature control serves the purpose of backbone in the realms of industry and daily existence and manipulating considerable influence over operational efficiency, environmental sustainability, and the quality of one’s daily life. Considering the industrial aspects, the fastidious tracking of energy consumption is not only simply some cost-saving rather it is a strategic imperative. It authorizes businesses to pinpoint the inefficiencies, optimize production processes, and cut down extraneous expenditures and catering the culture of responsible resource usage. Contemporaneously, precise temperature control is called for industries ranging from pharmaceuticals to food production while greatly corroborating product quality and compliance with stringent standards. The adaptabilityy between energy monitoring and temperature control establishes a uniting relationship, where perceptive energy use is regarded by optimal temperature settings, leading to enhanced productivity and reduced environmental impact. Cutting across the industrial sphere, these principles weave seamlessly into the fabric of one’s daily lives. Energy monitoring technologies enable households to monitor electricity, heating, and cooling usage, and lending a good hand in informed decisions that not only significantly cut down utility bills but also contribute to a collective commitment to environmental safeguarding. In residences, offices, and public spaces, temperature control systems nurture our comfort, productivity, and health. Moreover, in critical sectors such as healthcare, maintaining precise temperatures is of significant importance for storing medications and biological materials. The significance of these factors becomes even more conspicuous during extreme weather conditions, where efficient temperature control safeguards against discomfort and health risks. In essence, understanding and prioritizing the coaction between energy monitoring and temperature control is decisive for a sustainable future. By acknowledging their profound impact on industrial processes and our daily routines, we lay the groundwork for resilient systems that balance efficiency with environmental responsibility, ultimately shaping a world that is both technologically advanced and ecologically conscious. II. PURPOSE OF PROJECT The purpose of the assigned project is to understand the concept of Energy Monitoring and Temperature Control and its sheer importance in daily life. With limited constraints of budget and time, the main focus is to produce a prototype which fulfills the criterion of aforementioned topic. Moreover, the project is meant to furnish the skills of programming in Arduino IDE with integrating previous concepts of C++, while deploring for the code through different sources. III. METHODOLOGY For the following project, Arduino UNO has been used while serves the purpose of controlling all the major electronics involved in the project. In order to power the electronics, Liion rechargeable batteries are coupled to produce a yield of 12V, while the Arduino is powered by coupling with laptop. The Current Sensor ACS712 is coupled with Arduino UNO at VCC and Ground Ports which itself and Arduino is powered with 5V DC supply. Two relays are meant to control all major operations of the components, ultimately with the circulatory fan which performs both the job of circulation and exhausting the hot air out and allowing the cold air to circulate through. IV. COMPONENTS USED For the aforementioned project, following components/instruments have been utilized: A. Environment • Styrofoam Sheet (3cm thick) • Adhesive (UHU and Hot Glue) • Aluminum Foil B. Electronics • ACS 712 30A Current Sensor (0.66V/A (66mV/A) sensitivity) • Double Channel Relay • Resistor (10kΩ) • Breadboard • Halogen Bulb (18W) • Arduino UNO • 16x2 LCD • PCF8574 IIC/I2C 16 Pin Serial Interface LCD Display Adapter Module • Exhaust/Ventilation Fan • Laptop (To provide Arduino with power and code) • 3.9V Li-ion Panasonic Batteries (Coupled to provide 12V DC supply) • 1.5V Camelion AA Batteries • Female and Male Jumpers • Copper Wires • Solder • DS18B20 Thermistor V. EXPLAINATION OF IMPORTANT COMPONENTS USED • Arduino UNO: Arduino UNO is a microcontroller board based on the ATmega328P. It has 14 digital input/output pins (of which 6 can be used as PWM outputs), 6 analog inputs, a 16 MHz ceramic resonator, a USB connection, a power jack, an ICSP header and a reset button. It contains everything needed to support the microcontroller; simply connect it to a computer with a USB cable or power it with a AC-to-DC adapter or battery to get started. Figure 1: Arduino UNO Circuit • Double Channel Relay: The 2 Channels Relay Module is a convenient board which can be used to control high voltage, high current load such as motor, solenoid valves, lamps and AC load. It is designed to interface with microcontroller such as Arduino, PIC and etc. The relays terminal (COM, NO and NC) is being brought out with screw terminal. It also comes with a LED to indicate the status of relay. Figure 2: Double Channel Relay (5V DC Supply) PCF8574 IIC/I2C 16 Pin Serial Interface LCD Display Adapter Module: The LCD I2C Module PCF8574 is a small circuit board which allows one to connect a standard Alphanumeric LCD displays 1602 & 2004 to an I2C bus. This means that you can control the LCD display with only two wires, SDA and SCL. The PCF8574 is an I2C slave device, so it has a unique address on the I2C bus. This address can set using three jumpers on the board. The LCD I2C Module PCF8574 is compatible with most 16X2 and 20X4 character LCD displays that use the HD44780 controller. The board also has a potentiometer for adjusting the contrast of the LCD display. LCD I2C Module PCF8574 can operate with an input voltage of 2.5 to 6 volts. The typical input voltage is 5 volts. The module has a regulator that converts the input voltage to 5 volts for the LCD display. The PCF8574T IC chip on the module is an I2C slave device. This means that it can receive commands from a master device, such as an Arduino • Figure 3: PCF8574 IIC/I2C 16 Pin Serial Interface LCD Display Adapter Module • ACS712 30A Current Sensor: The ACS712 30A current sensor board is based on the Allegro ACS712ELCTR30A bi-directional hall-effect current sensor chip which detects positive and negative flowing currents in the range of minus 30 Amps to positive 30 Amps. The board operates at 5V DC and the current flow through the sensor is converted to an output voltage starting at 1/2Vcc (or 2.5V) for no current flow and moves up 66mV per amp for positive current or down -66mV per amp for negative current. The sensitivity factor for aforementioned sensor is 0.66V/A (66mV/A). • Figure 6: 100cm NTC DS18B20 Thermistor Jumper Wires: Figure 7: Jumper Wires Breadboard: Breadboard is a construction base used to build semi-permanent prototypes of electronic circuits. Unlike a perfboard or stripboard, breadboards do not require soldering or destruction of tracks and are hence reusable. For this reason, breadboards are also popular with students and in technological education. • Figure 4: ACS712 30A Current Sensor 16x2 LCD: 16x2 LCD is primarily used to display messages about an electronic device. As the name suggests, it includes 16 Columns & 2 Rows so it can display 32 characters (16×2=32) in total & every character will be made with 5×8 (40) Pixel Dots. So the total pixels within this LCD can be calculated as 32 x 40 otherwise 1280 pixels. • • Figure 8: Breadboard Halogen Bulb: Figure 9: Halogen Bulb Figure 5: 16x2 LCD Display • DS18B20 Thermistor: VI. SETUP AND CONFIGURATION CODE (WITH EXPLAINATION) Put forward in Arduino IDE for the Arduino UNO utilized in the project, the following code lines are meant to set up and configure various components and parameters required for the temperature sensing, current measurement, LCD display, and relay control for the aforementioned Arduino project. Moving towards explanation for header files, #include <OneWire.h>, being the initial header file, for which it includes the OneWire library, which is used for communication with OneWire devices. For the specific code used, it is specifically used for interfacing with the DS18B20 temperature sensor. #include <Wire.h> This line includes the Wire library, which is the I2C communication library. It is being used for communication with the LiquidCrystal_I2C library, which controls the I2C-connected LCD. #include <LiquidCrystal_I2C.h> is an important header file which includes the LiquidCrystal_I2C library, which allows you to control an LCD that communicates over I2C. Here it serves the purpose for initializing and displaying information on the LCD screen. #define ONE_WIRE_BUS 2 This line defines a constant named ONE_WIRE_BUS, to which value 2 has been assigned. This constant represents the digital pin to which the data wire of the DS18B20 temperature sensor is connected. With the header files explained, now we shall move to explaining different constants being declared, const int ACS712Pin = A1, const int relay1Pin = 12, const int relay2Pin = 13. The main philosophy has been the name, where they are meant to be treated as constant integral terms. The respective values 12 and 13 re assigned to the relay pin, which stand for the locality where the relay 1 and 2 are connected Two different classes have been created which are respectively oneWire(ONE_WIRE_BUS) and DallasTemperature sensors(&oneWire), which are later on used for communication with DS18B20 Thermistor and for interacting with DS18B20 Thermistor respectively. LiquidCrystal_I2C lcd(0x27, 16, 2) is another class created which specifies the parameters of the LCD utilized in the project, which respectively stands for 16 columns and 2 rows. float targetTemperature = 27.0 is a constant declared which sets the default target for achieving temperature to be precisely 27.0C. VII. SETUP OF INITIAL CODE From here begins the working of main code for the project, setup() function is used for the initialization of all the major important components for the Arduino project, for this case it is setting up serial communication, configuring relay pins as outputs, initializing the DS18B20 temperature sensor, and preparing the LCD for displaying information. Serial.begin(9600) is meant to initiate serial communication with a baud rate of 9600. It enables communication between the Arduino and a connected computer. pinMode(relay1Pin, OUTPUT) serves the purpose of setting up the mode of the pin specified by relay1Pin as an output. relay1Pin is the digital pin to which Relay 1 is connected. This configuration indicates that this pin will be used to send signals to control the relay. Likewise, the previous lines, pinMode(relay2Pin, OUTPUT) is used to set the mode of the pin specified by relay2Pin as an output. relay2Pin is the digital pin to which Relay 2 is connected. sensors.begin() is used for initialization of the DS18B20 temperature sensor. It prepares the sensor for communication and ensures that it is ready to provide temperature readings. lcd.begin() is used for the basic setting up of the LCD screen. It prepares the LCD for use and sets up the communication parameters. lcd.backlight() is a command used for turning the backlight of LCD on while ensuring the display of text on the display screen. In order to clear the content on screen, lcd.clear() is used which itself ensures the beginning of display with clean state and removing of any previous content being displayed. VIII. LOOPING OPERATION AND PRINTING OF VALUES TO SERIAL MONITOR The looping operations are subjective to continuous repetition after specific intervals, and hence whatever the values after calculations are obtained, they are redeemed necessary for future reference. The aforementioned lines essentially read temperature from the DS18B20 sensor, measure current using the ACS712 sensor, calculate power consumption, and then print these values to the Serial Monitor. sensors.requestTemperatures() is meant to call the requestTemperatures() method on the sensors object, allows the DS18B20 temperature sensor to provide updated temperature readings by issuance of request for global temperature on OneWire bus. float temperatureCelcius = sensors.getTempCByIndex(0) is a declared and initialized variable which reads the temperature provided in Celsius from the DS18B20 thermistor. The getTempCByIndex(0) is used for the retrieval of temperature value from the DS18B20 sensor connected to the bus. The temperature value is then stored in the temperatureCelcius variable. int sensorValue = analogRead(ACS712Pin) performs the action of reading of analog value from the ACS712 current sensor connected to the pin specified by ACS712Pin. float voltage = sensorValue * (5.0 / 1023.0) being another floating integer variable is assigned with a mathematical formula serves the purpose of converting the raw analog sensor values to voltage. The Arduino analog-to-digital converter (ADC) produces values in the range of 0 to 1023 for a voltage range of 0 to 5 volts. float current = (voltage 2.5) / 0.066 is now again another floating integer variable assigned a mathematical relation which is meant to calculate the value of flowing current through ACS712 current sensor, whose sensitivity factor is 66mV/A, hence converting the voltage into current. float power = voltage * current is meant to calculate the power consumed by employing the formula P=VI to give the desired answer in watts (W). Serial.print are bunch of statement which are used for printing the values of temperature, current, and power values to the Serial Monitor for debugging and monitoring purposes. IX. CONTINUATION OF LOOPING OPERATION(HEATING AND COOLING CONDITIONS IN SPECIFICATION) The code begins with the printing instructions for displaying the detected temperature. On broader perspective here is the analysis lcd.clear(), likewise mentioned before is used to clear any previous content present on the on the LCD screen hence providing a clean slate for the new information to be displayed. lcd.setCursor(0, 0); is used to set up the cursor position to the very specific first column of the first specified row in LCD. lcd.print("Temp: "); is used for printing the text "Temp: " on the LCD. lcd.print(temperatureCelcius); is used for printing the current temperature value on the screen, which is being read from DS18B20 Thermistor. lcd.print(" C"); is simply used to print “C” on the screen which indicates Celsius. lcd.setCursor(0, 1); maneuvers the cursor on the first column of the first-row display on LCD. lcd.print("Current: "); simply prints the text "Current: " on the screen. lcd.print(current); prints the current value (in amperes) measured by the ACS712 sensor. lcd.print(" A"); is used for printing the unit "A" to indicate amperes. Moving of to the most crucial part of the project, which I s successful temperature controlling throughout the environment using Double Channel Relay. As mentioned above the target temperature was set to a standard of 27.0C. It is meant to perform a proper check whether the current temperature (temperatureCelcius) is less than the target temperature (targetTemperature). If the condition is successfully met, it means the temperature is below the target, so it turns on Relay 1 (relay1Pin) and turns off Relay 2 (relay2Pin). In the case of negation, it means the temperature is equal to or above the target, so it turns off Relay 1 and turns on Relay 2. The state changes are also printed to the Serial Monitor for debugging purposes. The main crux of the aforementioned code is that it updates the information displayed on the LCD with the current temperature and current values. Additionally, it controls the relays based on the comparison between the current temperature and the target temperature, and it introduces a delay before the next iteration of the loop. In the very end of the program delay(2000); whose purpose is to introduces a delay of 2000 milliseconds (2 seconds) before the next iteration of the loop(). This delay helps in stabilizing the readings and prevents the loop from executing too rapidly. X. SIMULATIONS FOR PROJECT battery in series. For second relay , fan and battery of 12 volts is in series. Current sensor is connected to arduino on pin A1. Temperature sensor LM35 is connected to arduino on pin A0. Now D4,D5,D6,D7 pins of LCD are connected to 5,4,3,2 pins of arduino respectively and 4,6 pins of LCD are connected to 12,11 pins of arduino. Current sensor tracks the total current consumed by heating element and this information is used by arduino to calculate power and Energy of the heating element. This circuit operates by senseing the temperature which then give signal to arduino, which then shows that temperature on LCD display. Then it will check if temperature is above or below 25 degree celcius then if temperature is above 25 degrees the fan will run and if temperature is below 25 degrees the heating element will run. Meanwhile, the current sensor will track the total current used by heating element. Through this arduino will display the power of heating element and energy consumed by heating element. XI. BASIC INTRODUCTORY PROTEUS SIMULATION CODE General Simulation of Project Schematic of Project I connected two relays with arduino. First relay was connected to heating element , current sensor ACS712 and The code begins with the header file #include <LiquidCrystal.h> which serves the purpose of interacting with the attached 16x2 LCD. Pin connections have been defined as const int sensorPin = A0; const int acsPin = A1; const int relayPin1 = 13; const int relayPin2 = 10; which define the placements of pins for LM35 temperature sensor, ACS712 current sensor, and two relays respectively. LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // RS, E, D4, D5, D6, D7 is meant to initialize the LCD with its connection to the Arduino using pins RS, E, D4, D5, D6, D7. char scrollText[] = " "; is an array declared,serving the purpose for scrooling through the text displayed on LCD int scrollPosition = 0; unsigned long previousMillis = 0; const long interval = 5000; have also been declared as constants and unsigned bits which serve the purpose of tracking the scroll position for the scrolling text. previousMillis serves the purpose of tracking the elapsed time for the interval. long interval serves the purpose of specifying the time interval for displaying each set of data (5 seconds). The aforementioned code lines define an enumeration DisplayState with two states: TEMP_CURRENT and POWER_ENERGY. DisplayState currentState = TEMP_CURRENT; Is basically meant for initializing the variable currentState with the state TEMP_CURRENT. Proceeding with the setup code for the simulation, the aforementioned lines serve the purpose of configuring the pin modes for the attached sensor and relay pins. The LCD, as per its construction standard of dimensions 16x2, initialize it with 2 rows and 16 columns. XII. LOOPING OPEARTION Moving onto the looping operation, it is working on the principle of if condition sandwiched in switch statement, There is a utilization of state machine which serves the purpose to alternate between displaying temperature/current and power/energy. The LM35 sensor is being read by the Arduino which controls relays based on a temperature threshold, while it has been observed that the actual temperature control logic is not provided in the code snippet. assumed that the Arduino UNO works on 5V supply from the connected laptop. temperatureC = voltage * 100.0; acts to convert the voltage to temperature in Celsius for the LM35 sensor. The code performs an important operation of cross-verifying whether the temperature (temperatureC) is greater than 25.0 degrees Celsius within the maintained environment. If the condition is met, that is to say that temperature is greater than 25C, it turns on relayPin2 (relay2) and turns off relayPin1 (relay1) and vice versa. Heading off to the interconversion formulae, different variables have been declared as integers and floating value integers. sensorValue = analogRead(sensorPin); performs the operation of reading the analog value from the LM35 temperature sensor connected to pin sensorPin. voltage = (sensorValue * 5.0) / 1023.0; being declared as a floating variable converts the sensed value into voltage. temperatureC = voltage * 100.0; is decalred and hence utilized to convert the voltage to temperature in Celsius for the LM35 sensor. acsValue = analogRead(acsPin); senses and deliberates the analog value from the ACS712 current sensor connected to pin acsPin. voltageACS= (acsValue * 5.0) / 1023.0; and current = (voltageACS 2.5) / 0.66;also declared as floating type variables converts the raw analog sensor value to voltage, which is later on converted to current by utilizing the ACS712 current sensitivity factor (185mV/A for a 20A module). XIII. PRINTING THE VALUES ON SCREEN The following code snippet may be analyzed separately as follows: - While these set of lines for code represent the following operations as sensorValue = analogRead(sensorPin); which is meant to read the analog value from the LM35 temperature sensor connected to pin. sensorPin. voltage = (sensorValue * 5.0) / 1023.0; serves the purpose of an important formula which is used for converting the raw analog sensor value to voltage. However, it is strictly lcd.clear(), likewise mentioned before is used to clear any previous content present on the on the LCD screen hence providing a clean slate for the new information to be displayed. lcd.setCursor(0, 0); is used to set up the cursor position to the very specific first column of the first specified row in LCD. lcd.print("Temp: "); is used for printing the text "Temp: " on the LCD. lcd.print(" C"); is simply used to print “C” on the screen which indicates Celsius. lcd.setCursor(0, 1); maneuvers the cursor on the first column of the first-row display on LCD. lcd.print("Current: "); simply prints the text "Current: " on the screen. lcd.print(current); prints the current value (in amperes) measured by the ACS712 sensor. lcd.print(" A"); is used for printing the unit "A" to indicate amperes. technology allows for remote accessibility, offering users unprecedented control over their environment and resource utilization, thereby fostering a seamless and intelligent user experience. As we navigate the complex landscape of sustainable living, the adoption of energy monitoring and temperature control systems emerges as a linchpin, seamlessly blending comfort, efficiency, and environmental responsibility. This technology not only addresses the immediate needs of users but also stands as a testament to our commitment to building a future where technological innovation harmonizes with ecological well-being. In essence, it represents a paradigm shift towards a more conscious and interconnected approach to managing our energy resources. XV. FUTURE SCOPE These set of lines are responsible for displaying power and energy on the LCD. int acsValue = analogRead(acsPin); analyzes and reads the analog value from the ACS712 current sensor connected to pin acsPin. float voltageACS = (acsValue * 5.0) / 1023.0; and float current = (voltageACS - 2.5) / 0.185; are varaibles initialized as floating-type integers which are used to converts the raw analog sensor value to voltage and the obtained volage to current using the ACS712 sensitivity float power = voltageACS * current; Calculates power in watts using the formula P = VI (power equals voltage multiplied by current) and float energy = power / 3600.0; Calculates energy in watt-hours, assuming 1 sample per second. XIV. CONCLUSION In conclusion, the integration of an energy monitoring and temperature control system signifies a transformative leap into a realm of heightened operational efficiency, resource sustainability, and unparalleled user convenience. This cutting-edge system operates as a linchpin in the contemporary quest for intelligent and sustainable infrastructure. By harnessing real-time data on energy consumption, it not only enables meticulous management of resources but also serves as a beacon for responsible energy use. The meticulous regulation of temperatures through this system not only ensures optimal comfort in various environments but also contributes significantly to reducing the carbon footprint. The precision and adaptability offered by such technology position it as a cornerstone in the pursuit of eco-friendly practices and energy conservation. Moreover, the economic implications of adopting an energy monitoring and temperature control system cannot be overstated. The insights gleaned from continuous monitoring empower stakeholders to identify potential areas of improvement, implement targeted energy-saving measures, and ultimately realize substantial cost savings. The system's ability to provide actionable data facilitates informed decision-making, driving a proactive approach to resource management. Additionally, the integration of smart The world is between the center of a major technological and environmental transformation when deliberating deep into the future of energy monitoring and temperature control systems. In such systems, the path of innovation is poised to unfold into an intricate tapestry of sustainability and efficiency, which shapes the very fabric of our energy landscape. Looking forward, one can predict a paradigm shift in which these systems seamlessly interface with the forefront of technological advancement, integrating with advanced smart grids, and navigating the complexities of emerging energy ecosystems. The future development of such splendid systems involves more than just small fixes; it involves a comprehensive reconceptualization of their function and influence. The important challenge is to make these systems more interface friendly, to create an atmosphere in which they can interact and adapt dynamically, reacting instantly to the constantly shifting dynamics of their surroundings. Predictive analytics will be made possible by artificial intelligence and machine learning algorithms, which are expected to be crucial in this development. This predictive capability ushers in an era of anticipatory resource optimization by providing users with proactive as well as reactive solutions for smart and effective energy management. The future development of these systems involves more than just small fixes; it involves a comprehensive reconceptualization of their function and influence. The important challenge is to make these systems more interoperable, to create an atmosphere in which they can interact and adapt dynamically, reacting instantly to the constantly shifting dynamics of their surroundings. Predictive analytics will be made possible by artificial intelligence and machine learning algorithms, which are expected to be crucial in this development. This predictive capability ushers in an era of anticipatory resource optimization by providing users with proactive as well as reactive solutions for smart and effective energy management. Beyond the realms of technology, these systems are catalysts for positive environmental impact, contributing significantly to global initiatives aimed at mitigating climate change and fostering a sustainable future. The narrative of tomorrow's energy landscape is one of interconnectedness, where energy monitoring and temperature control systems transcend their current functionalities, emerging as powerful agents of change in our collective journey towards a greener, more harmonious world. The journey ahead is a testament to the fusion of technology, environmental stewardship, and societal progress, encapsulating the promise of a future where energy systems not only sustain us but propel us towards a brighter and more conscientious existence. XVI. COST ANALYSIS Keeping in view the budget and time constraints of the project, initially PKR 4000.00/- were reserved for the entire project, with a few items sourced miscellaneously. Here is the initial major costing of the project • ACS712 30A Current Sensor: Rs 350.00/• 12V DC Cooling fan: Rs 300.00/• Arduino UNO R3 16U2 with cable: Rs 1920.00/• 8.5x5.5 cm 400 Tie Points Breadboard: Rs 150.00/• Pin to Hole Jumper Wires: Rs 100.00/• 3m Flexible Copper Wire: Rs 60.00/• 16x2 1602 LCD Display: Rs 420.00/• PCF8574 IIC/I2C 16 Pin Serial Interface LCD Display Adapter Module: Rs 220.00/• 5V Two Channel 10A Relay: Rs 240.00/• Styrofoam Sheet: Rs 200.00/ACKNOWLEDGMENT I would really like to express gratitude to Sir Ali Hassan for the project. The project has helped us to understand deeper into the practical approach of Electrical Engineering and Electronics with multidisciplinary courses, deeply connected to Mechanical Engineering like Thermodynamics, Heat and Mass Transfer, Control Engineering etc. I would really like to thank Muhammad Qasim Kamal for his services in successful simulation of the entire project on Proteus Professional Software. Muhammad Ali Tariq and Sufyan Ahmed worked hands on the project from scratch. REFERENCES [1] https://docs.arduino.cc/hardware/uno-rev3J. [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] https://en.wikipedia.org/wiki/Arduino_Uno https://www.mybotic.com.my/module/relay-module/2-channels-5vrelaymodule#:~:text=The%202%20Channels%20Relay%20Module,as%20 Arduino%2C%20PIC%20and%20etc. https://electrobes.com/product/2-channel-relay-module-10a/ https://www.majju.pk/product/lcd-i2c-module-iic-i2c-serial-interfaceadapter-i2c-interface-module/ https://electrobes.com/product/iic-i2c-16-pin-serial-interface-lcddisplay-adapter-module/ https://www.addicore.com/products/acs712-current-sensor-module30a https://www.watelectronics.com/lcd-16x2/ https://www.daraz.pk/products/dupont-line-30cm-male-to-malefemale-to-male-and-female-to-female-jumper-wire-dupont-cable-forarduino-diy-kit-40pin-i300582209.html https://www.amazon.in/Invento-DS18B20-Waterproof-TemperatureThermistor/dp/B078QCH26Y https://www.lampco.co.uk/products/capsule-bulb-jc-110v-50w-g6-35two-pin-base-halogen-capsule https://www.youtube.com/watch?v=EAeuxjtkumM https://www.youtube.com/watch?v=EAeuxjtkumM https://www.youtube.com/watch?v=d6MnA4aPDag&t=642s https://www.instructables.com/THERMISTOR-WITH-ARDUINOUNO-R3/ https://youtu.be/9bZw4OqLmUQ?si=BGiaShhu0NyTfu8f https://youtu.be/ZXgXuFWsdEM?si=3eYa6I_rrEecme89 https://www.google.com/url?sa=t&source=web&rct=j&opi=8997844 9&url=https://forum.arduino.cc/t/connecting-a-fan-to-a-relay-andarduino/300843&ved=2ahUKEwj90_i5n5uDAxWLe6QEHVn5Bf0Q FnoECBcQAQ&usg=AOvVaw1n5_1eqAhkRVWr5rsrcYpP https://youtu.be/LrjdlccXOcI?si=QTeU41iy4Z2oApXi https://youtu.be/psNAeHoZv0A?si=AIxMdGcgasww2TO4 Arduino - Controls Heating Element | Arduino Tutorial (arduinogetstarted.com)