Difference between revisions of "TinyOTA"
Jump to navigation
Jump to search
(6 intermediate revisions by the same user not shown) | |||
Line 44: | Line 44: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | === | + | ===Functions.h=== |
<syntaxhighlight lang="cpp" line="1"> | <syntaxhighlight lang="cpp" line="1"> | ||
Line 57: | Line 57: | ||
===main.cpp=== | ===main.cpp=== | ||
+ | |||
+ | There's not actually very much here. | ||
+ | |||
+ | Nearly everything is handled in the other CPP files. | ||
<syntaxhighlight lang="cpp" line="1"> | <syntaxhighlight lang="cpp" line="1"> | ||
Line 84: | Line 88: | ||
===WiFi.cpp=== | ===WiFi.cpp=== | ||
+ | |||
+ | This is where your WiFi gets configured. | ||
<syntaxhighlight lang="cpp" line="1"> | <syntaxhighlight lang="cpp" line="1"> | ||
Line 114: | Line 120: | ||
===HTTP.cpp=== | ===HTTP.cpp=== | ||
+ | |||
+ | This is where your HTTP OTA and any other HTTPcode belongs. | ||
<syntaxhighlight lang="cpp" line="1"> | <syntaxhighlight lang="cpp" line="1"> | ||
Line 151: | Line 159: | ||
void HTTP_loop() | void HTTP_loop() | ||
{ | { | ||
− | httpServer. | + | httpServer.handleClient(); |
} | } | ||
Line 161: | Line 169: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | === | + | ===Actual.cpp=== |
+ | |||
+ | This is where all the stuff normally found in <code>setup()</code> and <code>loop()</code> of your typical Arduino sketch gets put. | ||
<syntaxhighlight lang="cpp" line="1"> | <syntaxhighlight lang="cpp" line="1"> |
Latest revision as of 00:40, 8 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";
Functions.h
1 void WiFi_Setup();
2 void HTTP_Setup();
3 void HTTP_loop();
4 void Actual_Setup();
5 void Actual_loop();
The Code Itself
main.cpp
There's not actually very much here.
Nearly everything is handled in the other CPP files.
1 #include <Arduino.h>
2
3 #include "Functions.h"
4
5 void setup(void)
6 {
7 Serial.begin(115200);
8 Serial.println();
9 Serial.println("Booting Up...");
10
11 WiFi_Setup();
12 HTTP_Setup();
13 Actual_Setup();
14
15 Serial.println("Ready...");
16 }
17
18 void loop(void)
19 {
20 HTTP_loop();
21 Actual_loop();
22 }
WiFi.cpp
This is where your WiFi gets configured.
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 }
HTTP.cpp
This is where your HTTP OTA and any other HTTPcode belongs.
1 #include <Arduino.h>
2
3 #if MPU == ESP8266
4 #include <ESP8266WebServer.h>
5 #include <ESP8266HTTPUpdateServer.h>
6
7 ESP8266WebServer httpServer(80);
8 ESP8266HTTPUpdateServer httpUpdater;
9 #elif MPU == ESP32
10 #include <WebServer.h>
11 #include <HTTPUpdateServer.h>
12
13 WebServer httpServer(80);
14 HTTPUpdateServer httpUpdater;
15 #endif
16
17 String TestPage =
18 "<H1>This</H1>"
19 "<H2>is only a</H2>"
20 "<H1>TEST!</H1>"
21 "<a href='/update'>Update Page</a>";
22 void handleRootPath();
23
24 void HTTP_Setup()
25 {
26 httpUpdater.setup(&httpServer);
27 httpServer.begin();
28
29 httpServer.on("/", handleRootPath);
30
31 Serial.printf("HTTPUpdateServer ready! Open http://%s/update in your browser\n", WiFi.localIP().toString().c_str());
32 }
33
34 void HTTP_loop()
35 {
36 httpServer.handleClient();
37 }
38
39 void handleRootPath()
40 {
41 // httpServer.send(200, "text/plain", "Hello world");
42 httpServer.send(200, "text/html", TestPage);
43 }
Actual.cpp
This is where all the stuff normally found in setup()
and loop()
of your typical Arduino sketch gets put.
1 void Actual_Setup()
2 {
3
4 }
5
6 void Actual_loop()
7 {
8
9 }