проблема при коннекте PubSubClient

Тема в разделе "Arduino & Shields", создана пользователем dumahism, 24 янв 2018.

  1. dumahism

    dumahism Нуб

    Если плата ардуино соединена по usb с компьютером, все работает, как нужно. А если отсоединить usb, то при соединении mqtt(25 строка), ардуино виснет и срабатывает ватчдог. Как буд-то не срабатывает таймаут подключения. в PubSubClient.h изменен таймаут на 3с.

    Arduino mega2560

    загружен такой скетч:
    Код (C++):
    #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();
    }
     
  2. dumahism

    dumahism Нуб

    и если перезагрузить плату с кнопки reset, то опять все нормально. Также если сетевой провод бп передернуть, не работает. Если штекер, который идет с бп в ардуино, то работает.