проблема при коннекте PubSubClient
- Войдите на сайт для отправки комментариев
Ср, 24/01/2018 - 10:19
Если плата ардуино соединена по usb с компьютером, все работает, как нужно. А если отсоединить usb, то при соединении mqtt(25 строка), ардуино виснет и срабатывает ватчдог. Как буд-то не срабатывает таймаут подключения. в PubSubClient.h изменен таймаут на 3с.
Arduino mega2560
загружен такой скетч:
#include <PubSubClient.h> #include <Ethernet.h> #include <avr/wdt.h> #define mqtt_server "m21.cloudmqtt.com" #define mqtt_port 17541 byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xEE }; byte ip[] = { 192, 168, 1, 36 }; bool cpLoop = false; unsigned long clientpub_connected = 0; EthernetClient client; PubSubClient clientpub((mqtt_server, mqtt_port, client)); void setup() { wdt_enable(WDTO_8S); Ethernet.begin(mac, ip); } void loop() { cpLoop = clientpub.loop(); if ((millis() - clientpub_connected) > 10000 && !cpLoop) { clientpub.connect("home"); clientpub_connected = millis(); } wdt_reset(); }
По этому коду ничего не сказать - слишком мало информации.
В порядке бреда - может дело вовсе не в коде, а питании? От USB питания хватает, а при переходе на автономку - Эзернет виснет.
и если перезагрузить плату с кнопки reset, то опять все нормально. Также если сетевой провод бп передернуть, не работает. Если штекер, который идет с бп в ардуино, то работает.
По этому коду ничего не сказать - слишком мало информации.
В порядке бреда - может дело вовсе не в коде, а питании? От USB питания хватает, а при переходе на автономку - Эзернет виснет.
питается всегда от бп
питается всегда от бп
Какое напряжение БП и как соединены ардуина и Эзернет-модуль?
питается всегда от бп
Какое напряжение БП и как соединены ардуина и Эзернет-модуль?
12в. шилд W5100, в ардуину вставлен
так же пробовал питать с бп 5в, через usb, таже проблема
12в. шилд W5100, в ардуину вставлен
Уже теплее - в этом случае шилд питается через встроеный стабилизатор питания ардуины, и мощности стаба скорее всего не хватает. - Зачем вам вообще 12в? Это обусловлено какой-то необходимостью? Если нет - лучше возьмите БП 5в, чтобы питать ардуину и шилд непосредственно, а не через стабилизатор.
вы только что писали, что при питании через USB все нормально?
12в. шилд W5100, в ардуину вставлен
Уже теплее - в этом случае шилд питается через встроеный стабилизатор питания ардуины, и мощности стаба скорее всего не хватает. - Зачем вам вообще 12в? Это обусловлено какой-то необходимостью? Если нет - лучше возьмите БП 5в, чтобы питать ардуину и шилд непосредственно, а не через стабилизатор.
вы только что писали, что при питании через USB все нормально?
Нормально, если плата через usb подключена к пк.
Хотя если питать 12В, то так:
и если перезагрузить плату с кнопки reset, то опять все нормально. Также если сетевой провод бп передернуть, не работает. Если штекер, который идет с бп в ардуино, то работает.
в usb проводе перерезан +
С любым примером для Ethernet.h тоже виснет?
С любым примером для Ethernet.h тоже виснет?
да
И вот это в setup() показывает всё корректно: Serial.println(Ethernet.localIP()); ?
Иными словами - точно ли шилд инициализируется и виснет только при обращении к нему или же он не инициализируется и тупо висит в лупе где-то в потрохах Ethernet.h ?
И вот это в setup() показывает всё корректно: Serial.println(Ethernet.localIP()); ?
Иными словами - точно ли шилд инициализируется и виснет только при обращении к нему или же он не инициализируется и тупо висит в лупе где-то в потрохах Ethernet.h ?
виснет именно на попытке подключения к серверу.
Шилд накрылся. нашел такой же шилд, с ним все нормально.
Всем спасибо.