• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

быстрый прием и обработка данных

Emmys

New member
прошил еще раз. появились АТ команды. ура товарищи..
только не понятно. я эту микруху уже раза 2 прошивал..)

какую скорость поставить для софтверного порта..!?
 

Victor

Administrator
Команда форума
Еще есть возможность, что проблема в согласовании уровней TTL 3.3v (ESP) и USB-TTL. Обычно это не проблема, но может быть у вас как раз проблема в этом (USB-TTL с 5 выводами это что-то!) Даже на самых дешевых еще DTR выведен. Возможно, что логическая "1" не всегда воспринимается корректно, т.к. напряжение 3,3, а ожидается 5.
Если бы вы не написали, что соединили GND, то я бы подумал, что проблема в отсутствии общей земли (это очень важно для TTL)
Может стоит вернуться к подключению через Arduino?
 

Emmys

New member
хочу . я хотел спросить вас об этом.
вы буквально пару фраз сказали об этом.
все будет поступать в кучу и события из ком и данные допустим пришедшие по вай фай в ESP8266?
 

Victor

Administrator
Команда форума
хочу . я хотел спросить вас об этом.
вы буквально пару фраз сказали об этом.
все будет поступать в кучу и события из ком и данные допустим пришедшие по вай фай в ESP8266?
Я так думаю, что в скетче у вас 2 UART используются, раз SoftSerial есть.
Нужно аппаратный UART использовать там, где нужна бОльшая скорость.
Согласно этому и местами поменять объявления переменных Serial и SoftSerial и схему переключить. Вроде и все. 2 строчки только и изменить
 

Emmys

New member
смысл я понял. надо как то поменять реальный ком который сидит на 0 и 1 ноге на 6и 7 допустим. а 6 и 7 наоборот посадить на 0 и 1
 

Victor

Administrator
Команда форума
смысл я понял. надо как то поменять реальный ком который сидит на 0 и 1 ноге на 6и 7 допустим. а 6 и 7 наоборот посадить на 0 и 1
верно, но тогда вам понадобится USB-TTL чтобы подключить его к 6и7 и подключится терминалом туда, т.к. USB Arduino уже нельзя будет использовать, т.к. RX TX (аппаратный UART) уже будет занят ESP. С Arduino Mega таких проблем нет - у нее два аппаратных UART.
 

Emmys

New member
На самом деле пока все таки не очень понятно. написал простой скетч как показано ниже. подключил вай фай к ноге 0 и 1. на время прошивки отключаю вай фай т.к. я уже занял получается ногу и прошить не удается с подключением. без подключения все ок.

теперь думаю так:
1. что бы законфигурировать вай фай мне нужно просто одна команда. могу я её отправить благодаря драйверу и USB шнурку. которая получается пошлет на нужной скорости прямо в wifi
2. для дебага я могу подключить LSD дисплей, могу просто отправлять себе UDP пакет с нужной информацей - т.е. в дальнейшем мне сом не нужен и думаю особого смысла пытаться его оставить - нет.
3. после настройки вай фая пользователь будет получатьвсю информацию от устройства уже по вай фай

и так я прошил и судя по скетчу все что я шлю в него принимается и должно идти на вай фай, а команда Serial.print(command); - должна передать команду в вай фай.. но что то не так идет. просто получаю ответ в COM
еще есть мысли по поводу read wrrite через Serial - возможно как то через них нужно... пока не ясно как сдделать элементарный обмен. диод синий не мограет

Код:
[/B]
[B]void setup()
{
  Serial.begin(115200);
}
void loop()
{


  if(Serial.available())
  {

  String command="";
  
  while(Serial.available()) // read the command character by character
  {
  // read one character
  command+=(char)Serial.read();
  delay(1);
  }
  Serial.print(command);
  
  }
}
 
Последнее редактирование:

Emmys

New member
я был не прав. послал оооооооооооооооооочень длинную строку из цифр. синий диод могрнул едва заметно. скорость то высокая теперь. вероятно что команды идут прямо на ESP8266
 

Victor

Administrator
Команда форума
как я понял по скетчу у вас компьютер подключен к ардуино через arduino USB, а ESP подключен на 01?
Это неправильное подключение. Ничего хорошего из этого не выйдет. Нельзя вот так три устройства подключать в кучу к одному UART
 

Emmys

New member
вот я пока не понимаю этот момент. как я отключу USB COM
и оставлю только ESP8266
и еще прошивку надо заливать
 

Victor

Administrator
Команда форума
вот я пока не понимаю этот момент. как я отключу USB COM
и оставлю только ESP8266
Вы хотите задействовать три устройства
1. Arduino (будет крутить скетч)
2. Компьютер (терминал)
3. ESP

В схеме, когда мы подключали и комп к USB и ESP к 0,1 для прошивки - мы блокировали чип ардуины RESET-GND и у нас было только устройства соединенных между собой.
Если убираем перемычку RESET-GND, то активируется чип, и получается что на ногах его аппаратного UART приходят одновременно сигналы от двух устройств - компа и ESP - поэтому так нельзя.

Возможно сделать так:
ESP к 0,1 Arduino на ее аппаратный UART
А компьютер, через USB-TTL подключаем на 6,7 arduino
Пишем скетч, принимаем данные через SoftSerial с компьютера, отправляем в Serial на ESP.
 

Emmys

New member
я хорошо подумал и хотел бы обойтись без UART и лишних заморочек с софтверным 6,7 комом
если учесть во внимание следующий момент, что устройство в рабочем стостоянии будет без подключения к компьютеру - наверное не нужеен мне этот самый ком?
я же могу отключить на время прошивки одну ногу с RX или TX и в таком случае у меня все прошивается. мне только один раз залить работающий скетч и все.
или как вариант поставить переключатель на корпусе- отключающий ноги RX и TX если мне нужно по COM законфигурировать в первый раз имя роутера и пароль с использованием которых ESP8266 должен подключиться к моей сети. - отключил RX TX - получил команду по USB, записал в EPPOEM , И при старте оттуда каждый раз выполнять оттуда эту самую команду (команды) на конфигурацию wifi когда микруху будет подключена с ногами
 
Последнее редактирование:

Emmys

New member
я видоизменил тестовый скетч.. но пока ничего не выходит. питание подаю отдельно на USB 5 вольт НЕ ОТ ПК, от зарядника телефона.
по идее после подачи питания должен подняться север.
я хотел на порт 51234 послать любой мусор и получить зависание тут while (true) { Serial.println("AT"); }
наблюдая постоянное свечение синего диода ...
я хочу убедиться что написав Serial.println("AT") например я посылаю команду именно ESP8266
но пока не вышло. буду думать.

Код:
[/B]
[B]void setup()
{


  Serial.begin(115200);



sendData("AT+RST\r\n",2000);
sendData("AT+CWMODE=1\r\n",1000);
sendData("AT+CIPMUX=1\r\n",1000);
sendData("AT+CIPSERVER=1,51234\r\n",1000);
sendData("AT+CWJAP=\"router\",\"777877787778\"\r\n",1000);


}
void loop()
{


  if(Serial.available())
  {

  // the following delay is required because otherwise the arduino will read the first letter of the command but not the rest
  // In other words without the delay if you use AT+RST, for example, the Arduino will read the letter A send it, then read the rest and send it
  // but we want to send everything at the same time.
  
  
  String command="";
  

  while(Serial.available()) // read the command character by character
  {
  // read one character
  char c=Serial.read();
  command+=c;
  //  Serial.write(c);
  
  delay(1);
  
  while (true) {
  Serial.println("AT");
  }
  
  }
  

  
  }
}











String sendData(String command, const int timeout)
{
String response = "";
Serial.print(command); // send the read character to the esp8266
long int time = millis();
while( (time+timeout) > millis())
{
while(Serial.available())
{
// The esp has data so display its output to the serial window
char c = Serial.read(); // read the next character.
response+=c;
}
}


return response;
}
 

Victor

Administrator
Команда форума
наверное не нужеен мне этот самый ком
конечно, именно поэтому я и упоминал debug terminal - компьютер вам нужен только для отладки.
если вы его потом отключите - скетч переписывать не надо, оставляете как есть
а комп для отладки очень пригодится - можно в скетче в любом месте делать вывод значений переменных, например
 
Сверху Снизу