weatherstation/firmware/webUpdater.ino

87 lines
2.4 KiB
Arduino
Raw Normal View History

/*
2018-06-24 12:13:46 +02:00
* To upload through terminal you can use: curl -F "image=@firmware.bin" http://<ip>:8080/update
2018-06-24 12:01:58 +02:00
*
*
2018-06-24 12:03:05 +02:00
* bin file location on windows: C:\Users\<your username>\AppData\Local\Temp\arduino_build_<id>
2018-06-24 12:01:58 +02:00
*/
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
#include <ESP8266HTTPUpdateServer.h>
#include <WiFiClient.h>
ESP8266WebServer httpServer(8080);
ESP8266HTTPUpdateServer httpUpdater;
String _webUpdater_ip = "127.0.0.1";
String _webUpdater_dev = "unknown";
float _webUpdater_sensValues[VALUES];
2018-07-11 11:49:58 +02:00
void setupWebUpdater(String device, String ip)
{
debug("Starting WebUpdater... " + ip);
_webUpdater_ip = ip;
_webUpdater_dev = device;
httpUpdater.setup(&httpServer);
2018-07-11 11:49:58 +02:00
httpServer.on("/", showHTMLMain);
httpServer.on("/resetWifiManager", resetWifiManager);
2018-07-11 11:49:58 +02:00
httpServer.begin();
debug("HTTPUpdateServer ready!");
}
void doWebUpdater(void)
{
digitalWrite(D0, HIGH);
httpServer.handleClient();
}
2018-07-11 11:49:58 +02:00
void setSensorData(float sensorValues[]) {
for (uint8_t i = 0; i < VALUES; i++) {
_webUpdater_sensValues[i] = sensorValues[i];
2018-07-11 11:49:58 +02:00
}
}
void showHTMLMain(void) {
String message = "<html><head><title>OKO Weatherstation - " + String(_webUpdater_dev) + "</title>"
"<meta http-equiv=\"refresh\" content=\"20\">"
"</head><body>"
"<br><a href=\"http://" + _webUpdater_ip + ":8080/update\">firmware update</a><br><br>"
2018-07-11 11:49:58 +02:00
"<table>"
"<tr><td>temperature</td><td>" + String(_webUpdater_sensValues[SENSOR_TEMPERATURE]) + "</td></tr>"
"<tr><td>humidity</td><td>" + String(_webUpdater_sensValues[SENSOR_HUMIDITY]) + "</td></tr>"
"<tr><td>light</td><td>" + String(_webUpdater_sensValues[SENSOR_LIGHT]) + "</td></tr>"
"<tr><td>windspeed</td><td>" + String(_webUpdater_sensValues[SENSOR_WINDSPEED]) + "</td></tr>"
"<tr><td>pressure</td><td>" + String(_webUpdater_sensValues[SENSOR_PRESSURE]) + "</td></tr>"
"<tr><td>batvoltage</td><td>" + String(_webUpdater_sensValues[SENSOR_BAT_VOLTAGE]) + "</td></tr>"
2018-07-11 11:49:58 +02:00
"</table>"
"</body></html>";
httpServer.send(200, "text/html", message);
}
void resetWifiManager()
{
String message = "<html><head><title>OKO Weatherstation - " + String(_webUpdater_dev) + "</title>"
"<meta http-equiv=\"refresh\" content=\"20\">"
"</head><body>"
"Reset WifiManager config.<br>"
"Rebooting...<br>"
"</body></html>";
httpServer.send(200, "text/html", message);
// Erase WiFi Credentials, enable, compile, flash, disable and reflash.
2022-05-14 19:53:31 +02:00
WiFiManager.resetSettings();
delay(5000);
ESP.restart();
}