minor cleanup, start data collector (dummy) and rest

This commit is contained in:
Torsten Ruger 2021-06-27 21:46:11 +03:00
parent f6690fb43f
commit de0532bc93
5 changed files with 99 additions and 35 deletions

View File

@ -0,0 +1,31 @@
#include <vector>
using namespace std;
class Collector
{
protected:
float week[100];
float month[100];
float minute = 0 ;
int counter = 0;
int max = 100 ;
int bucket = 10;
public:
void add(float val)
{
minute += val;
counter++ ;
if(counter % bucket){
int at_week = counter / bucket;
week[at_week] = minute / bucket;
minute = 0;
}
if(counter % (bucket*bucket)){
int at_week = counter / bucket;
month[at_week] = minute / bucket;
counter = 0;
}
}
};

View File

@ -4,3 +4,4 @@
static ESP8266WebServer server(80);
void server_setup();
void server_loop();

View File

@ -2,6 +2,7 @@
#include "ota.hpp"
#include "server.hpp"
#include "collector.hpp"
// DHT Temperature & Humidity Sensor
// Unified Sensor Library Example
@ -31,20 +32,20 @@ void setup() {
Serial.begin(115200);
ota_setup(ssid);
server_setup();
Serial.println(WiFi.softAPIP());
// Initialize device.
dht_in.begin();
dht_out.begin();
Serial.println(F("DHT set up"));
Serial.println(F("Setup done"));
Serial.print("IP address: ");
Serial.println(WiFi.softAPIP());
}
void loop() {
ArduinoOTA.handle();
server_loop();
// Delay between measurements.
delay(delayMS);
delay(1000);
// Get temperature event and print its value.
Serial.print(F("Temperature inside: "));

View File

@ -1,7 +1,7 @@
#include "ota.hpp"
void ota_setup(const char* ssid) {
Serial.begin(115200);
Serial.println("Booting");
boolean result = WiFi.softAP(ssid);
while (result == false) {
@ -49,8 +49,4 @@ void ota_setup(const char* ssid) {
else if (error == OTA_END_ERROR) Serial.println("End Failed");
});
ArduinoOTA.begin();
Serial.println("Ready");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
}

View File

@ -7,31 +7,33 @@ ESP8266WebServer* serv = NULL;
String getContentType(String filename){
if(filename.endsWith(".htm")) return "text/html";
else if(filename.endsWith(".html")) return "text/html";
else if(filename.endsWith(".css")) return "text/css";
else if(filename.endsWith(".js")) return "application/javascript";
else if(filename.endsWith(".png")) return "image/png";
else if(filename.endsWith(".gif")) return "image/gif";
else if(filename.endsWith(".jpg")) return "image/jpeg";
else if(filename.endsWith(".ico")) return "image/x-icon";
else if(filename.endsWith(".xml")) return "text/xml";
else if(filename.endsWith(".pdf")) return "application/x-pdf";
else if(filename.endsWith(".zip")) return "application/x-zip";
else if(filename.endsWith(".gz")) return "application/x-gzip";
if(filename.indexOf(".htm") > 0) return "text/html";
else if(filename.indexOf(".html")> 0) return "text/html";
else if(filename.indexOf(".css")> 0) return "text/css";
else if(filename.indexOf(".js")> 0) return "application/javascript";
else if(filename.indexOf(".png")> 0) return "image/png";
else if(filename.indexOf(".gif")> 0) return "image/gif";
else if(filename.indexOf(".jpg")> 0) return "image/jpeg";
else if(filename.indexOf(".ico")> 0) return "image/x-icon";
else if(filename.indexOf(".xml")> 0) return "text/xml";
else if(filename.indexOf(".pdf")> 0) return "application/x-pdf";
return "text/plain";
}
bool handleFileRead(String path ){
DBG_OUTPUT_PORT.println("handleFileRead: " + path);
if(path.endsWith("/")) path += "index.html";
String contentType = getContentType(path);
String pathWithGz = path + ".gz";
if(LittleFS.exists(pathWithGz) || LittleFS.exists(path)){
if(LittleFS.exists(pathWithGz))
path += ".gz";
String contentType = getContentType(path) + ";charset=utf-8";
if(LittleFS.exists(path)){
DBG_OUTPUT_PORT.println("handle: " + path);
File file = LittleFS.open(path, "r");
if(path.endsWith(".gz")){
DBG_OUTPUT_PORT.println("sETTING GZIP" );
//server.sendHeader("Content-Encoding" , "gzip");
} else {
contentType += ";charset=utf-8";
}
server.streamFile(file, contentType);
file.close();
return true;
}
@ -42,11 +44,44 @@ void handleHours(){
}
int LDRPin = A0;
int LDRReading = 0;
int milisInterval = 2000;
int count = 0;
void getData() {
//This is a JSON formatted string that will be served. You can change the values to whatever like.
// {"data":[{"dataValue":"1024"},{"dataValue":"23"}]} This is essentially what is will output you can add more if you like
Serial.println("Data start");
LDRReading = analogRead(LDRPin);
String text2 = "{\"data\":[";
text2 += "{\"dataValue\":\"";
text2 += "LDRReading";
text2 += "\"},";
text2 += "{\"dataValue\":\"";
text2 += "count";
text2 += "\"}";
text2 += "]}";
Serial.println("Data end");
server.send(200, "text/html", text2);
count++;
}
void server_setup(){
LittleFS.begin();
server.on("/hour", HTTP_GET, handleHours);
server.on("/data", getData);
server.on("/hour", handleHours);
server.begin();
Serial.println("HTTP server started");
server.onNotFound([](){
if(!handleFileRead(server.uri()))
server.send(404, "text/plain", "FileNotFound");
});
}
void server_loop() {
server.handleClient();
}