• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Изменение IP, SSID и пароля

SO_OOF

New member
Здравствуйте. Сделал проект arduino nano + esp-01. Arduino читает датчики и передает все esp, а esp отдает все серверу который поднят на компе. Имя SSID и пароль сети прописан статически в коде и ip сервера, если я сделаю это на другом компе в другой сети, мне понадобиться все переписывать в коде и снова записывать на esp, что не очень удобно. Поэтому хотел бы узнать, есть ли способ это как-то менять динамически. Например сделать на сервере поле, сервер передает информацию в esp и esp обновляет свои показатели. Находил wifi manager, но это не то что мне нужно.

Вот код для esp

Код:
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <WiFiUdp.h>

const char* ssid = "***";
const char* password = "***";

unsigned long last_time;
String temp;
char json_string[200];
const int port = 8888;

IPAddress server_ip(192,168,1,30);
WiFiUDP Udp;

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password); //Инициализация соединения Wi-Fi
  while (WiFi.status() != WL_CONNECTED) { //ожидание соединения
  delay(500);
  }
}

void loop() {
  if (millis() - last_time >= 2000) {
    last_time = millis();
    data_reception();
    udp_send();
  }
}

void data_reception() {
  temp = "";
  while (Serial.available() > 0) {
    temp += char(Serial.read()); //читаем данные переданные arduino
  }
  temp.toCharArray(json_string, 200);
}

void udp_send() { //отправляем UDP на сервер
  Udp.beginPacket(server_ip, port);
  Udp.write(json_string);
  Udp.endPacket();
}
 

CodeNameHawk

Moderator
Команда форума
Поэтому хотел бы узнать, есть ли способ это как-то менять динамически.
В скетче любым способом получите значения ssid и пароля, отключитесь от сети и подключитесь с новыми данными.
Но в начале придумайте когда менять сеть, старая станет сразу недоступной, значит и доступ к серверу.
Если надо, что бы есп, после рестарта, подключалась к новой сети, сохраните ваши данные в еппром и считывайте их из еппром при старте есп.
 
Последнее редактирование:

SO_OOF

New member
В скетче любым способом получите значения ssid и пароля, отключитесь от сети и подключитесь с новыми данными.
Но в начале придумайте когда менять сеть, старая станет сразу недоступной, значит и доступ к серверу.
Если надо, что бы есп, после рестарта, подключалась к новой сети, сохраните ваши данные в еппром и считывайте их из еппром при старте есп.
А можно пример чтения и записи в еепром?
 

benisfroms

New member
Один из способов реализации подобной функциональности - использовать веб-интерфейс на ESP для настройки параметров. Ваш ESP может создавать точку доступа Wi-Fi, и когда вы подключаетесь к этой точке доступа с устройства, вы можете открывать веб-страницу, на которой будет форма для ввода новых настроек (SSID, пароль и т.д.).
 

benisfroms

New member
Помните, что это простой пример, и в реальном проекте вам, возможно, потребуется добавить защиту, аутентификацию и другие меры безопасности для предотвращения несанкционированного доступа к вашему устройству. Поэтому купить прокси и использовать его для своих проектов и для себя лично это будет хорошей идеей. Если есть вопросы по прокси, которые вам нужны, можете в личку написать.
 
Сверху Снизу