PRO2_Team 1_collected code with ticker_not working yet

Dependencies:   SHTx mbed

Fork of PRO2_samlet_kode by Software hold - Team 1 - PRO2 2017

Committer:
OlgaHoeyer
Date:
Thu May 18 22:34:57 2017 +0000
Revision:
1:135bd458e39e
half finished modular design

Who changed what in which revision?

UserRevisionLine numberNew contents of line
OlgaHoeyer 1:135bd458e39e 1 //Author : Olga Hoeyer
OlgaHoeyer 1:135bd458e39e 2 //Date : 18 May 2017
OlgaHoeyer 1:135bd458e39e 3 //Version : 2.0
OlgaHoeyer 1:135bd458e39e 4 //Changes: Structure changed to modular, to ease future use of the funktion.
OlgaHoeyer 1:135bd458e39e 5 //Copyright : Open for everyone
OlgaHoeyer 1:135bd458e39e 6 //
OlgaHoeyer 1:135bd458e39e 7 // Description : Analysis part for EDE PRO2 Team 1 project.
OlgaHoeyer 1:135bd458e39e 8 //Program takes temperature and humidity as arguments (read from sensors),
OlgaHoeyer 1:135bd458e39e 9 //together with lower and higher limit on temperature and evaluate air quality.
OlgaHoeyer 1:135bd458e39e 10 //Output is status (int, from 1 to 5).
OlgaHoeyer 1:135bd458e39e 11
OlgaHoeyer 1:135bd458e39e 12 #include "mbed.h"
OlgaHoeyer 1:135bd458e39e 13
OlgaHoeyer 1:135bd458e39e 14 int Compare_values(float hum, float temp,
OlgaHoeyer 1:135bd458e39e 15 int temperature_low, int temperature_high)
OlgaHoeyer 1:135bd458e39e 16 {
OlgaHoeyer 1:135bd458e39e 17 //local variables
OlgaHoeyer 1:135bd458e39e 18 int status, humidity, temperature;
OlgaHoeyer 1:135bd458e39e 19
OlgaHoeyer 1:135bd458e39e 20 //__________________________________
OlgaHoeyer 1:135bd458e39e 21 // Definition of limits
OlgaHoeyer 1:135bd458e39e 22 //__________________________________
OlgaHoeyer 1:135bd458e39e 23
OlgaHoeyer 1:135bd458e39e 24 //Humidity limits.
OlgaHoeyer 1:135bd458e39e 25 const int HUMIDITY_LOW = 20;
OlgaHoeyer 1:135bd458e39e 26 const int HUMIDITY_HIGH= 60;
OlgaHoeyer 1:135bd458e39e 27
OlgaHoeyer 1:135bd458e39e 28 //Extra limits where LED will start blinking in red:
OlgaHoeyer 1:135bd458e39e 29 //13 < Temp < 30; 10%< hum < 80%
OlgaHoeyer 1:135bd458e39e 30 const int HUMIDITY_EXTRA_LOW = 10;
OlgaHoeyer 1:135bd458e39e 31 const int HUMIDITY_EXTRA_HIGH= 80;
OlgaHoeyer 1:135bd458e39e 32 const int TEMPERATURE_EXTRA_LOW = 13;
OlgaHoeyer 1:135bd458e39e 33 const int TEMPERATURE_EXTRA_HIGH= 30;
OlgaHoeyer 1:135bd458e39e 34
OlgaHoeyer 1:135bd458e39e 35 //Definition of output values
OlgaHoeyer 1:135bd458e39e 36 const int GOOD_LEVEL = 1; //green
OlgaHoeyer 1:135bd458e39e 37 const int ACCEPT_LEVEL = 2; //orange
OlgaHoeyer 1:135bd458e39e 38 const int CRITICAL_LEVEL = 3; //red
OlgaHoeyer 1:135bd458e39e 39 const int EXTRA_CRITICAL_LEVEL = 4; //red strobe
OlgaHoeyer 1:135bd458e39e 40 const int USER_NEEDED = 5; //blue strobe
OlgaHoeyer 1:135bd458e39e 41
OlgaHoeyer 1:135bd458e39e 42
OlgaHoeyer 1:135bd458e39e 43 //__________________________________
OlgaHoeyer 1:135bd458e39e 44 // main body: comparison
OlgaHoeyer 1:135bd458e39e 45 //__________________________________
OlgaHoeyer 1:135bd458e39e 46
OlgaHoeyer 1:135bd458e39e 47 humidity=(int)hum; //convertation of float to int.
OlgaHoeyer 1:135bd458e39e 48 temperature=(int)temp;
OlgaHoeyer 1:135bd458e39e 49
OlgaHoeyer 1:135bd458e39e 50 // check if there is a connection to the sensor
OlgaHoeyer 1:135bd458e39e 51 // (if null=no data=there is no connection
OlgaHoeyer 1:135bd458e39e 52
OlgaHoeyer 1:135bd458e39e 53 if ((temperature == 0) || (humidity == 0))
OlgaHoeyer 1:135bd458e39e 54 status= USER_NEEDED;
OlgaHoeyer 1:135bd458e39e 55
OlgaHoeyer 1:135bd458e39e 56 //comparing in nested loop.
OlgaHoeyer 1:135bd458e39e 57 else if ((temperature < TEMPERATURE_EXTRA_LOW) ||
OlgaHoeyer 1:135bd458e39e 58 (temperature > TEMPERATURE_EXTRA_HIGH))
OlgaHoeyer 1:135bd458e39e 59
OlgaHoeyer 1:135bd458e39e 60 status= EXTRA_CRITICAL_LEVEL;
OlgaHoeyer 1:135bd458e39e 61
OlgaHoeyer 1:135bd458e39e 62 else if ((humidity < HUMIDITY_EXTRA_LOW) ||
OlgaHoeyer 1:135bd458e39e 63 (humidity > HUMIDITY_EXTRA_HIGH))
OlgaHoeyer 1:135bd458e39e 64
OlgaHoeyer 1:135bd458e39e 65 status= EXTRA_CRITICAL_LEVEL;
OlgaHoeyer 1:135bd458e39e 66
OlgaHoeyer 1:135bd458e39e 67 else if ((temperature < temperature_low) ||
OlgaHoeyer 1:135bd458e39e 68 (temperature > temperature_high))
OlgaHoeyer 1:135bd458e39e 69
OlgaHoeyer 1:135bd458e39e 70 status= CRITICAL_LEVEL;
OlgaHoeyer 1:135bd458e39e 71
OlgaHoeyer 1:135bd458e39e 72 else if ((temperature < temperature_high) &&
OlgaHoeyer 1:135bd458e39e 73 (temperature > temperature_low) &&
OlgaHoeyer 1:135bd458e39e 74 (humidity < HUMIDITY_HIGH) &&
OlgaHoeyer 1:135bd458e39e 75 (humidity > HUMIDITY_LOW))
OlgaHoeyer 1:135bd458e39e 76
OlgaHoeyer 1:135bd458e39e 77 status= GOOD_LEVEL;
OlgaHoeyer 1:135bd458e39e 78
OlgaHoeyer 1:135bd458e39e 79 else status= ACCEPT_LEVEL;
OlgaHoeyer 1:135bd458e39e 80
OlgaHoeyer 1:135bd458e39e 81 return(status);
OlgaHoeyer 1:135bd458e39e 82 }