• Система автоматизации с открытым исходным кодом на базе 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
Помните, что это простой пример, и в реальном проекте вам, возможно, потребуется добавить защиту, аутентификацию и другие меры безопасности для предотвращения несанкционированного доступа к вашему устройству. Поэтому купить прокси и использовать его для своих проектов и для себя лично это будет хорошей идеей. Если есть вопросы по прокси, которые вам нужны, можете в личку написать.
 
Сверху Снизу