Добрый день! Направьте в правильную сторону. Есть Arduino Uno + Shild WIZnet, загружаю скетч, и вроде все работает, сеть появляется, но при отключении питания и заново подачи шилд не поднимается, сети нет, причем физически нет линка. Помогает только кнопка резет на плате или включение Монитора порта в VSCode, после чего все начинает работать и сеть поднимается....
C++:
void setup() {
delay(10000);
Serial.begin(9600);
// dht.begin();
// настройка выводов
pinMode(gpioRelay1, OUTPUT);
// Сброс реле в исходное состояние
digitalWrite(gpioRelay1, lvlReleayOff);
// Ethernet.begin(mac, ip, myDns, gateway, subnet);
// Проверка, подключен ли кабель сети
if (Ethernet.linkStatus() == LinkOFF) {
Serial.println("Ethernet cable is not connected.");
}
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP, using static IP");
Ethernet.begin(mac, ip, myDns, gateway, subnet);
}
// else{
// delay(5000);
// Ethernet.begin(mac);
// }
digitalWrite(gpioRelay1, 0x1);
delay(2000);
digitalWrite(gpioRelay1, 0x0);
Serial.print("Server address:");
Serial.println(Ethernet.localIP());
}
void loop() {
if (Ethernet.hardwareStatus() == EthernetNoHardware) {
Serial.println("Ethernet shield was not found. Sorry, can't run without hardware. :(");
// while (true) {
// delay(1);
// }
asm volatile (" jmp 0");
}
if (mqttConnected())
{
mqttClient.loop();
};
relayControl();
// Чтение температуры и отправка в mqtt
static unsigned long lastTempRead = 0;
if ((millis() - lastTempRead) >= 10000)
{
lastTempRead = millis();
GetSensorsToPublishMqtt();
}
}