Skip to content

Instantly share code, notes, and snippets.

@cmoz
Created November 9, 2020 21:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cmoz/ca7119a10432c4a652a0b36c0eb78a35 to your computer and use it in GitHub Desktop.
Save cmoz/ca7119a10432c4a652a0b36c0eb78a35 to your computer and use it in GitHub Desktop.
/*
* USE THIS FOR ALL NEW BOARDS
* TO ENABlE WIRELESS UPLOAD OF CODE
* @CMoz
* Working and uploaded code to ESP 32 board
*
* edited oct 2020
*/
#include "OTA.h"
unsigned long entry;
void setup() {
Serial.begin(115200);
Serial.println("Booting");
ArduinoOTA.setHostname("ilyware_V1"); //my board name to recognise it
setupOTA("ilyware");
//setupOTA();
// your code
}
void loop() {
#ifndef ESP32_RTOS
ArduinoOTA.handle();
#endif
ArduinoOTA.handle();
delay(20);
// your code here
}
#ifdef ESP32
#include <WiFi.h>
#include <ESPmDNS.h>
#else
#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#endif
#include <WiFiUdp.h>
#include <ArduinoOTA.h>
#include <credentials.h>
const char* ssid = "your SSID"; // change these
const char* password = "your PASSWORD"; //change these or use the credentials.h file
#if defined(ESP32_RTOS) && defined(ESP32)
void taskOne( void * parameter )
{
ArduinoOTA.handle();
delay(3500);
}
#endif
void setupOTA(const char* nameprefix) {
const int maxlen = 40;
char fullhostname[maxlen];
uint8_t mac[6];
WiFi.macAddress(mac);
snprintf(fullhostname, maxlen, "%s-%02x%02x%02x", nameprefix, mac[3], mac[4], mac[5]);
ArduinoOTA.setHostname(fullhostname);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.waitForConnectResult() != WL_CONNECTED) {
Serial.println("Connection Failed! Rebooting...");
delay(5000);
ESP.restart();
}
// Port defaults to 3232
// ArduinoOTA.setPort(3232);
// No authentication by default
// ArduinoOTA.setPassword("admin");
// Password can be set with it's md5 value as well
// MD5(admin) = 21232f297a57a5a743894a0e4a801fc3
// ArduinoOTA.setPasswordHash("21232f297a57a5a743894a0e4a801fc3");
ArduinoOTA.onStart([]() {
String type;
if (ArduinoOTA.getCommand() == U_FLASH)
type = "sketch";
else // U_SPIFFS
type = "filesystem";
// NOTE: if updating SPIFFS this would be the place to unmount SPIFFS using SPIFFS.end()
Serial.println("Start updating " + type);
});
ArduinoOTA.onEnd([]() {
Serial.println("\nEnd");
});
ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
});
ArduinoOTA.onError([](ota_error_t error) {
Serial.printf("Error[%u]: ", error);
if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed");
else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed");
else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed");
else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed");
else if (error == OTA_END_ERROR) Serial.println("End Failed");
});
ArduinoOTA.begin();
Serial.println("OTA Initialized");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
#if defined(ESP32_RTOS) && defined(ESP32)
xTaskCreate(
ota_handle, /* Task function. */
"OTA_HANDLE", /* String with name of task. */
10000, /* Stack size in bytes. */
NULL, /* Parameter passed as input of the task */
1, /* Priority of the task. */
NULL); /* Task handle. */
#endif
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment