• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

WiFiManager on SKD

Что-то не могу найти, неужели нет примера как реализовать функциональность Arduino WiFiManager на голом NON-OS SDK ESP8266? Речь идет о запуске WEB-server на Soft-AP для настройки SSID/Pwd и т. п. параметров устройства.
 

pvvx

Активный участник сообщества
Что-то не могу найти, неужели нет примера как реализовать функциональность Arduino WiFiManager на голом NON-OS SDK ESP8266? Речь идет о запуске WEB-server на Soft-AP для настройки SSID/Pwd и т. п. параметров устройства.
А что такого замечательного в "Arduino WiFiManager" ?
Структура настроек WiFi есть давно и шире, чем в Arduino, к примеру в Web-свалке. Она не очень оптимальна, т.к. строилась по мере развития версий SDK с добавлением в каждой новой SDK функций и ошибок... Но работает как-то...
Так-же есть и другие проекты на ESP8266 с управлением через Web большинства настроек WiFi.

Какой-то ардуинный вопрос у вас. Типа дайте готовое, а пишите в теме создания своих прошивок и про SDK... ;)
 
А что такого замечательного в "Arduino WiFiManager" ?
Функциональность.

Структура настроек WiFi есть давно и шире, чем в Arduino, к примеру в Web-свалке.
А конкретней можно?

Она не очень оптимальна, т.к. строилась по мере развития версий SDK с добавлением в каждой новой SDK функций и ошибок...
Я компилирую с последней 2.10, с предыдущими основная функциональность с MQTT падала постоянно.


Так-же есть и другие проекты на ESP8266 с управлением через Web большинства настроек WiFi.
Ну пока мне только SSID и пароль нужны.

Какой-то ардуинный вопрос у вас. Типа дайте готовое, а пишите в теме создания своих прошивок и про SDK... ;)
Так и есть, этот кусок на ESP - крохотная часть большого проекта, которая и не моя изначально была, но пришлось. Я бы, может, и Arduino использовал, но я как-то вытаскивал из нее сорцы для одной железяки (дисплейчика), и код этот был просто ужасен. Весь этот нетворкинг - вообще не мое, я проектирую железо (источники питания для света) и софт для них, а тут гейт в интернет понадобился.
 

pvvx

Активный участник сообщества
Возьмите примеры из любого проекта на github. Поиском находятся десятки.
github esp8266 sdk mqtt - Поиск в Google

Изначально не понятно, что вам надо.
Настройку WiFi из web сервера? -> GitHub - Spritetm/esphttpd: Esphttpd mirror of http://git.spritesserver.nl/esphttpd.git/
Или что-то другое?
Установка пароля и имени - это одна функция API из SDK и описана в её доках.
В Arduino только обертки у них для создания классов C++.
 
Последнее редактирование:
Изначально не понятно, что вам надо. Возьмите примеры из любого проекта на github. Поиском находятся десятки. github esp8266 sdk mqtt - Поиск в Google
https://www.google.ru/search?q=github+esp8266+sdk+mqtt

С MQTT - не надо, я взял пример из SDK 2.1.0, и он, в отличие от предыдущих, работает вместе с тем небольшим куском кода, который я добавил в него для связи с моей системой. Почему-то тоже самое, но из примера SDK 2.0.0 (включая ее саму, и более ранние) падало где-то в течение минуты-двух работы, или чаще. Я уже спрашивал. Теперь мне надо к нему добавить возможность настройки WiFi, что, в точности, и делает Arduino WiFiManager.



Да, но там слишком много. Нужен именно и только кусок для настройки WiFi, и больше ничего.
 
Возьмите примеры из любого проекта на github. Поиском находятся десятки.
Надергал из разных примеров, заработала конфигурация через WEB. Осталась непонятка с прожигом ESP из Eclipse. Если беру новый, из упаковки, модуль, то пока я его один раз каким-то скриптом из Arduino IDE
Код:
#include <ESP8266WiFi.h>
//how many clients should be able to telnet to this ESP8266
#define MAX_SRV_CLIENTS 1
//const char* ssid = "**********";
//const char* password = "**********";
#define WIFI_SSID "Orlov-Home"
#define WIFI_PWD "AAAAABBBBB"
//const char* ssid = "ORANGE";
//const char* password = "1234123467";
const char* ssid = "Orlov-Home";
const char* password = "AAAAABBBBB";
const char* myHostname = "ESP";
WiFiServer server(23);
WiFiClient serverClients[MAX_SRV_CLIENTS];
void setup() {
  Serial1.begin(115200);
  WiFi.hostname(myHostname);
  WiFi.begin(ssid, password);
  Serial1.print("\nConnecting to "); Serial1.println(ssid);
  uint8_t i = 0;
  while (WiFi.status() != WL_CONNECTED && i++ < 20) delay(500);
  if(i == 21){
    Serial1.print("Could not connect to"); Serial1.println(ssid);
    while(1) delay(500);
  }
  //start UART and the server
  Serial.begin(115200);
  server.begin();
  server.setNoDelay(true);
 
  Serial1.print("Ready! Use 'telnet ");
  Serial1.print(WiFi.localIP());
  Serial1.println(" 23' to connect");
}
void loop() {
  uint8_t i;
  //check if there are any new clients
  if (server.hasClient()){
    for(i = 0; i < MAX_SRV_CLIENTS; i++){
      //find free/disconnected spot
      if (!serverClients[i] || !serverClients[i].connected()){
        if(serverClients[i]) serverClients[i].stop();
        serverClients[i] = server.available();
        Serial1.print("New client: "); Serial1.print(i);
        continue;
      }
    }
    //no free/disconnected spot so reject
    WiFiClient serverClient = server.available();
    serverClient.stop();
  }
  //check clients for data
  for(i = 0; i < MAX_SRV_CLIENTS; i++){
    if (serverClients[i] && serverClients[i].connected()){
      if(serverClients[i].available()){
        //get data from the telnet client and push it to the UART
        while(serverClients[i].available()) Serial.write(serverClients[i].read());
      }
    }
  }
  //check UART for data
  if(Serial.available()){
    size_t len = Serial.available();
    uint8_t sbuf[len];
    Serial.readBytes(sbuf, len);
    //push UART data to all connected telnet clients
    for(i = 0; i < MAX_SRV_CLIENTS; i++){
      if (serverClients[i] && serverClients[i].connected()){
        serverClients[i].write(sbuf, len);
        delay(1);
      }
    }
  }
}
не прожгу, моя прошивка в Eclipse не работает. Не помогает ни flashinit, ни flash. Но после первой же прошивки в Arduino IDE, потом прошивка flash работает. Что надо сделать, чтобы не запускать Arduino IDE?
 
Сверху Снизу