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

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

karsotrade
Сообщения: 119
Зарегистрирован: Пт июн 09, 2017 11:18 pm

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

Сообщение karsotrade »

Помогите пожалуйста, возникла небольшая проблема с отправкой информации с Ардуино через изернет шильд w5100 в Мажордомо.
Отправляю состояние кнопки в таком виде:
SPOILERSPOILER_SHOW
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();
}
}
А вот и сам запрос на сервер (МЖД):
SPOILERSPOILER_SHOW
// Функция отправки 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();
}
}
Всё замечательно работает, но как только выключаю МЖД (останавливаю программу), начинает контроллер дико зависать именно на выполнении функции отправки запроса. Причём, если просто выдернуть изернет провод из компа, то таких тормозов нет, а если выключить МЖД - подвисает. перезагрузки ничего не дают, надо что то добавлять в код, что бы без МЖД всё работало без тормозов. Я не так силён в программировании. Подскажите пожалуйста что сделать.
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am

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

Сообщение olehs »

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

  Ethernet.begin(mac, ip);
  W5100.setRetransmissionTime(500);
  W5100.setRetransmissionCount(3);
поиграйтесь параметрами. в примере задержка будет 1,5 сек.
karsotrade
Сообщения: 119
Зарегистрирован: Пт июн 09, 2017 11:18 pm

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

Сообщение 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
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am

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

Сообщение olehs »

наверное инклюда не хватает

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

#include <utility/w5100.h> 
karsotrade
Сообщения: 119
Зарегистрирован: Пт июн 09, 2017 11:18 pm

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

Сообщение karsotrade »

olehs писал(а):наверное инклюда не хватает

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

#include <utility/w5100.h>   
И как всегда Вы правы! Огромнейшее спасибо! Всё заработало!
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв

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

Сообщение serghei »

Извините что встреваю , но эта проблема есть и в AMS на Меге ( с 8266 не замечал). То есть этот код надо добавить в инициализацию Етернета и проблема исчезнет ? Если нет МД , а функция отправки включена , то Мега стартует ооочень долго и жутко тормозит.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
karsotrade
Сообщения: 119
Зарегистрирован: Пт июн 09, 2017 11:18 pm

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

Сообщение karsotrade »

Ещё один вопрос: действительно ли необходимо прописывать задержку в функции отправки запроса на сервер (delay(2000);) или можно поменьше выставить?
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am

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

Сообщение olehs »

serghei писал(а):Извините что встреваю , но эта проблема есть и в AMS на Меге ( с 8266 не замечал). То есть этот код надо добавить в инициализацию Етернета и проблема исчезнет ? Если нет МД , а функция отправки включена , то Мега стартует ооочень долго и жутко тормозит.
Да. У меня даже какое-то чувство что мы с Alex по этому поводу уже общались и он тестировал эти таймауты...
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am

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

Сообщение olehs »

karsotrade писал(а):Ещё один вопрос: действительно ли необходимо прописывать задержку в функции отправки запроса на сервер (delay(2000);) или можно поменьше выставить?
Гляньте как я тут делал
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв

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

Сообщение serghei »

Общались.....читал. Интересно , но этой проблемы нет на 8266 . Сейчас посмотрю на ESP32.
По поводу задержки. При частой отправке очень сильно возрастает загрузка Меги. Мощности отдаю всем стадом ( 14 значений ) одним запросом раз в 20 секунд. При этом наблюдается незначительный всплеск нагрузки.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Ответить