Как сбросить настройки модуля Wi-Fi ESP8266

Я запрограммировал ESP8266, чтобы сделать его доступным по сети, используя следующую программу.

Первая программа

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>

//SSID и пароль Wi-Fi-роутера
const char* ssid = "Moto";
const char* password = "reset1234";

ESP8266WebServer server(80);

void setup() {
  Serial.begin(9600);

  WiFi.begin(ssid, password);     //Подключитесь к вашему WiFi-роутеру
  Serial.println("");

  // Ожидание соединения
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  //Если соединение успешно, покажите IP-адрес в последовательном мониторе
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());  //IP-адрес, назначенный вашему ESP

  server.begin();                  //Запустить сервер
  Serial.println("HTTP server started");
}

void loop() {
  server.handleClient();          //Обработка клиентских запросов
}

Работает нормально. Как сбросить настройки, чтобы запустить программу ниже? Я хотел отправить AT-команды на последовательный монитор, используя программу ниже, которая была успешно загружена, но не отвечает на AT-команды на последовательном мониторе, так как ESP8266 запускает программу выше и показывает вывод программы выше при запуске программы ниже на последовательном мониторе.

Я хочу сбросить ESP8266, чтобы он реагировал на следующую программу. Как это сделать?

Connected to Moto
IP address: 192.168.43.115
HTTP server started

ВтораяПрограмма

#include "SoftwareSerial.h"

SoftwareSerial esp8266(2, 3); // RX, TX

void setup()
{
  Serial.begin(9600); // последовательный порт, используемый для отладки
  esp8266.begin(9600);  // скорость передачи данных вашего ESP может отличаться
}

void loop()
{
  if(esp8266.available())  // проверяем, отправляет ли ESP сообщение
  {
    while(esp8266.available())
    {
      char c = esp8266.read();  // прочитать следующий символ.

      Serial.write(c);  // записывает данные в последовательный монитор
    }
  }

  if(Serial.available())
  {
    delay(10);  // ждем, пока все входные команды будут в последовательном буфере
    Serial.write("Hello");
    // прочитать входную команду в строке
    String cmd = "";
    while(Serial.available())
    {
      cmd += (char)Serial.read();
    }
    // отправить на esp8266
    esp8266.println(cmd); 
  }
}

, 👍2


2 ответа


Лучший ответ:

3

Вам необходимо переустановить прошивку AI Thinker AT.

Вот как это сделать: Как прошить ESP8266 обновление прошивки ESP-01 AI thinker

В прошлый раз я использовал программу esptool.py и прошивку ai-thinker-0.9.5.2.bin (там есть две версии: стандартная 115200 бод и вариант 9600 бод).

В Linux я затем использовал команду:

foo@bar:~$ ./esptool.py --port /dev/ttyUSB0 --baud 57600 write_flash 0 ai-thinker-0.9.5.2.bin
Connecting....
Detecting chip type... ESP8266
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 512KB
Flash params set to 0x0000
Compressed 520192 bytes to 165297...
Wrote 520192 bytes (165297 compressed) at 0x00000000 in 29.0 seconds (effective 143.3 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting...

Конечно, это было сделано при GPIO0, удерживаемом в состоянии LOW для режима программирования (на самом деле я использую адаптер с программным переключателем, который управляет GPIO0), а для других операционных систем вам нужно будет изменить имя порта соответствующим образом (COM3:, /dev/cu.usbmodem4873 и т. д.).

,

Комментарии не предназначены для расширенного обсуждения; эта беседа была [перенесена в чат](http://chat.stackexchange.com/rooms/58695/discussion-on-answer-by-majenko-how-to-reset-esp8266-wifi-module)., @Nick Gammon

Комментарии недолговечны. Длинные объяснения следует объединять с ответом (включая графику), а не оставлять в комментариях., @Nick Gammon


-1
//сброс настроек - в случае возникновения проблем просто введите свой код
//wifiManager.resetSettings();

Это все, что вам нужно

,

Если бы вы правильно отформатировали свой код, ваш ответ, возможно, имел бы больше смысла., @Greenonline

ESP.restart(); //готово, @Mahdi Safarmohammadloo