Aaron Fischer
f24858d162
This step seems bold, but is saves us so much hassle. Even better, we have a reliable codebase, with all the dependencies (and their versions) we need in order to build the project. If a library got an update, we can replace it inplace if the code is still compatible.
71 lines
1.9 KiB
C++
71 lines
1.9 KiB
C++
/*
|
|
* To upload through terminal you can use: curl -F "image=@firmware.bin" http://<ip>:8080/update
|
|
*
|
|
*
|
|
* bin file location on windows: C:\Users\<your username>\AppData\Local\Temp\arduino_build_<id>
|
|
*/
|
|
|
|
#include <ESP8266WiFi.h>
|
|
#include <ESP8266WebServer.h>
|
|
#include <ESP8266mDNS.h>
|
|
#include <ESP8266HTTPUpdateServer.h>
|
|
|
|
#include <WiFiClient.h>
|
|
|
|
ESP8266WebServer httpServer(8080);
|
|
ESP8266HTTPUpdateServer httpUpdater;
|
|
|
|
String ip = "127.0.0.1";
|
|
String dev = "unknown";
|
|
float sensValues[6];
|
|
|
|
void setupWebUpdater(void)
|
|
{
|
|
#ifdef DEBUG
|
|
Serial.println();
|
|
Serial.println("Starting WebUpdater...");
|
|
#endif
|
|
|
|
httpUpdater.setup(&httpServer);
|
|
|
|
httpServer.on("/", showHTMLMain); // oko specific site
|
|
|
|
httpServer.begin();
|
|
|
|
#ifdef DEBUG
|
|
Serial.println("HTTPUpdateServer ready!");
|
|
#endif
|
|
}
|
|
|
|
void doWebUpdater(void)
|
|
{
|
|
digitalWrite(D0, HIGH);
|
|
httpServer.handleClient();
|
|
}
|
|
|
|
void setSensorData(String device, String localip, float sensorValues[]) {
|
|
dev = device;
|
|
ip = localip;
|
|
for (uint8_t i = 0; i < 7; i++)
|
|
{
|
|
sensValues[i] = sensorValues[i];
|
|
}
|
|
}
|
|
|
|
void showHTMLMain(void) {
|
|
String message = "<html><head><title>OKO Weatherstation - " + String(dev) + "</title>"
|
|
"<meta http-equiv=\"refresh\" content=\"20\">"
|
|
"</head><body>"
|
|
"<br><a href=\"http://" + ip + ":8080/update\">firmware update</a><br><br>"
|
|
"<table>"
|
|
"<tr><td>temperature</td><td>" + String(sensValues[SENSOR_TEMPERATURE]) + "</td></tr>"
|
|
"<tr><td>humidity</td><td>" + String(sensValues[SENSOR_HUMIDITY]) + "</td></tr>"
|
|
"<tr><td>light</td><td>" + String(sensValues[SENSOR_LIGHT]) + "</td></tr>"
|
|
"<tr><td>windspeed</td><td>" + String(sensValues[SENSOR_WINDSPEED]) + "</td></tr>"
|
|
"<tr><td>pressure</td><td>" + String(sensValues[SENSOR_PRESSURE]) + "</td></tr>"
|
|
"<tr><td>batvoltage</td><td>" + String(sensValues[SENSOR_BAT_VOLTAGE]) + "</td></tr>";
|
|
"</table>"
|
|
"</body></html>";
|
|
|
|
httpServer.send(200, "text/html", message);
|
|
}
|