Skip to content

Commit ce89fda

Browse files
committed
Initial OTA support
1 parent 7556770 commit ce89fda

File tree

4 files changed

+96
-0
lines changed

4 files changed

+96
-0
lines changed

ArduinoIDESupport/boards.txt

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1956,3 +1956,46 @@ espectro.menu.FlashSize.4M1M.build.spiffs_start=0x300000
19561956
espectro.menu.FlashSize.4M1M.build.spiffs_end=0x3FB000
19571957
espectro.menu.FlashSize.4M1M.build.spiffs_blocksize=8192
19581958
espectro.menu.FlashSize.4M1M.build.spiffs_pagesize=256
1959+
1960+
espectro.menu.Debug.Disabled=Disabled
1961+
espectro.menu.Debug.Disabled.build.debug_port=
1962+
espectro.menu.Debug.Serial=Serial
1963+
espectro.menu.Debug.Serial.build.debug_port=-DDEBUG_ESP_PORT=Serial
1964+
espectro.menu.Debug.Serial1=Serial1
1965+
espectro.menu.Debug.Serial1.build.debug_port=-DDEBUG_ESP_PORT=Serial1
1966+
1967+
espectro.menu.DebugLevel.None____=None
1968+
espectro.menu.DebugLevel.None____.build.debug_level=
1969+
espectro.menu.DebugLevel.Core____=Core
1970+
espectro.menu.DebugLevel.Core____.build.debug_level=-DDEBUG_ESP_CORE
1971+
espectro.menu.DebugLevel.SSL_____=Core + SSL
1972+
espectro.menu.DebugLevel.SSL_____.build.debug_level=-DDEBUG_ESP_CORE -DDEBUG_ESP_SSL
1973+
espectro.menu.DebugLevel.SSL_MEM_=Core + SSL + TLS Mem
1974+
espectro.menu.DebugLevel.SSL_MEM_.build.debug_level=-DDEBUG_ESP_CORE -DDEBUG_ESP_SSL -DDEBUG_TLS_MEM
1975+
espectro.menu.DebugLevel.WiFic___=Core + WiFi
1976+
espectro.menu.DebugLevel.WiFic___.build.debug_level=-DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI
1977+
espectro.menu.DebugLevel.WiFi____=WiFi
1978+
espectro.menu.DebugLevel.WiFi____.build.debug_level=-DDEBUG_ESP_WIFI
1979+
espectro.menu.DebugLevel.HTTPClient=HTTPClient
1980+
espectro.menu.DebugLevel.HTTPClient.build.debug_level=-DDEBUG_ESP_HTTP_CLIENT
1981+
espectro.menu.DebugLevel.HTTPClient2=HTTPClient + SSL
1982+
espectro.menu.DebugLevel.HTTPClient2.build.debug_level=-DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_SSL
1983+
espectro.menu.DebugLevel.HTTPUpdate=HTTPUpdate
1984+
espectro.menu.DebugLevel.HTTPUpdate.build.debug_level=-DDEBUG_ESP_HTTP_UPDATE
1985+
espectro.menu.DebugLevel.HTTPUpdate2=HTTPClient + HTTPUpdate
1986+
espectro.menu.DebugLevel.HTTPUpdate2.build.debug_level=-DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_HTTP_UPDATE
1987+
espectro.menu.DebugLevel.HTTPUpdate3=HTTPClient + HTTPUpdate + Updater
1988+
espectro.menu.DebugLevel.HTTPUpdate3.build.debug_level=-DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER
1989+
espectro.menu.DebugLevel.HTTPServer=HTTPServer
1990+
espectro.menu.DebugLevel.HTTPServer.build.debug_level=-DDEBUG_ESP_HTTP_SERVER
1991+
espectro.menu.DebugLevel.UPDATER=Updater
1992+
espectro.menu.DebugLevel.UPDATER.build.debug_level=-DDEBUG_ESP_UPDATER
1993+
espectro.menu.DebugLevel.OTA_____=OTA
1994+
espectro.menu.DebugLevel.OTA_____.build.debug_level=-DDEBUG_ESP_OTA
1995+
espectro.menu.DebugLevel.OTA2____=OTA + Updater
1996+
espectro.menu.DebugLevel.OTA2____.build.debug_level=-DDEBUG_ESP_OTA -DDEBUG_ESP_UPDATER
1997+
espectro.menu.DebugLevel.all_____=All
1998+
espectro.menu.DebugLevel.all_____.build.debug_level=-DDEBUG_ESP_CORE -DDEBUG_ESP_SSL -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_TLS_MEM
1999+
2000+
espectro.build.debug_port=
2001+
espectro.build.debug_level=

src/ESPectro.cpp

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
#include <c_types.h>
66
#include "ESPectro.h"
7+
#include <ESP8266mDNS.h>
78

89
ESPectro::ESPectro(ESPectro_Version v):version_(v) {
910

@@ -19,8 +20,18 @@ ESPectro::~ESPectro() {
1920
delete neopixel_;
2021
neopixel_ = NULL;
2122
}
23+
24+
if (ota_ != NULL) {
25+
delete ota_;
26+
ota_ = NULL;
27+
}
2228
}
2329

30+
void ESPectro::run() {
31+
if (ota_ != NULL) {
32+
ota_->handle();
33+
}
34+
}
2435

2536
void ESPectro::turnOnLED() {
2637
getLED().turnOn();
@@ -92,6 +103,34 @@ float ESPectro::readAnalogVoltage() {
92103
return voltage;
93104
}
94105

106+
void ESPectro::beginOTA() {
107+
if (ota_ == NULL) {
108+
ota_ = new ArduinoOTAClass();
109+
}
110+
111+
ota_->setHostname(SETTING_DEFAULT_AP_NAME);
112+
113+
ota_->onStart([this]() {
114+
this->fadeLED(1200);
115+
});
116+
117+
ota_->onEnd([this]() {
118+
this->stopLEDAnimation();
119+
this->blinkLED(300, 5);
120+
});
121+
122+
ota_->onError([this](ota_error_t error) {
123+
this->stopLEDAnimation();
124+
ESP.restart();
125+
});
126+
127+
ota_->onProgress([](unsigned int progress, unsigned int total) {
128+
DEBUG_SERIAL("Progress: %u%%\r\n", (progress / (total / 100)));
129+
});
130+
131+
Serial.println(F("Beginning OTA"));
132+
ota_->begin();
133+
}
95134

96135

97136
/* the global instance pointer */
@@ -219,3 +258,5 @@ void ESPectro_Button::run() {
219258
}
220259
}
221260

261+
262+

src/ESPectro.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
#include "ESPectro_Neopixel.h"
1414
#include "ESPectro_LED.h"
1515

16+
#include <ArduinoOTA.h>
17+
1618
//#include <exception>
1719

1820
enum ESPectro_Version { ESPectro_V2, ESPectro_V3};
@@ -22,6 +24,9 @@ class ESPectro {
2224
ESPectro(ESPectro_Version v = ESPectro_V3);
2325
~ESPectro();
2426

27+
void run();
28+
29+
//Analog
2530
int readAnalog();
2631
float readAnalogVoltage();
2732

@@ -40,10 +45,15 @@ class ESPectro {
4045
void turnOffNeopixel(uint16_t pixelNo = 0);
4146
void turnOffAllNeopixel();
4247

48+
//OTA
49+
void beginOTA();
50+
4351
private:
4452
ESPectro_LED *led_ = NULL;
4553
ESPectro_Neopixel_Default *neopixel_ = NULL;
4654
ESPectro_Version version_;
55+
56+
ArduinoOTAClass *ota_;
4757
};
4858

4959

src/ESPectro_Constants.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
#ifndef ESPECTRO_CONSTANTS_H_H
66
#define ESPECTRO_CONSTANTS_H_H
77

8+
#include "DCX_Constants.h"
9+
810
//Constants
911
#define ESPECTRO_LED_PIN 15
1012

0 commit comments

Comments
 (0)