Advertisement
Guest User

Untitled

a guest
Jul 5th, 2013
405
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.50 KB | None | 0 0
  1. /*
  2. TO DO
  3.  
  4. LCD Pins aendern
  5. Relais beruhigen
  6. Menues anfertigen
  7. ___________________________________
  8. Key Codes (in left-to-right order):
  9.  
  10. None - 0
  11. Select - 1
  12. Left - 2
  13. Up - 3
  14. Down - 4
  15. Right - 5
  16. */
  17.  
  18. #include <dht.h>
  19. #include <LiquidCrystal.h>
  20. #include <DFR_Key.h>
  21. LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
  22.  
  23.  
  24. dht DHT;
  25. DFR_Key keypad;
  26.  
  27. #define dhtA 5
  28. #define dhtI 6
  29. #define relais 7
  30.  
  31. int localKey = 0; //Tastenerkennung
  32. String keyString = ""; //??
  33.  
  34. double dewPointFast(double celsius, double humidity) //Taupunkt berechnung
  35. {
  36. double a = 17.271;
  37. double b = 237.7;
  38. double temp = (a * celsius) / (b + celsius) + log(humidity/100);
  39. double Td = (b * temp) / (a - temp);
  40. return Td;
  41. }
  42.  
  43. float dewI = 0; //Taupunkt Innen
  44. float dewA = 0; //Taupunkt Aussen
  45. float tempI = 0;//Temperatur Innen
  46. float tempA = 0;//Temperatur Aussen
  47. float humI = 0; //Luftfeuchtigkeit Innen
  48. float humA = 0; //Luftfeuchtigkeit Aussen
  49. int count = 0; //Counter fuer die Eingabe
  50. int statL = 1; //Status der Luefter
  51. int menueH = 0; //Durchs Hauptmenue gehen
  52. int statS = 0; //brauche ich das??
  53.  
  54.  
  55. void setup()
  56. {
  57. Serial.begin(115200); //Verbindung Computer
  58. //pinMode(relais, OUTPUT);
  59. digitalWrite(relais, HIGH);
  60. lcd.begin(16, 2);
  61. lcd.clear();
  62. lcd.setCursor(0, 0);
  63. lcd.print("0.01 by Jules");
  64. delay(2500);
  65. }
  66.  
  67. void loop()
  68. {
  69.  
  70. if(statL == 1) //notwendig um Relais zu schalten!!
  71. {
  72. digitalWrite(relais, LOW);
  73. }
  74.  
  75. else
  76. {
  77. digitalWrite(relais, HIGH);
  78. }
  79.  
  80. lcd.clear();
  81. lcd.setCursor(0, 0);
  82. lcd.print("Messung laeuft");
  83.  
  84.  
  85. DHT.read22(dhtI); //Sensor Innen auslesen
  86. delay(500);
  87. DHT.read22(dhtI);
  88. float humI = DHT.humidity;
  89. float tempI = DHT.temperature;
  90. float dewI = (dewPointFast(DHT.temperature, DHT.humidity));
  91.  
  92. DHT.read22(dhtA); //Sensor Aussen auslesen
  93. delay(500);
  94. DHT.read22(dhtA);
  95. float humA = DHT.humidity;
  96. float tempA = DHT.temperature;
  97. float dewA = (dewPointFast(DHT.temperature, DHT.humidity));
  98.  
  99. dewA = dewA + 5; //Test!!!!!!!!!!!!!!!!!!!
  100.  
  101. if (dewA > dewI) //Ueberprueft die Luftfeuchtigkeit schaltet die Luefter und speichert den Status in statL
  102. {
  103. digitalWrite(relais, HIGH); //Luefter ausschalten
  104. statL = 0;
  105. delay(10000); //Test!!!!!!!
  106. }
  107.  
  108. else
  109. {
  110. digitalWrite(relais, LOW); //Lufter einschalten
  111. statL = 1;
  112. }
  113. Serial.println(statL); //loeschen
  114. lcd.clear();
  115. lcd.setCursor(0, 0);
  116. lcd.print("Erwarte Befehle");
  117.  
  118.  
  119. count = 0; //integer, wenn zu hoch Speicherüberlauf!!!
  120.  
  121. while(count < 30000) //Menuefunktion
  122. {
  123. keypad.getKey();
  124. menueH = keypad.getKey();
  125.  
  126. if(statL == 1) //notwendig um Relais zu schalten!!
  127. {
  128. digitalWrite(relais, LOW);
  129. }
  130.  
  131. else
  132. {
  133. digitalWrite(relais, HIGH);
  134. }
  135.  
  136.  
  137. switch (menueH) //Einzelne Menuepunkte
  138. {
  139. case 1:
  140. lcd.clear();
  141. lcd.setCursor(0, 0);
  142. lcd.print("Taste1");
  143. delay(2000);
  144. lcd.clear();
  145. break;
  146.  
  147. case 2:
  148. lcd.clear();
  149. lcd.setCursor(0, 0);
  150. lcd.print("Taste2");
  151. delay(2000);
  152. lcd.clear();
  153. break;
  154.  
  155. case 3:
  156. lcd.clear();
  157. lcd.setCursor(0, 0);
  158. lcd.print("Taste3");
  159. delay(2000);
  160. lcd.clear();
  161. break;
  162.  
  163. case 4:
  164. lcd.clear();
  165. lcd.setCursor(0, 0);
  166. lcd.print("Taste4");
  167. delay(2000);
  168. lcd.clear();
  169. break;
  170.  
  171. case 5:
  172. lcd.clear();
  173. lcd.setCursor(0, 0);
  174. lcd.print("Taste5");
  175. delay(2000);
  176. lcd.clear();
  177. break;
  178. }
  179.  
  180. if(menueH != SAMPLE_WAIT) //Setzt den Counter auf Null wenn Eingabe erfolgt ist.
  181. {
  182. count = 0;
  183. }
  184.  
  185.  
  186. else
  187. {
  188. count++; //Ohne Einmgabe laueft der Counter
  189. }
  190.  
  191. //Serial.println(count);
  192.  
  193.  
  194. }
  195.  
  196.  
  197. // Serial.println ("Innensensor:");
  198. // Serial.print ("humI: ");
  199. // Serial.println (humI);
  200. // Serial.print ("tempI: ");
  201. // Serial.println (tempI);
  202. // Serial.print ("dewI: ");
  203. // Serial.println (dewI);
  204. // Serial.println ("");
  205. //
  206. //
  207. // Serial.println ("Aussensensor:");
  208. // Serial.print ("humA: ");
  209. // Serial.println (humA);
  210. // Serial.print ("tempA: ");
  211. // Serial.println (tempA);
  212. // Serial.print ("dewA: ");
  213. // Serial.println (dewA);
  214. // Serial.println ("____________________");
  215.  
  216. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement