Temp/Humidity alarm

Dependencies:   mbed C12832

Committer:
ciaranom
Date:
Fri Jul 31 19:33:46 2020 +0000
Revision:
1:42f6beb90ce3
Parent:
0:2e716206ddde
Project

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ciaranom 0:2e716206ddde 1 #include "mbed.h"
ciaranom 0:2e716206ddde 2 #include "C12832.h"
ciaranom 0:2e716206ddde 3
ciaranom 0:2e716206ddde 4 Serial pc(USBTX, USBRX);//pc is an object of class Serial
ciaranom 0:2e716206ddde 5 DigitalOut led1(LED1), led2(LED2), led3(LED3), led4(LED4);//LED object
ciaranom 0:2e716206ddde 6 C12832 lcd(p5, p7, p6, p8, p11);// LCD object
ciaranom 0:2e716206ddde 7 AnalogIn pot1(p19), pot2(p20);// Pot object
ciaranom 0:2e716206ddde 8
ciaranom 0:2e716206ddde 9 // Relitive humidity from 0% to 100%
ciaranom 0:2e716206ddde 10 // Temperature from -20°C to 140°C - See word doc for calculations
ciaranom 0:2e716206ddde 11
ciaranom 0:2e716206ddde 12 //LED4 = humidty high
ciaranom 0:2e716206ddde 13 //LED3 = temperature high
ciaranom 0:2e716206ddde 14 //LED2 = humidty low
ciaranom 0:2e716206ddde 15 //LED1 = temperature low
ciaranom 0:2e716206ddde 16
ciaranom 0:2e716206ddde 17
ciaranom 0:2e716206ddde 18 float RH;
ciaranom 0:2e716206ddde 19
ciaranom 0:2e716206ddde 20 float m=160, c=-20;
ciaranom 0:2e716206ddde 21 float temp;
ciaranom 0:2e716206ddde 22 float tempK;
ciaranom 0:2e716206ddde 23
ciaranom 0:2e716206ddde 24 float mintemp =5.0, minRH =20.0, maxtemp = 35.0, maxRH =80.0;
ciaranom 0:2e716206ddde 25 int i;
ciaranom 0:2e716206ddde 26
ciaranom 0:2e716206ddde 27 int main() {
ciaranom 0:2e716206ddde 28 while(1) {
ciaranom 0:2e716206ddde 29
ciaranom 0:2e716206ddde 30 temp = pot2*m + c;
ciaranom 0:2e716206ddde 31 tempK= temp +273.15;
ciaranom 0:2e716206ddde 32 RH = pot1*100;
ciaranom 0:2e716206ddde 33
ciaranom 0:2e716206ddde 34
ciaranom 0:2e716206ddde 35 pc.printf(" Relative humidity: %.2f %%\r\n\n" , RH); //check %%
ciaranom 0:2e716206ddde 36
ciaranom 0:2e716206ddde 37 pc.printf(" Temperarure: %.2f C\r\n Temperature: %.2f K\r\n\n\n", temp, tempK); //Show temperature in degree Celcius and in Kelvin
ciaranom 0:2e716206ddde 38 //pc.cls();
ciaranom 0:2e716206ddde 39
ciaranom 0:2e716206ddde 40 wait(3);
ciaranom 0:2e716206ddde 41 lcd.cls();
ciaranom 0:2e716206ddde 42 lcd.locate(0,20);
ciaranom 0:2e716206ddde 43 lcd.printf("Relative humidity: %.2f %%", RH); //check %%
ciaranom 0:2e716206ddde 44
ciaranom 0:2e716206ddde 45 lcd.locate(0,0);
ciaranom 0:2e716206ddde 46 lcd.printf("Temperarure: %.2f C \nTemperature: %.2f K", temp, tempK);
ciaranom 0:2e716206ddde 47 //lcd.locate(10,0);
ciaranom 0:2e716206ddde 48 //lcd.printf("Temperarure: %.2f °C, Temperature: %.2f K", temp, tempK);
ciaranom 0:2e716206ddde 49
ciaranom 0:2e716206ddde 50
ciaranom 0:2e716206ddde 51
ciaranom 0:2e716206ddde 52 // if (temp < mintemp){
ciaranom 0:2e716206ddde 53 // for( i=0;i<3;i++){
ciaranom 0:2e716206ddde 54 // led1 = 1;
ciaranom 0:2e716206ddde 55 // wait(0.5);
ciaranom 0:2e716206ddde 56 // led1=0;
ciaranom 0:2e716206ddde 57 // wait(0.5);
ciaranom 0:2e716206ddde 58 // }
ciaranom 0:2e716206ddde 59 //
ciaranom 0:2e716206ddde 60 // }
ciaranom 0:2e716206ddde 61 // if (RH < minRH){
ciaranom 0:2e716206ddde 62 // for( i=0;i<3;i++){
ciaranom 0:2e716206ddde 63 // led2 = 1;
ciaranom 0:2e716206ddde 64 // wait(0.5);
ciaranom 0:2e716206ddde 65 // led2=0;
ciaranom 0:2e716206ddde 66 // wait(0.5);
ciaranom 0:2e716206ddde 67 // }
ciaranom 0:2e716206ddde 68 //
ciaranom 0:2e716206ddde 69 // }
ciaranom 0:2e716206ddde 70 // if (temp > maxtemp){
ciaranom 0:2e716206ddde 71 // for( i=0;i<3;i++){
ciaranom 0:2e716206ddde 72 // led3 = 1;
ciaranom 0:2e716206ddde 73 // wait(0.5);
ciaranom 0:2e716206ddde 74 // led3=0;
ciaranom 0:2e716206ddde 75 // wait(0.5);
ciaranom 0:2e716206ddde 76 // }
ciaranom 0:2e716206ddde 77 //
ciaranom 0:2e716206ddde 78 // }
ciaranom 0:2e716206ddde 79 //
ciaranom 0:2e716206ddde 80 // if (RH > maxRH){
ciaranom 0:2e716206ddde 81 // for( i=0;i<3;i++){
ciaranom 0:2e716206ddde 82 // led4 = 1;
ciaranom 0:2e716206ddde 83 // wait(0.5);
ciaranom 0:2e716206ddde 84 // led4=0;
ciaranom 0:2e716206ddde 85 // wait(0.5);
ciaranom 0:2e716206ddde 86 // }
ciaranom 0:2e716206ddde 87 //
ciaranom 0:2e716206ddde 88 // }
ciaranom 0:2e716206ddde 89
ciaranom 0:2e716206ddde 90
ciaranom 0:2e716206ddde 91
ciaranom 0:2e716206ddde 92 // temp < mintemp and RH < minRH 1&2
ciaranom 0:2e716206ddde 93 // temp < mintemp and RH > minRH and RH < maxRH 1
ciaranom 0:2e716206ddde 94 // temp < mintemp and RH > maxRH 1&4
ciaranom 0:2e716206ddde 95 // temp > mintemp and temp < maxtemp and RH < minRH 2
ciaranom 0:2e716206ddde 96 // temp > mintemp and temp < maxtemp and RH > minRH and RH < maxRH noLED
ciaranom 0:2e716206ddde 97 // temp > mintemp and temp < maxtemp and RH > maxRH 4
ciaranom 0:2e716206ddde 98 // temp > maxtemp and RH < minRH 3&2
ciaranom 0:2e716206ddde 99 // temp > maxtemp and RH > minRH and RH < maxRH 3
ciaranom 0:2e716206ddde 100 // temp > maxtemp and RH > maxRH 3&4
ciaranom 0:2e716206ddde 101
ciaranom 0:2e716206ddde 102 if (temp < mintemp and RH < minRH){
ciaranom 0:2e716206ddde 103 pc.printf("Temperature too low. Please increase. \r\n Humidty too low. Please increase \r\n\n"); // adding\r for TeraTeam, to print starts at 0 on the x axis.
ciaranom 0:2e716206ddde 104 while(temp < mintemp and RH < minRH){
ciaranom 0:2e716206ddde 105 //for( i=0;i<3;i++){
ciaranom 0:2e716206ddde 106 led1 = 1,led2 = 1;
ciaranom 0:2e716206ddde 107 wait(0.5);
ciaranom 0:2e716206ddde 108 led1 = 0,led2 = 0;
ciaranom 0:2e716206ddde 109 wait(0.5);
ciaranom 0:2e716206ddde 110 temp = pot2*m + c; //adding another check within the loop to see if temp and RH have moved back within limits
ciaranom 0:2e716206ddde 111 RH = pot1*100;
ciaranom 0:2e716206ddde 112 }
ciaranom 0:2e716206ddde 113 }
ciaranom 0:2e716206ddde 114 else if(temp < mintemp and RH > minRH and RH < maxRH){
ciaranom 0:2e716206ddde 115 pc.printf("Temperature too low. Please increase \r\n\n");
ciaranom 0:2e716206ddde 116 while (temp < mintemp and RH > minRH and RH < maxRH){
ciaranom 0:2e716206ddde 117 //for( i=0;i<3;i++){
ciaranom 0:2e716206ddde 118 //pc.printf("Temperature too low. Please increase \n");
ciaranom 0:2e716206ddde 119 led1 = 1;
ciaranom 0:2e716206ddde 120 wait(0.5);
ciaranom 0:2e716206ddde 121 led1 = 0;
ciaranom 0:2e716206ddde 122 wait(0.5);
ciaranom 0:2e716206ddde 123 temp = pot2*m + c;
ciaranom 0:2e716206ddde 124 RH = pot1*100;
ciaranom 0:2e716206ddde 125 }
ciaranom 0:2e716206ddde 126 }
ciaranom 0:2e716206ddde 127 else if (temp < mintemp and RH > maxRH){
ciaranom 0:2e716206ddde 128 pc.printf("Temperature too low. Please increase. \r\n Humidty too high. Please reduce \r\n\n");
ciaranom 0:2e716206ddde 129 while (temp < mintemp and RH > maxRH){
ciaranom 0:2e716206ddde 130 //for( i=0;i<3;i++){
ciaranom 0:2e716206ddde 131 //pc.printf("Temperature too low. Please increase. \n Humidty too high. Please reduce \n");
ciaranom 0:2e716206ddde 132 led1 = 1,led3 = 1;
ciaranom 0:2e716206ddde 133 wait(0.5);
ciaranom 0:2e716206ddde 134 led1 = 0,led3 = 0;
ciaranom 0:2e716206ddde 135 wait(0.5);
ciaranom 0:2e716206ddde 136 temp = pot2*m + c;
ciaranom 0:2e716206ddde 137 RH = pot1*100;
ciaranom 0:2e716206ddde 138 }
ciaranom 0:2e716206ddde 139 }
ciaranom 0:2e716206ddde 140 else if (temp > mintemp and temp < maxtemp and RH < minRH){
ciaranom 0:2e716206ddde 141 pc.printf("Humidty too low. Please increase \r\n\n");
ciaranom 0:2e716206ddde 142 while (temp > mintemp and temp < maxtemp and RH < minRH){
ciaranom 0:2e716206ddde 143 //for( i=0;i<3;i++){
ciaranom 0:2e716206ddde 144 //pc.printf("Humidty too low. Please increase \n");
ciaranom 0:2e716206ddde 145 led2 = 1;
ciaranom 0:2e716206ddde 146 wait(0.5);
ciaranom 0:2e716206ddde 147 led2 = 0;
ciaranom 0:2e716206ddde 148 wait(0.5);
ciaranom 0:2e716206ddde 149 temp = pot2*m + c;
ciaranom 0:2e716206ddde 150 RH = pot1*100;
ciaranom 0:2e716206ddde 151 }
ciaranom 0:2e716206ddde 152 }
ciaranom 0:2e716206ddde 153
ciaranom 0:2e716206ddde 154 else if (temp > mintemp and temp < maxtemp and RH > maxRH ){
ciaranom 0:2e716206ddde 155 pc.printf("Humidty too high. Please reduce \r\n\n");
ciaranom 0:2e716206ddde 156 while (temp > mintemp and temp < maxtemp and RH > maxRH ){
ciaranom 0:2e716206ddde 157 //for( i=0;i<3;i++){
ciaranom 0:2e716206ddde 158 //pc.printf("Humidty too high. Please reduce \n");
ciaranom 0:2e716206ddde 159 led3 = 1;
ciaranom 0:2e716206ddde 160 wait(0.5);
ciaranom 0:2e716206ddde 161 led3 = 0;
ciaranom 0:2e716206ddde 162 wait(0.5);
ciaranom 0:2e716206ddde 163 temp = pot2*m + c;
ciaranom 0:2e716206ddde 164 RH = pot1*100;
ciaranom 0:2e716206ddde 165 }
ciaranom 0:2e716206ddde 166 }
ciaranom 0:2e716206ddde 167
ciaranom 0:2e716206ddde 168 else if (temp > maxtemp and RH < minRH){
ciaranom 0:2e716206ddde 169 pc.printf("Temperature too high. Please reduce. \r\n Humidty too low. Please increase \r\n\n");
ciaranom 0:2e716206ddde 170 while (temp > maxtemp and RH < minRH){
ciaranom 0:2e716206ddde 171 //for( i=0;i<3;i++){
ciaranom 0:2e716206ddde 172 //pc.printf("Temperature too high. Please reduce. \n Humidty too low. Please increase \n");
ciaranom 0:2e716206ddde 173 led4 = 1,led2 = 1;
ciaranom 0:2e716206ddde 174 wait(0.5);
ciaranom 0:2e716206ddde 175 led4 = 0,led2 = 0;
ciaranom 0:2e716206ddde 176 wait(0.5);
ciaranom 0:2e716206ddde 177 temp = pot2*m + c;
ciaranom 0:2e716206ddde 178 RH = pot1*100;
ciaranom 0:2e716206ddde 179 }
ciaranom 0:2e716206ddde 180 }
ciaranom 0:2e716206ddde 181
ciaranom 0:2e716206ddde 182 else if (temp > maxtemp and RH > minRH and RH < maxRH){
ciaranom 0:2e716206ddde 183 pc.printf("Temperature too high. Please reduce \r\n\n");
ciaranom 0:2e716206ddde 184 while (temp > maxtemp and RH > minRH and RH < maxRH){
ciaranom 0:2e716206ddde 185 //for( i=0;i<3;i++){
ciaranom 0:2e716206ddde 186 //pc.printf("Temperature too high. Please reduce \n");
ciaranom 0:2e716206ddde 187 led4 = 1;
ciaranom 0:2e716206ddde 188 wait(0.5);
ciaranom 0:2e716206ddde 189 led4 = 0;
ciaranom 0:2e716206ddde 190 wait(0.5);
ciaranom 0:2e716206ddde 191 temp = pot2*m + c;
ciaranom 0:2e716206ddde 192 RH = pot1*100;
ciaranom 0:2e716206ddde 193 }
ciaranom 0:2e716206ddde 194 }
ciaranom 0:2e716206ddde 195
ciaranom 0:2e716206ddde 196 else if (temp > maxtemp and RH > maxRH){
ciaranom 0:2e716206ddde 197 pc.printf("Temperature too high. Please reduce. \r\n Humidty too high. Please reduce \r\n\n");
ciaranom 0:2e716206ddde 198 while (temp > maxtemp and RH > maxRH){
ciaranom 0:2e716206ddde 199 //for( i=0;i<3;i++){
ciaranom 0:2e716206ddde 200 //pc.printf("Temperature too high. Please reduce. \n Humidty too high. Please reduce \n");
ciaranom 0:2e716206ddde 201 led4 = 1,led3 = 1;
ciaranom 0:2e716206ddde 202 wait(0.5);
ciaranom 0:2e716206ddde 203 led4 = 0, led3 = 0;
ciaranom 0:2e716206ddde 204 wait(0.5);
ciaranom 0:2e716206ddde 205 temp = pot2*m + c;
ciaranom 0:2e716206ddde 206 RH = pot1*100;
ciaranom 0:2e716206ddde 207 }
ciaranom 0:2e716206ddde 208 }
ciaranom 0:2e716206ddde 209
ciaranom 0:2e716206ddde 210 }
ciaranom 0:2e716206ddde 211
ciaranom 0:2e716206ddde 212
ciaranom 0:2e716206ddde 213
ciaranom 0:2e716206ddde 214 }
ciaranom 0:2e716206ddde 215