W5100 ethernet shield получает неправильный адрес
Добавлено: Ср апр 07, 2021 12:57 pm
Я сделал скетч для Arduino Mega2560+W5100 ethernet shield для отправки данных через MQTT.
Сначала только получал данные температуры и влажности с четырёх датчиков DHT22.
Пару дней всё работало.
Вчера добавил датчик движения и работать перестало.
При этом основной код, который отвечает за соединение с Ethernet я вообще не трогал, но контроллер перестал получать правильный IPAddress и соответственно нифига не работает.
То есть в скетче у меня такие настройки ethernet
А в серийном порте вот этот код вместо правильного адреса стал выдавать вообще другие значения. Пару раз я видел 0.0.0.0 и пару раз 0.40.1.30
Я думал просто глюк и пытался несколько раз перезагрузить Ардуину, перезаливал скетч, но обратно правильный адрес не возвращается.
При этом с роутера правильный адрес 192.168.1.30 пингуется.
Что могло сломаться?
Сначала только получал данные температуры и влажности с четырёх датчиков DHT22.
Пару дней всё работало.
Вчера добавил датчик движения и работать перестало.
При этом основной код, который отвечает за соединение с Ethernet я вообще не трогал, но контроллер перестал получать правильный IPAddress и соответственно нифига не работает.
То есть в скетче у меня такие настройки ethernet
Код: Выделить всё
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //mac адрес Ethernet Shield'a Arduino
byte gateway[] = {192, 168, 1, 1};
byte subnet[] = {255, 255, 255, 0};
IPAddress ip{ 192, 168, 1, 30 }; //ip адрес Ethernet Shield'a Arduino
IPAddress server{ 192, 168, 1, 2}; //ip адрес MQTT Брокера
Код: Выделить всё
Serial.print("IP: "); Serial.println(Ethernet.localIP());
При этом с роутера правильный адрес 192.168.1.30 пингуется.
Что могло сломаться?