Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /********* Pleasedontcode.com **********
- Pleasedontcode thanks you for automatic code generation! Enjoy your code!
- - Terms and Conditions:
- You have a non-exclusive, revocable, worldwide, royalty-free license
- for personal and commercial use. Attribution is optional; modifications
- are allowed, but you're responsible for code maintenance. We're not
- liable for any loss or damage. For full terms,
- please visit pleasedontcode.com/termsandconditions.
- - Project: Temp_and_hum_alarm
- - Source Code compiled for: Arduino Uno
- - Source Code created on: 2024-01-05 23:56:30
- ********* Pleasedontcode.com **********/
- /****** SYSTEM REQUIREMENTS *****/
- /****** SYSTEM REQUIREMENT 1 *****/
- /* On power up: set temp_max to 35, hum_max to 50, */
- /* normal_mode true, focus = "nothing". */
- /****** SYSTEM REQUIREMENT 2 *****/
- /* If normal_mode is true then: read temperature and */
- /* humidity from DHT11 and write to LCD. If */
- /* temperature exceeds temp_max or humidity exceeds */
- /* hum_max then enable buzzer and led, otherwise */
- /* disable buzzer and Led. */
- /****** SYSTEM REQUIREMENT 3 *****/
- /* If normal_mode is true and B1 is pressed then */
- /* normal_mode false, focus = "temp", write to LCD */
- /* temp_max. */
- /****** SYSTEM REQUIREMENT 4 *****/
- /* If normal_mode is false and focus = "temp" then if */
- /* B1 is pressed then focus = "hum", write to LCD */
- /* hum_max. */
- /****** SYSTEM REQUIREMENT 5 *****/
- /* If normal_mode is false and focus = "hum" then if */
- /* B1 is pressed then focus = "nothing", normal_mode */
- /* true. */
- /****** SYSTEM REQUIREMENT 6 *****/
- /* If normal_mode is false and focus = "temp" then if */
- /* B2 is pressed, add 1 to temp_max, write in LCD */
- /* temp_max. */
- /****** SYSTEM REQUIREMENT 7 *****/
- /* If normal_mode is false and focus = "temp" then if */
- /* B3 is pressed, subtract 1 from temp_max, write */
- /* temp_max on LCD. */
- /****** SYSTEM REQUIREMENT 8 *****/
- /* If normal_mode is false and focus = "hum" then if */
- /* B2 is pressed add 1 to hum_max, write hum_max on */
- /* LCD. */
- /****** SYSTEM REQUIREMENT 9 *****/
- /* If normal_mode is false and focus = "hum" then if */
- /* B3 is pressed, subtract 1 from hum_max, write */
- /* hum_max in LCD. */
- /****** END SYSTEM REQUIREMENTS *****/
- /****** DEFINITION OF LIBRARIES *****/
- #include <Arduino.h>
- #include <LiquidCrystal.h>
- #include <EasyButton.h>
- #include <DHT.h>
- /****** FUNCTION PROTOTYPES *****/
- void setup(void);
- void loop(void);
- /***** DEFINITION OF DIGITAL INPUT PINS *****/
- const uint8_t D_DHT11_DOUT_PIN_D2 = 2;
- const uint8_t B1_PushButton_PIN_D9 = 9;
- const uint8_t B2_PushButton_PIN_D10 = 10;
- const uint8_t B3_PushButton_PIN_D11 = 11;
- /***** DEFINITION OF DIGITAL OUTPUT PINS *****/
- const uint8_t L_LCD1602_RS_PIN_D3 = 3;
- const uint8_t L_LCD1602_E_PIN_D4 = 4;
- const uint8_t L_LCD1602_D4_PIN_D5 = 5;
- const uint8_t L_LCD1602_D5_PIN_D6 = 6;
- const uint8_t L_LCD1602_D6_PIN_D7 = 7;
- const uint8_t L_LCD1602_D7_PIN_D8 = 8;
- const uint8_t LED_LED_PIN_D12 = 12;
- const uint8_t B_ActiveBuzzer_output_PIN_D13 = 13;
- /****** DEFINITION OF LIBRARIES CLASS INSTANCES*****/
- LiquidCrystal lcd(L_LCD1602_RS_PIN_D3, L_LCD1602_E_PIN_D4, L_LCD1602_D4_PIN_D5, L_LCD1602_D5_PIN_D6, L_LCD1602_D6_PIN_D7, L_LCD1602_D7_PIN_D8);
- EasyButton b1(B1_PushButton_PIN_D9);
- EasyButton b2(B2_PushButton_PIN_D10);
- EasyButton b3(B3_PushButton_PIN_D11);
- DHT dht(D_DHT11_DOUT_PIN_D2, DHT11);
- // System variables
- bool normal_mode = true;
- int temp_max = 35;
- int hum_max = 50;
- String focus = "nothing";
- void setup(void)
- {
- // put your setup code here, to run once:
- pinMode(D_DHT11_DOUT_PIN_D2, INPUT_PULLUP);
- pinMode(B1_PushButton_PIN_D9, INPUT_PULLUP);
- pinMode(B2_PushButton_PIN_D10, INPUT_PULLUP);
- pinMode(B3_PushButton_PIN_D11, INPUT_PULLUP);
- pinMode(L_LCD1602_RS_PIN_D3, OUTPUT);
- pinMode(L_LCD1602_E_PIN_D4, OUTPUT);
- pinMode(L_LCD1602_D4_PIN_D5, OUTPUT);
- pinMode(L_LCD1602_D5_PIN_D6, OUTPUT);
- pinMode(L_LCD1602_D6_PIN_D7, OUTPUT);
- pinMode(L_LCD1602_D7_PIN_D8, OUTPUT);
- pinMode(LED_LED_PIN_D12, OUTPUT);
- pinMode(B_ActiveBuzzer_output_PIN_D13, OUTPUT);
- lcd.begin(16, 2);
- b1.begin();
- b2.begin();
- b3.begin();
- dht.begin();
- // Set initial values
- temp_max = 35;
- hum_max = 50;
- normal_mode = true;
- focus = "nothing";
- }
- void loop(void)
- {
- // put your main code here, to run repeatedly:
- // SYSTEM REQUIREMENT 2
- if (normal_mode)
- {
- float temperature = dht.readTemperature();
- float humidity = dht.readHumidity();
- lcd.setCursor(0, 0);
- lcd.print("Temp: ");
- lcd.print(temperature);
- lcd.print("C");
- lcd.setCursor(0, 1);
- lcd.print("Humidity: ");
- lcd.print(humidity);
- lcd.print("%");
- // Check if temperature exceeds temp_max
- if (temperature > temp_max || humidity > hum_max)
- {
- digitalWrite(LED_LED_PIN_D12, HIGH);
- digitalWrite(B_ActiveBuzzer_output_PIN_D13, HIGH);
- }
- else
- {
- digitalWrite(LED_LED_PIN_D12, LOW);
- digitalWrite(B_ActiveBuzzer_output_PIN_D13, LOW);
- }
- }
- // Read buttons
- b1.read();
- b2.read();
- b3.read();
- // SYSTEM REQUIREMENT 3
- if (normal_mode && b1.wasPressed())
- {
- normal_mode = false;
- focus = "temp";
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print("Temp Max: ");
- lcd.print(temp_max);
- lcd.print("C");
- }
- // SYSTEM REQUIREMENT 4
- else if (!normal_mode && focus == "temp" && b1.wasPressed())
- {
- focus = "hum";
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print("Hum Max: ");
- lcd.print(hum_max);
- lcd.print("%");
- }
- // SYSTEM REQUIREMENT 5
- else if (!normal_mode && focus == "hum" && b1.wasPressed())
- {
- focus = "nothing";
- normal_mode = true;
- lcd.clear();
- }
- // SYSTEM REQUIREMENT 6
- if (!normal_mode && focus == "temp" && b2.wasPressed())
- {
- temp_max++;
- lcd.setCursor(10, 0);
- lcd.print(temp_max);
- lcd.print("C");
- }
- // SYSTEM REQUIREMENT 7
- if (!normal_mode && focus == "temp" && b3.wasPressed())
- {
- temp_max--;
- lcd.setCursor(10, 0);
- lcd.print(temp_max);
- lcd.print("C");
- }
- // SYSTEM REQUIREMENT 8
- if (!normal_mode && focus == "hum" && b2.wasPressed())
- {
- hum_max++;
- lcd.setCursor(9, 0);
- lcd.print(hum_max);
- lcd.print("%");
- }
- // SYSTEM REQUIREMENT 9
- if (!normal_mode && focus == "hum" && b3.wasPressed())
- {
- hum_max--;
- lcd.setCursor(9, 0);
- lcd.print(hum_max);
- lcd.print("%");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement