Webserver hängt sich aus

[b]print("string"); // [/b] kann beliebig oft ausgeführt werden, aber ...

"string" ist kein String sondern sind 7 Bytes, die -- wenn nicht speziell anders definiert [ s. F("string") ] -- , erstmal in den RAM kopiert werden, bevor sie verwendet werden können.

Ein String Objekt liegt immer im RAM und verursacht dynamische Speicheranforderungen, die 1. nicht sinnvoll , 2. fehlerbehaftet sind:

String test = "A";
test += "B";  // test enthält jetzt "AB", und das vorige "A" liegt zusätzlich auf dem Müll. Arduino hat aber keine Müllabfuhr.