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

Помогите "подружить ESP и Arduino

Bod.Petr

New member
Здравствуйте, вопрос следующий. ESP соединена с arduino по RX-TX. На ESP команды приходят через mqtt сервер с телефона, все прекрасно работает, но мне не хватает его мощности, решил подключить к ардуино, так вот, команды на ардуино, вроде как приходят, в порту они отображаются, но почему то он их не исполняет, мб чего не так делаю?
P.S. -127.00 на скрине это показания температуры(датчик не подключен.Безымянный.png
 

Юрий Ботов

Moderator
Команда форума
Тут уже недавно было когда человек шлет на Serial а на другой плате ждет с Serial ответа, причем оба Serial-a подключены через usb/serial к компьютеру...
 

CodeNameHawk

Moderator
Команда форума
но почему то он их не исполняет, мб чего не так делаю?
Строка вроде обрамляется ""
Код:
if (val == "test => led1")
В сериал данные поступают по одному байту ( символу), в том числе помехи и т.д.

Обозначьте начало и конец передачи передачи "своим" символом. например как в JSON "{" и "}"
Логика работы такова, сравниваете принятый символ с "{" , если есть считываете все до символа "}" и только тогда обработка.
 
Последнее редактирование:

CodeNameHawk

Moderator
Команда форума
Вот кусок из рабочего проекта
Код:
  if (Serial.available() > 0)
  { //если есть доступные данные
    // считываем байт
    odczyt = Serial.read();
    if (odczyt == '{') //szukamy poczatek linii
    {
      i = 0; //na poczatek buffera
      odczyt_buf[i] = odczyt;
      i = i + 1;
      posylka_full = false;
      start_time = millis();
      do
      {
        if (Serial.available() > 0)
        {
          odczyt = Serial.read();
          odczyt_buf[i] = odczyt;
          i = i + 1;
          if (i >= buf_max)
          {
            posylka_full = false;
            break;
          }
          if (odczyt == '}')
          {
            posylka_full = true;
            odczyt_buf[i + 1] = 0;
            break;
          }
        }
        now_time = millis();
        if ((now_time - start_time) > 5000)
        {
          posylka_full = false;
          break;
        }
      }
      while (1);
      if (posylka_full == true)
      { //otrzymali pelna posylke, rozlozyc do peremennych
        //        Serial.println();
        //        Serial.println("Cala posylka");
        //        Serial.println(i);
        for (int cykl = 0; cykl < i; cykl++)
        {
          Serial.print(odczyt_buf[cykl]);
        }

        JsonObject& root = jsonBuffer.parseObject(odczyt_buf);
 

Bod.Petr

New member
Вот кусок из рабочего проекта
Код:
  if (Serial.available() > 0)
  { //если есть доступные данные
    // считываем байт
    odczyt = Serial.read();
    if (odczyt == '{') //szukamy poczatek linii
    {
      i = 0; //na poczatek buffera
      odczyt_buf[i] = odczyt;
      i = i + 1;
      posylka_full = false;
      start_time = millis();
      do
      {
        if (Serial.available() > 0)
        {
          odczyt = Serial.read();
          odczyt_buf[i] = odczyt;
          i = i + 1;
          if (i >= buf_max)
          {
            posylka_full = false;
            break;
          }
          if (odczyt == '}')
          {
            posylka_full = true;
            odczyt_buf[i + 1] = 0;
            break;
          }
        }
        now_time = millis();
        if ((now_time - start_time) > 5000)
        {
          posylka_full = false;
          break;
        }
      }
      while (1);
      if (posylka_full == true)
      { //otrzymali pelna posylke, rozlozyc do peremennych
        //        Serial.println();
        //        Serial.println("Cala posylka");
        //        Serial.println(i);
        for (int cykl = 0; cykl < i; cykl++)
        {
          Serial.print(odczyt_buf[cykl]);
        }

        JsonObject& root = jsonBuffer.parseObject(odczyt_buf);
спасибо, буду разбираться) но походу, туповат я)):D:D:D
 
Сверху Снизу