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 следующие:
- GND к земле arduino
- 3v3 к arduino 3v3
- RX к arduino pin 5
- TX к arduino pin 6
- RU к arduino 3v3
Вещь работала одно время, и когда я повторно скомпилировал и отправил ее снова без каких-либо изменений или даже нажатия кнопок, она перестала работать. Кроме того, если я подключу модуль ESP непосредственно через arduino rx и tx и подключу arduino reset к земле, я все равно ничего не получу. Светодиод на esp мигает во время передачи данных, но все остальное не меняется, и я не получаю никакого ответа.
@mcmikecreations, 👍1
1 ответ
Вам нужно заново прошить прошивку AI Thinker. AT+IPR убивает определенные версии прошивки.
Установите последнюю версию прошивки и используйте AT+UART_DEF=9600,8,1,0,0
и AT+UART=9600,8,1,0,0
. (Первый устанавливает скорость передачи данных по умолчанию, второй-текущую скорость передачи данных).
Вы можете прочитать больше здесь.
- Как подключить Wi-Fi Shield ESP-12E-ESP8266-UART-WIFI-Wireless-Shield к Arduino
- Как подключить ESP8266 с помощью адаптера ESP-01 к Arduino Uno?
- Как установить связь между веб-камерой и Arduino UNO и получать прямую трансляцию на мобильном телефоне с помощью ESP8266?
- ESP8266 - Один сервер, отправляющий данные нескольким клиентам
- Могу ли я использовать выход 3,3 В Arduino напрямую к esp8266?
- Чтение данных из Google Таблиц с помощью Nodemcu
- Ошибка TIMEOUT при подключении ESP8266 к Arduino Uno
- Сервер Esp8266 недоступен. Порт не открывается
После сброса все работает через прямое подключение к ПК, но при использовании программного обеспечения я получаю: Установка СКОРОСТИ ПЕРЕДАЧИ данных на 9600 Получен Ответ: М⸮⸮Е}⸮ʂb⸮⸮б Ф⸮⸮⸮П%У⸮ОН=Н⸮⸮⸮П0 Qi⸮C!⸮CC⸮ ============ Команда отправлена: ПО АДРЕСУ Получен Ответ: ⸮⸮⸮⸮, @mcmikecreations
Вот моя настройка:
задержка(1000);
Serial.println("Установка скорости на 9600");
ESP8266.начало(9600);
пустая настройка() {
Серия.начало(9600);
'ESP8266.начало(115200);'ESP8266.println("AT+UART_DEF=9600,8,1,0,0");
'ESP8266.println("AT+UART=9600,8,1,0,0");}
, @mcmikecreationsДобро пожаловать в удивительный мир хитрой прошивки at. Я бы предложил вам запрограммировать esp8266, чтобы выполнить задачу, которую вы от него требуете, и не полагаться на ужасную прошивку at., @Majenko