Advertisement
Guest User

Arduino Project

a guest
Oct 17th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.62 KB | None | 0 0
  1. #include <dht.h>
  2.  
  3. #include <LiquidCrystal.h>
  4.  
  5. LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
  6.  
  7. int sensorPin = 7;
  8. int buttonPin = 8;
  9. int relayPin = 9;
  10.  
  11. int relayState = LOW;
  12. int previous = LOW;
  13. char* modes[] = {"Auto", "On", "Off"};
  14. int mode = 2;
  15.  
  16. dht DHT;
  17. #define DHT11_PIN 7
  18.  
  19. float celsius = 0;
  20. char celsiusString[30];
  21.  
  22. void setup() {
  23. lcd.begin(16, 2);
  24. Serial.begin(9600);
  25. pinMode(sensorPin, OUTPUT);
  26. pinMode(relayPin, OUTPUT);
  27. digitalWrite(relayPin, LOW);
  28. pinMode(buttonPin, INPUT);
  29. }
  30.  
  31. void readTemp() {
  32.  
  33. }
  34.  
  35. void checkMode() {
  36. int buttonState = digitalRead(buttonPin);
  37. if (buttonState == HIGH && previous == LOW){
  38. mode++;
  39. if (mode % 3 == 1) { // On
  40. relayState = HIGH;
  41. digitalWrite(relayPin, relayState);
  42.  
  43. } else if (mode % 3 == 2) { // Off
  44. relayState = LOW;
  45. digitalWrite(relayPin, relayState);
  46. }
  47. }
  48. previous = buttonState;
  49. }
  50.  
  51. void autoMode() {
  52. if (mode % 3 == 0) { // Auto
  53. if (celsius >= 20.0 && relayState == LOW) {
  54. relayState = HIGH;
  55. digitalWrite(relayPin, relayState);
  56. } else if (celsius <= 17.0 && relayState == HIGH) {
  57. relayState = LOW;
  58. digitalWrite(relayPin, relayState);
  59. }
  60. }
  61. }
  62.  
  63. void printLcd() {
  64. int chk = DHT.read11(DHT11_PIN);
  65. lcd.clear();
  66. lcd.print("Temp: ");
  67. lcd.print(DHT.temperature);
  68. lcd.print((char)223);
  69. lcd.print("C");
  70. lcd.setCursor(0,1);
  71. lcd.print("Mode: ");
  72. lcd.print(modes[(mode%3)]);
  73. Serial.print(celsius);
  74. }
  75.  
  76. void loop() {
  77. readTemp();
  78.  
  79. checkMode();
  80. autoMode();
  81.  
  82. printLcd();
  83.  
  84. delay(250);
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement