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