• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Arduino и ESP8266 на 0 и 1 ноге

Emmy

Member
Добрый день.
Ранее я обращался на Ваш форум и Вы мне помогли разобраться с прошивкой и АТ командами для ESP8266
Для удобства даже собрал в корпусе программатора из ардуинки по вашей статье. Все работает на UNO (изначально я пытался подключить к ардине НАНО, но из за явно несогласованных каналов у меня WIFI прошивать не удавалось)
все эти этапы пройдены. прошивку обновлять научился. ответы получаю на скорости 115200 в UART COM режиме

Пришло время подключать к ардуине. Мне принципиально важно подключить ESP8266 на скорости 115200 к арудине.

Я оставил скорость 115200 и подключил к 0 и 1 ноге ардуины UNO
RX к TX, TX к RX

Добавил кнопку отключения и включения 3.3 на вай фае что бы переключаться между режимами wifi и режимом прошивки (что бы не было шума в момент загрузки прошивки и все загрузилось успешно)

Имеются следующие вопросы:
1. Питание. USB использует 0 и 1 нога,, ESP8266 использует 0 и 1 ногу. при подключение к ПК посредством USB кабеля - не мешает ли он работе ESP8266 ?
2. есть ли у вас статья по подключению ESP8266 к 0 и 1 ноге ардуине с примером скетча.
3. я взял программатор UART COM , взял оттуда RX и TX. подключил к 6 и 7 ноге , в скетче объявил его как ком. пишу Serial.println("AT"); и пытаюсь слушать нет ли прихода с Serial Ответа и отдать это в софтверный COM . но вместо ответа OK - я получаю АТ. иногда каким то чудом получаю ready среди мусора. но чаще всего просто получаю все то что передал в Serial . иногда в ответ мусор. на свои команды. синий диод моргает когда пишу Serial.println("AT");
есть конечно мысли что это все из за несогласованности каналов, к плате подключенно еще сд карта, ик диод, тразистор, ик приемник.
 

Emmy

Member
да, GND подключил (который рядом с TXом на ESP8266,)
получается я подключил всего 5 ног: 1 земля, RX,TX, и 2 питание на 3.3вольта
 

JustACat

Moderator
Команда форума
есть ли у вас статья по подключению ESP8266 к 0 и 1 ноге ардуине с примером скетча.
Есть целая куча примеров: http://esp8266.ru/forum/threads/sta...hivka-start-sdk-at-arduino-lua.157/#post-2834 в частности вот тут есть с картинками и ардуиной: http://digitrode.ru/computing-devic...a-osnove-arduino-i-wi-fi-modulya-esp8266.html
 

Emmy

Member
кое что подчерпнул, спасибо. попробую проверить . в частности использования Serial.find для отладки. if (Serial.find("ready")) { dbgSerial.println("WiFi - Module is ready"); }
я же пытался Serial.Println("AT"); while(Serial.available()) { считываю в переменную Serial.read(); } ответ отдаю так bgSerial.println(ВСЕ ЧТО СЧИТАЛ В ПЕРЕМЕННУЮ);
 

Emmy

Member
Victror да, подключил GND к ардине. питание от ардуины. внешне работает. диод мограет синий когда я посылаю АТ. через Serial.Println("AT"); с паузой.
 

JustACat

Moderator
Команда форума
Emmy, на самом деле кроме как для теста Serial.find применять не советую... Ваш путь в этом смысле более правильный.
Но вам с ним нужно разобраться...
Например, для отладки нужно написать в общий цикл (в loop) что-то вроде:
Код:
if(Serial.available()){
  bgSerial.write(Serial.read());
}
Ну или если вам нужно еще как-то обрабатывать то, что вы получаете, тогда так:
Код:
if(Serial.available()){
  byte b = Serial.read();
  bgSerial.write(b);
  // тут делаем что-то с символом/байтом в b, например, кладем его в некий буфер, либо сразу проверяем как-то
}
 

Emmy

Member
понял. спасибо.
а про питание. само подключение к USB не влияет на RX и TX если я ничего не делаю с комом?
 

JustACat

Moderator
Команда форума
Emmy, со слов, простите, сложно говорить... Честно, у меня уже голова пухнет от попыток въехать в разные описания разных людей :)
Вы либо схемку нарисуйте какую-нибудь, либо как-то еще покажите...
Схемку можно накидать в чем угодно. Например, в каком-нить http://fritzing.org/ или еще чем-то простеньком...
Вот как на этой схемке сразу более или менее понятно, что и куда подключено...
 

Emmy

Member
хорошо. пришлю такую схему через час как доберусь до дома
 

Emmy

Member
я извиняюсь - попробовал заново все и получилось.а вчера до ночи сидел и не мог сдеать.
TCP пакеты принимает и я вижу все что хочу.
у мменя вопрос. я ранее точно помню делал на UDP пакетах но сейчас не принимает их ни вкакую. была другая прошивка. не самая последняя. и роутер к сожалению я тоже обновлял прошивку. теперь не знаю где копать и как. UDP пакет я точно правильно отправляю. уверен

какие то нововведения были по UDP? есть ли разница сейчас что принимать на открытый порт
 

Emmy

Member
ранее я стартовал так
sendData("AT+RST\r\n",2000,true); // reset module
sendData("AT+CWMODE=1\r\n",1000,true); // configure as access point
sendData("AT+CIPMUX=1\r\n",1000,true); // configure for multiple connections 1
sendData("AT+CIPSERVER=1,51234\r\n",1000,true); // turn on server on port 80
sendData(команда на имя роутера и пароль)


и уже был готов приинмать пакеты UDP на порт 51234
 

JustACat

Moderator
Команда форума
Простите, а что такое sendData? Вы какую-то библиотеку используете для ардуино? Если да - то какую? И какая у вас сейчас прошивка на модуле ESP?
А так да, на последней прошивке 0.22 много нового было, что-то вполне могли изменить, и система команд некоторых поменялась, и имена команд.
 

Emmy

Member
sendData это Serial.print
ничего особенного

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




if(debug)
{
Serial.print(response);
return response;
}
return response;
}
 

Emmy

Member
вот посмотрите пожалуйста скриншот моими глазами
http://joxi.ru/V2VeZYphKXzVmv

ранее на старой прошивке я именно так же и отправлял ардуинке команду по UDP
в роутере - встроенными средствами я вижу что пакеты до роутера отправляемые через компьютер - доходят. что делает дальше с этими пакетами я не могу знать. надеюсь пересылает...
 

JustACat

Moderator
Команда форума
Emmy, вы не ответили, какая у вас сейчас прошивка ESP?

Update: если у вас 0.22 то судя по описанию AT команд 0.22 (найти последние доки можете тут), изменения действительно есть и AT+CIPSERVER – Configure as TCP server - то есть работает теперь только как TCP сервер...
А если нужно UDP, то нужно вроде как использовать AT+CIPSTART – Establish TCP connection or register UDP port, start connection - как раз оно...
 
Последнее редактирование:

Emmy

Member
честно сказать уже пробывал . искал в интернете и на одном сайте нашел подобное использование но пока не очень понятно
Serial.println("AT+CIPSTART=0,\"UDP\",\"192.168.255.255\",51234");
пробывал так же подсеть 255.255.255.255 указывать. все равно UPD не принимает. еще я не доконца уверен что я верно указал ковычки. он мне пишет что все норм а на самом деле может быть и не норм. ведь соединение то не устанавливается фактически. UDP без подключения как бы работает. а то что пишет что норм - мол просто сьел команду и возможно с ошибкой
 

Emmy

Member
2)Multiple connection
(+CIPMUX=1)
AT+CIPSTART=
<id><type>,<addr>,<port>
[,(<local port>),(<mode>)]

41 страница инструкции. и не разберешь есть ли ковычки где а где нет
 
Сверху Снизу