Страница 1 из 2

Проблема с отправкой данных в МЖД.

Добавлено: Вт мар 13, 2018 7:53 pm
karsotrade
Помогите пожалуйста, возникла небольшая проблема с отправкой информации с Ардуино через изернет шильд w5100 в Мажордомо.
Отправляю состояние кнопки в таком виде:
СпойлерПоказать
if (AutoStatus == 0) {
if (digitalRead(SetAuto) == 1) {
digitalWrite(LedAuto, HIGH);
digitalWrite(LedManual, LOW);
AutoStatus = 1;
sprintf(buf, "GET /objects/?object=SetAutoStatus&op=m&m=SetAutoStatusExt");
sendHTTPRequest();
}
}
А вот и сам запрос на сервер (МЖД):
СпойлерПоказать
// Функция отправки HTTP-запроса на сервер
void sendHTTPRequest() {
Serial.println(buf);
if (client.connect(server2, 80)) {
Serial.println("OK");
client.println(buf);
client.println("Host: 192.168.21.80");
client.println();
delay(2000);
client.stop();
} else {
Serial.println("FAILED");
client.stop();
}
}
Всё замечательно работает, но как только выключаю МЖД (останавливаю программу), начинает контроллер дико зависать именно на выполнении функции отправки запроса. Причём, если просто выдернуть изернет провод из компа, то таких тормозов нет, а если выключить МЖД - подвисает. перезагрузки ничего не дают, надо что то добавлять в код, что бы без МЖД всё работало без тормозов. Я не так силён в программировании. Подскажите пожалуйста что сделать.

Re: Проблема с отправкой данных в МЖД.

Добавлено: Вт мар 13, 2018 8:18 pm
olehs

Код: Выделить всё

  Ethernet.begin(mac, ip);
  W5100.setRetransmissionTime(500);
  W5100.setRetransmissionCount(3);
поиграйтесь параметрами. в примере задержка будет 1,5 сек.

Re: Проблема с отправкой данных в МЖД.

Добавлено: Вт мар 13, 2018 8:49 pm
karsotrade
olehs писал(а):

Код: Выделить всё

  Ethernet.begin(mac, ip);
  W5100.setRetransmissionTime(500);
  W5100.setRetransmissionCount(3);
поиграйтесь параметрами. в примере задержка будет 1,5 сек.
Матерится при компиляции:
Teplica4.ino: In function 'void setup()':
Teplica4:82: error: 'W5100' was not declared in this scope
Multiple libraries were found for "Ethernet.h"
Used: C:\Users\Sergejs\Documents\Arduino\libraries\Ethernet
Not used: C:\Program Files (x86)\Arduino\libraries\Ethernet
'W5100' was not declared in this scope

Re: Проблема с отправкой данных в МЖД.

Добавлено: Вт мар 13, 2018 9:06 pm
olehs
наверное инклюда не хватает

Код: Выделить всё

#include <utility/w5100.h> 

Re: Проблема с отправкой данных в МЖД.

Добавлено: Вт мар 13, 2018 9:15 pm
karsotrade
olehs писал(а):наверное инклюда не хватает

Код: Выделить всё

#include <utility/w5100.h>   
И как всегда Вы правы! Огромнейшее спасибо! Всё заработало!

Re: Проблема с отправкой данных в МЖД.

Добавлено: Вт мар 13, 2018 9:24 pm
serghei
Извините что встреваю , но эта проблема есть и в AMS на Меге ( с 8266 не замечал). То есть этот код надо добавить в инициализацию Етернета и проблема исчезнет ? Если нет МД , а функция отправки включена , то Мега стартует ооочень долго и жутко тормозит.

Re: Проблема с отправкой данных в МЖД.

Добавлено: Вт мар 13, 2018 9:32 pm
karsotrade
Ещё один вопрос: действительно ли необходимо прописывать задержку в функции отправки запроса на сервер (delay(2000);) или можно поменьше выставить?

Re: Проблема с отправкой данных в МЖД.

Добавлено: Вт мар 13, 2018 9:38 pm
olehs
serghei писал(а):Извините что встреваю , но эта проблема есть и в AMS на Меге ( с 8266 не замечал). То есть этот код надо добавить в инициализацию Етернета и проблема исчезнет ? Если нет МД , а функция отправки включена , то Мега стартует ооочень долго и жутко тормозит.
Да. У меня даже какое-то чувство что мы с Alex по этому поводу уже общались и он тестировал эти таймауты...

Re: Проблема с отправкой данных в МЖД.

Добавлено: Вт мар 13, 2018 9:41 pm
olehs
karsotrade писал(а):Ещё один вопрос: действительно ли необходимо прописывать задержку в функции отправки запроса на сервер (delay(2000);) или можно поменьше выставить?
Гляньте как я тут делал

Re: Проблема с отправкой данных в МЖД.

Добавлено: Вт мар 13, 2018 9:46 pm
serghei
Общались.....читал. Интересно , но этой проблемы нет на 8266 . Сейчас посмотрю на ESP32.
По поводу задержки. При частой отправке очень сильно возрастает загрузка Меги. Мощности отдаю всем стадом ( 14 значений ) одним запросом раз в 20 секунд. При этом наблюдается незначительный всплеск нагрузки.