Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Design and implement an Air Conditioner Controller System to control automatical

ID: 2083373 • Letter: D

Question

Design and implement an Air Conditioner Controller System to control automatically an air conditioner based on the ambient temperature and surrounding light (Daytime/Nighttime). The ambient temperature and surrounding light (Daytime/Nighttime) should be displayed on a Liquid crystal display (LCD) as shown in Figure.1. To emulate the process of controlling an air conditioner, in your project you will control a 12V DC FAN .

The Air Conditioner Controller System should work in two modes: Setting Mode and Operation Mode. When the system is turned ON (Powered ON), it starts the Setting Mode and stays for 5 seconds as shown in Fig2.a. To enter the Setting Mode, the user should press on SET Push-button within 5 seconds; otherwise, the system enters the Operation Mode as shown in Fig.2.b.

In the setting mode,the user should be able to use UP/DOWN buttons to scroll up and down in the menu, and the SET button to exit with or without (w/o) save ( four options as shown in Fig.2.c). Thus, in this mode, the user should be able to set separately the temperature that will activate or turn ON the FAN for Day-Time and Night-time, save the new setting and exit, or exit with saving the new setting.

In the operation mode, the system detects Day/Night, and based on FAN ON Day/Night temperature settings, a Relay is controlled to turn ON/OFF a DC FAN. If the system starts immediately in the operation mode, the default value for FAN ON - Daytime tempreture is 24 degree, and the default value for the FAN ON - NighTime tempteture is 27 degree. In this mode, the FAN will be automatically turned OFF, if the temperature drops below the set value by 1- degree centigrade. For protection,in this mode, the voltage across the FAN should not be below 10.5V and not exceed 12V. Otherwise, the FAN should be turned OFF. Therefore, the system should detect the level of the supplied voltage to the FAN and check if it is within the normal range, otherwise display on the LCD that the voltage is too low or too high and turn OFF the FAN as protection type.

Any kind of help would be greatly appreciated, and thank you in advance.

A/C Controller Press SET to enter Setting mode 5s AVC ON T 300C Figure 2a: Entry into SET mode Figure 2b Operation Mode Menu: Menu: 1. Fan ON T(D): 22 2. Fan ON T(N) 20 Menu Menu: 4 Exit w/o save 3 Save & Exit Figure 2c: Setting Menu

Explanation / Answer

const char* host = "192.168.1.80"; // Internal IP of (Home Automation w/ Intellegence) Webserver const char* devID = "downstairs"; // Device ID (single word, no spaces, no special characters) #include #include #include "DHT.h" // Written by ladyada, public domain IRsend irsend; SoftwareSerial ser(10, 11); // (RX, TX) // Software serial for controling ESP8266 Module // Hardware serial for debugging int khz = 38; // 38kHz carrier frequency // Insert RAW IR signal for "Temperature Up" unsigned int irSignalUp[] = {8350,4150, 550,1550, 550,1550, 550,1550, 550,500, 550,1550, 550,550, 500,1600, 500,1600, 500,4150, 550,500, 550,550, 500,550, 500,1600, 500,550, 500,550, 550,500, 550,550, 600}; // UNKNOWN CE608146 TempUp // Insert RAW IR signal for "Temperature Down" unsigned int irSignalDown[] = {8350,4150, 550,1550, 550,1550, 550,1600, 500,550, 500,1600, 500,550, 500,1600, 500,1600, 500,4200, 500,1600, 500,550, 500,550, 500,1600, 550,500, 550,500, 550,550, 500,550, 600}; // UNKNOWN 3F3D09A5 TempDown // IR pin is digital pin 3 int ACTEMP = 85; // Default temp at which the AC turns on (85*F) const int numReadings = 10; // Readings used for average #define DHTPIN 2 // DHT Sensor int ACON = 0; // AC state. Assumes AC is off on first boot // Uncomment whatever type you're using #define DHTTYPE DHT11 // DHT11, DHT22 or DHT21 // Initialize DHT sensor for normal 16mhz Arduino DHT dht(DHTPIN, DHTTYPE); // Set variables to zero float avetemp = 0; float temp = 0; /* * next up is adding a timer instead of delays unsigned long tempMillis = 0; // will store last time temp was updated unsigned long serverMillis = 0; // will store last time server was updated unsigned long postMillis = 0; // will store last time temp was posted unsigned long ACMillis = 0; // will store last time AC was checked const long tempival = 30000; // interval to check temp (every 30 seconds) const long servercheckival = 60000; // interval to check server config (every minute) const long temppostival = 900000; // interval to post new temp stats (every 15 minutes) const long ACcooldown = 300000; // time to wait if AC is already on (5 minutes) */ void setup() { Serial.begin(9600); ser.begin(9600); /* // Uncomment to reset WiFi settings delay(1000); ser.println("AT+CWMODE=1"); ser.println("AT+CWJAP="SSID","Password""); */ delay(2000); dht.begin(); Serial.println("IR controlled AC Started"); dht.begin(); Serial.println("Giving everything a chance to warm up"); //wait 25 seconds for WiFi to connect Serial.println("|-------------------------|"); Serial.print("|"); for(int x = 0; x < 25; x++){ Serial.print("#"); delay(1000); } Serial.println("|"); Serial.println("Done"); } void checkserver() { // Update thermostat setting (ACTEMP=##) from HAI // Thermostat override with TurnACon=true or TurnACoff=true } void turnACon() { // Run IR code to turn on AC Serial.print("Temperature is over "); Serial.print(ACTEMP); Serial.print(", AC is on (for 5 minutes)"); // Send IR signal to turn AC Unit ON // Turn thermostat all the way down to make AC kick on for (int x = 0; x
Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote