DHT / my_http.h /
09bb7d1 5 years ago
1 contributor
111 lines | 4.314kb
#ifndef _MY_HTTP
#define _MY_HTTP
#include <ESP8266WebServer.h>

#ifdef USE_OTA
#include "my_ota.h"
#include <ESP8266HTTPUpdateServer.h>

#define OTAUSER         "admin"    // Set OTA user
#define OTAPASSWORD     "admin"    // Set OTA password
#define OTAPATH         "/ota"// Set path for update
ESP8266HTTPUpdateServer httpUpdater;
#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\">&deg;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();

#ifdef USE_OTA
  //httpUpdater.setup(&server, OTAPATH, OTAUSER, OTAPASSWORD);
  httpUpdater.setup(&server, OTAPATH, OTAUSER, WiFi.macAddress().c_str());
#endif //USE_OTA
}
#endif //_MY_HTTP