Embedded C project:18/12/2014
Dependencies: DS1307 TextLCD mbed
main.cpp@0:8d87bc453349, 2014-12-18 (annotated)
- Committer:
- ninoderkinderen
- Date:
- Thu Dec 18 09:35:49 2014 +0000
- Revision:
- 0:8d87bc453349
Programma embedded C
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ninoderkinderen | 0:8d87bc453349 | 1 | //library's |
ninoderkinderen | 0:8d87bc453349 | 2 | #include "mbed.h" |
ninoderkinderen | 0:8d87bc453349 | 3 | #include "TextLCD.h" |
ninoderkinderen | 0:8d87bc453349 | 4 | #include "ds1307.h" |
ninoderkinderen | 0:8d87bc453349 | 5 | #include "EthernetNetIf.h" |
ninoderkinderen | 0:8d87bc453349 | 6 | //#include "HTTPClient.h" |
ninoderkinderen | 0:8d87bc453349 | 7 | //#include "NTPClient.h" |
ninoderkinderen | 0:8d87bc453349 | 8 | #include "HTTPServer.h" |
ninoderkinderen | 0:8d87bc453349 | 9 | #include "RPCFunction.h" |
ninoderkinderen | 0:8d87bc453349 | 10 | //Pin initialisatie |
ninoderkinderen | 0:8d87bc453349 | 11 | AnalogIn binnen(p19);//pin 19:Analog In |
ninoderkinderen | 0:8d87bc453349 | 12 | AnalogIn buiten(p20);//pin 20:Analog In |
ninoderkinderen | 0:8d87bc453349 | 13 | TextLCD lcd(p15, p16, p21, p22, p23, p24); //rs, e, d4-d7 |
ninoderkinderen | 0:8d87bc453349 | 14 | InterruptIn knopUP(p6);//pin6:Interrupt |
ninoderkinderen | 0:8d87bc453349 | 15 | InterruptIn knopDOWN(p5);//pin5:Interrupt |
ninoderkinderen | 0:8d87bc453349 | 16 | InterruptIn knopINSTEL(p7);//pin7:Interrupt |
ninoderkinderen | 0:8d87bc453349 | 17 | InterruptIn knopBACK(p8);//pin8:Interrupt |
ninoderkinderen | 0:8d87bc453349 | 18 | DS1307 my1307(p9, p10);//pin9:sda I2C |
ninoderkinderen | 0:8d87bc453349 | 19 | DigitalOut relais(p30);//pin10:scl I2C |
ninoderkinderen | 0:8d87bc453349 | 20 | DigitalOut RGBblauw(p29);//pin29:digital out |
ninoderkinderen | 0:8d87bc453349 | 21 | DigitalOut RGBgroen(p28);//pin28:digital out |
ninoderkinderen | 0:8d87bc453349 | 22 | DigitalOut RGBrood(p27);//pin27:digital out |
ninoderkinderen | 0:8d87bc453349 | 23 | PwmOut Servo(p25);//p25:pwm out |
ninoderkinderen | 0:8d87bc453349 | 24 | Serial pc(USBTX,USBRX);//serial port:USB |
ninoderkinderen | 0:8d87bc453349 | 25 | DigitalOut led1(LED1, "led1"); |
ninoderkinderen | 0:8d87bc453349 | 26 | /* HTTP Instellingen */ |
ninoderkinderen | 0:8d87bc453349 | 27 | EthernetNetIf eth( //We gaan de functie van ethernet opendoen om hierin de gewenste adressen in te kunnen gaan voegen. |
ninoderkinderen | 0:8d87bc453349 | 28 | IpAddr(192,168,1,2), //Ip adres toedienen waarop de MBED verbonden word. |
ninoderkinderen | 0:8d87bc453349 | 29 | IpAddr(255,255,255,0), //Subnetmasker voor de MBED. |
ninoderkinderen | 0:8d87bc453349 | 30 | IpAddr(192,168,1,1), //Het IP adres waarop we gaan schrijven. |
ninoderkinderen | 0:8d87bc453349 | 31 | IpAddr(192,168,1,1)); //Het IP adres waarvan we gaan lezen. |
ninoderkinderen | 0:8d87bc453349 | 32 | HTTPServer svr; // Opstarten van de HTTP server met de bovenliggende eigenschappen. |
ninoderkinderen | 0:8d87bc453349 | 33 | /* END HTTP */ |
ninoderkinderen | 0:8d87bc453349 | 34 | //variabelen |
ninoderkinderen | 0:8d87bc453349 | 35 | float i = 0;//waarde om binnentempertauur in te steken |
ninoderkinderen | 0:8d87bc453349 | 36 | float j = 0;//waarde om buitentemperatuur in te steken |
ninoderkinderen | 0:8d87bc453349 | 37 | int reftemp = 20;//referentietemperatuur |
ninoderkinderen | 0:8d87bc453349 | 38 | int load=0;//load program |
ninoderkinderen | 0:8d87bc453349 | 39 | int tellertijd =0;//uit tijdsuitlezing te geraken |
ninoderkinderen | 0:8d87bc453349 | 40 | int c=0; |
ninoderkinderen | 0:8d87bc453349 | 41 | //variabelen RTC |
ninoderkinderen | 0:8d87bc453349 | 42 | int sec; |
ninoderkinderen | 0:8d87bc453349 | 43 | int minu; |
ninoderkinderen | 0:8d87bc453349 | 44 | int hours; |
ninoderkinderen | 0:8d87bc453349 | 45 | int day; |
ninoderkinderen | 0:8d87bc453349 | 46 | int date; |
ninoderkinderen | 0:8d87bc453349 | 47 | int month; |
ninoderkinderen | 0:8d87bc453349 | 48 | int year; |
ninoderkinderen | 0:8d87bc453349 | 49 | //RTC read routine |
ninoderkinderen | 0:8d87bc453349 | 50 | void test_rw(int test) { |
ninoderkinderen | 0:8d87bc453349 | 51 | } |
ninoderkinderen | 0:8d87bc453349 | 52 | //interruptroutine: referentietemp instellen |
ninoderkinderen | 0:8d87bc453349 | 53 | void instellen() |
ninoderkinderen | 0:8d87bc453349 | 54 | { |
ninoderkinderen | 0:8d87bc453349 | 55 | knopDOWN.rise(NULL); |
ninoderkinderen | 0:8d87bc453349 | 56 | knopUP.rise(NULL);//interrupt disable |
ninoderkinderen | 0:8d87bc453349 | 57 | wait(0.5); |
ninoderkinderen | 0:8d87bc453349 | 58 | while(knopINSTEL == 0) |
ninoderkinderen | 0:8d87bc453349 | 59 | { |
ninoderkinderen | 0:8d87bc453349 | 60 | lcd.locate(0,0); |
ninoderkinderen | 0:8d87bc453349 | 61 | lcd.printf(" Instellen Temp"); |
ninoderkinderen | 0:8d87bc453349 | 62 | lcd.locate(0,1); |
ninoderkinderen | 0:8d87bc453349 | 63 | lcd.printf(" Temp = %iC", reftemp);//Printen ingestelde referentietemp |
ninoderkinderen | 0:8d87bc453349 | 64 | if(knopUP == 1)//knopUP bediend --> reftemp +1 |
ninoderkinderen | 0:8d87bc453349 | 65 | { |
ninoderkinderen | 0:8d87bc453349 | 66 | reftemp++; |
ninoderkinderen | 0:8d87bc453349 | 67 | wait(0.4); |
ninoderkinderen | 0:8d87bc453349 | 68 | } |
ninoderkinderen | 0:8d87bc453349 | 69 | if(knopDOWN == 1)//knopDOWN bediend --> reftemp -1 |
ninoderkinderen | 0:8d87bc453349 | 70 | { |
ninoderkinderen | 0:8d87bc453349 | 71 | reftemp--; |
ninoderkinderen | 0:8d87bc453349 | 72 | wait(0.4); |
ninoderkinderen | 0:8d87bc453349 | 73 | } |
ninoderkinderen | 0:8d87bc453349 | 74 | if (reftemp == 33)//hysteresis reftemp |
ninoderkinderen | 0:8d87bc453349 | 75 | { |
ninoderkinderen | 0:8d87bc453349 | 76 | reftemp = 15; |
ninoderkinderen | 0:8d87bc453349 | 77 | } |
ninoderkinderen | 0:8d87bc453349 | 78 | if (reftemp == 14)//hysteresis reftemp |
ninoderkinderen | 0:8d87bc453349 | 79 | { |
ninoderkinderen | 0:8d87bc453349 | 80 | reftemp = 32; |
ninoderkinderen | 0:8d87bc453349 | 81 | } |
ninoderkinderen | 0:8d87bc453349 | 82 | } |
ninoderkinderen | 0:8d87bc453349 | 83 | } |
ninoderkinderen | 0:8d87bc453349 | 84 | //interruptroutine: tijdsweergave |
ninoderkinderen | 0:8d87bc453349 | 85 | void back() |
ninoderkinderen | 0:8d87bc453349 | 86 | { |
ninoderkinderen | 0:8d87bc453349 | 87 | wait(0.3); |
ninoderkinderen | 0:8d87bc453349 | 88 | tellertijd=0; |
ninoderkinderen | 0:8d87bc453349 | 89 | lcd.cls();//LCD clead |
ninoderkinderen | 0:8d87bc453349 | 90 | knopBACK.rise(NULL); |
ninoderkinderen | 0:8d87bc453349 | 91 | knopUP.rise(NULL);//disable interrupt |
ninoderkinderen | 0:8d87bc453349 | 92 | while(tellertijd < 50)//doorolopen wanneer knopBack NIET is ingedrukt,bij bediening uit routine |
ninoderkinderen | 0:8d87bc453349 | 93 | { |
ninoderkinderen | 0:8d87bc453349 | 94 | test_rw(my1307.gettime( &sec, &minu, &hours, &day, &date, &month, &year));//uitlezen tijd RTC |
ninoderkinderen | 0:8d87bc453349 | 95 | //Dag uitschrijven op lcd |
ninoderkinderen | 0:8d87bc453349 | 96 | if(day == 1) |
ninoderkinderen | 0:8d87bc453349 | 97 | {lcd.locate(3,1); |
ninoderkinderen | 0:8d87bc453349 | 98 | lcd.printf("Ma");} |
ninoderkinderen | 0:8d87bc453349 | 99 | if(day == 2) |
ninoderkinderen | 0:8d87bc453349 | 100 | {lcd.locate(3,1); |
ninoderkinderen | 0:8d87bc453349 | 101 | lcd.printf("Di");} |
ninoderkinderen | 0:8d87bc453349 | 102 | if(day == 3) |
ninoderkinderen | 0:8d87bc453349 | 103 | {lcd.locate(3,1); |
ninoderkinderen | 0:8d87bc453349 | 104 | lcd.printf("Wo");} |
ninoderkinderen | 0:8d87bc453349 | 105 | if(day == 4) |
ninoderkinderen | 0:8d87bc453349 | 106 | {lcd.locate(3,1); |
ninoderkinderen | 0:8d87bc453349 | 107 | lcd.printf("Do");} |
ninoderkinderen | 0:8d87bc453349 | 108 | if(day == 5) |
ninoderkinderen | 0:8d87bc453349 | 109 | {lcd.locate(3,1); |
ninoderkinderen | 0:8d87bc453349 | 110 | lcd.printf("Vr");} |
ninoderkinderen | 0:8d87bc453349 | 111 | if(day == 6) |
ninoderkinderen | 0:8d87bc453349 | 112 | {lcd.locate(3,1); |
ninoderkinderen | 0:8d87bc453349 | 113 | lcd.printf("Za");} |
ninoderkinderen | 0:8d87bc453349 | 114 | if(day == 7) |
ninoderkinderen | 0:8d87bc453349 | 115 | {lcd.locate(3,1); |
ninoderkinderen | 0:8d87bc453349 | 116 | lcd.printf("Zo");} |
ninoderkinderen | 0:8d87bc453349 | 117 | test_rw(my1307.gettime( &sec, &minu, &hours, &day, &date, &month, &year));//uitlezen tijd RTC |
ninoderkinderen | 0:8d87bc453349 | 118 | //Uur min sec //Dag datum maand jaar |
ninoderkinderen | 0:8d87bc453349 | 119 | if(sec >= 9 && minu >= 9 && hours >= 9) |
ninoderkinderen | 0:8d87bc453349 | 120 | { |
ninoderkinderen | 0:8d87bc453349 | 121 | lcd.locate(4,0); |
ninoderkinderen | 0:8d87bc453349 | 122 | lcd.printf("%d:%d:%d",hours,minu,sec); |
ninoderkinderen | 0:8d87bc453349 | 123 | lcd.locate(6,1); |
ninoderkinderen | 0:8d87bc453349 | 124 | lcd.printf("%d/%d/%d",date,month,year); |
ninoderkinderen | 0:8d87bc453349 | 125 | } |
ninoderkinderen | 0:8d87bc453349 | 126 | if(sec <= 9 && minu >= 9 && hours >= 9) |
ninoderkinderen | 0:8d87bc453349 | 127 | { |
ninoderkinderen | 0:8d87bc453349 | 128 | lcd.locate(4,0); |
ninoderkinderen | 0:8d87bc453349 | 129 | lcd.printf("%d:%d:0%d",hours,minu,sec); |
ninoderkinderen | 0:8d87bc453349 | 130 | lcd.locate(6,1); |
ninoderkinderen | 0:8d87bc453349 | 131 | lcd.printf("%d/%d/%d",date,month,year); |
ninoderkinderen | 0:8d87bc453349 | 132 | } |
ninoderkinderen | 0:8d87bc453349 | 133 | if(sec >= 9 && minu <= 9 && hours >= 9) |
ninoderkinderen | 0:8d87bc453349 | 134 | { |
ninoderkinderen | 0:8d87bc453349 | 135 | lcd.locate(4,0); |
ninoderkinderen | 0:8d87bc453349 | 136 | lcd.printf("%d:0%d:%d",hours,minu,sec); |
ninoderkinderen | 0:8d87bc453349 | 137 | lcd.locate(6,1); |
ninoderkinderen | 0:8d87bc453349 | 138 | lcd.printf("%d/%d/%d",date,month,year); |
ninoderkinderen | 0:8d87bc453349 | 139 | } |
ninoderkinderen | 0:8d87bc453349 | 140 | if(sec >= 9 && minu >= 9 && hours <= 9) |
ninoderkinderen | 0:8d87bc453349 | 141 | { |
ninoderkinderen | 0:8d87bc453349 | 142 | lcd.locate(4,0); |
ninoderkinderen | 0:8d87bc453349 | 143 | lcd.printf("0%d:%d:%d",hours,minu,sec); |
ninoderkinderen | 0:8d87bc453349 | 144 | lcd.locate(6,1); |
ninoderkinderen | 0:8d87bc453349 | 145 | lcd.printf("%d/%d/%d",date,month,year); |
ninoderkinderen | 0:8d87bc453349 | 146 | } |
ninoderkinderen | 0:8d87bc453349 | 147 | if(sec <= 9 && minu <= 9 && hours >= 9) |
ninoderkinderen | 0:8d87bc453349 | 148 | { |
ninoderkinderen | 0:8d87bc453349 | 149 | lcd.locate(4,0); |
ninoderkinderen | 0:8d87bc453349 | 150 | lcd.printf("%d:0%d:0%d",hours,minu,sec); |
ninoderkinderen | 0:8d87bc453349 | 151 | lcd.locate(6,1); |
ninoderkinderen | 0:8d87bc453349 | 152 | lcd.printf("%d/%d/%d",date,month,year); |
ninoderkinderen | 0:8d87bc453349 | 153 | } |
ninoderkinderen | 0:8d87bc453349 | 154 | if(sec <= 9 && minu >= 9 && hours <= 9) |
ninoderkinderen | 0:8d87bc453349 | 155 | { |
ninoderkinderen | 0:8d87bc453349 | 156 | lcd.locate(4,0); |
ninoderkinderen | 0:8d87bc453349 | 157 | lcd.printf("0%d:%d:0%d",hours,minu,sec); |
ninoderkinderen | 0:8d87bc453349 | 158 | lcd.locate(6,1); |
ninoderkinderen | 0:8d87bc453349 | 159 | lcd.printf("%d/%d/%d",date,month,year); |
ninoderkinderen | 0:8d87bc453349 | 160 | } |
ninoderkinderen | 0:8d87bc453349 | 161 | if(sec >= 9 && minu <= 9 && hours <= 9) |
ninoderkinderen | 0:8d87bc453349 | 162 | { |
ninoderkinderen | 0:8d87bc453349 | 163 | lcd.locate(4,0); |
ninoderkinderen | 0:8d87bc453349 | 164 | lcd.printf("0%d:0%d:%d",hours,minu,sec); |
ninoderkinderen | 0:8d87bc453349 | 165 | lcd.locate(6,1); |
ninoderkinderen | 0:8d87bc453349 | 166 | lcd.printf("%d/%d/%d",date,month,year); |
ninoderkinderen | 0:8d87bc453349 | 167 | } |
ninoderkinderen | 0:8d87bc453349 | 168 | if(sec <= 9 && minu <= 9 && hours <= 9) |
ninoderkinderen | 0:8d87bc453349 | 169 | { |
ninoderkinderen | 0:8d87bc453349 | 170 | lcd.locate(4,0); |
ninoderkinderen | 0:8d87bc453349 | 171 | lcd.printf("0%d:0%d:0%d",hours,minu,sec); |
ninoderkinderen | 0:8d87bc453349 | 172 | lcd.locate(6,1); |
ninoderkinderen | 0:8d87bc453349 | 173 | lcd.printf("%d/%d/%d",date,month,year); |
ninoderkinderen | 0:8d87bc453349 | 174 | } |
ninoderkinderen | 0:8d87bc453349 | 175 | wait(0.2); |
ninoderkinderen | 0:8d87bc453349 | 176 | tellertijd++; |
ninoderkinderen | 0:8d87bc453349 | 177 | } |
ninoderkinderen | 0:8d87bc453349 | 178 | } |
ninoderkinderen | 0:8d87bc453349 | 179 | //interruptroutine: start programma |
ninoderkinderen | 0:8d87bc453349 | 180 | void start() |
ninoderkinderen | 0:8d87bc453349 | 181 | { |
ninoderkinderen | 0:8d87bc453349 | 182 | knopINSTEL.rise(NULL); |
ninoderkinderen | 0:8d87bc453349 | 183 | knopBACK.rise(NULL); |
ninoderkinderen | 0:8d87bc453349 | 184 | knopDOWN.rise(NULL); |
ninoderkinderen | 0:8d87bc453349 | 185 | knopUP.rise(NULL);//disable interrupt |
ninoderkinderen | 0:8d87bc453349 | 186 | lcd.cls();//LCD clear |
ninoderkinderen | 0:8d87bc453349 | 187 | /*OPSTART ROUTINE START*/ |
ninoderkinderen | 0:8d87bc453349 | 188 | lcd.locate(0,0); |
ninoderkinderen | 0:8d87bc453349 | 189 | lcd.printf("SYSTEM START"); |
ninoderkinderen | 0:8d87bc453349 | 190 | lcd.locate(0,1); |
ninoderkinderen | 0:8d87bc453349 | 191 | lcd.printf("LOAD PROGRAM"); |
ninoderkinderen | 0:8d87bc453349 | 192 | wait(2); |
ninoderkinderen | 0:8d87bc453349 | 193 | lcd.cls(); |
ninoderkinderen | 0:8d87bc453349 | 194 | lcd.locate(0,0); |
ninoderkinderen | 0:8d87bc453349 | 195 | lcd.printf("SYSTEM START"); |
ninoderkinderen | 0:8d87bc453349 | 196 | lcd.locate(0,1); |
ninoderkinderen | 0:8d87bc453349 | 197 | lcd.printf("LOAD: %d",load); |
ninoderkinderen | 0:8d87bc453349 | 198 | for(int l=0;l<=40;l++) |
ninoderkinderen | 0:8d87bc453349 | 199 | { |
ninoderkinderen | 0:8d87bc453349 | 200 | load = l; |
ninoderkinderen | 0:8d87bc453349 | 201 | lcd.locate(0,1); |
ninoderkinderen | 0:8d87bc453349 | 202 | lcd.printf("LOAD: %d",load); |
ninoderkinderen | 0:8d87bc453349 | 203 | wait(0.1); |
ninoderkinderen | 0:8d87bc453349 | 204 | } |
ninoderkinderen | 0:8d87bc453349 | 205 | wait(1); |
ninoderkinderen | 0:8d87bc453349 | 206 | for(int l=40;l<=70;l++) |
ninoderkinderen | 0:8d87bc453349 | 207 | { |
ninoderkinderen | 0:8d87bc453349 | 208 | load = l; |
ninoderkinderen | 0:8d87bc453349 | 209 | lcd.locate(0,1); |
ninoderkinderen | 0:8d87bc453349 | 210 | lcd.printf("LOAD: %d",load); |
ninoderkinderen | 0:8d87bc453349 | 211 | wait(0.2); |
ninoderkinderen | 0:8d87bc453349 | 212 | } |
ninoderkinderen | 0:8d87bc453349 | 213 | wait(1); |
ninoderkinderen | 0:8d87bc453349 | 214 | for(int l=70;l<=100;l++) |
ninoderkinderen | 0:8d87bc453349 | 215 | { |
ninoderkinderen | 0:8d87bc453349 | 216 | load = l; |
ninoderkinderen | 0:8d87bc453349 | 217 | lcd.locate(0,1); |
ninoderkinderen | 0:8d87bc453349 | 218 | lcd.printf("LOAD: %d",load); |
ninoderkinderen | 0:8d87bc453349 | 219 | wait(0.2); |
ninoderkinderen | 0:8d87bc453349 | 220 | } |
ninoderkinderen | 0:8d87bc453349 | 221 | wait(1); |
ninoderkinderen | 0:8d87bc453349 | 222 | lcd.cls(); |
ninoderkinderen | 0:8d87bc453349 | 223 | lcd.locate(0,0); |
ninoderkinderen | 0:8d87bc453349 | 224 | lcd.printf("SYSTEM START"); |
ninoderkinderen | 0:8d87bc453349 | 225 | lcd.locate(0,1); |
ninoderkinderen | 0:8d87bc453349 | 226 | lcd.printf("PROGRAM START"); |
ninoderkinderen | 0:8d87bc453349 | 227 | wait(3); |
ninoderkinderen | 0:8d87bc453349 | 228 | /*OPSTARTROUTINE END*/ |
ninoderkinderen | 0:8d87bc453349 | 229 | } |
ninoderkinderen | 0:8d87bc453349 | 230 | //interruptroutine: programma stoppen |
ninoderkinderen | 0:8d87bc453349 | 231 | void afsluiten() |
ninoderkinderen | 0:8d87bc453349 | 232 | { |
ninoderkinderen | 0:8d87bc453349 | 233 | knopUP.rise(&start);//interrupt koppelen met routine |
ninoderkinderen | 0:8d87bc453349 | 234 | knopINSTEL.rise(NULL); |
ninoderkinderen | 0:8d87bc453349 | 235 | knopBACK.rise(NULL); |
ninoderkinderen | 0:8d87bc453349 | 236 | knopDOWN.rise(NULL);//disabel interrupt |
ninoderkinderen | 0:8d87bc453349 | 237 | lcd.cls();//lcd clear |
ninoderkinderen | 0:8d87bc453349 | 238 | /*AFSLUITROUTINE START*/ |
ninoderkinderen | 0:8d87bc453349 | 239 | lcd.locate(0,0); |
ninoderkinderen | 0:8d87bc453349 | 240 | lcd.printf("SYSTEM SHUTDOWN"); |
ninoderkinderen | 0:8d87bc453349 | 241 | wait(2); |
ninoderkinderen | 0:8d87bc453349 | 242 | relais = 0;//relais uit |
ninoderkinderen | 0:8d87bc453349 | 243 | RGBrood = 0; |
ninoderkinderen | 0:8d87bc453349 | 244 | RGBgroen = 0; |
ninoderkinderen | 0:8d87bc453349 | 245 | RGBblauw = 0; //RGB uit |
ninoderkinderen | 0:8d87bc453349 | 246 | while(knopUP == 0) |
ninoderkinderen | 0:8d87bc453349 | 247 | { |
ninoderkinderen | 0:8d87bc453349 | 248 | lcd.cls(); |
ninoderkinderen | 0:8d87bc453349 | 249 | lcd.locate(0,0); |
ninoderkinderen | 0:8d87bc453349 | 250 | lcd.printf("SYSTEM OFF"); |
ninoderkinderen | 0:8d87bc453349 | 251 | wait(0.2); |
ninoderkinderen | 0:8d87bc453349 | 252 | } |
ninoderkinderen | 0:8d87bc453349 | 253 | /*AFSLUITROUTINE END*/ |
ninoderkinderen | 0:8d87bc453349 | 254 | } |
ninoderkinderen | 0:8d87bc453349 | 255 | /*MAIN PROGRAM*/ |
ninoderkinderen | 0:8d87bc453349 | 256 | int main() |
ninoderkinderen | 0:8d87bc453349 | 257 | { |
ninoderkinderen | 0:8d87bc453349 | 258 | |
ninoderkinderen | 0:8d87bc453349 | 259 | wait(1); |
ninoderkinderen | 0:8d87bc453349 | 260 | while(1) |
ninoderkinderen | 0:8d87bc453349 | 261 | { EthernetErr ethErr; |
ninoderkinderen | 0:8d87bc453349 | 262 | int count = 0; |
ninoderkinderen | 0:8d87bc453349 | 263 | do { |
ninoderkinderen | 0:8d87bc453349 | 264 | printf("Setting up %d...\n\r", ++count); |
ninoderkinderen | 0:8d87bc453349 | 265 | ethErr = eth.setup(); |
ninoderkinderen | 0:8d87bc453349 | 266 | if (ethErr) printf("Timeout\n\r", ethErr); |
ninoderkinderen | 0:8d87bc453349 | 267 | } while (ethErr != ETH_OK); |
ninoderkinderen | 0:8d87bc453349 | 268 | |
ninoderkinderen | 0:8d87bc453349 | 269 | printf("Connected OK\n\r"); |
ninoderkinderen | 0:8d87bc453349 | 270 | const char* hwAddr = eth.getHwAddr(); |
ninoderkinderen | 0:8d87bc453349 | 271 | |
ninoderkinderen | 0:8d87bc453349 | 272 | IpAddr ethIp = eth.getIp(); |
ninoderkinderen | 0:8d87bc453349 | 273 | printf("IP address : %d.%d.%d.%d\n\r", ethIp[0], ethIp[1], ethIp[2], ethIp[3]); |
ninoderkinderen | 0:8d87bc453349 | 274 | |
ninoderkinderen | 0:8d87bc453349 | 275 | LocalFileSystem fs("webfs"); |
ninoderkinderen | 0:8d87bc453349 | 276 | |
ninoderkinderen | 0:8d87bc453349 | 277 | svr.addHandler<SimpleHandler>("/hello"); |
ninoderkinderen | 0:8d87bc453349 | 278 | svr.addHandler<FSHandler>(""); |
ninoderkinderen | 0:8d87bc453349 | 279 | |
ninoderkinderen | 0:8d87bc453349 | 280 | svr.bind(80); |
ninoderkinderen | 0:8d87bc453349 | 281 | printf("Server listening\n\r"); |
ninoderkinderen | 0:8d87bc453349 | 282 | knopINSTEL.rise(&instellen); |
ninoderkinderen | 0:8d87bc453349 | 283 | knopBACK.rise(&back); |
ninoderkinderen | 0:8d87bc453349 | 284 | knopDOWN.rise(&afsluiten);//interrupts koppelen met routines(bovenaan gedeclareerd) |
ninoderkinderen | 0:8d87bc453349 | 285 | i=0; |
ninoderkinderen | 0:8d87bc453349 | 286 | j=0;//variabele temperatuurwaardes 0 zetten |
ninoderkinderen | 0:8d87bc453349 | 287 | for(int a=0;a<5;a++) |
ninoderkinderen | 0:8d87bc453349 | 288 | { |
ninoderkinderen | 0:8d87bc453349 | 289 | for(int t=0;t<100;t++) |
ninoderkinderen | 0:8d87bc453349 | 290 | { |
ninoderkinderen | 0:8d87bc453349 | 291 | i=i+binnen.read(); //uitlezen temp |
ninoderkinderen | 0:8d87bc453349 | 292 | } |
ninoderkinderen | 0:8d87bc453349 | 293 | for(int k=0;k<100;k++) |
ninoderkinderen | 0:8d87bc453349 | 294 | { |
ninoderkinderen | 0:8d87bc453349 | 295 | j=j+buiten.read(); //uitlezen temp |
ninoderkinderen | 0:8d87bc453349 | 296 | } |
ninoderkinderen | 0:8d87bc453349 | 297 | wait(0.1); |
ninoderkinderen | 0:8d87bc453349 | 298 | } |
ninoderkinderen | 0:8d87bc453349 | 299 | i = (i*3.3)/5; |
ninoderkinderen | 0:8d87bc453349 | 300 | j = (j*3.3)/5;//berekening juiste temperatuur: Waarde*3.3V/5(for lus van 5) |
ninoderkinderen | 0:8d87bc453349 | 301 | lcd.cls();//lcd clear |
ninoderkinderen | 0:8d87bc453349 | 302 | lcd.locate(0,0); |
ninoderkinderen | 0:8d87bc453349 | 303 | lcd.printf("Binnen:%4.1fC", i); |
ninoderkinderen | 0:8d87bc453349 | 304 | lcd.locate(0,1); |
ninoderkinderen | 0:8d87bc453349 | 305 | lcd.printf("Buiten:%4.1fC", j);//LCD print temperaturen |
ninoderkinderen | 0:8d87bc453349 | 306 | wait(1); |
ninoderkinderen | 0:8d87bc453349 | 307 | pc.printf("\n\n\rTemperatuur binnen: %4.1f C",i); |
ninoderkinderen | 0:8d87bc453349 | 308 | pc.printf("\n\n\rTemperatuur buiten: %4.1f C",j); |
ninoderkinderen | 0:8d87bc453349 | 309 | pc.printf("\n\n\r------------------------------------------");//PC print temperaturen |
ninoderkinderen | 0:8d87bc453349 | 310 | wait(0.5); |
ninoderkinderen | 0:8d87bc453349 | 311 | if(i > (reftemp + 2) && i <= (reftemp +4))//Temperatuur te HOOG: reftemp >2 en reftemp <=4 |
ninoderkinderen | 0:8d87bc453349 | 312 | { |
ninoderkinderen | 0:8d87bc453349 | 313 | wait(2); |
ninoderkinderen | 0:8d87bc453349 | 314 | relais = 1;//relais aan |
ninoderkinderen | 0:8d87bc453349 | 315 | RGBrood = 1; |
ninoderkinderen | 0:8d87bc453349 | 316 | RGBgroen = 1; |
ninoderkinderen | 0:8d87bc453349 | 317 | RGBblauw = 0;//rgb rood + groen = oranje |
ninoderkinderen | 0:8d87bc453349 | 318 | wait(1); |
ninoderkinderen | 0:8d87bc453349 | 319 | Servo.period_ms(20);//servo pwm periode |
ninoderkinderen | 0:8d87bc453349 | 320 | Servo = (130 * 0.000511 + 0.026); // rechts-half servo |
ninoderkinderen | 0:8d87bc453349 | 321 | } |
ninoderkinderen | 0:8d87bc453349 | 322 | else if(i > (reftemp + 3.5))//Temperatuur te HOOG: reftemp > 3.5 (hysteresis ingebouwd) |
ninoderkinderen | 0:8d87bc453349 | 323 | { |
ninoderkinderen | 0:8d87bc453349 | 324 | wait(2); |
ninoderkinderen | 0:8d87bc453349 | 325 | relais = 1;//relais aan |
ninoderkinderen | 0:8d87bc453349 | 326 | RGBrood = 1; |
ninoderkinderen | 0:8d87bc453349 | 327 | RGBgroen = 0; |
ninoderkinderen | 0:8d87bc453349 | 328 | RGBblauw = 0;//rgb rood |
ninoderkinderen | 0:8d87bc453349 | 329 | wait(1); |
ninoderkinderen | 0:8d87bc453349 | 330 | Servo.period_ms(20);//servo pwm periode |
ninoderkinderen | 0:8d87bc453349 | 331 | Servo = (160 * 0.000511 + 0.026); // rechts servo |
ninoderkinderen | 0:8d87bc453349 | 332 | } |
ninoderkinderen | 0:8d87bc453349 | 333 | else if(i < (reftemp - 2) && i >= (reftemp -4))//Temperatuur te LAAG: reftemp>2 & reftemp <4 |
ninoderkinderen | 0:8d87bc453349 | 334 | { |
ninoderkinderen | 0:8d87bc453349 | 335 | wait(2); |
ninoderkinderen | 0:8d87bc453349 | 336 | relais = 0;//relais uit |
ninoderkinderen | 0:8d87bc453349 | 337 | RGBrood = 1; |
ninoderkinderen | 0:8d87bc453349 | 338 | RGBgroen = 0; |
ninoderkinderen | 0:8d87bc453349 | 339 | RGBblauw = 1;//rgb rood + blauw= paars |
ninoderkinderen | 0:8d87bc453349 | 340 | wait(1); |
ninoderkinderen | 0:8d87bc453349 | 341 | Servo.period_ms(20);//servo pwm periode |
ninoderkinderen | 0:8d87bc453349 | 342 | Servo = (55 * 0.000511 + 0.026); // links-half servo |
ninoderkinderen | 0:8d87bc453349 | 343 | } |
ninoderkinderen | 0:8d87bc453349 | 344 | else if(i < (reftemp - 3.5))//Temperatuur te LAAG: reftemp>4 |
ninoderkinderen | 0:8d87bc453349 | 345 | { |
ninoderkinderen | 0:8d87bc453349 | 346 | wait(2); |
ninoderkinderen | 0:8d87bc453349 | 347 | relais = 0;//relais uit |
ninoderkinderen | 0:8d87bc453349 | 348 | RGBrood = 0; |
ninoderkinderen | 0:8d87bc453349 | 349 | RGBgroen = 0; |
ninoderkinderen | 0:8d87bc453349 | 350 | RGBblauw = 1;//rgb blauw |
ninoderkinderen | 0:8d87bc453349 | 351 | wait(1); |
ninoderkinderen | 0:8d87bc453349 | 352 | Servo.period_ms(20);//servo pwm period |
ninoderkinderen | 0:8d87bc453349 | 353 | Servo = (5 * 0.000511 + 0.026); // links servo |
ninoderkinderen | 0:8d87bc453349 | 354 | } |
ninoderkinderen | 0:8d87bc453349 | 355 | else//Temperatuur OKE: reftemp binnen hysteresis +2 & -2 |
ninoderkinderen | 0:8d87bc453349 | 356 | { |
ninoderkinderen | 0:8d87bc453349 | 357 | wait(1); |
ninoderkinderen | 0:8d87bc453349 | 358 | relais = 0; |
ninoderkinderen | 0:8d87bc453349 | 359 | RGBrood = 0; |
ninoderkinderen | 0:8d87bc453349 | 360 | RGBgroen = 1; |
ninoderkinderen | 0:8d87bc453349 | 361 | RGBblauw = 0;//rgb groen |
ninoderkinderen | 0:8d87bc453349 | 362 | wait(1); |
ninoderkinderen | 0:8d87bc453349 | 363 | Servo.period_ms(20);//servo pwm period |
ninoderkinderen | 0:8d87bc453349 | 364 | Servo = (90 * 0.000511 + 0.026); // 0-positie servo |
ninoderkinderen | 0:8d87bc453349 | 365 | } |
ninoderkinderen | 0:8d87bc453349 | 366 | wait(1); |
ninoderkinderen | 0:8d87bc453349 | 367 | printf("Doorlopen\r\n"); |
ninoderkinderen | 0:8d87bc453349 | 368 | FILE *fp = fopen("/webfs/mydata.htm","w"); |
ninoderkinderen | 0:8d87bc453349 | 369 | fprintf(fp,"<HTML>\r\n"); //HTML opstarten |
ninoderkinderen | 0:8d87bc453349 | 370 | fprintf(fp,"<HEAD>\r\n"); //Head van het bestand open zetten. |
ninoderkinderen | 0:8d87bc453349 | 371 | fprintf(fp,"<script type=\"text/javascript\">window.setTimeout(function(){ document.location.reload(true); }, 3000);</script>");//Script laden |
ninoderkinderen | 0:8d87bc453349 | 372 | fprintf(fp,"<link rel=\"stylesheet\" href=\"https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css\">");//Stijl van het document laden |
ninoderkinderen | 0:8d87bc453349 | 373 | fprintf(fp,"<style>\r\n");//De style toepassen die is opgevraagd |
ninoderkinderen | 0:8d87bc453349 | 374 | fprintf(fp,"tbody {background:#FF8866;}");//Achtergrond veranderen van kleur |
ninoderkinderen | 0:8d87bc453349 | 375 | fprintf(fp,"</style>\r\n");//De aangemaakt stijl terug sluiten |
ninoderkinderen | 0:8d87bc453349 | 376 | fprintf(fp,"</HEAD>\r\n");//Sluiten van de HEAD |
ninoderkinderen | 0:8d87bc453349 | 377 | fprintf(fp,"<BODY>\r\n");//Sluiten van de BODY |
ninoderkinderen | 0:8d87bc453349 | 378 | fprintf(fp,"<div class=\"container\">\r\n"); |
ninoderkinderen | 0:8d87bc453349 | 379 | fprintf(fp,"<div class=\"panel panel-success\">"); |
ninoderkinderen | 0:8d87bc453349 | 380 | fprintf(fp,"<table class=\"table\">");//Aanmaken van tabel |
ninoderkinderen | 0:8d87bc453349 | 381 | fprintf(fp,"<thead><tr><th>binnen</th><th>buiten</th></tr></thead>"); |
ninoderkinderen | 0:8d87bc453349 | 382 | fprintf(fp,"<tbody><tr><td>%.1f °C</td>",i); |
ninoderkinderen | 0:8d87bc453349 | 383 | fprintf(fp,"<td>%.1f °C</td></tr></tbody></table></div>",j); |
ninoderkinderen | 0:8d87bc453349 | 384 | fprintf(fp,"</div>"); |
ninoderkinderen | 0:8d87bc453349 | 385 | printf("Variabelen printen\r\n"); |
ninoderkinderen | 0:8d87bc453349 | 386 | fprintf(fp,"</BODY>\r\n"); |
ninoderkinderen | 0:8d87bc453349 | 387 | fprintf(fp,"</HTML>\r\n"); |
ninoderkinderen | 0:8d87bc453349 | 388 | printf(" %f + %f",i,j); |
ninoderkinderen | 0:8d87bc453349 | 389 | printf("Sessie stoppen \r\n"); |
ninoderkinderen | 0:8d87bc453349 | 390 | fclose(fp); |
ninoderkinderen | 0:8d87bc453349 | 391 | wait(1); |
ninoderkinderen | 0:8d87bc453349 | 392 | } |
ninoderkinderen | 0:8d87bc453349 | 393 | } |