Embedded C project:18/12/2014

Dependencies:   DS1307 TextLCD mbed

Committer:
ninoderkinderen
Date:
Thu Dec 18 09:35:49 2014 +0000
Revision:
0:8d87bc453349
Programma embedded C

Who changed what in which revision?

UserRevisionLine numberNew 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 &deg;C</td>",i);
ninoderkinderen 0:8d87bc453349 383 fprintf(fp,"<td>%.1f &deg;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 }