Berckvens Michiel & Basteyns Jonas
Dependencies: DS1307 TextLCD mbed
Revision 5:6878defcfeb9, committed 2014-12-11
- Comitter:
- Michielber
- Date:
- Thu Dec 11 16:07:34 2014 +0000
- Parent:
- 4:25e4117e8a56
- Commit message:
- Project updated belastingslijn
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Tue Dec 09 17:22:06 2014 +0000 +++ b/main.cpp Thu Dec 11 16:07:34 2014 +0000 @@ -1,300 +1,309 @@ -#include "mbed.h" -#include "TextLCD.h" -#include "ds1307.h" -#include "EthernetNetIf.h" -//#include "HTTPClient.h" -//#include "NTPClient.h" -#include "HTTPServer.h" -#include "RPCFunction.h" - -TextLCD lcd(p21, p22, p23, p24, p27, p28); // rs, e, d4-d7 -AnalogIn LM35_1(p19); // Analoge ingang voor LM35 toewijzen op welke pin. -AnalogIn LM35_2(p20); // Analoge ingang voor LM35 toewijzen op welke pin. -Serial pc(USBTX, USBRX); //Zorgen dat we een seriele communicatie tussen computer en MBED kunnen opzetten. -DigitalOut LEDJE1 (p6); // Uitgang voor LED op breadboard. -DigitalOut LEDJE2 (p7); // Uitgang voor LED op breadboard. -InterruptIn knopHOGER(p8); // Aanmaken van ingang voor drukknopje voor hogere temp -InterruptIn knopLAGER(p30); // Aanmaken van ingang voor drukknopje voor lagere temp -DigitalOut myled1(LED1); // Aanmaken van LED van MBED te gerbuiken voor hogere temp -DigitalOut myled2(LED2); // Aanmaken van LED van MBED te gerbuiken voor lagere temp -InterruptIn aanuitknop(p5); -DigitalOut relais(p29); -PwmOut motorout(p25); -DS1307 my1307(p9,p10); // start DS1307 class and give it pins for connections of the DS1307 device - -LocalFileSystem fs("webfs"); //Instellingen voor HTTP -LocalFileSystem local("local"); //Instellingen voor HTTP, /local/Project.htm gaan we gebruiken - -int c=0; -float waarde = 25; -float temp2; -bool aanuit = 0; -float temp1; // variable aanmaken voor temp van 1ste LM35 in te steken. // variable aanmaken voor temp van 2de LM35 in te steken. -float afronden; -float graden; -float counter; -float flaginstellen = 0; -int sec = 0; -int minuten = 0; -int hours = 0; -int day = 0; -int date = 0; -int month = 0; -int year = 0; +#include "mbed.h" //Invoegen van de mbed bibliotheek. +#include "TextLCD.h" //Invoegen van de LCD bibliotheek. +#include "ds1307.h" //Invoegen van de de1307 bibliotheek voor de CLK. +#include "EthernetNetIf.h" //Invoegen van de ethernet bibliotheek. +#include "HTTPServer.h" //Invoegen van de HTTP bibliotheek. +#include "RPCFunction.h" //Invoegen van de RPC bibliotheek. +//////////////////////////////////////////////////////////////////////////////////// +TextLCD lcd(p21, p22, p23, p24, p27, p28); //Instellen van de LCD pinnen. rs, e, d4-d7 +AnalogIn LM35_1(p19); //Analoge ingang voor eerste LM35 toewijzen op welke pin. +AnalogIn LM35_2(p20); //Analoge ingang voor tweede LM35 toewijzen op welke pin. +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. +DigitalOut LEDJE1 (p6); //Uitgang voor LED op breadboard voor chauffage aan/uit. +DigitalOut LEDJE2 (p7); //Uitgang voor LED op breadboard voor chauffage aan/uit. +InterruptIn knopHOGER(p8); //Aanmaken van ingangknop voor temperatuur hoger te kunnen instellen onder interrupt. +InterruptIn knopLAGER(p30); //Aanmaken van ingangknop voor temperatuur lager te kunnen instellen onder interrupt. +InterruptIn aanuitknop(p5); //Aanmaken van aan/uit knop voor het systeem op of af te zetten onder interrupt. +DigitalOut relais(p29); //Aanmaken van een uitgangspin voor het aansturen van de Relais. +PwmOut motorout(p25); //Aanmaken van PWM pin voor het aansturen van de servo-motor onder PWM. +DS1307 my1307(p9,p10); //Opstarten van de DS1307 en de pinnen voor connectie mee geven. +LocalFileSystem fs("webfs"); //Instellingen voor HTTP +LocalFileSystem local("local"); //Instellingen voor HTTP, /local/Project.htm gaan we gebruiken, hierbij komt ons project lokaal te staan. +//////////////////////////////////////////////////////////////////////////////////// +int c=0; //Aanmaken van de c variable voor HTTP, hierbij geven we deze variable de waarde 0 mee. +float waarde = 25; //Aanmaken van de waarde variable voor een instel temperatuur mee te geven. +float temp2; // Aanmaken van de temp2 variable, deze dient voor de temperatuur van de tweede LM35 in op te slaan. +bool aanuit = 0; //Aanmaken van een variable voor te kijken of het programma/MBED aan of uit staat. +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. +float afronden; //Aanmaken van de variable afronden, deze gaat dienen +float hoekverdraaiing; //Aanmaken van de variable graden, deze dient voor het weergeven van onze temperatuur waarde in °C +float verschilgraden; +float stand; +float lijn; +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. +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. +int sec = 0; //We gaan de variable sec aanmaken zodat we de seconden kunnen instellen die er op ons LCD moet komen te staan. +int minuten = 0; //We gaan de variable minuten aanmaken zodat we de minuten kunnen instellen die er op ons LCD moet komen te staan. +int hours = 0; //We gaan de variable hours aanmaken zodat we de uren kunnen instellen die er op ons LCD moet komen te staan. +int day = 0; //We gaan de variable day aanmaken zodat we de dagen kunnen instellen die er op ons LCD moet komen te staan. +int date = 0; //We gaan de variable date aanmaken zodat we de datum kunnen instellen die er op ons LCD moet komen te staan. +int month = 0; //We gaan de variable month aanmaken zodat we de maanden kunnen instellen die er op ons LCD moet komen te staan. +int year = 0; //We gaan de variable year aanmaken zodat we de jaren kunnen instellen die er op ons LCD moet komen te staan. int junk = 0; - -DigitalOut led1(LED1, "led1"); - - +//////////////////////////////////////////////////////////////////////////////////// +DigitalOut led1(LED1, "led1"); //We gaan een digitale uitgang aanroepen namelijk de eerste LED en geven deze de naam led1. +//////////////////////////////////////////////////////////////////////////////////// /* HTTP Instellingen */ - -EthernetNetIf eth( - IpAddr(192,168,1,2), //Ip adress toedienen - IpAddr(255,255,255,0), //Subnetmasker - IpAddr(192,168,1,1), - IpAddr(192,168,1,1)); - //HTTPClient http; - //NTPClient ntp; - HTTPServer svr; - - +EthernetNetIf eth( //We gaan de functie van ethernet opendoen om hierin de gewenste adressen in te kunnen gaan voegen. + IpAddr(192,168,1,2), //Ip adres toedienen waarop de MBED verbonden word. + IpAddr(255,255,255,0), //Subnetmasker voor de MBED. + IpAddr(192,168,1,1), //Het IP adres waarop we gaan schrijven. + IpAddr(192,168,1,1)); //Het IP adres waarvan we gaan lezen. + HTTPServer svr; // Opstarten van de HTTP server met de bovenliggende eigenschappen. /* END HTTP */ - -void Hoger(void) { //Interrupt voor de ingestelde waarde hoger te zetten - flaginstellen = 1; //Vlag voor instellen op 1 zetten - waarde += 0.5; //Waarde hoger zetten - counter = 0; //Insteltijd resetten - wait(0.5); - +//////////////////////////////////////////////////////////////////////////////////// +void Hoger(void) { //Interrupt voor de ingestelde waarde hoger te zetten a.d.h.v. een drukknop. + flaginstellen = 1; //Vlag voor instellen op 1 zetten, door de vlag op 1 te zetten kunnen we gaan instellen ipv het programma te runnen. + waarde += 0.5; //De ingestelde waarde gaan we verhogen met 0.5°C. + counter = 0; //We gaan de counter terug op 0 zetten, waardoor we terug 0 keer hebben gedrukt op de verhoog knop. + 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. } - -void Lager(void) { //Interrupt voor de ingestelde waarde hoger te zetten - flaginstellen = 1; //Vlag voor instellen op 1 zetten - waarde -= 0.5; //Waarde lager zetten - counter = 0; //Insteltijd resetten - wait(0.5); +//////////////////////////////////////////////////////////////////////////////////// +void Lager(void) { //Interrupt voor de ingestelde waarde lager te zetten a.d.h.v. een drukknop. + flaginstellen = 1; //Vlag voor instellen op 1 zetten, door de vlag op 1 te zetten kunnen we gaan instellen ipv het programma te runnen. + waarde -= 0.5; //De ingestelde waarde gaan we verlagen met 0.5°C. + counter = 0; //We gaan de counter terug op 0 zetten, waardoor we terug 0 keer hebben gedrukt op de verhoog knop. + 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. } - -void AanUit(void) { - - if(aanuit == 0) { - - aanuit = 1; - lcd.cls(); - lcd.printf("Opstarten..."); - motorout = (20 * 0.000511 + 0.026); //Motor op 20 graden zetten - temp1 = (LM35_1 * 3.22*100); // omvormen van analoge waarde naar graden celcius - afronden = 2*temp1; - afronden = rint(afronden); - waarde = afronden/2; - wait(2); - }else { - - aanuit = 0; - lcd.cls(); - lcd.printf("Uitschakelen..."); - motorout = (20 * 0.000511 + 0.026); //Motor terug op 20 graden zetten - wait(2); - } - - } - -void temperatuurinlezen(void) { - temp1 = (LM35_1 * 3.22*100); // omvormen van analoge waarde naar graden celcius - afronden = 2*temp1; - afronden = rint(afronden); - temp1 = afronden/2; //Temperatuur afronden op 0.5graden - - temp2 = (LM35_2 * 3.22*100); // omvormen van analoge waarde naar grade celcius - afronden = 2*temp2; - afronden = rint(afronden); - temp2 = afronden/2; //Temperatuur afronden op 0.5graden - } - -void temperatuuruitsturen(void) { - if(temp1 > (waarde + 1)) { //Als de waarde van de eerste LM35 hoger is als de ingestelde waarde - LEDJE1 = 1; // Lamp1 op breadboard aan. - LEDJE2 = 0; // Lamp2 op breadboard uit. - lcd.cls(); - lcd.printf("BIN: %5.1f C",temp1); //Temperatuur binnen op LCD - lcd.locate(0,1); - lcd.printf("BUI: %5.1f C",temp2); //Temperatuur buiten op LCD - wait(0.3); - relais = 0; - // Een halve seconden wachten, zodat we onze temperatuur kunnen aflezen op het scherm. - } else if(temp1 <= (waarde - 1) ) { //Als de waarde van de eerste LM35 lager is als de ingestelde waarde - LEDJE1 = 0; // Lamp1 op breadboard uit. - LEDJE2 = 1; // Lamp2 op breadboard aan. - lcd.cls(); - lcd.printf("BIN: %5.2f C",temp1); - lcd.locate(0,1); - lcd.printf("BUI: %5.2f C",temp2); - wait(0.3); // Een halve seconden wachten, zodat we onze temperatuur kunnen aflezen op het scherm. - relais = 1; - } - - } - - void motor(float graden) { - - if ( (graden > 20) && (graden < 160) ) { - motorout = (graden * 0.000511 + 0.026); - } - else if (graden >= 160){ - motorout = (160 * 0.000511 + 0.026); //Beveiliging => niet boven 160graden - } - else { - motorout = (20 * 0.000511 + 0.026); //Beveiliging => niet onder 20 graden - } - return; +//////////////////////////////////////////////////////////////////////////////////// +void AanUit(void) { //Interrupt voor de aan/uit knop. + if(aanuit == 0) //Als de aanuit knop gelijk is aan gedrukt dan gaan we de volgende code uitvoeren. + { + 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. + lcd.cls(); //We gaan het LCD refreshen of m.a.w. het LCD leegmaken. + 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 + motorout = (90 * 0.000511 + 0.026); //Motor op 90 graden zetten, dit is de begin toestand. + temp1 = (LM35_1 * 3.22*100); // omvormen van analoge waarde naar graden celcius + afronden = 2*temp1; //We gaan de temperatuur maal 2 doen. + afronden = rint(afronden); //Hierna gaan we het getal afronden, door het getal te vermenigvuldigen met 2 kunnen we beter afronden. + waarde = afronden/2; //Temperatuur afronden op 0.5graden + 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. +} + else //Als de toestand van de variable gelijk is aan 0, dan voeren we de code van hieronder uit. + { + 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. + lcd.cls(); //We gaan het LCD refreshen of m.a.w. het LCD leegmaken. + 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 + motorout = (90 * 0.000511 + 0.026); //Motor op 90 graden zetten, dit is de begin toestand. + 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. } - -void initHTTP(void) { - printf("Start initialisatie HTTP\r\n"); - EthernetErr ethErr; +} +//////////////////////////////////////////////////////////////////////////////////// +void temperatuurinlezen(void) { //Interrupt voor de temperatuur inlezen. + temp1 = (LM35_1 * 3.22*100); // omvormen van analoge waarde naar graden celcius + afronden = 2*temp1; //We gaan de temperatuur maal 2 doen. + afronden = rint(afronden); //Hierna gaan we het getal afronden, door het getal te vermenigvuldigen met 2 kunnen we beter afronden. + temp1 = afronden/2; //Temperatuur afronden op 0.5graden + temp2 = (LM35_2 * 3.22*100); // omvormen van analoge waarde naar graden celcius + afronden = 2*temp2; //We gaan de temperatuur maal 2 doen + afronden = rint(afronden); //Hierna gaan we het getal afronden, door het getal te vermenigvuldigen met 2 kunnen we beter afronden. + temp2 = afronden/2; //Temperatuur afronden op 0.5graden +} +//////////////////////////////////////////////////////////////////////////////////// +void temperatuuruitsturen(void) { //Interrupt voor de temperatuur uitlezen. + if(temp1 > (waarde + 1)) { //Als de waarde van de eerste LM35 hoger is als de ingestelde waarde + LEDJE1 = 1; // Lamp1 op breadboard aan "Groen". + LEDJE2 = 0; // Lamp2 op breadboard uit"Rood". + lcd.cls(); //We gaan het LCD refreshen of m.a.w. het LCD leegmaken. + lcd.printf("BIN: %5.2f C",temp1); //Temperatuur binnen op LCD + lcd.locate(0,1); //We gaan ons eigen op de juiste lijn van het LCD zetten, namelijk op de tweede lijn. + lcd.printf("BUI: %5.2f C",temp2); //Temperatuur buiten op LCD + wait(0.3); //Wachttijd + relais = 0; //We gaan de relais op 0 zetten waardoor deze uitschakelt en het bijhorend LEDJE gaat doven. +} + else if(temp1 <= (waarde - 1) ) { //Als de waarde van de eerste LM35 lager is als de ingestelde waarde + LEDJE1 = 0; // Lamp1 op breadboard uit "Groen". + LEDJE2 = 1; // Lamp2 op breadboard aan "Rood". + lcd.cls(); //We gaan het LCD refreshen of m.a.w. het LCD leegmaken. + lcd.printf("BIN: %5.2f C",temp1); //Temperatuur binnen op LCD + lcd.locate(0,1); //We gaan ons eigen op de juiste lijn van het LCD zetten, namelijk op de tweede lijn. + lcd.printf("BUI: %5.2f C",temp2); //Temperatuur buiten op LCD + wait(0.3); //Wachttijd + relais = 1; //We gaan de relais op 1 zetten waardoor deze inschakelt en het bijhorend LEDJE gaat aangaan. + } +} +//////////////////////////////////////////////////////////////////////////////////// +void motor(float graden) { //Interrupt voor de toestand van de servo-motor. + 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. + motorout = (graden * 0.000511 + 0.026); //We gaan de motor laten draaien naar de gewenste graden die afhankelijk is van het temperatuurverschil. + } + 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. + motorout = (160 * 0.000511 + 0.026); //Beveiliging => niet boven 160graden + } + else { + motorout = (20 * 0.000511 + 0.026); //Beveiliging => niet onder 20 graden + } + return; +} +//////////////////////////////////////////////////////////////////////////////////// +void initHTTP(void) { //Interrupt voor het HTTP protocol. + printf("Start initialisatie HTTP\r\n"); //We gaan op het LCD schrijven dat we bezigz zijn met de intialisering van het LCD + EthernetErr ethErr; //Error variabele aanmaken int count = 0; do { printf("Setting up %d...\n\r", ++count); - ethErr = eth.setup(); - if (ethErr) printf("Timeout\n\r", ethErr); - } while (ethErr != ETH_OK); - + ethErr = eth.setup(); //Ethernet poort starten, variabele toekennen aan de setup + if (ethErr) printf("Timeout\n\r", ethErr); //Als er een fout is timeout geven + } + while (ethErr != ETH_OK); //Zolang er geen fout is printf("Connected OK\n\r"); - const char* hwAddr = eth.getHwAddr(); - - IpAddr ethIp = eth.getIp(); + const char* hwAddr = eth.getHwAddr(); //Adres krijgen + IpAddr ethIp = eth.getIp(); //Ip adres opvragen printf("IP address : %d.%d.%d.%d\n\r", ethIp[0], ethIp[1], ethIp[2], ethIp[3]); - - //LocalFileSystem fs("webfs"); - - svr.addHandler<SimpleHandler>("/hello"); - svr.addHandler<FSHandler>(""); - - svr.bind(80); - printf("Server listening\n\r"); + svr.addHandler<SimpleHandler>("/hello"); //HTTPS server request handler + svr.addHandler<FSHandler>(""); //Handler voor file weg te schrijven + svr.bind(80); //Server binden aan poort 80 + printf("Server listening\n\r"); //Laten zien dat onze server luistert, waardoor we kunnen zenden van data. +} +//////////////////////////////////////////////////////////////////////////////////// +void klokophalen() { //Interrupt voor de tijd op ons LCD te krijgen. + my1307.gettime(&sec, &minuten, &hours, &day, &date, &month, &year); //De tijden van de klok ophalen en laten tonen op het LCD +} +//////////////////////////////////////////////////////////////////////////////////// +void klokuitsturen() { //Interrupt voor de CLK. + klokophalen(); //De tijden van de klok ophalen + lcd.cls(); //We gaan het LCD refreshen of m.a.w. het LCD leegmaken.kunt g + lcd.locate(0,0); //Eerste lijn van het LCD + lcd.printf("%d:%d:%d",hours,minuten,sec); //Tijd op LCD zetten + lcd.locate(0,1); //Tweede lijn van het LCD + lcd.printf("%d/%d/%d",date,month,year); //Datum op LCD zetten +} +//////////////////////////////////////////////////////////////////////////////////// +void hoekverdraaiingbepalen(float verschilgraden,float temperatuurbuiten) { +float startstand; - } - -void klokophalen() { - my1307.gettime(&sec, &minuten, &hours, &day, &date, &month, &year); //De tijden van de klok ophalen + //Bepalen op welke stand hij staat (Waar hij op de belastingslijn is) + if (verschilgraden < -1.5) { + stand = -2; + } + else if( (-1.5 <= verschilgraden) && (verschilgraden < -0.5) ){ + stand = -1; + } + else if ( (-0.5 <= verschilgraden) && (verschilgraden <= 0.5) ) { + stand = 0; + } + else if ( (0.5 < verschilgraden) && (verschilgraden <= 1.5) ) { + stand = 1; + } + else { + stand = 2; + } - } + //Bepalen van belastingslijn// + printf("Temperatuurbuiten: %f\n\r", temperatuurbuiten); + if ( temperatuurbuiten < 23 ){ + startstand = 125; //Belastingslijn 1 + printf("Temperatuurbuiten is kleiner dan -5 graden.\r\n"); + } + else if ( (23 <= temperatuurbuiten) && (temperatuurbuiten <= 25) ){ + startstand = 90; //Belastingslijn 2 + printf("Temperatuurbuiten is tussen -5 en 10 graden.\r\n"); + } + else { + startstand = 55; //Belastingslijn 3 + printf("Temperatuurbuiten is groter dan 10 graden.\r\n"); + } + + //Bepalen van graden// + hoekverdraaiing = startstand + (stand * 35); + if (hoekverdraaiing > 160) { //Beveiliging + hoekverdraaiing = 160; + } + else if (hoekverdraaiing < 20){ //Beveiliging + hoekverdraaiing = 20; + } -void klokuitsturen() { - klokophalen(); //De tijden van de klok ophalen - lcd.cls(); - lcd.locate(0,0); - lcd.printf("%d:%d:%d",hours,minuten,sec); //Tijd op LCD zetten - lcd.locate(0,1); - lcd.printf("%d/%d/%d",date,month,year); //Datum op LCD zetten - } - +//////////////////////////////////////////////////////////////////////////////////// int main(void) { - - /* START INITIALISATIE */ - knopHOGER.rise(&Hoger); - knopLAGER.rise(&Lager); - aanuitknop.rise(&AanUit); - initHTTP(); - Timer tm; - tm.start(); - + knopHOGER.rise(&Hoger); //Knop hoger instellen. + knopLAGER.rise(&Lager); //Knop lager inestellen + aanuitknop.rise(&AanUit); //Knop aan&uit instellen + initHTTP(); //HTTP initialiseren + Timer tm; //Timer selecteren + tm.start(); //Timer starten /* STOP INITIALISATIE */ - - while(true) { - - - if( (aanuit == 1) && (flaginstellen == 0) ) { //open if - - temperatuurinlezen(); - temperatuuruitsturen(); - klokophalen(); - - /* START HTTP */ - printf("Net poll start\r\n"); - Net::poll(); - if (tm.read() > 0.5) { - led1 = !led1; - tm.start(); //Start timer - c++; //Optellen zodat om de 1s de + while(true) { //While lus + if( (aanuit == 1) && (flaginstellen == 0) ) { //open if functie + temperatuurinlezen(); //Inlezen van temperatuur + temperatuuruitsturen(); //Uitsturen van temperatuur + klokophalen(); //Ophalen van de klok waarde voor datum en tijd + /* START HTTP */ + printf("Net poll start\r\n"); //Printen op de Computer voor Theratherm + Net::poll(); + if (tm.read() > 0.5) { //Open IF functie + led1 = !led1; //Led aan of uit sturen + tm.start(); //Start timer + c++; //Optellen zodat om de 1s de gegevens worden doorgestuurd } - printf("Net poll gedaan\r\n"); - if (c==1) { + printf("Net poll gedaan\r\n"); + if (c==1) { //Als we gaan zenden dan gaan we de code van hieronder uitvoeren tijdens het zenden van de data. printf("Ik probeer nu de file te openen..\r\n"); //FILE *fp = fopen("/webfs/mydata.htm","w"); - FILE *fp = fopen("/local/Project.htm", "w"); // Open "Test.htm" on the local file system for writing - printf("File geopend!\r\n"); - fprintf(fp,"<HTML>\r\n"); - fprintf(fp,"<HEAD>\r\n"); - fprintf(fp,"<script type=\"text/javascript\">window.setTimeout(function(){ document.location.reload(true); }, 3000);</script>"); - fprintf(fp,"<link rel=\"stylesheet\" href=\"https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css\">"); - fprintf(fp,"<style>\r\n"); - fprintf(fp,"tbody {background:#FF6666;}"); - fprintf(fp,"</style>\r\n"); - fprintf(fp,"</HEAD>\r\n"); - fprintf(fp,"<BODY>\r\n"); + FILE *fp = fopen("/local/Project.htm", "w"); // Open "Test.htm" on the local file system for writing + printf("File geopend!\r\n"); //Print + fprintf(fp,"<HTML>\r\n"); //HTML opstarten + fprintf(fp,"<HEAD>\r\n"); //Head van het bestand open zetten. + fprintf(fp,"<script type=\"text/javascript\">window.setTimeout(function(){ document.location.reload(true); }, 3000);</script>");//Script laden + fprintf(fp,"<link rel=\"stylesheet\" href=\"https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css\">");//Stijl van het document laden + fprintf(fp,"<style>\r\n");//De style toepassen die is opgevraagd + fprintf(fp,"tbody {background:#FF6666;}");//Achtergrond veranderen van kleur + fprintf(fp,"</style>\r\n");//De aangemaakt stijl terug sluiten + fprintf(fp,"</HEAD>\r\n");//Sluiten van de HEAD + fprintf(fp,"<BODY>\r\n");//Sluiten van de BODY /* TEST BOOTSTRAP */ fprintf(fp,"<div class=\"container\">\r\n"); fprintf(fp,"<div class=\"panel panel-success\">"); - fprintf(fp,"<div class=\"panel-heading\">%d:%d:%d %d/%d/%d</div>",hours,minuten,sec,date,month,year); - fprintf(fp,"<table class=\"table\">"); + fprintf(fp,"<div class=\"panel-heading\">%d:%d:%d %d/%d/%d</div>",hours,minuten,sec,date,month,year); + fprintf(fp,"<table class=\"table\">");//Aanmaken van tabel fprintf(fp,"<thead><tr><th>Temperatuur binnen</th><th>Temperatuur buiten</th></tr></thead>"); - fprintf(fp,"<tbody><tr><td>%.1f °C</td>",temp1); - fprintf(fp,"<td>%.1f °C</td></tr></tbody></table></div>",temp2); - + fprintf(fp,"<tbody><tr><td>%.1f °C</td>",temp1);//Kiezen waar we temp1 in de tabel gaan steken + fprintf(fp,"<td>%.1f °C</td></tr></tbody></table></div>",temp2);//Kiezen waar we temp2 in de tabel gaan steken. /* END TEST BOOTSTRAP */ - fprintf(fp,"</div>"); printf("Variabelen printen\r\n"); fprintf(fp,"</BODY>\r\n"); fprintf(fp,"</HTML>\r\n"); printf("Sessie stoppen \r\n"); - fclose(fp); //Stop schrijven + fclose(fp);//Stop schrijven printf("staat online\r\n"); c=0; } /* EINDE HTTP */ - - - - /* Motor sturing hier */ - graden = waarde - temp1; - graden = 20 + (graden*5); //5 Graden per Graad celsius. (Max 28 graden) - motor(graden); //Motor aansturen - - /* Stop motor sturing hier */ - - } //sluit if - else if( (aanuit == 1) && (flaginstellen == 1) ) { //open else if - /* Programmatie instellen */ - printf("Programma instelmodus aan\r\n"); - while (counter <= 3) { - lcd.cls(); - lcd.printf("BIN: %5.1f C",waarde); - lcd.locate(0,1); - lcd.printf("BUI: %5.1f C",temp2); - wait(0.8); - lcd.cls(); - lcd.printf(""); //Lcd laten flikkeren voor instellen - lcd.locate(0,1); - lcd.printf("BUI: %5.1f C",temp2); - wait(0.2); - counter++; - } - - - - flaginstellen = 0; //Instellen stoppen - } - else { //open else - lcd.cls(); //LCD Clearen - klokuitsturen(); //De waarde van de klok op de LCD zetten - printf("Staat uit\r\n"); - } //sluit else - - } -} - \ No newline at end of file + /* Motor sturing hier */ + verschilgraden = waarde - temp1; + printf("Verschilgraden: %f\n\r", verschilgraden); + hoekverdraaiingbepalen(verschilgraden,temp2); + printf("Stand: %f\n\r", stand); + printf("Hoekverdraaiing: %f\n\r", hoekverdraaiing); + wait(1); + motor(hoekverdraaiing); //Motor aansturen + /* Stop motor sturing hier */ + } + else if( (aanuit == 1) && (flaginstellen == 1) ) { //open else if + /* Programmatie instellen */ + printf("Programma instelmodus aan\r\n"); + while (counter <= 3) { + lcd.cls(); //We gaan het LCD refreshen of m.a.w. het LCD leegmaken. + lcd.printf("BIN: %5.2f C",waarde); //Printen van de binnen temp + lcd.locate(0,1); //Tweede lijn van LCD + lcd.printf("BUI: %5.2f C",temp2); // Printen van de buiten temp + wait(0.8); //Wachttijd + lcd.cls(); //We gaan het LCD refreshen of m.a.w. het LCD leegmaken. + lcd.printf(""); //Lcd laten flikkeren voor instellen + lcd.locate(0,1); // Tweede lijn van het LCd + lcd.printf("BUI: %5.2f C",temp2); //Printen van de buiten temp + wait(0.2); //Wachttijd + counter++; //Counter incrementeren met 1 + } + flaginstellen = 0; //Instellen stoppen + } + else { //open else + lcd.cls(); //We gaan het LCD refreshen of m.a.w. het LCD leegmaken. + klokuitsturen(); //De waarde van de klok op de LCD zetten + printf("Staat uit\r\n"); + } //sluit else + } +} \ No newline at end of file