From 5b362519066b65da8fe3849bff5cb855935757a4 Mon Sep 17 00:00:00 2001 From: Brendan Haines Date: Sat, 11 Feb 2017 15:26:22 -0700 Subject: [PATCH] adds more pages and connection indication with onboard LED --- Kiln_Controller.ino | 104 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 90 insertions(+), 14 deletions(-) diff --git a/Kiln_Controller.ino b/Kiln_Controller.ino index c003237..57bf6b7 100644 --- a/Kiln_Controller.ino +++ b/Kiln_Controller.ino @@ -46,17 +46,50 @@ int offTemp = 80; ///// WEB SERVER ///// void handleRoot() { - server.send(200, "text/html", "" + server.send(200, "text/html", "

Kiln Controller V1

" - "Page 2" - ""); + "Real Time Temperature Readout
" + "Temperature Setpoints
" + "Configuration
" + ); } -void handlePage2() { - server.send(200, "text/html", "" - "

Page 2

" +void handleTemps() { + server.send(200, "text/html", + "

Temperature Readout

" "Home" - ""); + ); +} + +void handleSettings() { + server.send(200, "text/html", + "

Settings

" + "Home" + ); +} + +void handleConfig() { + server.send(200, "text/html", + "

Configuration

" + "Home" + ); +} + +void handleNotFound() { + String temp = "File Not Found\n\n"; + temp += "URI: "; + temp += server.uri(); + temp += "\nMethod: "; + temp += ( server.method() == HTTP_GET ) ? "GET" : "POST"; + temp += "\nArguments: "; + temp += server.args(); + temp += "\n"; + + for ( uint8_t i = 0; i < server.args(); i++ ) { + temp += " " + server.argName ( i ) + ": " + server.arg ( i ) + "\n"; + } + + server.send ( 404, "text/plain", temp ); } ///// SETUP ///// @@ -100,14 +133,17 @@ void setup() { WiFi.softAP(ssid, password); IPAddress myIP = WiFi.softAPIP(); server.on("/", handleRoot); - server.on("/page2", handlePage2); + server.on("/temps", handleTemps); + server.on("/settings", handleSettings); + server.on("/config", handleConfig); + server.on ("/test.svg", tempGraph); + server.onNotFound(handleNotFound); server.begin(); lcd.clear(); lcd.setCursor(0, 0); lcd.print("SSID: "); lcd.print(ssid); lcd.setCursor(0, 1); lcd.print("PSWD: "); lcd.print(password); lcd.setCursor(0, 2); lcd.print("IP : "); lcd.print(myIP); - - delay(1000); + delay(2000); // Clear LCD lcd.setCursor(0, 0); @@ -138,8 +174,48 @@ void loop() { lcd.print(" F"); // Heartbeat LED - digitalWrite(2, LOW); - delay(100); - digitalWrite(2, HIGH); - delay(900); + if (WiFi.softAPgetStationNum() == 0) { + digitalWrite(2, LOW); + delay(100); + digitalWrite(2, HIGH); + delay(900); + } else { + digitalWrite(2, LOW); + delay(50); + digitalWrite(2, HIGH); + delay(100); + digitalWrite(2, LOW); + delay(50); + digitalWrite(2, HIGH); + delay(800); + } +} + +void drawGraph(int xvalues[], int yvalues[], int width, int height, int r, int g, int b) { + String out = ""; + char temp[100]; + + sprintf(temp, "\n", width, height); + out += temp; + + sprintf(temp, "\n", width, height, r, g, b); + out += temp; + + out += "\n"; + int y = rand() % 130; + // for (int i = 0; i < size(times); i ++) { + // int y2 = rand() % 130; + // sprintf(temp, "\n", x, 140 - y, x + 10, 140 - y2); + // out += temp; + // y = y2; + // } + out += "\n\n"; + + server.send ( 200, "image/svg+xml", out); +} + +void tempGraph() { + int times[] = {1, 2, 3, 4, 5, 6}; + int temps[] = {1, 2, 3, 1, 5, 3}; + drawGraph(times, temps, 400, 150, 232, 240, 255); }