Proximity Cooling System

Objective


I will create a cooling system that will use UART to receive commands from a terminal and/or HC-05 bluetooth module to turn a fan on and off, and use a temperature sensor to regulate the speed at which the fan operates based on the temperature of the room. If I have extra time, I will also be mounting the DC fan to a servo motor to be rotated according to proximity of close objects, extrapolated by an HRC-04 ultrasonic distance sensor.

Peripherals


  • HC-05 Bluetooth module

  • TC-74 Temperature sensor

  • DC Motor

  • ULN2003 motor driver circuit

  • SG90 Servo Motor (If time allows)

  • HRC-04 Ultrasonic Distance sensor (If time allows)


Communication Protocols


  • UART for HC-05 Bluetooth module

  • I2C for TC-74 Temperature Sensor

  • PWM for ULN2003 driver circuit to boost current of GPIO pin

  • PWM for controlling SG90 servo motor direction

  • PWM/Interrupts for HRC-04 Ultrasonic distance sensor


Block Diagram

Software Structure


I am using the UART protocol to send the system commands using the Termite Terminal and the HC-05 Bluetooth module. I will then power on the fan, based on the reading of the TC-74 Temperature sensor, using the ULN2003 driver to control the current being supplied to the fan. I will use I2C for communication with the TC-74 temperature sensor. When a measurement is captured, the temperature recorded by the TC-74 will be sent to the terminal through the bluetooth connection, and the current object distance will be displayed on the onboard LCD display.

When the above functionality is complete, I will attempt to add direction control based on the HRC-04 ultrasonic distance sensor, and rotate the DC fan based on those distance readings using an SG90 servo motor that the DC fan will be mounted on. The HRC-04 sensor will be driven with PWM at 50% duty cycle, and the SG90 servo motor will be driven by PWM using variable duty cycle of 1-2ms (5-10%) range to control the direction that the fan points.