W5100 Knop en variabele probleem

Arduino shields
Berichten: 167
Geregistreerd: 19 Apr 2014, 15:03

W5100 Knop en variabele probleem

Berichtdoor Hanneman » 11 Okt 2014, 20:35

Deze code maakt een webpagina met daarin knoppen die een variabele in waarde verhoogd of verlaagd.
Het probleem is dat hij per refresh de waarde blijft verhogen of verlagen afhankelijk van welke knop is ingedrukt.
Het is gemaakt naar dit voorbeeld: http://forum.arduino.cc/index.php?topic=116564.0
Die code doet wat ik er van verwacht afgezien van dat probleem dan.
Wie weet hoe ik dit op kan lossen?

cpp code
// Create a client connection
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();

//read char by char HTTP request
if (readString.length() < 100) {

//store characters to string
readString += c;
//Serial.print(c);
}

//if HTTP request has ended
if (c == '\n') {

// send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close"); // the connection will be closed after completion of the response
client.println("Refresh: 3"); // refresh the page automatically every 5 sec
client.println();
// send web page
client.println("<!DOCTYPE html>");
client.println("<html>");
client.println("<head>");
client.println("<title>Evomotion Remote Control</title>");
client.println("</head>");
client.println("<body>");

client.println("<H1>Evomotion Home Automation</H1>");

//////////////////////////////////////////////////////////////////////////////////////////////////////////////
client.print("<div style=\"position:absolute; left:20px; top:35px; absolute;\">");
client.println("<H3>Temperatuur variabelen</H3>");
client.println("</div>");

////////////////////// TEMP SENSOR 1 ///////////////////////////

client.print("<div style=\"background:white; color:black; position:absolute; left:20px; top:70px; absolute; margin:20px; border: black solid 2px; padding:5px ;\">");
client.print("<h4 style=\"font: Verdana, Arial, Sans-serif;\">Temp Sensor 1</h4>");

// Buttons
client.println("<input type=\"button\" value=\"<-\" onmousedown=\"location.href = '/?temperatuur1down';\"/>");
client.println("<input type=\"button\" value=\"->\" onmousedown=\"location.href = '/?temperatuur1up';\"/>");
client.print(temperatuur1);
client.print("</div>");

client.println("</body>");
client.println("</html>");

delay(1); // give the web browser time to receive the data
client.stop(); // close the connection

if(readString.indexOf("temperatuur1up") >0)
{
temperatuur1++;
}
if(readString.indexOf("temperatuur1down") >0)
{
temperatuur1--;
}

break;
//clearing string for next read
readString="";
}
}
}
}
}

Advertisement

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: W5100 Knop en variabele probleem

Berichtdoor nicoverduin » 11 Okt 2014, 21:01

Dan moet je een andere refresh vorm nemen.... nu doe je automatisch een refresh.... Als je die regel weglaat stuurt hij alleen een request als er een knop wordt ingedrukt.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 167
Geregistreerd: 19 Apr 2014, 15:03

Re: W5100 Knop en variabele probleem

Berichtdoor Hanneman » 11 Okt 2014, 22:07

Ah jah, thanks! Dat verklaard waarom een eerder gemaakte sketch dit probleem niet vertoonde, die refresh regel zat er toen niet in.

Berichten: 167
Geregistreerd: 19 Apr 2014, 15:03

Re: W5100 Knop en variabele probleem

Berichtdoor Hanneman » 11 Okt 2014, 22:12

HAHAHA dat is maf, ik heb meerdere blokken gemaakt met sensor waarden zoals deze, dus dit gewoon gedupliceerd zeg maar, maar als ik eerst in het ene blok op bijv -1 druk en dan op het andere blok plus 1, dan doet ie bij het vorige blok toch nog ff gauw 1x een -1.

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: W5100 Knop en variabele probleem

Berichtdoor nicoverduin » 11 Okt 2014, 23:02

geen idee waar je het over hebt.......
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 167
Geregistreerd: 19 Apr 2014, 15:03

Re: W5100 Knop en variabele probleem

Berichtdoor Hanneman » 11 Okt 2014, 23:11

Deze code maakt een blok met daarin 2 knoppen, 1. waarde omhoog, 2. waarde omlaag en de waarde wordt erin weergegeven.
In mijn uitgebreide code zitten 4 van deze blokken.
Ieder blok representeert een temperatuur, die als deze bereikt wordt een actie triggert.

Ondanks dat nu alleen de variabele omhoog of omlaag gaat afhankelijk van welke knop er ingedrukt wordt is er nog steeds een bug.

Als ik in het blok van temperatuur 1 de waarde heb verhoogd of verlaagd, dan refreshed de pagina.
Als ik daarna in het blok van temperatuur 2 de waarde verhoog of verlaag dan refreshed de pagina en verhoogd of verlaagd hij nog 1x de waarde in het blok van temperatuur 1.
Dat is natuurlijk niet de bedoeling.
Alleen in blok 2 zou de waarde mogen veranderen.

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: W5100 Knop en variabele probleem

Berichtdoor nicoverduin » 11 Okt 2014, 23:37

Tijd dat jij eens gaat kijk naar AJAX (niet de voetbal club). Jij wilt dynamisch delen van jouw pagina updaten.... En dan moet je of iets doen met JAVA, Javascript of AJAX :) En jezelf afvragen of dat allemaal op die Arduino gaat passen en werken
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 167
Geregistreerd: 19 Apr 2014, 15:03

Re: W5100 Knop en variabele probleem

Berichtdoor Hanneman » 12 Okt 2014, 00:20

Oke Thanks voor de tip! Die tutorial pagina heeft ook tutorials met AJAX.

Berichten: 167
Geregistreerd: 19 Apr 2014, 15:03

Re: W5100 Knop en variabele probleem

Berichtdoor Hanneman » 20 Okt 2014, 18:18

Is er iemand die ervaring heeft met dit soort Ethernet shields, HTML en AJAX?
Het probleem blijft omdat de link van de knop blijft staan in de url.

Ik heb maar heel weinig html ervaring en al helemaal geen javascript.

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: W5100 Knop en variabele probleem

Berichtdoor nicoverduin » 20 Okt 2014, 19:28

javascript is net C. Eigenlijk weinig verschil. Nadeel is dat een compiler een fout geeft. Javascript stopt gewoon..... Kwam ik achter met het maken van die app op de ipad
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Terug naar Shields

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 9 gasten