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

Esp8622 / SoftSerial.Find не получается прочитать нужные данные

Dark

New member
Имеем:

-Ардуино нано (китайский аналог)

-wi fi модуль esp8622-подключается к ардуине через SoftSerial

Общая задумка-ардуина должна получать через модуль esp8622 данные с локального сервера-дергать текстовый файл c содержанием предположим test01 или test02 , в зависимости от значений будут дергаться нужные пины ардуины.

Что было сделано-сначала через АТ команды пробовал-сильно муторно. Но как вариант да. Пока не очень понравилось.
Потом нашел библиотеку
https://github.com/anakod/ESP8266pro

Вот пример с их библиотеки:
Код:
// This software distributed under the terms of the MIT license
// (c) Skurydin Alexey, 2014
//
// Before beginning of work:
// 1. Update ESP8266 firmware to lastest version before using this library (at least AT v0.20)
// 2. Verify, what WiFi module UART works on 9600 speed (also you can choose different speed,
//    but don't forget about software serial limitations)
// 3. Increase _SS_MAX_RX_BUFF in Arduino SoftwareSerial.h to prevent data loss (because by
//    default, Arduino has very small buffers for software and hardware serials). I recommend
//    size of 256 bytes for that.
//
// This example discover how you can send HTTP requests/download remote pages
//

#include <SoftwareSerial.h>
#include <ESP8266pro.h>
#include <ESP8266proClient.h>

SoftwareSerial espSerial(9, 10); // RX, TX

ESP8266pro wifi(espSerial, Serial); // Serial, DebugSerial

const char* ssid = "YouWiFi";
const char* password = "youpasswordhere";

void setup()
{
  espSerial.begin(9600);
  Serial.begin(9600);
 
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
  Serial.println("Starting");
 
  // Initialize ESP
  wifi.begin(eODM_None); // Disable all debug messages
 
  // Connect to WiFi network
  // In future ESP should automatically reconnect
  // to this network, if requried
  do
  {
    if (!wifi.stationConnect(ssid, password))
      delay(3000);
  } while (wifi.stationIP() == NULL_IP);
 
  Serial.print("ESP IP: ");
  Serial.println(wifi.stationIP());
}

void loop()
{
  // Send request
  ESP8266proClient con(wifi, printResponse);
  con.connectTcp("192.168.0.2", 80);
  con.send("GET /test.txt HTTP/1.0\r\nHost: Esp8622\r\n\r\n");
  con.waitResponse();
  con.close();
 
  delay(5000);
}

// Optional method to process remote response
void printResponse(ESP8266proConnection* connection,
          char* buffer, int length, boolean completed)
{
  Serial.print(buffer);
}
Соответственно настраиваю под себя, все работает, в монитор последовательного порта сыпятся ответы от сервера, и там есть эти нужные мне строчки. Но вот не догоню, как их получить.

Почему то
Код:
 if(Serial.find("tes01")){

  
    digitalWrite(2, HIGH);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
    digitalWrite(5, LOW);
  }
не срабатывает. Это условие ставил после con.waitResponse();
Простая задача, но не пойму, данные в порт не знаю, в каком виде приходят , дебегера нет в среде ардуины, как то стопорнулся я... Куда копать?

Отказаться от ардуины нет возможности, так как в ESP8622-01 , именно такая у меня, нет достаточного кол-ва портов для меня, покупать другую версию нет времени/денег.
Многие ругаются на такую связку, но что имеем , то имеем.
 

Vitaly

Member
есть вариант не избавлясь от ардуины, перейти в есп на ардуино иде для есп
вся работа с wifi и сетью останется в ардуино есп, а сериал обмен можно будет сделать более контролируемым своими силами
 

Dark

New member
Ну вообщем то это все по сути одно и тоже примерно-использовать ли IDe или библиотеку.
 

Vitaly

Member
примерно одно, но при всех проблемах со стабильностью у ардуино есп библиотек, оно получилось намного живее чем с АТ прошивкой

лично в моем случае конечно
да и отлаживать вышло проще, работу с веб более продвинутую и прочее
 

Dark

New member
Я вчера пытался ее поставить, но не запустилось из за каких то ошибок с синхронизацией с модулем ,хотя explorer нормально все подключился и отдавал ат команды.
 
Сверху Снизу