Страница 1 из 1

ESP8266. WiFiManager и RemoteXY

Добавлено: 02 дек 2018, 10:23
aidar_i
Данная тема относится для старых версий программы.

Используя добавочный и штатный блок для RemoteXY , блок WiFiManager и следуя рекомендациям приведенным в примере можно менять имя и пароль сети без перепрошивки ЕСП.
Менять можно также из UART и создав точку доступа в настройках контроллера.
WiFiManager+RemoteXY.flp
Указанный способ можно применить и другим проектам, где требуется менять имя и пароль сети.

Отправлено спустя 5 часов 54 минуты 55 секунд:
При оформлении забыл написать в setup() удалить ещё:
RemoteXY_Init ();

Отправлено спустя 1 час 16 минут 53 секунды:
На всякий случай скомпилированный и исправленный скетч
[spoiler]// ИСПРАВЛЕНИЯ ВЫДЕЛИЛ ПОДЧЕРКИВАНИЕМ

#define REMOTEXY_MODE__ESP8266WIFI_LIB_CLOUD //добавлено
#include <ESP8266WiFi.h> //добавлено
//#define REMOTEXY_MODE__ESP8266_HARDSERIAL_CLOUD //удалено
//______________________________________________________________
#include <RemoteXY.h>
#include <Ticker.h>

#include <DNSServer.h>

#include <ESP8266WebServer.h>

#include <WiFiManager.h>
extern "C" {
#include "user_interface.h";
}
//___________________________________________________
//УДАЛЕНЫ 4 СТРОКИ
/*#define REMOTEXY_SERIAL Serial
#define REMOTEXY_SERIAL_SPEED 9600
#define REMOTEXY_WIFI_SSID "удалить"
#define REMOTEXY_WIFI_PASSWORD "удалить"*/
//___________________________________________________
#define REMOTEXY_CLOUD_SERVER "cloud.remotexy.com"
#define REMOTEXY_CLOUD_PORT 6376
#define REMOTEXY_CLOUD_TOKEN "eaa0940e7f7cf8e36a2274b5aded5396"
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] = {1, 0, 20, 0, 8, 13, 0, 2, 0, 26, 13, 63, 30, 2, 26, 31, 31, 79, 78, 0, 79, 70, 70, 0};
struct {
unsigned char switch_1;
unsigned char connect_flag;
} RemoteXY;
#pragma pack(pop)
String SSID_str;
String Passw_Str;
const char* REMOTEXY_WIFI_SSID="";
const char* REMOTEXY_WIFI_PASSWORD="";
char ssid_Str[30];
char passw_Str[30];
bool en;
bool ResetSettinges;
bool setIPAdr;
String SSIDStr;
String PasswStr;
Ticker ticker;
char ssidStr[30];
char passwStr[30];
bool start= true;
bool _bounseInputD5S = 0;
bool _bounseInputD5O = 0;
unsigned long _bounseInputD5P = 0UL;
void setup()
{
//_____________________________________________
//RemoteXY_Init (); //УДАЛЕНО
//_____________________________________________
pinMode(5, INPUT_PULLUP);
pinMode(2, OUTPUT);

_bounseInputD5O = digitalRead(5);
SSID_str.toCharArray(ssid_Str, SSID_str.length()+1);
Passw_Str.toCharArray(passw_Str, Passw_Str.length()+1);
REMOTEXY_WIFI_SSID = ssid_Str;
REMOTEXY_WIFI_PASSWORD=passw_Str;
remotexy = new CRemoteXY (RemoteXY_CONF_PROGMEM, &RemoteXY,
REMOTEXY_ACCESS_PASSWORD,
REMOTEXY_WIFI_SSID, REMOTEXY_WIFI_PASSWORD, REMOTEXY_CLOUD_SERVER,
REMOTEXY_CLOUD_PORT, REMOTEXY_CLOUD_TOKEN);
Serial.begin(115200);
pinMode(BUILTIN_LED, OUTPUT);
ticker.attach(0.6, tick);

}
void loop()
{RemoteXY_Handler ();

bool _bounceInputTmpD5 = (digitalRead (5));

if (_bounseInputD5S)
{
if (millis() >= (_bounseInputD5P + 40))
{_bounseInputD5O= _bounceInputTmpD5; _bounseInputD5S=0;}
}
else
{
if (_bounceInputTmpD5 != _bounseInputD5O )
{_bounseInputD5S=1; _bounseInputD5P = millis();}
}




//Плата:1
en = !(0);
ResetSettinges = !(_bounseInputD5O);
setIPAdr = 0;
if (en) {
if (start) { start = false;
WiFiManager wifiManager;
if (ResetSettinges) wifiManager.resetSettings();
wifiManager.setAPCallback(configModeCallback);
wifiManager.setTimeout(180);
if (setIPAdr) wifiManager.setAPStaticIPConfig(IPAddress(10,0,1,1), IPAddress(10,0,1,1), IPAddress(255,255,255,0));
if ( !wifiManager.autoConnect("AutoConnectAP", "password")) {
Serial.println("failed to connect and hit 180");
delay(3000);
ESP.reset();
delay(5000);
} Serial.println("connected...yeey :)");
ticker.detach();
digitalWrite(BUILTIN_LED, LOW);
}
SSIDStr = WiFi.SSID();
PasswStr = WiFi.psk();
}
SSID_str = SSIDStr;
Passw_Str = PasswStr;


//Плата:2
digitalWrite(2, (RemoteXY.switch_1));




}
bool _isTimer(unsigned long startTime, unsigned long period )
{
unsigned long currentTime;
currentTime = millis();
if (currentTime>= startTime) {return (currentTime>=(startTime + period));} else {return (currentTime >=(4294967295-startTime+period));}
}
void tick()
{
int state = digitalRead(BUILTIN_LED); // get the current state of GPIO1 pin
digitalWrite(BUILTIN_LED, !state);
}
void configModeCallback(WiFiManager *myWiFiManager)
{
Serial.println("Entered config mode");
Serial.println(WiFi.softAPIP());
//if you used auto generated SSID, print it
Serial.println(myWiFiManager->getConfigPortalSSID());
//entered config mode, make led toggle faster
ticker.attach(0.2, tick);
}[/spoiler]

Отправлено спустя 45 минут 2 секунды:
Не забудьте поставить свой токен. Пока можете проверить на этом.

ESP8266. WiFiManager и RemoteXY

Добавлено: 02 дек 2018, 13:46
Phazz
А почему для изменения пароля нужно прошивать ЕСП, есть и другие штатные способы изменения пароля.

ESP8266. WiFiManager и RemoteXY

Добавлено: 02 дек 2018, 13:56
aidar_i
Потому что они в Remote XY задаются #define, и RemoteXY_Init () тоже #define.
Поделитесь , как ещё можно. Я не программист.

ESP8266. WiFiManager и RemoteXY

Добавлено: 02 дек 2018, 19:33
Brand2
Очень нужные блоки,позволяет делать устройства с приложением REMOTEXY не только для себя,зная заранее данные сети,но и для других,а так же в случае смены сети,роутера и тд.
Автору большое спасибо!!!

ESP8266. WiFiManager и RemoteXY

Добавлено: 15 окт 2019, 23:52
belyx
[ref]aidar_i[/ref], а с бесплатной версией RemoteXY будет это работать?

ESP8266. WiFiManager и RemoteXY

Добавлено: 16 окт 2019, 07:30
aidar_i
Да, будет.

ESP8266. WiFiManager и RemoteXY

Добавлено: 16 окт 2019, 10:57
belyx
Правильно ли я понял,что используется 2 модуля:
1-1 модуль - для работы с RemoteXY модуль ESP8266 должен иметь версию прошивки с поддержкой AT команд не ниже v0.40.
2-2 модуль - в вашем проекте модуль wemos d1 mini,в который и заливается скетч проекта
3- Связаны они по уарту
4-1 модуль типа ESP8266 -07 или -12 (модуль типа ESP8266 -01 не выбирается в настройках)
[spoiler]
вопросы.jpg
[/spoiler]
или проект заливается в вемос и всё (без всякого второго модуля) :smile37:
и хотелось бы посмотреть скрин картинки на смартфоне.

ESP8266. WiFiManager и RemoteXY

Добавлено: 16 окт 2019, 13:52
Phazz
belyx писал(а): 16 окт 2019, 10:57 или проект заливается в вемос и всё (без всякого второго модуля)
на смартфоне выглядит как в редакторе

ESP8266. WiFiManager и RemoteXY

Добавлено: 16 окт 2019, 14:53
belyx
Phazz писал(а): 16 окт 2019, 13:52 на смартфоне выглядит как в редакторе
:D а как в редакторе ? :smile427: тут ведь мы идём от обратного (сначала надо залить) а модуля такого у меня пока нет! и проекта ремоте тоже. :D
ладно,попробую в ESP8266-01

ESP8266. WiFiManager и RemoteXY

Добавлено: 16 окт 2019, 15:36
aidar_i
belyx писал(а): 16 окт 2019, 10:57 или проект заливается в вемос и всё (без всякого второго модуля)
Да. Делайте на ESP-01.

ESP8266. WiFiManager и RemoteXY

Добавлено: 21 янв 2021, 15:28
pipapsix
Добрый день.
А как быть со связкой ESP 32 и RemoteXY , этот пример не компилится.

ESP8266. WiFiManager и RemoteXY

Добавлено: 21 янв 2021, 21:47
aidar_i
pipapsix писал(а): 21 янв 2021, 15:28 Добрый день.
А как быть со связкой ESP 32 и RemoteXY , этот пример не компилится.
Для начала нужно библиотеки поменять для есп32 wifi и webserver.
Заменить сброс есп на ESP.restart()
Первая строка #define REMOTEXY_MODE__ESP32CORE_WIFI_CLOUD

ESP8266. WiFiManager и RemoteXY

Добавлено: 15 апр 2021, 12:05
Sevast
Не запоминает ESP8266 логин и пароль. После перезагрузки надо опять регистрироваться в сети. В чем может быть проблема?

ESP8266. WiFiManager и RemoteXY

Добавлено: 15 апр 2021, 13:57
SergeyShikal
Sevast писал(а): 15 апр 2021, 12:05 Не запоминает ESP8266 логин и пароль. После перезагрузки надо опять регистрироваться в сети. В чем может быть проблема?
Попробуйте в другом браузере.

ESP8266. WiFiManager и RemoteXY

Добавлено: 15 апр 2021, 14:11
Sevast
SergeyShikal писал(а): 15 апр 2021, 13:57 Попробуйте в другом браузере.
Не помогает. Уже все блоки испробовал, результат один, откл питания и ESP надо по новой регистрировать.