Berckvens Michiel & Basteyns Jonas

Dependencies:   DS1307 TextLCD mbed

Committer:
Michielber
Date:
Thu Dec 11 16:07:34 2014 +0000
Revision:
5:6878defcfeb9
Parent:
4:25e4117e8a56
Project updated belastingslijn

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Michielber 5:6878defcfeb9 1 #include "mbed.h" //Invoegen van de mbed bibliotheek.
Michielber 5:6878defcfeb9 2 #include "TextLCD.h" //Invoegen van de LCD bibliotheek.
Michielber 5:6878defcfeb9 3 #include "ds1307.h" //Invoegen van de de1307 bibliotheek voor de CLK.
Michielber 5:6878defcfeb9 4 #include "EthernetNetIf.h" //Invoegen van de ethernet bibliotheek.
Michielber 5:6878defcfeb9 5 #include "HTTPServer.h" //Invoegen van de HTTP bibliotheek.
Michielber 5:6878defcfeb9 6 #include "RPCFunction.h" //Invoegen van de RPC bibliotheek.
Michielber 5:6878defcfeb9 7 ////////////////////////////////////////////////////////////////////////////////////
Michielber 5:6878defcfeb9 8 TextLCD lcd(p21, p22, p23, p24, p27, p28); //Instellen van de LCD pinnen. rs, e, d4-d7
Michielber 5:6878defcfeb9 9 AnalogIn LM35_1(p19); //Analoge ingang voor eerste LM35 toewijzen op welke pin.
Michielber 5:6878defcfeb9 10 AnalogIn LM35_2(p20); //Analoge ingang voor tweede LM35 toewijzen op welke pin.
Michielber 5:6878defcfeb9 11 Serial pc(USBTX, USBRX); //Zorgen dat we een seriële communicatie tussen computer en MBED kunnen opzetten waardoor we de printf lijnen kunnen gaan uitlezen.
Michielber 5:6878defcfeb9 12 DigitalOut LEDJE1 (p6); //Uitgang voor LED op breadboard voor chauffage aan/uit.
Michielber 5:6878defcfeb9 13 DigitalOut LEDJE2 (p7); //Uitgang voor LED op breadboard voor chauffage aan/uit.
Michielber 5:6878defcfeb9 14 InterruptIn knopHOGER(p8); //Aanmaken van ingangknop voor temperatuur hoger te kunnen instellen onder interrupt.
Michielber 5:6878defcfeb9 15 InterruptIn knopLAGER(p30); //Aanmaken van ingangknop voor temperatuur lager te kunnen instellen onder interrupt.
Michielber 5:6878defcfeb9 16 InterruptIn aanuitknop(p5); //Aanmaken van aan/uit knop voor het systeem op of af te zetten onder interrupt.
Michielber 5:6878defcfeb9 17 DigitalOut relais(p29); //Aanmaken van een uitgangspin voor het aansturen van de Relais.
Michielber 5:6878defcfeb9 18 PwmOut motorout(p25); //Aanmaken van PWM pin voor het aansturen van de servo-motor onder PWM.
Michielber 5:6878defcfeb9 19 DS1307 my1307(p9,p10); //Opstarten van de DS1307 en de pinnen voor connectie mee geven.
Michielber 5:6878defcfeb9 20 LocalFileSystem fs("webfs"); //Instellingen voor HTTP
Michielber 5:6878defcfeb9 21 LocalFileSystem local("local"); //Instellingen voor HTTP, /local/Project.htm gaan we gebruiken, hierbij komt ons project lokaal te staan.
Michielber 5:6878defcfeb9 22 ////////////////////////////////////////////////////////////////////////////////////
Michielber 5:6878defcfeb9 23 int c=0; //Aanmaken van de c variable voor HTTP, hierbij geven we deze variable de waarde 0 mee.
Michielber 5:6878defcfeb9 24 float waarde = 25; //Aanmaken van de waarde variable voor een instel temperatuur mee te geven.
Michielber 5:6878defcfeb9 25 float temp2; // Aanmaken van de temp2 variable, deze dient voor de temperatuur van de tweede LM35 in op te slaan.
Michielber 5:6878defcfeb9 26 bool aanuit = 0; //Aanmaken van een variable voor te kijken of het programma/MBED aan of uit staat.
Michielber 5:6878defcfeb9 27 float temp1; //Aanmaken van de temp1 variable, deze dient voor de temperatuur van de eerste LM35 in op te slaan. // variable aanmaken voor temp van 1ste LM35 in te steken. // variable aanmaken voor temp van 2de LM35 in te steken.
Michielber 5:6878defcfeb9 28 float afronden; //Aanmaken van de variable afronden, deze gaat dienen
Michielber 5:6878defcfeb9 29 float hoekverdraaiing; //Aanmaken van de variable graden, deze dient voor het weergeven van onze temperatuur waarde in °C
Michielber 5:6878defcfeb9 30 float verschilgraden;
Michielber 5:6878defcfeb9 31 float stand;
Michielber 5:6878defcfeb9 32 float lijn;
Michielber 5:6878defcfeb9 33 float counter; //We gaan de variable counter aan maken voor het tellen van hoeveel keer we op hoger of lager hebben geduwd voor de ingestelde waarde te verhogen of verlagen.
Michielber 5:6878defcfeb9 34 float flaginstellen = 0; //We gaan de variable flaginstellen aanmaken voor te gaan kijken of wij willen gaan instellen van de waardes of het programma willen uitvoeren.
Michielber 5:6878defcfeb9 35 int sec = 0; //We gaan de variable sec aanmaken zodat we de seconden kunnen instellen die er op ons LCD moet komen te staan.
Michielber 5:6878defcfeb9 36 int minuten = 0; //We gaan de variable minuten aanmaken zodat we de minuten kunnen instellen die er op ons LCD moet komen te staan.
Michielber 5:6878defcfeb9 37 int hours = 0; //We gaan de variable hours aanmaken zodat we de uren kunnen instellen die er op ons LCD moet komen te staan.
Michielber 5:6878defcfeb9 38 int day = 0; //We gaan de variable day aanmaken zodat we de dagen kunnen instellen die er op ons LCD moet komen te staan.
Michielber 5:6878defcfeb9 39 int date = 0; //We gaan de variable date aanmaken zodat we de datum kunnen instellen die er op ons LCD moet komen te staan.
Michielber 5:6878defcfeb9 40 int month = 0; //We gaan de variable month aanmaken zodat we de maanden kunnen instellen die er op ons LCD moet komen te staan.
Michielber 5:6878defcfeb9 41 int year = 0; //We gaan de variable year aanmaken zodat we de jaren kunnen instellen die er op ons LCD moet komen te staan.
Michielber 0:f615d151a72c 42 int junk = 0;
Michielber 5:6878defcfeb9 43 ////////////////////////////////////////////////////////////////////////////////////
Michielber 5:6878defcfeb9 44 DigitalOut led1(LED1, "led1"); //We gaan een digitale uitgang aanroepen namelijk de eerste LED en geven deze de naam led1.
Michielber 5:6878defcfeb9 45 ////////////////////////////////////////////////////////////////////////////////////
Michielber 1:691e8c893065 46 /* HTTP Instellingen */
Michielber 5:6878defcfeb9 47 EthernetNetIf eth( //We gaan de functie van ethernet opendoen om hierin de gewenste adressen in te kunnen gaan voegen.
Michielber 5:6878defcfeb9 48 IpAddr(192,168,1,2), //Ip adres toedienen waarop de MBED verbonden word.
Michielber 5:6878defcfeb9 49 IpAddr(255,255,255,0), //Subnetmasker voor de MBED.
Michielber 5:6878defcfeb9 50 IpAddr(192,168,1,1), //Het IP adres waarop we gaan schrijven.
Michielber 5:6878defcfeb9 51 IpAddr(192,168,1,1)); //Het IP adres waarvan we gaan lezen.
Michielber 5:6878defcfeb9 52 HTTPServer svr; // Opstarten van de HTTP server met de bovenliggende eigenschappen.
Michielber 0:f615d151a72c 53 /* END HTTP */
Michielber 5:6878defcfeb9 54 ////////////////////////////////////////////////////////////////////////////////////
Michielber 5:6878defcfeb9 55 void Hoger(void) { //Interrupt voor de ingestelde waarde hoger te zetten a.d.h.v. een drukknop.
Michielber 5:6878defcfeb9 56 flaginstellen = 1; //Vlag voor instellen op 1 zetten, door de vlag op 1 te zetten kunnen we gaan instellen ipv het programma te runnen.
Michielber 5:6878defcfeb9 57 waarde += 0.5; //De ingestelde waarde gaan we verhogen met 0.5°C.
Michielber 5:6878defcfeb9 58 counter = 0; //We gaan de counter terug op 0 zetten, waardoor we terug 0 keer hebben gedrukt op de verhoog knop.
Michielber 5:6878defcfeb9 59 wait(0.5); //We gaan 0.5 seconden wachten voordat we verder gaan zodat we zeker zijn dat er geen twee keer is gedrukt op de verhoog knop.
Michielber 0:f615d151a72c 60 }
Michielber 5:6878defcfeb9 61 ////////////////////////////////////////////////////////////////////////////////////
Michielber 5:6878defcfeb9 62 void Lager(void) { //Interrupt voor de ingestelde waarde lager te zetten a.d.h.v. een drukknop.
Michielber 5:6878defcfeb9 63 flaginstellen = 1; //Vlag voor instellen op 1 zetten, door de vlag op 1 te zetten kunnen we gaan instellen ipv het programma te runnen.
Michielber 5:6878defcfeb9 64 waarde -= 0.5; //De ingestelde waarde gaan we verlagen met 0.5°C.
Michielber 5:6878defcfeb9 65 counter = 0; //We gaan de counter terug op 0 zetten, waardoor we terug 0 keer hebben gedrukt op de verhoog knop.
Michielber 5:6878defcfeb9 66 wait(0.5); //We gaan 0.5 seconden wachten voordat we verder gaan zodat we zeker zijn dat er geen twee keer is gedrukt op de verhoog knop.
Michielber 0:f615d151a72c 67 }
Michielber 5:6878defcfeb9 68 ////////////////////////////////////////////////////////////////////////////////////
Michielber 5:6878defcfeb9 69 void AanUit(void) { //Interrupt voor de aan/uit knop.
Michielber 5:6878defcfeb9 70 if(aanuit == 0) //Als de aanuit knop gelijk is aan gedrukt dan gaan we de volgende code uitvoeren.
Michielber 5:6878defcfeb9 71 {
Michielber 5:6878defcfeb9 72 aanuit = 1; //We gaan de variable aanuit terug op 1 zetten na het drukken van de knop, hierdoor doen we dit omdat anders we nooit de toestand van deze knop kunnen veranderen.
Michielber 5:6878defcfeb9 73 lcd.cls(); //We gaan het LCD refreshen of m.a.w. het LCD leegmaken.
Michielber 5:6878defcfeb9 74 lcd.printf("Opstarten..."); //We gaan het op LCD de tekst met opstarten.... laten tonen om aan te geven dat we ons systeem hebben opgezet met het drukken op de aan/uit knop
Michielber 5:6878defcfeb9 75 motorout = (90 * 0.000511 + 0.026); //Motor op 90 graden zetten, dit is de begin toestand.
Michielber 5:6878defcfeb9 76 temp1 = (LM35_1 * 3.22*100); // omvormen van analoge waarde naar graden celcius
Michielber 5:6878defcfeb9 77 afronden = 2*temp1; //We gaan de temperatuur maal 2 doen.
Michielber 5:6878defcfeb9 78 afronden = rint(afronden); //Hierna gaan we het getal afronden, door het getal te vermenigvuldigen met 2 kunnen we beter afronden.
Michielber 5:6878defcfeb9 79 waarde = afronden/2; //Temperatuur afronden op 0.5graden
Michielber 5:6878defcfeb9 80 wait(2); //Hierna gaan we 2s wachten zodat de MBED alles juist kan instellen en zodat we op het LCD te zien krijgen dat ons programma opstart.
Michielber 5:6878defcfeb9 81 }
Michielber 5:6878defcfeb9 82 else //Als de toestand van de variable gelijk is aan 0, dan voeren we de code van hieronder uit.
Michielber 5:6878defcfeb9 83 {
Michielber 5:6878defcfeb9 84 aanuit = 0; //We gaan de variable terug op 0 instellen waardoor we terug de variable op 1 kunnen zetten indien we het programma terug willen opstarten.
Michielber 5:6878defcfeb9 85 lcd.cls(); //We gaan het LCD refreshen of m.a.w. het LCD leegmaken.
Michielber 5:6878defcfeb9 86 lcd.printf("Uitschakelen..."); //We gaan het op LCD de tekst met uitschakelen.... laten tonen om aan te geven dat we ons systeem hebben uitgezet met het drukken op de aan/uit knop
Michielber 5:6878defcfeb9 87 motorout = (90 * 0.000511 + 0.026); //Motor op 90 graden zetten, dit is de begin toestand.
Michielber 5:6878defcfeb9 88 wait(2); //Hierna gaan we 2s wachten zodat de MBED alles juist kan instellen en zodat we op het LCD te zien krijgen dat ons programma opstart.
Michielber 0:f615d151a72c 89 }
Michielber 5:6878defcfeb9 90 }
Michielber 5:6878defcfeb9 91 ////////////////////////////////////////////////////////////////////////////////////
Michielber 5:6878defcfeb9 92 void temperatuurinlezen(void) { //Interrupt voor de temperatuur inlezen.
Michielber 5:6878defcfeb9 93 temp1 = (LM35_1 * 3.22*100); // omvormen van analoge waarde naar graden celcius
Michielber 5:6878defcfeb9 94 afronden = 2*temp1; //We gaan de temperatuur maal 2 doen.
Michielber 5:6878defcfeb9 95 afronden = rint(afronden); //Hierna gaan we het getal afronden, door het getal te vermenigvuldigen met 2 kunnen we beter afronden.
Michielber 5:6878defcfeb9 96 temp1 = afronden/2; //Temperatuur afronden op 0.5graden
Michielber 5:6878defcfeb9 97 temp2 = (LM35_2 * 3.22*100); // omvormen van analoge waarde naar graden celcius
Michielber 5:6878defcfeb9 98 afronden = 2*temp2; //We gaan de temperatuur maal 2 doen
Michielber 5:6878defcfeb9 99 afronden = rint(afronden); //Hierna gaan we het getal afronden, door het getal te vermenigvuldigen met 2 kunnen we beter afronden.
Michielber 5:6878defcfeb9 100 temp2 = afronden/2; //Temperatuur afronden op 0.5graden
Michielber 5:6878defcfeb9 101 }
Michielber 5:6878defcfeb9 102 ////////////////////////////////////////////////////////////////////////////////////
Michielber 5:6878defcfeb9 103 void temperatuuruitsturen(void) { //Interrupt voor de temperatuur uitlezen.
Michielber 5:6878defcfeb9 104 if(temp1 > (waarde + 1)) { //Als de waarde van de eerste LM35 hoger is als de ingestelde waarde
Michielber 5:6878defcfeb9 105 LEDJE1 = 1; // Lamp1 op breadboard aan "Groen".
Michielber 5:6878defcfeb9 106 LEDJE2 = 0; // Lamp2 op breadboard uit"Rood".
Michielber 5:6878defcfeb9 107 lcd.cls(); //We gaan het LCD refreshen of m.a.w. het LCD leegmaken.
Michielber 5:6878defcfeb9 108 lcd.printf("BIN: %5.2f C",temp1); //Temperatuur binnen op LCD
Michielber 5:6878defcfeb9 109 lcd.locate(0,1); //We gaan ons eigen op de juiste lijn van het LCD zetten, namelijk op de tweede lijn.
Michielber 5:6878defcfeb9 110 lcd.printf("BUI: %5.2f C",temp2); //Temperatuur buiten op LCD
Michielber 5:6878defcfeb9 111 wait(0.3); //Wachttijd
Michielber 5:6878defcfeb9 112 relais = 0; //We gaan de relais op 0 zetten waardoor deze uitschakelt en het bijhorend LEDJE gaat doven.
Michielber 5:6878defcfeb9 113 }
Michielber 5:6878defcfeb9 114 else if(temp1 <= (waarde - 1) ) { //Als de waarde van de eerste LM35 lager is als de ingestelde waarde
Michielber 5:6878defcfeb9 115 LEDJE1 = 0; // Lamp1 op breadboard uit "Groen".
Michielber 5:6878defcfeb9 116 LEDJE2 = 1; // Lamp2 op breadboard aan "Rood".
Michielber 5:6878defcfeb9 117 lcd.cls(); //We gaan het LCD refreshen of m.a.w. het LCD leegmaken.
Michielber 5:6878defcfeb9 118 lcd.printf("BIN: %5.2f C",temp1); //Temperatuur binnen op LCD
Michielber 5:6878defcfeb9 119 lcd.locate(0,1); //We gaan ons eigen op de juiste lijn van het LCD zetten, namelijk op de tweede lijn.
Michielber 5:6878defcfeb9 120 lcd.printf("BUI: %5.2f C",temp2); //Temperatuur buiten op LCD
Michielber 5:6878defcfeb9 121 wait(0.3); //Wachttijd
Michielber 5:6878defcfeb9 122 relais = 1; //We gaan de relais op 1 zetten waardoor deze inschakelt en het bijhorend LEDJE gaat aangaan.
Michielber 5:6878defcfeb9 123 }
Michielber 5:6878defcfeb9 124 }
Michielber 5:6878defcfeb9 125 ////////////////////////////////////////////////////////////////////////////////////
Michielber 5:6878defcfeb9 126 void motor(float graden) { //Interrupt voor de toestand van de servo-motor.
Michielber 5:6878defcfeb9 127 if ( (graden > 20) && (graden < 160) ) { //Als de ingegeven graden groter is als de begin waarde en alsook kleiner is als de grootste waarde dan de code van hieronder uitoeren.
Michielber 5:6878defcfeb9 128 motorout = (graden * 0.000511 + 0.026); //We gaan de motor laten draaien naar de gewenste graden die afhankelijk is van het temperatuurverschil.
Michielber 5:6878defcfeb9 129 }
Michielber 5:6878defcfeb9 130 else if (graden >= 160){ //Als het temperatuur verschil groter word als 160° dan gaan we de motor op zijn laatste positie namelijk 160° laten staan waardoor we zien dat we een maximaal temperatuurverschil hebben.
Michielber 5:6878defcfeb9 131 motorout = (160 * 0.000511 + 0.026); //Beveiliging => niet boven 160graden
Michielber 5:6878defcfeb9 132 }
Michielber 5:6878defcfeb9 133 else {
Michielber 5:6878defcfeb9 134 motorout = (20 * 0.000511 + 0.026); //Beveiliging => niet onder 20 graden
Michielber 5:6878defcfeb9 135 }
Michielber 5:6878defcfeb9 136 return;
Michielber 5:6878defcfeb9 137 }
Michielber 5:6878defcfeb9 138 ////////////////////////////////////////////////////////////////////////////////////
Michielber 5:6878defcfeb9 139 void initHTTP(void) { //Interrupt voor het HTTP protocol.
Michielber 5:6878defcfeb9 140 printf("Start initialisatie HTTP\r\n"); //We gaan op het LCD schrijven dat we bezigz zijn met de intialisering van het LCD
Michielber 5:6878defcfeb9 141 EthernetErr ethErr; //Error variabele aanmaken
Michielber 0:f615d151a72c 142 int count = 0;
Michielber 0:f615d151a72c 143 do {
Michielber 0:f615d151a72c 144 printf("Setting up %d...\n\r", ++count);
Michielber 5:6878defcfeb9 145 ethErr = eth.setup(); //Ethernet poort starten, variabele toekennen aan de setup
Michielber 5:6878defcfeb9 146 if (ethErr) printf("Timeout\n\r", ethErr); //Als er een fout is timeout geven
Michielber 5:6878defcfeb9 147 }
Michielber 5:6878defcfeb9 148 while (ethErr != ETH_OK); //Zolang er geen fout is
Michielber 0:f615d151a72c 149 printf("Connected OK\n\r");
Michielber 5:6878defcfeb9 150 const char* hwAddr = eth.getHwAddr(); //Adres krijgen
Michielber 5:6878defcfeb9 151 IpAddr ethIp = eth.getIp(); //Ip adres opvragen
Michielber 0:f615d151a72c 152 printf("IP address : %d.%d.%d.%d\n\r", ethIp[0], ethIp[1], ethIp[2], ethIp[3]);
Michielber 5:6878defcfeb9 153 svr.addHandler<SimpleHandler>("/hello"); //HTTPS server request handler
Michielber 5:6878defcfeb9 154 svr.addHandler<FSHandler>(""); //Handler voor file weg te schrijven
Michielber 5:6878defcfeb9 155 svr.bind(80); //Server binden aan poort 80
Michielber 5:6878defcfeb9 156 printf("Server listening\n\r"); //Laten zien dat onze server luistert, waardoor we kunnen zenden van data.
Michielber 5:6878defcfeb9 157 }
Michielber 5:6878defcfeb9 158 ////////////////////////////////////////////////////////////////////////////////////
Michielber 5:6878defcfeb9 159 void klokophalen() { //Interrupt voor de tijd op ons LCD te krijgen.
Michielber 5:6878defcfeb9 160 my1307.gettime(&sec, &minuten, &hours, &day, &date, &month, &year); //De tijden van de klok ophalen en laten tonen op het LCD
Michielber 5:6878defcfeb9 161 }
Michielber 5:6878defcfeb9 162 ////////////////////////////////////////////////////////////////////////////////////
Michielber 5:6878defcfeb9 163 void klokuitsturen() { //Interrupt voor de CLK.
Michielber 5:6878defcfeb9 164 klokophalen(); //De tijden van de klok ophalen
Michielber 5:6878defcfeb9 165 lcd.cls(); //We gaan het LCD refreshen of m.a.w. het LCD leegmaken.kunt g
Michielber 5:6878defcfeb9 166 lcd.locate(0,0); //Eerste lijn van het LCD
Michielber 5:6878defcfeb9 167 lcd.printf("%d:%d:%d",hours,minuten,sec); //Tijd op LCD zetten
Michielber 5:6878defcfeb9 168 lcd.locate(0,1); //Tweede lijn van het LCD
Michielber 5:6878defcfeb9 169 lcd.printf("%d/%d/%d",date,month,year); //Datum op LCD zetten
Michielber 5:6878defcfeb9 170 }
Michielber 5:6878defcfeb9 171 ////////////////////////////////////////////////////////////////////////////////////
Michielber 5:6878defcfeb9 172 void hoekverdraaiingbepalen(float verschilgraden,float temperatuurbuiten) {
Michielber 5:6878defcfeb9 173 float startstand;
Michielber 0:f615d151a72c 174
Michielber 5:6878defcfeb9 175 //Bepalen op welke stand hij staat (Waar hij op de belastingslijn is)
Michielber 5:6878defcfeb9 176 if (verschilgraden < -1.5) {
Michielber 5:6878defcfeb9 177 stand = -2;
Michielber 5:6878defcfeb9 178 }
Michielber 5:6878defcfeb9 179 else if( (-1.5 <= verschilgraden) && (verschilgraden < -0.5) ){
Michielber 5:6878defcfeb9 180 stand = -1;
Michielber 5:6878defcfeb9 181 }
Michielber 5:6878defcfeb9 182 else if ( (-0.5 <= verschilgraden) && (verschilgraden <= 0.5) ) {
Michielber 5:6878defcfeb9 183 stand = 0;
Michielber 5:6878defcfeb9 184 }
Michielber 5:6878defcfeb9 185 else if ( (0.5 < verschilgraden) && (verschilgraden <= 1.5) ) {
Michielber 5:6878defcfeb9 186 stand = 1;
Michielber 5:6878defcfeb9 187 }
Michielber 5:6878defcfeb9 188 else {
Michielber 5:6878defcfeb9 189 stand = 2;
Michielber 5:6878defcfeb9 190 }
Michielber 0:f615d151a72c 191
Michielber 5:6878defcfeb9 192 //Bepalen van belastingslijn//
Michielber 5:6878defcfeb9 193 printf("Temperatuurbuiten: %f\n\r", temperatuurbuiten);
Michielber 5:6878defcfeb9 194 if ( temperatuurbuiten < 23 ){
Michielber 5:6878defcfeb9 195 startstand = 125; //Belastingslijn 1
Michielber 5:6878defcfeb9 196 printf("Temperatuurbuiten is kleiner dan -5 graden.\r\n");
Michielber 5:6878defcfeb9 197 }
Michielber 5:6878defcfeb9 198 else if ( (23 <= temperatuurbuiten) && (temperatuurbuiten <= 25) ){
Michielber 5:6878defcfeb9 199 startstand = 90; //Belastingslijn 2
Michielber 5:6878defcfeb9 200 printf("Temperatuurbuiten is tussen -5 en 10 graden.\r\n");
Michielber 5:6878defcfeb9 201 }
Michielber 5:6878defcfeb9 202 else {
Michielber 5:6878defcfeb9 203 startstand = 55; //Belastingslijn 3
Michielber 5:6878defcfeb9 204 printf("Temperatuurbuiten is groter dan 10 graden.\r\n");
Michielber 5:6878defcfeb9 205 }
Michielber 5:6878defcfeb9 206
Michielber 5:6878defcfeb9 207 //Bepalen van graden//
Michielber 5:6878defcfeb9 208 hoekverdraaiing = startstand + (stand * 35);
Michielber 5:6878defcfeb9 209 if (hoekverdraaiing > 160) { //Beveiliging
Michielber 5:6878defcfeb9 210 hoekverdraaiing = 160;
Michielber 5:6878defcfeb9 211 }
Michielber 5:6878defcfeb9 212 else if (hoekverdraaiing < 20){ //Beveiliging
Michielber 5:6878defcfeb9 213 hoekverdraaiing = 20;
Michielber 5:6878defcfeb9 214 }
Michielber 0:f615d151a72c 215
Michielber 0:f615d151a72c 216 }
Michielber 5:6878defcfeb9 217 ////////////////////////////////////////////////////////////////////////////////////
Michielber 0:f615d151a72c 218 int main(void)
Michielber 0:f615d151a72c 219 {
Michielber 0:f615d151a72c 220 /* START INITIALISATIE */
Michielber 5:6878defcfeb9 221 knopHOGER.rise(&Hoger); //Knop hoger instellen.
Michielber 5:6878defcfeb9 222 knopLAGER.rise(&Lager); //Knop lager inestellen
Michielber 5:6878defcfeb9 223 aanuitknop.rise(&AanUit); //Knop aan&uit instellen
Michielber 5:6878defcfeb9 224 initHTTP(); //HTTP initialiseren
Michielber 5:6878defcfeb9 225 Timer tm; //Timer selecteren
Michielber 5:6878defcfeb9 226 tm.start(); //Timer starten
Michielber 0:f615d151a72c 227 /* STOP INITIALISATIE */
Michielber 5:6878defcfeb9 228 while(true) { //While lus
Michielber 5:6878defcfeb9 229 if( (aanuit == 1) && (flaginstellen == 0) ) { //open if functie
Michielber 5:6878defcfeb9 230 temperatuurinlezen(); //Inlezen van temperatuur
Michielber 5:6878defcfeb9 231 temperatuuruitsturen(); //Uitsturen van temperatuur
Michielber 5:6878defcfeb9 232 klokophalen(); //Ophalen van de klok waarde voor datum en tijd
Michielber 5:6878defcfeb9 233 /* START HTTP */
Michielber 5:6878defcfeb9 234 printf("Net poll start\r\n"); //Printen op de Computer voor Theratherm
Michielber 5:6878defcfeb9 235 Net::poll();
Michielber 5:6878defcfeb9 236 if (tm.read() > 0.5) { //Open IF functie
Michielber 5:6878defcfeb9 237 led1 = !led1; //Led aan of uit sturen
Michielber 5:6878defcfeb9 238 tm.start(); //Start timer
Michielber 5:6878defcfeb9 239 c++; //Optellen zodat om de 1s de gegevens worden doorgestuurd
Michielber 0:f615d151a72c 240 }
Michielber 5:6878defcfeb9 241 printf("Net poll gedaan\r\n");
Michielber 5:6878defcfeb9 242 if (c==1) { //Als we gaan zenden dan gaan we de code van hieronder uitvoeren tijdens het zenden van de data.
Michielber 0:f615d151a72c 243 printf("Ik probeer nu de file te openen..\r\n");
Michielber 0:f615d151a72c 244 //FILE *fp = fopen("/webfs/mydata.htm","w");
Michielber 5:6878defcfeb9 245 FILE *fp = fopen("/local/Project.htm", "w"); // Open "Test.htm" on the local file system for writing
Michielber 5:6878defcfeb9 246 printf("File geopend!\r\n"); //Print
Michielber 5:6878defcfeb9 247 fprintf(fp,"<HTML>\r\n"); //HTML opstarten
Michielber 5:6878defcfeb9 248 fprintf(fp,"<HEAD>\r\n"); //Head van het bestand open zetten.
Michielber 5:6878defcfeb9 249 fprintf(fp,"<script type=\"text/javascript\">window.setTimeout(function(){ document.location.reload(true); }, 3000);</script>");//Script laden
Michielber 5:6878defcfeb9 250 fprintf(fp,"<link rel=\"stylesheet\" href=\"https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css\">");//Stijl van het document laden
Michielber 5:6878defcfeb9 251 fprintf(fp,"<style>\r\n");//De style toepassen die is opgevraagd
Michielber 5:6878defcfeb9 252 fprintf(fp,"tbody {background:#FF6666;}");//Achtergrond veranderen van kleur
Michielber 5:6878defcfeb9 253 fprintf(fp,"</style>\r\n");//De aangemaakt stijl terug sluiten
Michielber 5:6878defcfeb9 254 fprintf(fp,"</HEAD>\r\n");//Sluiten van de HEAD
Michielber 5:6878defcfeb9 255 fprintf(fp,"<BODY>\r\n");//Sluiten van de BODY
Michielber 3:201eb46eb4ab 256 /* TEST BOOTSTRAP */
Michielber 3:201eb46eb4ab 257 fprintf(fp,"<div class=\"container\">\r\n");
Michielber 3:201eb46eb4ab 258 fprintf(fp,"<div class=\"panel panel-success\">");
Michielber 5:6878defcfeb9 259 fprintf(fp,"<div class=\"panel-heading\">%d:%d:%d %d/%d/%d</div>",hours,minuten,sec,date,month,year);
Michielber 5:6878defcfeb9 260 fprintf(fp,"<table class=\"table\">");//Aanmaken van tabel
Michielber 3:201eb46eb4ab 261 fprintf(fp,"<thead><tr><th>Temperatuur binnen</th><th>Temperatuur buiten</th></tr></thead>");
Michielber 5:6878defcfeb9 262 fprintf(fp,"<tbody><tr><td>%.1f &deg;C</td>",temp1);//Kiezen waar we temp1 in de tabel gaan steken
Michielber 5:6878defcfeb9 263 fprintf(fp,"<td>%.1f &deg;C</td></tr></tbody></table></div>",temp2);//Kiezen waar we temp2 in de tabel gaan steken.
Michielber 3:201eb46eb4ab 264 /* END TEST BOOTSTRAP */
Michielber 3:201eb46eb4ab 265 fprintf(fp,"</div>");
Michielber 0:f615d151a72c 266 printf("Variabelen printen\r\n");
Michielber 0:f615d151a72c 267 fprintf(fp,"</BODY>\r\n");
Michielber 0:f615d151a72c 268 fprintf(fp,"</HTML>\r\n");
Michielber 0:f615d151a72c 269 printf("Sessie stoppen \r\n");
Michielber 5:6878defcfeb9 270 fclose(fp);//Stop schrijven
Michielber 0:f615d151a72c 271 printf("staat online\r\n");
Michielber 0:f615d151a72c 272 c=0;
Michielber 0:f615d151a72c 273 }
Michielber 0:f615d151a72c 274 /* EINDE HTTP */
Michielber 5:6878defcfeb9 275 /* Motor sturing hier */
Michielber 5:6878defcfeb9 276 verschilgraden = waarde - temp1;
Michielber 5:6878defcfeb9 277 printf("Verschilgraden: %f\n\r", verschilgraden);
Michielber 5:6878defcfeb9 278 hoekverdraaiingbepalen(verschilgraden,temp2);
Michielber 5:6878defcfeb9 279 printf("Stand: %f\n\r", stand);
Michielber 5:6878defcfeb9 280 printf("Hoekverdraaiing: %f\n\r", hoekverdraaiing);
Michielber 5:6878defcfeb9 281 wait(1);
Michielber 5:6878defcfeb9 282 motor(hoekverdraaiing); //Motor aansturen
Michielber 5:6878defcfeb9 283 /* Stop motor sturing hier */
Michielber 5:6878defcfeb9 284 }
Michielber 5:6878defcfeb9 285 else if( (aanuit == 1) && (flaginstellen == 1) ) { //open else if
Michielber 5:6878defcfeb9 286 /* Programmatie instellen */
Michielber 5:6878defcfeb9 287 printf("Programma instelmodus aan\r\n");
Michielber 5:6878defcfeb9 288 while (counter <= 3) {
Michielber 5:6878defcfeb9 289 lcd.cls(); //We gaan het LCD refreshen of m.a.w. het LCD leegmaken.
Michielber 5:6878defcfeb9 290 lcd.printf("BIN: %5.2f C",waarde); //Printen van de binnen temp
Michielber 5:6878defcfeb9 291 lcd.locate(0,1); //Tweede lijn van LCD
Michielber 5:6878defcfeb9 292 lcd.printf("BUI: %5.2f C",temp2); // Printen van de buiten temp
Michielber 5:6878defcfeb9 293 wait(0.8); //Wachttijd
Michielber 5:6878defcfeb9 294 lcd.cls(); //We gaan het LCD refreshen of m.a.w. het LCD leegmaken.
Michielber 5:6878defcfeb9 295 lcd.printf(""); //Lcd laten flikkeren voor instellen
Michielber 5:6878defcfeb9 296 lcd.locate(0,1); // Tweede lijn van het LCd
Michielber 5:6878defcfeb9 297 lcd.printf("BUI: %5.2f C",temp2); //Printen van de buiten temp
Michielber 5:6878defcfeb9 298 wait(0.2); //Wachttijd
Michielber 5:6878defcfeb9 299 counter++; //Counter incrementeren met 1
Michielber 5:6878defcfeb9 300 }
Michielber 5:6878defcfeb9 301 flaginstellen = 0; //Instellen stoppen
Michielber 5:6878defcfeb9 302 }
Michielber 5:6878defcfeb9 303 else { //open else
Michielber 5:6878defcfeb9 304 lcd.cls(); //We gaan het LCD refreshen of m.a.w. het LCD leegmaken.
Michielber 5:6878defcfeb9 305 klokuitsturen(); //De waarde van de klok op de LCD zetten
Michielber 5:6878defcfeb9 306 printf("Staat uit\r\n");
Michielber 5:6878defcfeb9 307 } //sluit else
Michielber 5:6878defcfeb9 308 }
Michielber 5:6878defcfeb9 309 }