I have a problem with the OTA network port not showing up in the Arduino IDE. I am working with an ESP8266 and the webserver on IP address 192.168.1.22 is working just fine. I have added OTA by following the BasicOTA example:
#include <WiFiUdp.h>
#include <ArduinoOTA.h>
void setup(){
updateOTA();
}
void loop(){
ArduinoOTA.handle();
}
void updateOTA() {
// Port defaults to 8266
// ArduinoOTA.setPort(8266);
// Hostname defaults to esp8266-[ChipID]
ArduinoOTA.setHostname("fancontrol");
// 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_FS
type = "filesystem";
}
// NOTE: if updating FS this would be the place to unmount FS using FS.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 update handler ready");
}
For most part my code is exactly the same as in the example except that I have set a password and put the code to start the OTA processin its own function.
The esp8266 IP address does not show up in the Network port section of Tools->Port. When it does show up occasionally it usually has the wrong address: 192.168.244.1. No idea where it gets this from as its not an address on my network.
Updating via USB continues to work OK, so using that at the moment, but at some point I will need to rely on OTA updates.
mDNS appears to be working as I can ping "fancontrol.local".
I am working on Mint Linux 19.3.