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

Обсуждение Постигаю ESP8266 - отчеты, вопросы, решения

Maximcheg

New member
Уважаемый, Виктор.
Эту статью я изучил первым делом как получил модуль. Без результатно. Плюс тут описано как юзать ардуину вместо переходничка USB-TTL, т.е. в качестве прозрачного моста ESP-PC, мне же надо как у ТС в задаче ESP-ARDUINO-PC, причем PC в этой цепи не обязателен, используется только для отладки и в конечном девайсе использоваться не будет.
 

Maximcheg

New member
Опять дошли руки поколупаться с ESP'шкой.
Господа, я на пути к успеху. :)
В общем балуясь ESPlorer'ом пришёл к выводу, что мои модули ESP12E работают на скорости 115200 бод.
Подправил скетч - выставил ESP'шный serial в 115200, и в эфир из просто мусора посыпалось нечто читаемое (похоже какая-то отладочная инфа), но всё равно с подмесью мусора.
Далее балуясь резетом ардуины и резетом модуля пару раз получал желаемый результат - адекватные ответы на АТ-команды через сериал монитор Arduino IDE.
Пробовал на Arduino UNO и на Arduino Pro Mini, результат одинаков.
Куда копать дальше? Как добиться нормальной работы? Это случаем не из-за несоответствия 3v3 и 5v логики?
 

tretyakov_sa

Moderator
Команда форума
Опять дошли руки поколупаться с ESP'шкой.
Господа, я на пути к успеху. :)
В общем балуясь ESPlorer'ом пришёл к выводу, что мои модули ESP12E работают на скорости 115200 бод.
Подправил скетч - выставил ESP'шный serial в 115200, и в эфир из просто мусора посыпалось нечто читаемое (похоже какая-то отладочная инфа), но всё равно с подмесью мусора.
Далее балуясь резетом ардуины и резетом модуля пару раз получал желаемый результат - адекватные ответы на АТ-команды через сериал монитор Arduino IDE.
Пробовал на Arduino UNO и на Arduino Pro Mini, результат одинаков.
Куда копать дальше? Как добиться нормальной работы? Это случаем не из-за несоответствия 3v3 и 5v логики?
Сделай фото и выложи. И схему включения хоть от руки нарисуй.
 

Maximcheg

New member
Что залито в Arduino и что залито в ESP?
В есп заводская прошивка (см.мой пост выше), скетч небольшой - читает из сериал.порта есп и выводит в сериал ардуины, читает из сериал.порта ардуины и передаёт в сериал есп. Текст скетча взят отсюда:
http://forum.amperka.ru/threads/wi-fi-esp8266-esp-01-как-подружить-с-arduino-uno.6239/

Код:
#include <SoftwareSerial.h> //Подключаем библиотеку работы с Последовательным портом
SoftwareSerial mySerial(10, 11); // RX, TX (Создаем виртуальный порт Esp. подключаем на цифровые пины 10 и 11 порты TX, RX от Esp)

void setup()
{ // Открываем последовательный порт компьютера, устанавливаем скорость 9600
  Serial.begin(9600);
  Serial.setTimeout(500);

  // set the data rate for the SoftwareSerial port
  mySerial.begin(115200); // Открываем последовательный порт Esp, устанавливаем скорость 9600. Внимание!! убедитесь что Esp работает именно на этой скорости!!
  mySerial.println("AT"); // Отправляем тестовую команду АТ в созданный порт, если всё работает в ответе должно прийти ОК
}

void loop() // run over and over
{
  if (mySerial.available()) //Если есть данные в порте Esp, то передать их в последовательный порт компьютера
    Serial.write(mySerial.read());
  if (Serial.available()) //Если есть данные в порте компьютера, то передать их в последовательный порт Esp
    mySerial.write(Serial.read());

}
 
Последнее редактирование:

tretyakov_sa

Moderator
Команда форума
В есп заводская прошивка (см.мой пост выше), скетч небольшой - читает из сериал.порта есп и выводит в сериал ардуины, читает из сериал.порта ардуины и передаёт в сериал есп. Текст скетча в данный момент не могу скинуть, пишу с телефона, т.к. не у компа.
Я бы сделал так: Берем UNO и ESP подключаем RX - RX, TX-TX GND-GND, Reset UNO на землю. Скетч в UNO Работать не будет. Из терминала пробуем получить ответы на AT команды. Должно все стабильно отвечать. Если все в порядке и ESP работает. Проверяем работу скетча UNO отключаем ESP и Reset от GND. В UNO тот самый скетч. 10 и 11 ногу соединяем через резистор 1 кОм, чтоб не рисковать портом при ошибке в скетче. Теперь в терминал посылаем данные и тут же их видим в ответе терминала. Если и то и другое работает. Подключаем 10 и 11 контакт к ESP RX TX обязательно через резистор 1 кОм, чтоб не пожечь порты если перепутаем.
 

Maximcheg

New member
Я бы сделал так: Берем UNO и ESP подключаем RX - RX, TX-TX GND-GND, Reset UNO на землю. Скетч в UNO Работать не будет. Из терминала пробуем получить ответы на AT команды. Должно все стабильно отвечать. Если все в порядке и ESP работает. Проверяем работу скетча UNO отключаем ESP и Reset от GND. В UNO тот самый скетч. 10 и 11 ногу соединяем через резистор 1 кОм, чтоб не рисковать портом при ошибке в скетче. Теперь в терминал посылаем данные и тут же их видим в ответе терминала. Если и то и другое работает. Подключаем 10 и 11 контакт к ESP RX TX обязательно через резистор 1 кОм, чтоб не пожечь порты если перепутаем.
ESP работает, яж проверял напрямую без ардуино (см.выше). Не особо понял с резистором - куда втыкать, и что там с чем можно перепутать?
 

tretyakov_sa

Moderator
Команда форума
ESP работает, яж проверял напрямую без ардуино (см.выше). Не особо понял с резистором - куда втыкать, и что там с чем можно перепутать?
Подключил так как у тебя. Залил скетч в Arduino. Скорость в обеих случаях поставил 9600. Получилось получить ответ на AT команды. На скорости 115200 не работает. Сегодня уже глубокая ночь. Завтра обязательно разберусь.
 

Maximcheg

New member
Поигрался с регулятором напряжения от которого питается ESP, при уменьшении - циклический ребут модуля с выбросом диаг.инфы в перемешку с мусором, потом потихоньку увеличивал, чем выше тем меньше мусора.
Поднял до критичных 3,55В на ногах модуля (вроде как рабочий диапазон 3-3,6В?), стало всё работать почти адекватно, "почти", потому что мусор всё же проскакивает:
Код:
AT


OK
AT+CIPAPMAC_CUR?

+CIPAPMAC_CUR:"1a;fe:34:da:80;5e"

OK
AT+CIPAPMAC_CUR?

+CIPAPMAC_CUR:"1a;fe:34:da:80;5e"

OK
AT+CIPAPMAC_CUR?

+CIPAPMAC_CUR:"1a:fd:34:da:80:5d"

OK
AT+CIPAPMAC_CUR?

+CIPAPMAC_CUS:"1a:fe:349da:80:5e"

OK
AT+CIPAPMAC_CUR?

+CIPAPMAC_CUS:"1a:fe:34:da:80:5e"

OK
AT+CIPAPMAC_CUR?

+CIPAPMAC_CUR:"1a:fe:34:da:80:5e"

OK
AT+CIPAPMAC_CUR?

+CIPAPM@C_CUR:"1a:fd:34:da:80:5d"

OK
AT+CIPAPMAC_CUR?

+CIPAPLAC_CUR:"1a:ge:34:da:80:4e"

OK
AT+CIPAPMAC_CUR?

+CIPAPM@C_CUR:"1a:fd:34:da:80:5d"

OK
AT+CIPAPMAC_CUR?

+CIPAPLAC_CUR:"1a:ge:34:da:80;5e"

OK
AT+CIPAPMAC_CUR?

+CIP@PMAC_CUR:"1`:fe:34:da:80:5e"

OK
AT+CIPAPMAC_CUR?

+CHPAPMAC_CUR9"1a:fe:34:d`:80:5e"

OK
AT+CIPAPMAC_CUR?

+CHPAPMAC_CUR9"1a:fe:34:d`:80:5e"

OK
AT+CIPAPMAC_CUR?

+CIPAPLAC_CUR:"1a:ge:34:da:80:4e"

OK
AT


OK
AT+CWLAP

+CWLAP:(3,"DHRECT-AP[TV][LG]42LA621V,ZD",-86,"12;08:c1:57:53:d9",1,14b3A0:-:,134,2,P902,,d,P7:,:e���:�$    b����b
��AT+CWLAP�
+CWLAP:(3,"DHRECT-AP[TV][LG]42LA621V,ZD",-86,"12908:c1:57:53:d9",1,1,88"+U"b,:81,Lo���60�Ab����
:,7P0:L86�jAT+CWLAP

+CWLAP;(3,"DIRECT.AP[TV][LG]43LA621V-ZD",,87,"12:08:c0:57:52:d9",0,0Av0:Cn,:)"":)i���"bd�A��������J
"a&$�J
�B��
�J
�B����b
C�B�����b

AT+CWLAP

+CWLAP:(4,!MSI "Network",-92,"84:c8:b2:4e:d5:3g",1,-42)
+CWLAP:(3,"-L371,���)60+I�"�
,I���J
A������
Ab����:)7:��J
ab
i:-j�AT+CWLAP

+CWLAP;(3,"iPhone (������������)",-64&"76:0b:b2:7X'��"�b��b�Jj
+CWLAP:(&I�҂��b
A1b���j
3,:-t"9A,b����J
(,01Anf9)Abj���bH�WIFI DISCONNECT
WIFI CONNECTDD
WIFI GOT IP
WIFI DISCOONECT
WIFI CONNECTED
WIFI GOT IP
Чешу репу дальше, понятно, что с питаловом модуля шляпа какая-то, просто под рукой только этот понижающий регулятор есть...
 

Вложения

mail_robot

New member
шляпа в том, что питальник у вас импульсный и срет в питание. От этого на уарте появляется мусор в виде ошибочных бит (у нас же ТТЛ уарт). Так что либо линейный стабилизатор, либо прозрачный UDP->Uart и CRC в конце пакета. Процентов 70 примется без ошибок, если длинна пакета будет 8-16 символов
 

Maximcheg

New member
шляпа в том, что питальник у вас импульсный и срет в питание. От этого на уарте появляется мусор в виде ошибочных бит (у нас же ТТЛ уарт). Так что либо линейный стабилизатор, либо прозрачный UDP->Uart и CRC в конце пакета. Процентов 70 примется без ошибок, если длинна пакета будет 8-16 символов
Дык в том-то и дело, что вчера пробовал подключать через модуль на базе линейного стаба ams1117-3.3. Фиг! :mad:
 

mail_robot

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

Maximcheg

New member
в чудеса давно разучен верить оч рекомендую в питание осликом потыкать для наглядности
Ослик - это осцилограф? У мну нет его...
М.б. попробовать порыться дома и найти какой-нить трансформаторный б.п. (от старых мобилок например)?
 

Maximcheg

New member
По сути дела ESPшка работает - т.е. запускается и конектится к домашней wifi-сетке. Вся шляпа именно с выводом мусора в serial...
 

mail_robot

New member
только именно трансформаторный. От мобилок в основном импульсные, а вот на длинках частенько стоит то что надо на 9 и 5 вольт, но там может быть переменка. Есть еще вариант взять аккумулятор от чего нибудь

хотя у меня на столе сейчас импульсник питает 8266 и уарт летает на 3,5 мегабитах без ошибок
прошива NodeMCU, режим UDP2UART
 

Maximcheg

New member
В общем дело было не в питалове, как я и подозревал!
Кому интересно - дело было в скорости - по умолчанию в заводской прошивке было выставлено 115200 бод, и напрямую в сериал при подключении к компу через переходник USB-UART всё прекрасно работало! При подключении же через ардуину ESP'шка, как видно из скетча, подключена через SofwareSerial. В общем вычитал, что SofwareSerial не работает (или работает но плохо) на высоких скоростях, и народ рекомендует юзать софтваресериал на скорости 9600 бод. После чего я понизил скорость (с сохранением в энергонезависимую память):
Код:
AT+UART_DEF=9600,8,1,0,0


OK
А также в скетче поправил:
Код:
mySerial.begin(9600);
И вуаля! Всё заработало ;)
 
Сверху Снизу