Wpis z mikrobloga

Kurcze, mirki z #esp8266 poratujcie, bo mnie trafi zaraz. Piszę sobie cośtam w Arduino C pod ESP8266. Kawał kodu już napisany, generalnie pod komunikację z szyną I2C i wreszcie przyszedł moment, gdy postanowiłem zająć się łącznością ze światem zewnętrznym, wifi uruchomić znaczy się. I co? I nic, nie łączy się. Żywcem przeklejam metodą Copy'ego - Paste'a stosowny fragment z przykładu, który bez problemu się kompiluje i działa:

#include

const char* ssid = "xxx";
const char* password = "yyyyyyyy";

void setup() {
Serial.begin(115200);
delay(10);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {
delay(100);
Serial.print(".");
}

Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}

Gdy kompiluję ten przykład, wszystko jest ok, wifi się łączy, dostaję IP, zabawka gra i buczy. Gdy powyższe instrukcje żywcem i w tej samej postaci wklejam do swojego kodu, pętla while chodzi w kółko, brak połączenia, jak sprawdziłem, WiFi.status zwraca cały czas wartość 6, cokolwiek by ona miała znaczyć.
W moim kodzie nie używam żadnych magicznych, nietypowych dyrektyw, czy dziwnych bibliotek. Pomysłów mi już brak, co sprawdzać...
  • 13
@radekrad: w ogóle. Gdy kompiluje przykład, łączy się za każdym razem i błyskawicznie. Gdy zaś próbuję z własnym softem, mogę sobie czekać i czekać. Na razie jedyne, co mi przyszło do głowy, to usuwać z mojego kodu (po zapisaniu pod jakąś testową nazwą) kolejnych fragmentów i w ten sposób dojście, co bruździ. Ale spróbuję jeszcze z tym disconnectem
@radekrad: @poje_bant: panowie, jeszcze jedno pytanie: korzystam z biblioteki ESP8266WiFi.h, połączenie wifi inicjuję jako klient poleceniem WiFi.begin, podłączam się w ten sposób do swojej sieci, dostaję adres IP, mam łączność z innymi urządzeniami, wszystko pięknie działa.

Dlaczego więc, do ciężkiej anielki, mój NodeMCU równolegle i niezależnie od tego, że jest klientem wifi, działa równolegle jako access point i wystawia swoje wifi o SSID: ESP_0F8FFD, do którego można sie normalnie zalogować,
@radekrad: tak, znika i też tego nie rozumiem. Technicznie jest to możliwe tylko tak, że interfejs wifi się naprzemiennie przełącza na bycie klientem i accesspointem (tak w końcu działają popularne repeatery wifi), ale przedziwne jest to, że działa to samo z siebie, a nie w wyniku wgrania jakiegoś cudownego programu.

Jedna rzecz mi chodzi po głowie: dwa dni temu postanowiłem wypróbować ESP Easy i na to samo Node wgrałem firmware od
@Jarek_P: można oznaczyć sieć jako permanent i zapamiętać jej dane - może tak się stało? Da się to jakoś wyczyścić. Prawdę mówiąc nie wiem: nie za wiele się bawiłem NodeMCU/esp.

Dziś mnie moje "D1 R2" wkurzyło, bo okazuje się, że na tej płytce większość pinów nie działa jako INPUT_PULLUP, tylko trzeba samodzielnie podciągać je do zasilania. A samo "D1 R2" polecam, jak ktoś jest przyzwyczajony do kształtu Arduino :)