Smart barn work with sensor DHT22 measure temp. & Hum.

Dependencies:   DHT mbed

Committer:
Tisena
Date:
Wed Dec 09 08:36:36 2015 +0000
Revision:
0:f45f2181e4f5
A5 Smart Barn

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Tisena 0:f45f2181e4f5 1 #include "mbed.h"
Tisena 0:f45f2181e4f5 2 #include "DHT.h"
Tisena 0:f45f2181e4f5 3
Tisena 0:f45f2181e4f5 4 Serial hm_tp (PA_11, PA_12); // PA_11 - tx, PA_12 - rx via bluetooth
Tisena 0:f45f2181e4f5 5
Tisena 0:f45f2181e4f5 6 DigitalOut lamp(D11); // Hydrogyn lamp for heat
Tisena 0:f45f2181e4f5 7
Tisena 0:f45f2181e4f5 8 DigitalOut waterIn(D9); // Fake springer
Tisena 0:f45f2181e4f5 9 DigitalOut waterOut(D10); // Fake springer
Tisena 0:f45f2181e4f5 10
Tisena 0:f45f2181e4f5 11 DigitalOut led1(D7); // Status 0f DHT22-1
Tisena 0:f45f2181e4f5 12 DigitalOut led2(D8); // Status 0f DHT22-2
Tisena 0:f45f2181e4f5 13
Tisena 0:f45f2181e4f5 14 DigitalOut fanL(D5); // motor Fan for control way
Tisena 0:f45f2181e4f5 15 DigitalOut fanR(D6);
Tisena 0:f45f2181e4f5 16
Tisena 0:f45f2181e4f5 17 DHT sensorOut(D3,DHT22); // Use the AM2302 sensor
Tisena 0:f45f2181e4f5 18 DHT sensorIn(D4,DHT22); // sensorOut is outside, sensorIn is inside
Tisena 0:f45f2181e4f5 19
Tisena 0:f45f2181e4f5 20 int main()
Tisena 0:f45f2181e4f5 21 {
Tisena 0:f45f2181e4f5 22 //int err1, err2;
Tisena 0:f45f2181e4f5 23 //float refTemp = 0, refHum = 0;
Tisena 0:f45f2181e4f5 24 uint8_t hedSelect = 0, state_show = 0, state_exit = 0, HedJa;
Tisena 0:f45f2181e4f5 25 int stop = 0;
Tisena 0:f45f2181e4f5 26
Tisena 0:f45f2181e4f5 27 hm_tp.printf("Hello Sir / Madam!!\nPls choose your mushroom\n");
Tisena 0:f45f2181e4f5 28 while(1) {
Tisena 0:f45f2181e4f5 29 if(state_show == 0) {
Tisena 0:f45f2181e4f5 30 hm_tp.printf("Menu\n");
Tisena 0:f45f2181e4f5 31 hm_tp.printf("1.Hed Ya na ngi\n"); //25-32 78-80
Tisena 0:f45f2181e4f5 32 hm_tp.printf("2.Hed Fang\n"); //30-38 70-80
Tisena 0:f45f2181e4f5 33 state_show = 1;
Tisena 0:f45f2181e4f5 34 }
Tisena 0:f45f2181e4f5 35 if(hm_tp.readable()) {
Tisena 0:f45f2181e4f5 36 HedJa = hm_tp.getc();
Tisena 0:f45f2181e4f5 37 hm_tp.printf("\n");
Tisena 0:f45f2181e4f5 38 state_show = 0;
Tisena 0:f45f2181e4f5 39 state_exit = 0;
Tisena 0:f45f2181e4f5 40
Tisena 0:f45f2181e4f5 41 switch(HedJa) {
Tisena 0:f45f2181e4f5 42 case '1':
Tisena 0:f45f2181e4f5 43 do {
Tisena 0:f45f2181e4f5 44 if(hedSelect == 0) {
Tisena 0:f45f2181e4f5 45 hm_tp.printf("Hed Ya na ngi\nTemp. 25-32'c\nHum. 78-80% \n");
Tisena 0:f45f2181e4f5 46 hm_tp.printf("a : Start Process\nb : Change Type/Stop Process\n");
Tisena 0:f45f2181e4f5 47 hedSelect = 1;
Tisena 0:f45f2181e4f5 48 }
Tisena 0:f45f2181e4f5 49 if(hm_tp.readable()) {
Tisena 0:f45f2181e4f5 50 HedJa = hm_tp.getc();
Tisena 0:f45f2181e4f5 51 hm_tp.printf("\n");
Tisena 0:f45f2181e4f5 52 hedSelect = 0;
Tisena 0:f45f2181e4f5 53
Tisena 0:f45f2181e4f5 54 switch(HedJa) {
Tisena 0:f45f2181e4f5 55 case 'a' :
Tisena 0:f45f2181e4f5 56 hm_tp.printf("*When you enough to see value pls press '1'*\n");
Tisena 0:f45f2181e4f5 57
Tisena 0:f45f2181e4f5 58 led1 = 1;
Tisena 0:f45f2181e4f5 59 led2 = 1;
Tisena 0:f45f2181e4f5 60
Tisena 0:f45f2181e4f5 61 if(sensorOut.ReadTemperature(CELCIUS) > sensorIn.ReadTemperature(CELCIUS))
Tisena 0:f45f2181e4f5 62 {
Tisena 0:f45f2181e4f5 63 if(sensorIn.ReadTemperature(CELCIUS) < 25 && sensorOut.ReadTemperature(CELCIUS) > 32) {
Tisena 0:f45f2181e4f5 64 fanL = 1;
Tisena 0:f45f2181e4f5 65 fanR = 0; //fan run - wind come in
Tisena 0:f45f2181e4f5 66 wait(15);
Tisena 0:f45f2181e4f5 67 fanL = 0;
Tisena 0:f45f2181e4f5 68 fanR = 0; // off fan
Tisena 0:f45f2181e4f5 69
Tisena 0:f45f2181e4f5 70 } else if(sensorIn.ReadTemperature(CELCIUS) < 25 && sensorOut.ReadTemperature(CELCIUS) > 25 && sensorOut.ReadTemperature(CELCIUS) < 32) {
Tisena 0:f45f2181e4f5 71 lamp = 1; //lamp run
Tisena 0:f45f2181e4f5 72 wait(30);
Tisena 0:f45f2181e4f5 73 lamp = 0; //lamp stop
Tisena 0:f45f2181e4f5 74
Tisena 0:f45f2181e4f5 75 } else if(sensorIn.ReadTemperature(CELCIUS) >= 25 && sensorIn.ReadTemperature(CELCIUS) <= 32 && sensorOut.ReadTemperature(CELCIUS) > 32) {
Tisena 0:f45f2181e4f5 76 //spinger out run estimate 30 mins. in real but in show just run 10 sec.
Tisena 0:f45f2181e4f5 77 waterOut = 1;
Tisena 0:f45f2181e4f5 78 wait(10);
Tisena 0:f45f2181e4f5 79 waterOut = 0;
Tisena 0:f45f2181e4f5 80
Tisena 0:f45f2181e4f5 81 if(sensorIn.ReadHumidity() < 78) {
Tisena 0:f45f2181e4f5 82 waterIn = 1;
Tisena 0:f45f2181e4f5 83 wait(1);
Tisena 0:f45f2181e4f5 84 waterIn = 0;
Tisena 0:f45f2181e4f5 85 } else if(sensorIn.ReadHumidity() >= 78 && sensorIn.ReadHumidity() <= 80) {
Tisena 0:f45f2181e4f5 86 break;
Tisena 0:f45f2181e4f5 87 } else { // sensorIn.ReadHumidity() > 80
Tisena 0:f45f2181e4f5 88 //fan run - wind come in
Tisena 0:f45f2181e4f5 89 fanL = 1;
Tisena 0:f45f2181e4f5 90 fanR = 0; // fan run
Tisena 0:f45f2181e4f5 91 wait(15);
Tisena 0:f45f2181e4f5 92 fanL = 0;
Tisena 0:f45f2181e4f5 93 fanR = 0; //fan stop
Tisena 0:f45f2181e4f5 94
Tisena 0:f45f2181e4f5 95 }
Tisena 0:f45f2181e4f5 96
Tisena 0:f45f2181e4f5 97 } else { // sensorIn.ReadTemperature(CELCIUS) > 32 && sensorOut.ReadTemperature(CELCIUS) > 32
Tisena 0:f45f2181e4f5 98 fanL = 0;
Tisena 0:f45f2181e4f5 99 fanR = 1; //wind get out
Tisena 0:f45f2181e4f5 100 wait(20);
Tisena 0:f45f2181e4f5 101 fanL = 0; //fan stop
Tisena 0:f45f2181e4f5 102 fanR = 0;
Tisena 0:f45f2181e4f5 103 waterOut = 1; //springer out run
Tisena 0:f45f2181e4f5 104 wait(10);
Tisena 0:f45f2181e4f5 105 waterOut = 0;
Tisena 0:f45f2181e4f5 106
Tisena 0:f45f2181e4f5 107 }
Tisena 0:f45f2181e4f5 108 } else if(sensorOut.ReadTemperature(CELCIUS) < sensorIn.ReadTemperature(CELCIUS)) {
Tisena 0:f45f2181e4f5 109 if(sensorIn.ReadTemperature(CELCIUS) > 32 && sensorOut.ReadTemperature(CELCIUS) > 25 && sensorOut.ReadTemperature(CELCIUS) < 32) {
Tisena 0:f45f2181e4f5 110 fanL = 1;
Tisena 0:f45f2181e4f5 111 fanR = 0; //fan run - wind come in
Tisena 0:f45f2181e4f5 112 wait(15);
Tisena 0:f45f2181e4f5 113 fanL = 0;
Tisena 0:f45f2181e4f5 114 fanR = 0; // off fan
Tisena 0:f45f2181e4f5 115 } else if(sensorIn.ReadTemperature(CELCIUS) >= 25 && sensorIn.ReadTemperature(CELCIUS) <= 32 && sensorOut.ReadTemperature(CELCIUS) < 25) {
Tisena 0:f45f2181e4f5 116
Tisena 0:f45f2181e4f5 117 if(sensorIn.ReadHumidity() < 78) {
Tisena 0:f45f2181e4f5 118 waterIn = 1;
Tisena 0:f45f2181e4f5 119 wait(1);
Tisena 0:f45f2181e4f5 120 waterIn = 0;
Tisena 0:f45f2181e4f5 121 } else if(sensorIn.ReadHumidity() >= 78 && sensorIn.ReadHumidity() <= 80) {
Tisena 0:f45f2181e4f5 122 break;
Tisena 0:f45f2181e4f5 123 } else { // sensorIn.ReadHumidity() > 80
Tisena 0:f45f2181e4f5 124 //fan run - wind come in
Tisena 0:f45f2181e4f5 125 fanL = 1;
Tisena 0:f45f2181e4f5 126 fanR = 0; // fan run
Tisena 0:f45f2181e4f5 127 wait(15);
Tisena 0:f45f2181e4f5 128 fanL = 0;
Tisena 0:f45f2181e4f5 129 fanR = 0; //fan stop
Tisena 0:f45f2181e4f5 130
Tisena 0:f45f2181e4f5 131 }
Tisena 0:f45f2181e4f5 132
Tisena 0:f45f2181e4f5 133 } else { // sensorIn.ReadTemperature(CELCIUS) > 32 && sensorOut.ReadTemperature(CELCIUS) > 32
Tisena 0:f45f2181e4f5 134 fanL = 0;
Tisena 0:f45f2181e4f5 135 fanR = 1; //wind get out
Tisena 0:f45f2181e4f5 136 wait(20);
Tisena 0:f45f2181e4f5 137 fanL = 0; //fan stop
Tisena 0:f45f2181e4f5 138 fanR = 0;
Tisena 0:f45f2181e4f5 139 waterOut = 1; //springer out run
Tisena 0:f45f2181e4f5 140 wait(10);
Tisena 0:f45f2181e4f5 141 waterOut = 0;
Tisena 0:f45f2181e4f5 142 break;
Tisena 0:f45f2181e4f5 143 }
Tisena 0:f45f2181e4f5 144 } else { //sensorOut.ReadTemperature(CELCIUS) == sensorIn.ReadTemperature(CELCIUS)
Tisena 0:f45f2181e4f5 145 if(sensorIn.ReadTemperature(CELCIUS) < 25 && sensorOut.ReadTemperature(CELCIUS) > 32) {
Tisena 0:f45f2181e4f5 146 fanL = 1;
Tisena 0:f45f2181e4f5 147 fanR = 0; //fan run - wind come in
Tisena 0:f45f2181e4f5 148 wait(15);
Tisena 0:f45f2181e4f5 149 fanL = 0;
Tisena 0:f45f2181e4f5 150 fanR = 0; // off fan
Tisena 0:f45f2181e4f5 151 break;
Tisena 0:f45f2181e4f5 152 } else if(sensorIn.ReadTemperature(CELCIUS) < 25 && sensorOut.ReadTemperature(CELCIUS) > 25 && sensorOut.ReadTemperature(CELCIUS) < 32) {
Tisena 0:f45f2181e4f5 153 lamp = 1; //lamp run
Tisena 0:f45f2181e4f5 154 wait(30);
Tisena 0:f45f2181e4f5 155 lamp = 0; //lamp stop
Tisena 0:f45f2181e4f5 156 break;
Tisena 0:f45f2181e4f5 157 } else if(sensorIn.ReadTemperature(CELCIUS) >= 25 && sensorIn.ReadTemperature(CELCIUS) <= 32 && sensorOut.ReadTemperature(CELCIUS) > 32) {
Tisena 0:f45f2181e4f5 158 //spinger out run estimate 30 mins. in real but in show just run 10 sec.
Tisena 0:f45f2181e4f5 159 waterOut = 1;
Tisena 0:f45f2181e4f5 160 wait(10);
Tisena 0:f45f2181e4f5 161 waterOut = 0;
Tisena 0:f45f2181e4f5 162
Tisena 0:f45f2181e4f5 163 if(sensorIn.ReadHumidity() < 78) {
Tisena 0:f45f2181e4f5 164 waterIn = 1;
Tisena 0:f45f2181e4f5 165 wait(5);
Tisena 0:f45f2181e4f5 166 waterIn = 0;
Tisena 0:f45f2181e4f5 167 } else if(sensorIn.ReadHumidity() >= 78 && sensorIn.ReadHumidity() <= 80) {
Tisena 0:f45f2181e4f5 168 break;
Tisena 0:f45f2181e4f5 169 } else { // sensorIn.ReadHumidity() > 80
Tisena 0:f45f2181e4f5 170 //fan run - wind come in
Tisena 0:f45f2181e4f5 171 fanL = 1;
Tisena 0:f45f2181e4f5 172 fanR = 0; // fan run
Tisena 0:f45f2181e4f5 173 wait(15);
Tisena 0:f45f2181e4f5 174 fanL = 0;
Tisena 0:f45f2181e4f5 175 fanR = 0; //fan stop
Tisena 0:f45f2181e4f5 176
Tisena 0:f45f2181e4f5 177 }
Tisena 0:f45f2181e4f5 178
Tisena 0:f45f2181e4f5 179 } else { // sensorIn.ReadTemperature(CELCIUS) > 32 && sensorOut.ReadTemperature(CELCIUS) > 32
Tisena 0:f45f2181e4f5 180 fanL = 0;
Tisena 0:f45f2181e4f5 181 fanR = 1; //wind get out
Tisena 0:f45f2181e4f5 182 wait(20);
Tisena 0:f45f2181e4f5 183 fanL = 0; //fan stop
Tisena 0:f45f2181e4f5 184 fanR = 0;
Tisena 0:f45f2181e4f5 185 waterOut = 1; //springer out run
Tisena 0:f45f2181e4f5 186 wait(10);
Tisena 0:f45f2181e4f5 187 waterOut = 0;
Tisena 0:f45f2181e4f5 188
Tisena 0:f45f2181e4f5 189 }
Tisena 0:f45f2181e4f5 190 }
Tisena 0:f45f2181e4f5 191
Tisena 0:f45f2181e4f5 192 led1 = 0;
Tisena 0:f45f2181e4f5 193 led2 = 0;
Tisena 0:f45f2181e4f5 194 wait(5);
Tisena 0:f45f2181e4f5 195
Tisena 0:f45f2181e4f5 196 scanf("%d",&stop);
Tisena 0:f45f2181e4f5 197 if(stop == '1') {
Tisena 0:f45f2181e4f5 198 hedSelect = 0;
Tisena 0:f45f2181e4f5 199 break;
Tisena 0:f45f2181e4f5 200 }
Tisena 0:f45f2181e4f5 201
Tisena 0:f45f2181e4f5 202 case 'b' :
Tisena 0:f45f2181e4f5 203 state_exit = 0;
Tisena 0:f45f2181e4f5 204 state_show = 0;
Tisena 0:f45f2181e4f5 205
Tisena 0:f45f2181e4f5 206 default :
Tisena 0:f45f2181e4f5 207 hm_tp.printf("please choose a or b only\n");
Tisena 0:f45f2181e4f5 208 break;
Tisena 0:f45f2181e4f5 209 }
Tisena 0:f45f2181e4f5 210
Tisena 0:f45f2181e4f5 211 }
Tisena 0:f45f2181e4f5 212 }
Tisena 0:f45f2181e4f5 213
Tisena 0:f45f2181e4f5 214 while(state_exit == 0);
Tisena 0:f45f2181e4f5 215 hm_tp.printf("\n\n");
Tisena 0:f45f2181e4f5 216 state_exit = 1;
Tisena 0:f45f2181e4f5 217 state_show = 0;
Tisena 0:f45f2181e4f5 218 break;
Tisena 0:f45f2181e4f5 219
Tisena 0:f45f2181e4f5 220 case '2':
Tisena 0:f45f2181e4f5 221 do {if(hedSelect == 0) {
Tisena 0:f45f2181e4f5 222 hm_tp.printf("Hed Fang\nTemp. 30-38'c\nHum. 70-80% \n");
Tisena 0:f45f2181e4f5 223 hm_tp.printf("a : Start Process\nb : Change Type/Stop Process\n");
Tisena 0:f45f2181e4f5 224 //hedSelect = 1;
Tisena 0:f45f2181e4f5 225 }
Tisena 0:f45f2181e4f5 226 if(hm_tp.readable()) {
Tisena 0:f45f2181e4f5 227 HedJa = hm_tp.getc();
Tisena 0:f45f2181e4f5 228 hm_tp.printf("\n");
Tisena 0:f45f2181e4f5 229 //hedSelect = 0;
Tisena 0:f45f2181e4f5 230
Tisena 0:f45f2181e4f5 231 switch(HedJa) {
Tisena 0:f45f2181e4f5 232 case 'a' :
Tisena 0:f45f2181e4f5 233 hm_tp.printf("*When you enough to see value pls press '1'*\n");
Tisena 0:f45f2181e4f5 234
Tisena 0:f45f2181e4f5 235 led1 = 1;
Tisena 0:f45f2181e4f5 236 led2 = 1;
Tisena 0:f45f2181e4f5 237
Tisena 0:f45f2181e4f5 238 if(sensorOut.ReadTemperature(CELCIUS) > sensorIn.ReadTemperature(CELCIUS)) {
Tisena 0:f45f2181e4f5 239 if(sensorIn.ReadTemperature(CELCIUS) < 30 && sensorOut.ReadTemperature(CELCIUS) > 38) {
Tisena 0:f45f2181e4f5 240 fanL = 1;
Tisena 0:f45f2181e4f5 241 fanR = 0; //fan run - wind come in
Tisena 0:f45f2181e4f5 242 wait(15);
Tisena 0:f45f2181e4f5 243 fanL = 0;
Tisena 0:f45f2181e4f5 244 fanR = 0; // off fan
Tisena 0:f45f2181e4f5 245
Tisena 0:f45f2181e4f5 246 } else if(sensorIn.ReadTemperature(CELCIUS) < 30 && sensorOut.ReadTemperature(CELCIUS) > 30 && sensorOut.ReadTemperature(CELCIUS) < 38) {
Tisena 0:f45f2181e4f5 247 lamp = 1; //lamp run
Tisena 0:f45f2181e4f5 248 wait(30);
Tisena 0:f45f2181e4f5 249 lamp = 0; //lamp stop
Tisena 0:f45f2181e4f5 250
Tisena 0:f45f2181e4f5 251 } else if(sensorIn.ReadTemperature(CELCIUS) >= 30 && sensorIn.ReadTemperature(CELCIUS) <= 38 && sensorOut.ReadTemperature(CELCIUS) > 38) {
Tisena 0:f45f2181e4f5 252 //spinger out run estimate 30 mins. in real but in show just run 10 sec.
Tisena 0:f45f2181e4f5 253 waterOut = 1;
Tisena 0:f45f2181e4f5 254 wait(10);
Tisena 0:f45f2181e4f5 255 waterOut = 0;
Tisena 0:f45f2181e4f5 256
Tisena 0:f45f2181e4f5 257 if(sensorIn.ReadHumidity() < 70) {
Tisena 0:f45f2181e4f5 258 waterIn = 1;
Tisena 0:f45f2181e4f5 259 wait(1);
Tisena 0:f45f2181e4f5 260 waterIn = 0;
Tisena 0:f45f2181e4f5 261 } else if(sensorIn.ReadHumidity() >= 70 && sensorIn.ReadHumidity() <= 80) {
Tisena 0:f45f2181e4f5 262 break;
Tisena 0:f45f2181e4f5 263 } else { // sensorIn.ReadHumidity() > 80
Tisena 0:f45f2181e4f5 264 //fan run - wind come in
Tisena 0:f45f2181e4f5 265 fanL = 1;
Tisena 0:f45f2181e4f5 266 fanR = 0; // fan run
Tisena 0:f45f2181e4f5 267 wait(15);
Tisena 0:f45f2181e4f5 268 fanL = 0;
Tisena 0:f45f2181e4f5 269 fanR = 0; //fan stop
Tisena 0:f45f2181e4f5 270
Tisena 0:f45f2181e4f5 271 }
Tisena 0:f45f2181e4f5 272
Tisena 0:f45f2181e4f5 273 } else { // sensorIn.ReadTemperature(CELCIUS) > 38 && sensorOut.ReadTemperature(CELCIUS) > 38
Tisena 0:f45f2181e4f5 274 fanL = 0;
Tisena 0:f45f2181e4f5 275 fanR = 1; //wind get out
Tisena 0:f45f2181e4f5 276 wait(20);
Tisena 0:f45f2181e4f5 277 fanL = 0; //fan stop
Tisena 0:f45f2181e4f5 278 fanR = 0;
Tisena 0:f45f2181e4f5 279 waterOut = 1; //springer out run
Tisena 0:f45f2181e4f5 280 wait(10);
Tisena 0:f45f2181e4f5 281 waterOut = 0;
Tisena 0:f45f2181e4f5 282
Tisena 0:f45f2181e4f5 283 }
Tisena 0:f45f2181e4f5 284 } else if(sensorOut.ReadTemperature(CELCIUS) < sensorIn.ReadTemperature(CELCIUS)) {
Tisena 0:f45f2181e4f5 285 if(sensorIn.ReadTemperature(CELCIUS) < 30 && sensorOut.ReadTemperature(CELCIUS) > 38) {
Tisena 0:f45f2181e4f5 286 fanL = 1;
Tisena 0:f45f2181e4f5 287 fanR = 0; //fan run - wind come in
Tisena 0:f45f2181e4f5 288 wait(15);
Tisena 0:f45f2181e4f5 289 fanL = 0;
Tisena 0:f45f2181e4f5 290 fanR = 0; // off fan
Tisena 0:f45f2181e4f5 291
Tisena 0:f45f2181e4f5 292 } else if(sensorIn.ReadTemperature(CELCIUS) < 30 && sensorOut.ReadTemperature(CELCIUS) > 38 && sensorOut.ReadTemperature(CELCIUS) < 38) {
Tisena 0:f45f2181e4f5 293 lamp = 1; //lamp run
Tisena 0:f45f2181e4f5 294 wait(30);
Tisena 0:f45f2181e4f5 295 lamp = 0; //lamp stop
Tisena 0:f45f2181e4f5 296
Tisena 0:f45f2181e4f5 297 } else if(sensorIn.ReadTemperature(CELCIUS) >= 30 && sensorIn.ReadTemperature(CELCIUS) <= 38 && sensorOut.ReadTemperature(CELCIUS) > 38) {
Tisena 0:f45f2181e4f5 298 //spinger out run estimate 30 mins. in real but in show just run 10 sec.
Tisena 0:f45f2181e4f5 299 waterOut = 1;
Tisena 0:f45f2181e4f5 300 wait(10);
Tisena 0:f45f2181e4f5 301 waterOut = 0;
Tisena 0:f45f2181e4f5 302
Tisena 0:f45f2181e4f5 303 if(sensorIn.ReadHumidity() < 70) {
Tisena 0:f45f2181e4f5 304 waterIn = 1;
Tisena 0:f45f2181e4f5 305 wait(1);
Tisena 0:f45f2181e4f5 306 waterIn = 0;
Tisena 0:f45f2181e4f5 307 } else if(sensorIn.ReadHumidity() >= 70 && sensorIn.ReadHumidity() <= 80) {
Tisena 0:f45f2181e4f5 308
Tisena 0:f45f2181e4f5 309 } else { // sensorIn.ReadHumidity() > 80
Tisena 0:f45f2181e4f5 310 //fan run - wind come in
Tisena 0:f45f2181e4f5 311 fanL = 1;
Tisena 0:f45f2181e4f5 312 fanR = 0; // fan run
Tisena 0:f45f2181e4f5 313 wait(15);
Tisena 0:f45f2181e4f5 314 fanL = 0;
Tisena 0:f45f2181e4f5 315 fanR = 0; //fan stop
Tisena 0:f45f2181e4f5 316
Tisena 0:f45f2181e4f5 317 }
Tisena 0:f45f2181e4f5 318
Tisena 0:f45f2181e4f5 319 } else { // sensorIn.ReadTemperature(CELCIUS) > 38 && sensorOut.ReadTemperature(CELCIUS) > 38
Tisena 0:f45f2181e4f5 320 fanL = 0;
Tisena 0:f45f2181e4f5 321 fanR = 1; //wind get out
Tisena 0:f45f2181e4f5 322 wait(20);
Tisena 0:f45f2181e4f5 323 fanL = 0; //fan stop
Tisena 0:f45f2181e4f5 324 fanR = 0;
Tisena 0:f45f2181e4f5 325 waterOut = 1; //springer out run
Tisena 0:f45f2181e4f5 326 wait(10);
Tisena 0:f45f2181e4f5 327 waterOut = 0;
Tisena 0:f45f2181e4f5 328
Tisena 0:f45f2181e4f5 329 }
Tisena 0:f45f2181e4f5 330 } else { //sensorOut.ReadTemperature(CELCIUS) == sensorIn.ReadTemperature(CELCIUS)
Tisena 0:f45f2181e4f5 331 if(sensorIn.ReadTemperature(CELCIUS) < 30 && sensorOut.ReadTemperature(CELCIUS) > 38) {
Tisena 0:f45f2181e4f5 332 fanL = 1;
Tisena 0:f45f2181e4f5 333 fanR = 0; //fan run - wind come in
Tisena 0:f45f2181e4f5 334 wait(15);
Tisena 0:f45f2181e4f5 335 fanL = 0;
Tisena 0:f45f2181e4f5 336 fanR = 0; // off fan
Tisena 0:f45f2181e4f5 337
Tisena 0:f45f2181e4f5 338 } else if(sensorIn.ReadTemperature(CELCIUS) < 30 && sensorOut.ReadTemperature(CELCIUS) > 30 && sensorOut.ReadTemperature(CELCIUS) < 38) {
Tisena 0:f45f2181e4f5 339 lamp = 1; //lamp run
Tisena 0:f45f2181e4f5 340 wait(30);
Tisena 0:f45f2181e4f5 341 lamp = 0; //lamp stop
Tisena 0:f45f2181e4f5 342
Tisena 0:f45f2181e4f5 343 } else if(sensorIn.ReadTemperature(CELCIUS) >= 30 && sensorIn.ReadTemperature(CELCIUS) <= 38 && sensorOut.ReadTemperature(CELCIUS) > 38) {
Tisena 0:f45f2181e4f5 344 //spinger out run estimate 30 mins. in real but in show just run 10 sec.
Tisena 0:f45f2181e4f5 345 waterOut = 1;
Tisena 0:f45f2181e4f5 346 wait(10);
Tisena 0:f45f2181e4f5 347 waterOut = 0;
Tisena 0:f45f2181e4f5 348
Tisena 0:f45f2181e4f5 349 if(sensorIn.ReadHumidity() < 70) {
Tisena 0:f45f2181e4f5 350 waterIn = 1;
Tisena 0:f45f2181e4f5 351 wait(5);
Tisena 0:f45f2181e4f5 352 waterIn = 0;
Tisena 0:f45f2181e4f5 353 } else if(sensorIn.ReadHumidity() >= 70 && sensorIn.ReadHumidity() <= 80) {
Tisena 0:f45f2181e4f5 354 break;
Tisena 0:f45f2181e4f5 355 } else { // sensorIn.ReadHumidity() > 80
Tisena 0:f45f2181e4f5 356 //fan run - wind come in
Tisena 0:f45f2181e4f5 357 fanL = 1;
Tisena 0:f45f2181e4f5 358 fanR = 0; // fan run
Tisena 0:f45f2181e4f5 359 wait(15);
Tisena 0:f45f2181e4f5 360 fanL = 0;
Tisena 0:f45f2181e4f5 361 fanR = 0; //fan stop
Tisena 0:f45f2181e4f5 362
Tisena 0:f45f2181e4f5 363 }
Tisena 0:f45f2181e4f5 364
Tisena 0:f45f2181e4f5 365 } else { // sensorIn.ReadTemperature(CELCIUS) > 38 && sensorOut.ReadTemperature(CELCIUS) > 38
Tisena 0:f45f2181e4f5 366 fanL = 0;
Tisena 0:f45f2181e4f5 367 fanR = 1; //wind get out
Tisena 0:f45f2181e4f5 368 wait(20);
Tisena 0:f45f2181e4f5 369 fanL = 0; //fan stop
Tisena 0:f45f2181e4f5 370 fanR = 0;
Tisena 0:f45f2181e4f5 371 waterOut = 1; //springer out run
Tisena 0:f45f2181e4f5 372 wait(10);
Tisena 0:f45f2181e4f5 373 waterOut = 0;
Tisena 0:f45f2181e4f5 374
Tisena 0:f45f2181e4f5 375 }
Tisena 0:f45f2181e4f5 376 }
Tisena 0:f45f2181e4f5 377
Tisena 0:f45f2181e4f5 378 led1 = 0;
Tisena 0:f45f2181e4f5 379 led2 = 0;
Tisena 0:f45f2181e4f5 380 wait(5);
Tisena 0:f45f2181e4f5 381
Tisena 0:f45f2181e4f5 382 hm_tp.scanf("%d",&stop);
Tisena 0:f45f2181e4f5 383 if(stop == '1') {
Tisena 0:f45f2181e4f5 384 hedSelect = 0;
Tisena 0:f45f2181e4f5 385 break;
Tisena 0:f45f2181e4f5 386 }
Tisena 0:f45f2181e4f5 387
Tisena 0:f45f2181e4f5 388 case 'b' :
Tisena 0:f45f2181e4f5 389 state_exit = 0;
Tisena 0:f45f2181e4f5 390
Tisena 0:f45f2181e4f5 391 default :
Tisena 0:f45f2181e4f5 392 hm_tp.printf("\nplease choose a or b only\n");
Tisena 0:f45f2181e4f5 393 break;
Tisena 0:f45f2181e4f5 394 }
Tisena 0:f45f2181e4f5 395
Tisena 0:f45f2181e4f5 396 }
Tisena 0:f45f2181e4f5 397 }
Tisena 0:f45f2181e4f5 398
Tisena 0:f45f2181e4f5 399 while(state_exit == 0);
Tisena 0:f45f2181e4f5 400 hm_tp.printf("\n\n");
Tisena 0:f45f2181e4f5 401 state_exit = 1;
Tisena 0:f45f2181e4f5 402 state_show = 0;
Tisena 0:f45f2181e4f5 403 break;
Tisena 0:f45f2181e4f5 404
Tisena 0:f45f2181e4f5 405
Tisena 0:f45f2181e4f5 406 case 0x00:
Tisena 0:f45f2181e4f5 407 break;
Tisena 0:f45f2181e4f5 408 default:
Tisena 0:f45f2181e4f5 409 hm_tp.printf("\nplease choose 1 or 2 only\n");
Tisena 0:f45f2181e4f5 410 hm_tp.printf("\n\n");
Tisena 0:f45f2181e4f5 411 break;
Tisena 0:f45f2181e4f5 412 }
Tisena 0:f45f2181e4f5 413 }
Tisena 0:f45f2181e4f5 414 }
Tisena 0:f45f2181e4f5 415 }