Wifi manager esp8266 примеры

Библиотека WiFiManager + SSDP

В предыдущих примерах была использована библиотека ESPWebConfig.

Сейчас используем другую библиотеку WiFiManager, подключим к ней aREST из предыдущего примера, а также воспользуемся Simple Service Discovery Protocol (SSDP) для отображения устройства в списке сетевых сервисов.

#include //https://github.com/esp8266/Arduino //needed for library #include #include #include //https://github.com/tzapu/WiFiManager #include #include // Web интерфейс для устройства ESP8266WebServer HTTP(80); // aREST и сервер для него WiFiServer SERVERaREST(8080); aREST rest = aREST(); void setup() < // Настраиваем вывод отладки Serial.begin(115200); //Включаем WiFiManager WiFiManager wifiManager; //Если не удалось подключиться клиентом запускаем режим AP // доступ к настройкам по адресу http://192.168.4.1 wifiManager.autoConnect("AutoConnectAP"); //если подключение к точке доступа произошло сообщаем Serial.println("connected. yeey :)"); //настраиваем HTTP интерфейс HTTP_init(); //запускаем SSDP сервис Serial.printf("Starting SSDP. \n"); SSDP_init(); Serial.printf("SSDP Ready!\n"); // включаем aREST и сервер к нему AREST_init(); Serial.println("aREST Server started"); >void loop() < // put your main code here, to run repeatedly: HTTP.handleClient(); delay(1); // Handle REST calls WiFiClient client = SERVERaREST.available(); if (!client) < return; >while (!client.available()) < delay(1); >rest.handle(client); > void SSDP_init(void) < SSDP.setSchemaURL("description.xml"); SSDP.setHTTPPort(80); SSDP.setName("WiFiManager + SSDP"); SSDP.setSerialNumber("001788102201"); SSDP.setURL("index.html"); SSDP.setModelName("WiFiManager + SSDP"); SSDP.setModelNumber("000000000001"); SSDP.setModelURL("http://esp8266-arduinoide.ru/wifimanager/"); SSDP.setManufacturer("Tretyakov Sergey"); SSDP.setManufacturerURL("http://www.esp8266-arduinoide.ru"); SSDP.begin(); >void HTTP_init(void)< HTTP.on("/index.html", HTTP_GET, []()< HTTP.send(200, "text/plain", "Test aREST"); >); HTTP.on("/description.xml", HTTP_GET, []()< SSDP.schema(HTTP.client()); >); HTTP.begin(); > void AREST_init(void)< // Определяем имя name и ИД ID устройства aREST rest.set_id("1"); rest.set_name("aRest"); // Запускаем сервер SERVERaREST.begin(); >

Как пользоваться WIFIManager:

Включите в скетч библиотеки
#include
#include
#include

Настройте режим AP один из трех вариантов
wifiManager.autoConnect(“AP-NAME”, “AP-PASSWORD”); // Имя точки доступа и пароль
wifiManager.autoConnect(“AP-NAME”); // без пароля
wifiManager.autoConnect(); // с генерирует имя по Chip ID

По умолчанию точка доступа будет с адресом 192.168.4.1, если требуется другой адрес добавь перед wifiManager.autoConnect строку –
wifiManager.setAPConfig(IPAddress(10,0,1,1), IPAddress(10,0,1,1), IPAddress(255,255,255,0));

Читайте также:  What is obtaining ip address in wifi

Режим отладки по умолчанию включен!
Отключить можно добавив строку wifiManager.setDebugOutput(false);

Если в режиме AP нужно выполнить какие то действия, то добавляем строку ifiManager.setAPCallback(configModeCallback);

void configModeCallback () Serial. println ( “ Entered config mode “ ); Serial. println (WiFi. softAPIP ());
>

Тайм аут
wifiManager.setTimeout (180);

29 мыслей о “Библиотека WiFiManager + SSDP”

скопировал код не компилирует дает ошибку на 31 строке HTTP_init() не определена функция пишет (по английски)

Копируйте скетч через специальную кнопку в правом верхнем углу поля скетча. Если ошибка не от копирования обязательно проверьте версию поддержки платы в видео есть как это делается. Версия 2.0.0. Скетч только что проверил там ошибки нет.

Как и писал дает ошибку
Arduino: 1.6.7 (Windows 7), Плата:”Generic ESP8266 Module, Serial, 80 MHz, 40MHz, DIO, 115200, 1M (512K SPIFFS), ck” C:\Users\DD69~1\AppData\Local\Temp\arduino_d2d344940efbe9b60cae316b0e56e522\HelloServer.ino: In function ‘void setup()’: HelloServer:31: error: ‘HTTP_init’ was not declared in this scope HTTP_init(); ^ HelloServer:35: error: ‘SSDP_init’ was not declared in this scope SSDP_init(); ^ HelloServer:38: error: ‘AREST_init’ was not declared in this scope AREST_init(); ^ C:\Users\DD69~1\AppData\Local\Temp\arduino_d2d344940efbe9b60cae316b0e56e522\HelloServer.ino: In function ‘void AREST_init()’: C:\Users\DD69~1\AppData\Local\Temp\arduino_d2d344940efbe9b60cae316b0e56e522\HelloServer.ino:89:18: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] rest.set_id(“1”); ^ C:\Users\DD69~1\AppData\Local\Temp\arduino_d2d344940efbe9b60cae316b0e56e522\HelloServer.ino:90:24: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] rest.set_name(“aRest”); ^ exit status 1
‘HTTP_init’ was not declared in this scope Что делать не пойму?

Можно приложить подорожник. Компилятор не видит те функции которые вы объявляете после того как обращаетесь к ним. Баг легко обойти перенеся в заголовок объявление функций. Можно без описаний. Все скетчи запускаются в 1.6.7 с использованием данного приема. Как по мне это проще чем переставлять на 1.6.5
Пример:

void HTTP_init(void);
void SSDP_init(void);
AREST_init();
…. void setup() …
>
…..

Читайте также:  Вай фай сколько мгц

C:\Users\Bond-PC\Documents\Arduino\libraries\WiFiManager-master\WiFiManager.cpp: In member function ‘void WiFiManager::handleWifiSave()’:
C:\Users\Bond-PC\Documents\Arduino\libraries\WiFiManager-master\WiFiManager.cpp:462:20: error: ‘class IPAddress’ has no member named ‘fromString’
_sta_static_ip.fromString(server->arg(“ip”));
^
C:\Users\Bond-PC\Documents\Arduino\libraries\WiFiManager-master\WiFiManager.cpp:467:20: error: ‘class IPAddress’ has no member named ‘fromString’
_sta_static_gw.fromString(server->arg(“gw”));
^
C:\Users\Bond-PC\Documents\Arduino\libraries\WiFiManager-master\WiFiManager.cpp:472:20: error: ‘class IPAddress’ has no member named ‘fromString’
_sta_static_sn.fromString(server->arg(“sn”));
^
Ошибка компиляции.

помогите пожалуйста,устал искать решение!не запоминает wi-fi сеть,то есть после перезагрузки модуль больше не подключается к сети=((соответственно запускается в режиме точки доступа….=((

смех-смехом,но модуль подключается к сети ровно каждый второй раз после сброса питания…. проверил раз двадцать…

Источник

Оцените статью
Adblock
detector