Difference between revisions of "TinyOTA"
Jump to navigation
Jump to search
Line 50: | Line 50: | ||
#include <Arduino.h> | #include <Arduino.h> | ||
+ | /* | ||
+ | To upload through terminal you can use: curl -F "image=@firmware.bin" esp8266-webupdate.local/update | ||
+ | */ | ||
+ | |||
+ | #if MPU == ESP8266 | ||
#include <ESP8266WebServer.h> | #include <ESP8266WebServer.h> | ||
#include <ESP8266HTTPUpdateServer.h> | #include <ESP8266HTTPUpdateServer.h> | ||
+ | |||
+ | ESP8266WebServer httpServer(80); | ||
+ | ESP8266HTTPUpdateServer httpUpdater; | ||
+ | #elif MPU == ESP32 | ||
+ | #include <WebServer.h> | ||
+ | #include <HTTPUpdateServer.h> | ||
+ | |||
+ | WebServer httpServer(80); | ||
+ | HTTPUpdateServer httpUpdater; | ||
+ | #endif | ||
void WiFi_Setup(); | void WiFi_Setup(); | ||
− | |||
− | |||
String TestPage = | String TestPage = | ||
Line 88: | Line 101: | ||
void handleRootPath() { | void handleRootPath() { | ||
− | + | // httpServer.send(200, "text/plain", "Hello world"); | |
+ | httpServer.send(200, "text/html", TestPage); | ||
} | } |
Revision as of 19:50, 7 May 2021
Contents
platformio.ini
1 [env:d1_mini_lite]
2 platform = espressif8266
3 board = d1_mini_lite
4 framework = arduino
5 monitor_speed = 115200
6 build_flags =
7 -D MPU=ESP8266
8
9 [env:ESP32]
10 platform = espressif32
11 board = fm-devkit
12 framework = arduino
13 monitor_speed = 115200
14 build_flags =
15 -D MPU=ESP32
16
17 [env:M3] ; THIS ONE ACTUALLY WORKS!!!
18 platform = espressif8266
19 board = d1_mini
20 framework = arduino
21 monitor_speed = 115200
22 board_build.ldscript = eagle.flash.1m.ld
23 build_flags =
24 -D MPU=ESP8266
25
26 [env:oops] ; Use this one to "Monitor" if something borks...
27 platform = espressif8266
28 board = d1_mini
29 framework = arduino
30 monitor_speed = 78400
#includes, Defines, etc...
TopSecret.h
1 const char *host = "Device Name";
2 const char *ssid = "SSID";
3 const char *password = "Password";
The Code Itself
main.cpp
1 #include <Arduino.h>
2
3 /*
4 To upload through terminal you can use: curl -F "image=@firmware.bin" esp8266-webupdate.local/update
5 */
6
7 #if MPU == ESP8266
8 #include <ESP8266WebServer.h>
9 #include <ESP8266HTTPUpdateServer.h>
10
11 ESP8266WebServer httpServer(80);
12 ESP8266HTTPUpdateServer httpUpdater;
13 #elif MPU == ESP32
14 #include <WebServer.h>
15 #include <HTTPUpdateServer.h>
16
17 WebServer httpServer(80);
18 HTTPUpdateServer httpUpdater;
19 #endif
20
21 void WiFi_Setup();
22
23
24
25 String TestPage =
26 "<H1>This</H1>"
27 "<H2>is only a</H2>"
28 "<H1>TEST!</H1>"
29 "<a href='/update'>Update Page</a>";
30 void handleRootPath();
31
32 void setup(void) {
33
34 Serial.begin(115200);
35 Serial.println();
36 Serial.println("Booting Sketch...");
37
38 WiFi_Setup();
39
40 httpUpdater.setup(&httpServer);
41 httpServer.begin();
42
43 httpServer.on("/", handleRootPath);
44
45 Serial.printf("HTTPUpdateServer ready! Open http://%s/update in your browser\n", WiFi.localIP().toString().c_str());
46 }
47
48 void loop(void) {
49 httpServer.handleClient();
50 }
51
52 void handleRootPath() {
53
54 // httpServer.send(200, "text/plain", "Hello world");
55 httpServer.send(200, "text/html", TestPage);
56
57 }
WiFi.cpp
1 #if MPU == ESP8266
2 #include <ESP8266WiFi.h>
3 #include <WiFiClient.h>
4 #elif MPU == ESP32
5 #include <WiFi.h>
6 #include <WiFiClient.h>
7 #endif
8
9 #include "TopSecret.h"
10
11 void WiFi_Setup()
12 {
13 WiFi.mode(WIFI_STA);
14 WiFi.begin(ssid, password);
15
16 // Wait for connection
17 while (WiFi.status() != WL_CONNECTED)
18 {
19 delay(500);
20 Serial.print(".");
21 }
22 Serial.println("");
23 Serial.printf("Connected to %s\n", ssid);
24 Serial.printf("IP address: %s\n", WiFi.localIP().toString().c_str());
25 }