Jest taka oto sytuacja. NodeMCU łączy się z serwerem Blynk dzięki czemu telefonem sterujemy światłami. Dodatkowo do płytki podłączony jest czujnik ruchu, który pozwala wyłączać światło przy braku ruchu w pokoju. Niestety jeśli z jakiegoś powodu płytka nie może połączyć się z serwerem, procesor blokuje wszystkie inne zadania do momentu aż się połączy (z siecią czy serwerem). Najpopularniejsza funkcja Blynk.begin() tak właśnie działa. Czujnik ruchu bezużyteczny. Również dodatkowy wyłącznik fizyczny, który w razie awarii sieci mógłby sterować oświetleniem przestaje działać.
Poniżej lekko zmodyfikowany kod z Forum Blynka, który załatwia sprawę. Dzięki Costas.
W moim przypadku serwer lokalny. Dołączony plik cofig.h zawiera:
char auth[] = "xxx"; // auth token
char ssid[] = "xxx"; // nazwa WiFi
char pass[] = "xxx"; // hasło WiFi
char server[] = "xxx.xxx.xxx.xxx"; // adres serwera
int port = xxxx;// numer portu, u mnie 8080