ESP8266 01 модуль Wi-Fi

У меня странная проблема: я пытаюсь подключиться к esp8266 01 с помощью Arduino Uno, когда я пытаюсь отправить команды из последовательного порта, это не работает, но если я отправлю их в функцию на этапе настройки, это сработает

>
#include <SoftwareSerial.h>

SoftwareSerial esp8266(2, 3);

void setup()
{
Serial.begin(9600);
esp8266.begin(9600);
delay(1000);
//sendData("AT", 1000);
//sendData("AT+CWMODE=1", 1000);
}

void loop() {
// put your main code here, to run repeatedly:
if(esp8266.available()) // check if the esp is sending a message
  {
      while(esp8266.available())
      {
          // The esp has data so display its output to the serial window
          char c = esp8266.read(); // read the next character.
          Serial.write(c);
      }
  }
  if(Serial.available())
  {
    delay(1000);
    String command="";
    while(Serial.available()) // read the command character by character
    {
        command+=(char)Serial.read();
    }
    esp8266.println(command); // send the read character to the esp8266
  }
}

void sendData(String command, const int timeout) {
 String response = "";
 esp8266.println(command);
 long int time = millis();
 while ((time + timeout) > millis())
   while (esp8266.available()) {
     char c  = esp8266.read();
     response += c;
    }
 Serial.println(response);
}

, 👍0

Обсуждение

попробуйте напечатать обратно в последовательный порт переменную command, @Juraj

я сделал, команда была в порядке, только AT-команда отвечает занято... затем ошибка, @Ali El-Boghdady

у вас есть CR/LF в последовательном мониторе? затем замените println(команда) на print(команда), @Juraj

извините, я не знаю о CR/LF. я попробовал распечатать, но он просто отвечает с ошибкой, @Ali El-Boghdady

в Serial Monitor одной из настроек является окончание строки. ЛН и ЧР, @Juraj

ох, я нашел, что он настроен на новую строку, @Ali El-Boghdady

Для прошивки AT требуется \r\n (CR/LF). println добавляет это. поэтому вам нужно установить его в Serial Monitor или не устанавливать в Serial Monitor и использовать println. (\n\r\n было худшей комбинацией), @Juraj

я изменил настройки на NL и CR, и теперь все работает... спасибо, чувак, @Ali El-Boghdady

ну... появляется еще одна проблема... AT+CWJAP="SSID", "пароль" не работают... это я пробовал с функцией отправки данных и последовательным монитором, я не знаю, в чем проблема, хотя это AT+ CWLAP работает, @Ali El-Boghdady

у тебя есть пробел после запятой? вы все еще печатаете команду? оно полное?, @Juraj

AT+CWJAP="ssid", "пароль" именно так я и написал, @Ali El-Boghdady

убрать пробел после запятой, @Juraj

пробовал это и многие другие способы, я пробовал пробелы после и перед запятой и удалял все пробелы... ничего не работает, @Ali El-Boghdady

ты сначала отправил CWMODE?, @Juraj

омг....наконец-то это связано..большое спасибо, вы молодцы, @Ali El-Boghdady

да, я сделал, но моя проблема была в пробеле раньше = я думаю, @Ali El-Boghdady

я хотел сделать это с самого начала, но я не могу, чтобы вы добавляли комментарии, а не ответы, добавляйте ответ, чтобы я мог проголосовать за него, @Ali El-Boghdady


1 ответ


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

0

Я использую ваш код в качестве тестового эскиза и не буду комментировать то, как ужасно вы читаете последовательный ввод.

Прошивка AT требует \r\n в качестве завершающего символа команды. Вы можете установить их в Serial Monitor как опцию LN & CR, но затем используйте print, чтобы отправить команду на esp8266.

Или установите в последовательном мониторе «Без окончания строки» и позвольте набросать println для отправки команды. println добавляет \r\n к напечатанной строке.

Если у вас была установлена только «Новая строка» в Serial Monitor и вы использовали println, результирующая команда была для прошивки AT, нарушающей «AT\n\r\n».

,

Я не знаю, как правильно читать последовательный ввод. Можете ли вы продемонстрировать, как я взял код из Интернета?, @Ali El-Boghdady

Я исправил эту проблему, теперь я отправляю AT-команды, и они хорошо реагируют, теперь моя проблема заключается в подключении к точке доступа., @Ali El-Boghdady