ESP8266-01S перестал отвечать после второго запуска

Вот код:

#include <SoftwareSerial.h>
#define RX 6
#define TX 5

String AP = "...";
String PASS = "...";

SoftwareSerial esp8266(RX,TX); 

void setup() {
  Serial.begin(9600);
  Serial.println("Setup started");

  esp8266.begin(115200); // Измените его на заводскую скорость передачи данных, используемую ESP8266
  delay(1000);

  Serial.println("Установка СКОРОСТИ ПЕРЕДАЧИ ДАННЫХ на 9600");
  esp8266.println("AT+IPR=9600");
  esp8266.begin(9600);
  delay(500);
  Serial.println("Настройка завершена");

  reset();
  connectWifi();
}

//reset the esp8266 module
void reset() {
  Serial.println("Resetting...");
  esp8266.println("AT+RST");
  delay(3000);

  if (esp8266.find("OK"))
    Serial.println("Сброс модуля");
  ещё
    Serial.println("Сброс модуля Не удался!!!");
}

//connect to your wifi network
void connectWifi() {
  Serial.println("Подключение к Wifi...");
  String cmd = String("AT+CWJAP=\"") + AP + "\",\"" + PASS + "\"";
  esp8266.println(cmd);
  delay(4000);
  Serial.println("Проверка Wifi...");
  int ctr=0;
  while(!(esp8266.find("OK"))) {
    if(esp8266.find("ERROR")) {
      Serial.println("Не удается подключиться к Wi-Fi...");
      break;
    }
    delay(50);
    ++ctr;
    if(ctr>10){
      Serial.println("Не удается подключиться к Wi-Fi...");
      break;
    }
  }
  Serial.println("ConnectWifi finished");
}

Провода ESP8266-01S следующие:

  1. GND к земле arduino
  2. 3v3 к arduino 3v3
  3. RX к arduino pin 5
  4. TX к arduino pin 6
  5. RU к arduino 3v3

Вещь работала одно время, и когда я повторно скомпилировал и отправил ее снова без каких-либо изменений или даже нажатия кнопок, она перестала работать. Кроме того, если я подключу модуль ESP непосредственно через arduino rx и tx и подключу arduino reset к земле, я все равно ничего не получу. Светодиод на esp мигает во время передачи данных, но все остальное не меняется, и я не получаю никакого ответа.

, 👍1


1 ответ


0

Вам нужно заново прошить прошивку AI Thinker. AT+IPR убивает определенные версии прошивки.

Установите последнюю версию прошивки и используйте AT+UART_DEF=9600,8,1,0,0 и AT+UART=9600,8,1,0,0. (Первый устанавливает скорость передачи данных по умолчанию, второй-текущую скорость передачи данных).

Вы можете прочитать больше здесь.

,

После сброса все работает через прямое подключение к ПК, но при использовании программного обеспечения я получаю: Установка СКОРОСТИ ПЕРЕДАЧИ данных на 9600 Получен Ответ: М⸮⸮Е}⸮ʂb⸮⸮б Ф⸮⸮⸮П%У⸮ОН=Н⸮⸮⸮П0 Qi⸮C!⸮CC⸮ ============ Команда отправлена: ПО АДРЕСУ Получен Ответ: ⸮⸮⸮⸮, @mcmikecreations

Вот моя настройка: пустая настройка() { Серия.начало(9600); 'ESP8266.начало(115200); задержка(1000); Serial.println("Установка скорости на 9600"); 'ESP8266.println("AT+UART_DEF=9600,8,1,0,0"); 'ESP8266.println("AT+UART=9600,8,1,0,0"); ESP8266.начало(9600); } , @mcmikecreations

Добро пожаловать в удивительный мир хитрой прошивки at. Я бы предложил вам запрограммировать esp8266, чтобы выполнить задачу, которую вы от него требуете, и не полагаться на ужасную прошивку at., @Majenko