Implement configuration of freezer name and uT/oT via Web
store names and ut/ot values in internal storage load on boot data from internal storage if set, else fall back to settings.h values
This commit is contained in:
parent
94e6dd5750
commit
47ca2d7164
BIN
Dictionary-master.zip
Normal file
BIN
Dictionary-master.zip
Normal file
Binary file not shown.
@ -30,9 +30,24 @@ void setup() {
|
||||
Serial.println();
|
||||
setup_lcd();
|
||||
lcd.clear();
|
||||
preferences.begin("my-app", true);
|
||||
for (int i = 0; i < (sizeof(truhen) / sizeof(truhen[0])); i++) {
|
||||
truhen[i].setup();
|
||||
truhen[i].setup(
|
||||
preferences.getString(
|
||||
String("t"+String(i)+"_name").c_str(),
|
||||
String(truhen[i].getName())
|
||||
),
|
||||
preferences.getInt(
|
||||
String("t"+String(i)+"_min").c_str(),
|
||||
uT
|
||||
),
|
||||
preferences.getInt(
|
||||
String("t"+String(i)+"_max").c_str(),
|
||||
oT
|
||||
)
|
||||
);
|
||||
}
|
||||
preferences.end();
|
||||
wdt_enable(WDTO_4S); // Watchdog auf 4 s stellen
|
||||
WifiSetup();
|
||||
Serial.println("Setup fi");
|
||||
@ -54,7 +69,7 @@ void loop() {
|
||||
Serial.println("SCHALTINTERVALL");
|
||||
last_schalt_time = millis();
|
||||
for (int i = 0; i < (sizeof(truhen) / sizeof(truhen[0])); i++) {
|
||||
truhen[i].schalt(oT, uT);
|
||||
truhen[i].schalt();
|
||||
}
|
||||
}
|
||||
if(millis() - last_lcd_time >= LCD_REFRESH_INTERVAL || last_lcd_time == 0)
|
||||
|
13
Truhe.cpp
13
Truhe.cpp
@ -8,9 +8,12 @@ Truhe::Truhe(String name, int relay, uint8_t sensorpin){
|
||||
|
||||
};
|
||||
|
||||
void Truhe::setup() {
|
||||
void Truhe::setup(String name, int uT, int oT) {
|
||||
_name = name;
|
||||
Serial.println("Setup " + _name);
|
||||
Serial.println(_sensorpin);
|
||||
_uT = uT;
|
||||
_oT = oT;
|
||||
pinMode(_relay, OUTPUT);
|
||||
digitalWrite(_relay, HIGH);
|
||||
pinMode(_sensorpin, INPUT);
|
||||
@ -34,14 +37,14 @@ void Truhe::mess() {
|
||||
}
|
||||
};
|
||||
|
||||
void Truhe::schalt(int oT, int uT) {
|
||||
void Truhe::schalt() {
|
||||
Serial.println(String(_name) + " schalt() stat: " + String(_stat));
|
||||
if (_cur_temp >= oT && _stat != 1 && _stat != 2) {
|
||||
if (_cur_temp >= _oT && _stat != 1 && _stat != 2) {
|
||||
digitalWrite(_relay, LOW);
|
||||
_stat = 1;
|
||||
Serial.println("schalt " + _name + " zu " + String(_stat));
|
||||
}
|
||||
else if (_cur_temp <= uT && _stat != 0 && _stat != 2) {
|
||||
else if (_cur_temp <= _uT && _stat != 0 && _stat != 2) {
|
||||
digitalWrite(_relay, HIGH);
|
||||
_stat = 0;
|
||||
Serial.println("schalt " + _name + " zu " + String(_stat));
|
||||
@ -54,3 +57,5 @@ int Truhe::getSensorPin(){return _sensorpin;};
|
||||
int Truhe::getStat(){return _stat;};
|
||||
int Truhe::getCurTemp(){return int(_cur_temp);};
|
||||
String Truhe::getName(){return _name;};
|
||||
int Truhe::getuT(){return _uT;};
|
||||
int Truhe::getoT(){return _oT;};
|
||||
|
8
Truhe.h
8
Truhe.h
@ -10,11 +10,13 @@ class Truhe {
|
||||
float _cur_temp = 0;
|
||||
int _updlcd = 0;
|
||||
String _name = "";
|
||||
int _uT;
|
||||
int _oT;
|
||||
public:
|
||||
Truhe(String, int, uint8_t);
|
||||
void setup();
|
||||
void setup(String, int, int);
|
||||
void mess();
|
||||
void schalt(int, int);
|
||||
void schalt();
|
||||
int getUpdLcd();
|
||||
void setUpdLcd(int);
|
||||
int getRelay();
|
||||
@ -22,4 +24,6 @@ class Truhe {
|
||||
int getStat();
|
||||
int getCurTemp();
|
||||
String getName();
|
||||
int getuT();
|
||||
int getoT();
|
||||
};
|
||||
|
64
Webserver.h
64
Webserver.h
@ -3,6 +3,7 @@
|
||||
#include <ESP8266WebServer.h>
|
||||
#include <ESP8266HTTPUpdateServer.h>
|
||||
#include <Preferences.h>
|
||||
#include <Dictionary.h>
|
||||
Preferences preferences;
|
||||
ESP8266WebServer server(80);
|
||||
ESP8266HTTPUpdateServer httpUpdater;
|
||||
@ -11,6 +12,8 @@ String header = "<!DOCTYPE html> <html>\n"
|
||||
"<title>Truhensteuerung</title>\n"
|
||||
"<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}\n"
|
||||
"body{margin-top: 50px;} h1 {color: #444444;margin: 50px auto 30px;} h3 {color: #444444;margin-bottom: 50px;}\n"
|
||||
".col{ display: inline-block;}\n"
|
||||
"input{width: 70px;}\n"
|
||||
"</style>\n"
|
||||
"</head>\n"
|
||||
"<body>\n"
|
||||
@ -46,6 +49,7 @@ void WifiConnect(String _ssid, String _password){
|
||||
|
||||
void handleWifiSetup(){
|
||||
String ptr = header;
|
||||
boolean reset = false;
|
||||
// ptr += "URI: ";
|
||||
// ptr += server.uri();
|
||||
// ptr += "<br>\nMethod: ";
|
||||
@ -53,7 +57,8 @@ void handleWifiSetup(){
|
||||
// ptr += "<br>\nArguments: ";
|
||||
// ptr += server.args();
|
||||
// ptr += "<br>\n";
|
||||
for (uint8_t i = 0; i < server.args(); i++) { ptr += " " + server.argName(i) + ": " + server.arg(i) + "<br>\n"; }
|
||||
Dictionary<String, String> arguments = Dictionary<String, String>();
|
||||
for (uint8_t i = 0; i < server.args(); i++) { arguments.set(server.argName(i), server.arg(i));}
|
||||
if(server.method() == HTTP_GET){
|
||||
int n = WiFi.scanNetworks(false, true);
|
||||
String ssid;
|
||||
@ -64,7 +69,25 @@ void handleWifiSetup(){
|
||||
bool isHidden;
|
||||
ptr += "<a href=\"/\">Home</a>";
|
||||
ptr += "<form action=\"/setup\" method=\"post\">";
|
||||
ptr +="<table style=\"width: 100%;\">\n<tr style=\"border-bottom: 5px solid #444444;\"><td></td><td>ID</td><td>SSID</td><td>Channel</td><td>RSSI</td><td></td></tr>\n";
|
||||
ptr +="<div class=\"col\">";
|
||||
ptr +="<table >\n<tr ><td>Name</td><td>Temp Min</td><td>Temp Max</td></tr>\n";
|
||||
for (int i = 0; i < (sizeof(truhen) / sizeof(truhen[0])); i++) {
|
||||
ptr +="<tr>\n<td>";
|
||||
ptr +="<input name=\"t"+String(i)+"_name\" value=\"" + String(truhen[i].getName()) + "\">";
|
||||
ptr +="</td>\n<td>";
|
||||
ptr +="<input name=\"t"+String(i)+"_min\" value=\"" + String(truhen[i].getuT()) + "\">";
|
||||
ptr +="</td>\n<td>";
|
||||
ptr +="<input name=\"t"+String(i)+"_max\" value=\"" + String(truhen[i].getoT()) + "\">";
|
||||
ptr += "</td>\n</tr>\n";
|
||||
}
|
||||
ptr += "</table>\n";
|
||||
ptr += "<input type=\"submit\" id=\"submit\" name=\"submit_truhen\" >";
|
||||
ptr +="";
|
||||
ptr +="";
|
||||
ptr +="";
|
||||
ptr +="</div>";
|
||||
ptr +="<div class=\"col\">";
|
||||
ptr +="<table >\n<tr><td></td><td>ID</td><td>SSID</td><td>Channel</td><td>RSSI</td><td></td></tr>\n";
|
||||
for (int i = 0; i < n; i++)
|
||||
{
|
||||
WiFi.getNetworkInfo(i, ssid, encryptionType, RSSI, BSSID, channel, isHidden);
|
||||
@ -73,24 +96,25 @@ void handleWifiSetup(){
|
||||
|
||||
ptr += "</table>\n";
|
||||
ptr += "<input type=\"input\" id=\"password\" name=\"password\" placeholder=\"Kennwort\" >";
|
||||
ptr += "<input type=\"submit\" id=\"submit\" name=\"submit\" >";
|
||||
ptr += "<input type=\"submit\" id=\"submit\" name=\"submit_wlan\" >";
|
||||
ptr += "</div>\n";
|
||||
ptr += "</form>";
|
||||
}else{
|
||||
ptr += "<p>\n";
|
||||
if(server.args() != 4){
|
||||
ptr += "Missing Arguments<br>\n";
|
||||
ptr += "<a href=\"/setup\">zurück</a>\n";
|
||||
}else{
|
||||
String ssid;
|
||||
String password;
|
||||
for (uint8_t i = 0; i < server.args(); i++) {
|
||||
if(server.argName(i) == "ssid"){
|
||||
ssid = server.arg(i);
|
||||
if(arguments.get("submit_truhen") != NULL){
|
||||
reset = true;
|
||||
preferences.begin("my-app", false);
|
||||
for (int i = 0; i < (sizeof(truhen) / sizeof(truhen[0])); i++) {
|
||||
preferences.putString(String("t"+String(i)+"_name").c_str(), arguments.get("t"+String(i)+"_name"));
|
||||
preferences.putInt(String("t"+String(i)+"_min").c_str(), arguments.get("t"+String(i)+"_min").toInt());
|
||||
preferences.putInt(String("t"+String(i)+"_max").c_str(), arguments.get("t"+String(i)+"_max").toInt());
|
||||
}
|
||||
if(server.argName(i) == "password"){
|
||||
password = server.arg(i);
|
||||
preferences.end();
|
||||
}
|
||||
}
|
||||
if(arguments.get("submit_wlan") != NULL){
|
||||
reset = true;
|
||||
String ssid = arguments.get("ssid");
|
||||
String password = arguments.get("password");
|
||||
ptr += "Connecting to "+ssid+"<br>\n";
|
||||
Serial.println("Connecting to "+ssid+", "+password+"");
|
||||
WiFi.begin(ssid, password);
|
||||
@ -125,7 +149,17 @@ void handleWifiSetup(){
|
||||
ptr += "</p>\n";
|
||||
}
|
||||
}
|
||||
ptr +="</body>\n";
|
||||
ptr +="</html>\n";
|
||||
if(reset){
|
||||
ptr +="<p>Neustart, bitte warten...</p>\n";
|
||||
ptr +="<script>window.location.assign(\"/\")</script>\n";
|
||||
}
|
||||
server.send(200, "text/html", ptr);
|
||||
if(reset){
|
||||
delay(2000);
|
||||
ESP.restart();
|
||||
}
|
||||
|
||||
}
|
||||
void handleRoot(){
|
||||
|
Loading…
x
Reference in New Issue
Block a user