Robotdyn Mega + WiFi R3 connect Blynk

Старик Похабыч

★★★★★★★
14 Авг 2019
4,267
1,303
Москва
Ну так то у ардуино мега есть 3 порта UART, поэтому там и есть цифры.
Вы когда данные с ESP передаете, то какой Serial используете ? Тот же надо и для получения использовать.
 

tutvam

✩✩✩✩✩✩✩
22 Фев 2022
7
0
Фрагмент на Mega
ESP->Mega

И здесь все работает
C++:
  Serial.begin(115200);
  Serial3.begin(115200);

// Проверка события на порту Serial3
void serialEvent3() {
  while (Serial3.available()) {
    // Чтение данных из порта Serial3
    char inChar = Serial3.read();
    // Вывод прочитанных данных в порт Serial
    Serial.write(inChar);
// Поиск команды в полученных данных (команда должна быть в квадратных скобках)
    inString += inChar;
    if (inChar == ']')

      {
        Serial.println("Wrong command");
      }
      inString = "";
    }
  }
По идее должно быть зеркально, на ESP или я что-то недопонимаю.
 
Изменено:

Старик Похабыч

★★★★★★★
14 Авг 2019
4,267
1,303
Москва
@tutvam,
Вот это:
или я что-то недопонимаю
Serial и Serial3 это физически разные пары контактов на плате. У платы есп (какой именно ?) может не быть 3 сериал портов.
Т.е. если вы привязали веревку от 3-го дерева одного участака (мега) до какого то дерева другого участка (есп) , то совсем не значит что там буде дерево №3.
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,267
1,303
Москва
А, это бутерброд. Но тем не менее все равно у них у каждого свой набор интерфейсов, который зависит от микропроцессора , а не от платы.Вот например 8266-01 на отдельной плате:
1646922879752.png
Тут rx и tx в одном экземпляре, соотв 1 serial
 

tutvam

✩✩✩✩✩✩✩
22 Фев 2022
7
0
Избыточное цитирование
@tutvam, вам в #27 задали вопрос:

ответьте
Это на Меге, читает с Serial3 передает в Serial.

// Проверка события на порту Serial3
void serialEvent3() {
while (Serial3.available()) {
// Чтение данных из порта Serial3
char inChar = Serial3.read();
// Вывод прочитанных данных в порт Serial
Serial.write(inChar);

C ESP, как я понимаю, Serial0

А, это бутерброд. Но тем не менее все равно у них у каждого свой набор интерфейсов, который зависит от микропроцессора , а не от платы.Вот например 8266-01 на отдельной плате:
Посмотреть вложение 35142
Тут rx и tx в одном экземпляре, соотв 1 serial
В моем бутерброде установлен ESP8266EX
 

tutvam

✩✩✩✩✩✩✩
22 Фев 2022
7
0
Оформи код соответствующим тэгом
вот его и используйте. Только сериал0 не бывает, бывает просто сериал

Это я в курсе, что Serial, но не работает


Вот код на стороне ESP, но не работает

Смущает, то что чтение из Serial и вывод снова в этот же Serial.


C++:
// Проверка события на порту Serial


void serialEvent() {


  while (Serial.available()) {


    // Чтение данных из порта Serial


    char inChar = Serial.read();


    // Вывод прочитанных данных в порт Serial


    Serial.write(inChar);


// Поиск команды в полученных данных (команда должна быть в квадратных скобках)


    inString += inChar;


    if (inChar == ']')



      {


        Serial.println("Wrong command");


      }


      inString = "";


    }


  }
 
Изменено:

bort707

★★★★★★✩
21 Сен 2020
3,066
914
Вот код на стороне ESP, но не работает
Смущает, то что чтение из Serial и вывод снова в этот же Serial.
этот код и не может работать.
На вашей плате невозможно подключить ЕСП одновременно к Меге и к терминалу
Принимать данные с Меги на ЕСП вы можете, а выводить в монитор - нет.
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,267
1,303
Москва
Можно для начала сделать на есп эхо, которое что видит на входе сериала то и отправляет на выход.
C++:
while(Serial.available() )
Serial.write(Serial.read());
А в меге будет что то типа:

C++:
while(Serial.available() ) Serial3.write(Serial.read());
while(Serial3.available() ) Serial.write(Serial3.read());
Это для теста, что все соединено и работает как надо
 

tutvam

✩✩✩✩✩✩✩
22 Фев 2022
7
0
Оформи код соответствующим тэгом
На ESP прописал
C++:
void setup() {
  Serial.begin(9600);

}

void loop() {

while(Serial.available() )

Serial.write(Serial.read());

}
При включении и тишина
1647029954862.png

На меге
C++:
void setup() {
  Serial.begin(9600);
  Serial3.begin(9600);

}

void loop() {
while(Serial.available() ) Serial3.write(Serial.read());
while(Serial3.available() ) Serial.write(Serial3.read());
}
Вообще тишина
 
Изменено:

bort707

★★★★★★✩
21 Сен 2020
3,066
914
OMG...
и кто тут кому что будет передавать. по вашему?
У вас и мега и Есп слушают...

Вы чего добиться-то хотите? зачем вам надо получить что-то с Есп ? И куда это самое надо получить - на мегу или на ПК?
 

tutvam

✩✩✩✩✩✩✩
22 Фев 2022
7
0
@bort707,

Идея в такая к Меге собираюсь, на даче подключить, по проводам несколько датчиков dht-11, DS1820.
Есть еще ESP 8266 wifi к нему в телице хочу подключить датчик температуры и влажности.
Хотелки
Чтобы данные скидывались на SD карту, после вытаскивавилсь на web страницу в виде графиков.
Показания датчиков будут передаваться с удаленных ESP на ЕSP бутерброда и тоже консолидироваться на SD карту.

На Меге с датчика DH-11 данные скидываются на SD, это реализовано.
Почему собираюсь подключать к Меге датчики - большое количество разъемов
На ESP который в бутеброде поднять www-сервер, с инета брать дату, это получилось.


Сейчас, по проводам у меня реализовано на CH340, подключено несколько датчиков DS1820, далее на router с openwrt, на нем поднят www
На другом роутере vpn для доступа к первому по wifi и раздачу инета.

Это выглядит так, хотелось бы добиться такого на этом бутерброде.
1647035174016.png
 

bort707

★★★★★★✩
21 Сен 2020
3,066
914
это все здорово, но все равно непонятно. зачем вам с ЕСП отправлять что-то на внешний сериал.
Все что вы расказали - это только передача с Меги на ЕСП и обратно. Это у вас и так работает, насколько я понял
 

tutvam

✩✩✩✩✩✩✩
22 Фев 2022
7
0
@bort707,
Serial для отладки.
И я пока не понял/не знаю как c mega вставить данные в web страницу на esp.

@Старик Похабыч,
Предполагаю да, так как данные с esp попадают на mega.
 

kazbekiashd

✩✩✩✩✩✩✩
31 Янв 2023
1
0
Добрый день. Сделал все как было написано но после прошивки esp когда я пишу команду AT выдаёт ERROR. Что можно сделать?