1 contributor
#ifndef _MY_HTTP
#define _MY_HTTP
#include <ESP8266WebServer.h>
#ifdef USE_OTA
#include "my_ota.h"
#endif //USE_OTA
#define PORT 80
ESP8266WebServer server(PORT);
String message="";
void handleRoot() {
unsigned long time = millis()/1000;
byte mac[6];
char macStr[6];
WiFi.macAddress(mac);
sprintf(macStr,"%02x%02x%02x", mac[3], mac[4], mac[5]);
String macStrString=macStr;
message = "";
message += "<!DOCTYPE HTML><html>";
message += "<head>";
message += " <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">";
message += " <link rel=\"stylesheet\" href=\"https://use.fontawesome.com/releases/v5.7.2/css/all.css\" integrity=\"sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr\" crossorigin=\"anonymous\">";
message += " <title>esp8266-"+macStrString+"</title>";
message += "<style>";
message += "html{font-family:Arial;display:inline-block;margin:0px auto;text-align:center;}";
message += "h2{font-size:2.0rem;}";
message += "p{font-size:3.0rem;}";
message += ".app {font-size:0.8rem;font-style: italic;}";
message += ".dht-labels{font-size:1.5rem;vertical-align:middle;padding-bottom:15px;}";
message += "</style>";
message += "</head>";
message += "<body>";
message += "<h2>esp8266-"+macStrString+"</h2>";
message += "<p><i class=\"fas fa-thermometer-half\" style=\"color:#059e8a;\"></i><span class=\"dht-labels\">Temperature</span> <span id=\"temperature\">"+String(readDHTTemperature())+"</span><sup class=\"units\">°C</sup></p>";
message += "<p><i class=\"fas fa-tint\" style=\"color:#00add6;\"></i><span class=\"dht-labels\">Humidity</span> <span id=\"temperature\">"+String(readDHTHumidity())+"</span><sup class=\"units\">%</sup></p>";
message += "<p><i class=\"fas fa-clock\" style=\"color:#00add6;\"></i><span class=\"dht-labels\">Date</span> <span id=\"temperature\">"+String(acTimeString)+"</span></p>";
message += "<div class=\"app\">"+String(compile_date)+"</div>";
message += "</body></html>";
server.send(200, "text/html", message );
}
void handleT() {
server.send(200, "text/html", String(readDHTTemperature()) );
}
void handleH() {
server.send(200, "text/html", String(readDHTHumidity()) );
}
void handleS() {
byte mac[6];
char macStr[6];
WiFi.macAddress(mac);
//float vccVolt = ((float)ESP.getVcc())/1024;
float vccVolt = (float)ESP.getVcc();
sprintf(macStr,"%02x%02x%02x", mac[3], mac[4], mac[5]);
String statusMsg = "{";
statusMsg += "\"app_name\": \""+String(APPNAME)+"\",";
statusMsg += "\"app_version\": \""+String(APPVER)+"\",";
statusMsg += "\"build_date\": \""+String(compile_time)+"\",";
statusMsg += "\"mac\": \""+WiFi.macAddress()+"\",";
statusMsg += "\"ip\": \""+WiFiIP+"\",";
statusMsg += "\"ota_name\": \"esp8266-"+String(macStr)+"\",";
statusMsg += "\"uptime\": "+String(millis())+",";
statusMsg += "\"countMeasures\": "+String(countMeasures)+",";
statusMsg += "\"period\": "+String(UPDATE_PERIOD)+",";
statusMsg += "\"loop_delay\": "+String(LOOP_DELAY)+",";
statusMsg += "\"vcc\": "+String(vccVolt)+",";
statusMsg += "\"last_update\": \""+String(acTimeStringTZ)+"\"";
statusMsg += "}";
server.send(200, "text/html", String(statusMsg) );
}
void handleNotFound() {
String message = "File Not Found\n\n";
message += "URI: ";
message += server.uri();
message += "\nMethod: ";
message += (server.method() == HTTP_GET) ? "GET" : "POST";
message += "\nArguments: ";
message += server.args();
message += "\n";
for (uint8_t i = 0; i < server.args(); i++) {
message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
}
server.send(404, "text/plain", message);
}
void http_set() {
server.on("/", handleRoot);
server.on("/temperature", handleT);
server.on("/humidity", handleH);
server.on("/status", handleS);
server.onNotFound(handleNotFound);
server.begin();
}
#endif //_MY_HTTP