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