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

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

Модератор: immortal

karsotrade
Сообщения: 113
Зарегистрирован: Пт июн 09, 2017 11:18 pm
Благодарил (а): 17 раз
Поблагодарили: 13 раз

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

Сообщение karsotrade » Вт мар 13, 2018 7:53 pm

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

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

Сообщение olehs » Вт мар 13, 2018 8:18 pm

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

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

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

Сообщение karsotrade » Вт мар 13, 2018 8:49 pm

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
Благодарил (а): 85 раз
Поблагодарили: 342 раза

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

Сообщение olehs » Вт мар 13, 2018 9:06 pm

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

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

#include <utility/w5100.h> 
За это сообщение автора olehs поблагодарил:
karsotrade (Вт мар 13, 2018 9:13 pm)
Рейтинг: 1.16%
karsotrade
Сообщения: 113
Зарегистрирован: Пт июн 09, 2017 11:18 pm
Благодарил (а): 17 раз
Поблагодарили: 13 раз

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

Сообщение karsotrade » Вт мар 13, 2018 9:15 pm

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

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

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

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

Сообщение serghei » Вт мар 13, 2018 9:24 pm

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

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

Сообщение karsotrade » Вт мар 13, 2018 9:32 pm

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

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

Сообщение olehs » Вт мар 13, 2018 9:38 pm

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

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

Сообщение olehs » Вт мар 13, 2018 9:41 pm

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

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

Сообщение serghei » Вт мар 13, 2018 9:46 pm

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