abr_esp2866
New member
Добрый день. Начал изучение esp-модуля с вот такой статьи: ESP8266 и Arduino, подключение, распиновка
Первым делом собрал вот такую схему:
только без диода.
Здесь всё отлично работает. Все AT команды проходят. Получилось открыть 23-й TCP порт и подключится телнетом. Скорость UART запомнил: 112500.
Дальше я хочу теперь, чтобы с модулем общалась сама ардуинка. И вот тут возникли проблемы. Для начала нашёл простенький скетч, который просто принимает команду через Serial на ардуину, а она в свою очередь должна команду кинуть на esp:
И вот такой простенький скетч у меня и не работает. Монитор порта на компе выдаёт какие-то рандомные наборы символов. Я пробовал вслепую отправить команды для открытия порта telnet на модуле, как делал ето напрямую, но ничего не получилось. То есть, получается, сама ардуино уже неправильно передаёт данные на модуль. Соответственно, тот матерится и что-то отдаёт ардуинке, которая компу отдаёт уже непонятный набор символов.
Пробовал менять скорость обмена ардуино <-> модуль - так вобще ничего не отдаётся на комп. Что, в целом, логично: скорости-то подобраны. Ведь модуль работал на 112500, ну и соответственно, комп <-> arduino тоже работают и на той же скорости.
В общем, вопрос. Как их подружить?
Первым делом собрал вот такую схему:
только без диода.
Здесь всё отлично работает. Все AT команды проходят. Получилось открыть 23-й TCP порт и подключится телнетом. Скорость UART запомнил: 112500.
Дальше я хочу теперь, чтобы с модулем общалась сама ардуинка. И вот тут возникли проблемы. Для начала нашёл простенький скетч, который просто принимает команду через Serial на ардуину, а она в свою очередь должна команду кинуть на esp:
Код:
#include <SoftwareSerial.h> //Библиотека для обмена данными через UART
SoftwareSerial mySerial(6, 5); //RX - шестой порт, TX - пятый
void setup()
{
Serial.begin(112500); //Скорость обмена данными комп <-> arduino
mySerial.begin(112500); //Скорость обмена данными arduino <-> esp
//mySerial.println("AT"); //После инициализации пробовал сразу отправить AT. Потом закомментил, чтобы не мешалась.
}
void loop()
{
if (Serial.available()) { //Если ввёл данные с компа
mySerial.println(Serial.readString()); //Отправляю их на esp
}
if (mySerial.available()) { //Если esp отдал какие-то данные
Serial.println(mySerial.readString()); //Выводим их на компе
}
}
Пробовал менять скорость обмена ардуино <-> модуль - так вобще ничего не отдаётся на комп. Что, в целом, логично: скорости-то подобраны. Ведь модуль работал на 112500, ну и соответственно, комп <-> arduino тоже работают и на той же скорости.
В общем, вопрос. Как их подружить?