ESP8266 – wincyj mocy

Wcześniejsze projekty były mało efektowne. Mruganie małą diodą LED nie robi dzisiaj wrażenia. Niestety moc, wynikająca z napięcia i wydajności prądowej, układów cyfrowych (w przypadku ESP8266 jest to 3.3V i znacznie poniżej 0,5A czyli około Watta) pozwala na niewiele więcej.

Na szczęście istnieją sposoby na wzmocnienie sygnału cyfrowego.

Czytaj dalej ESP8266 – wincyj mocy

Podłączenie ESP8266 do internetu

Artykuł o sterowaniu diodą oraz odczycie stanu przycisku pokazały w jaki sposób kod może sterować urządzeniami, oraz badać ich stan. Żaden z projektów nie wykorzystywał jednak połączenia z internetem, więc ciężko mówić że były to przykłady implementacji internetu rzeczy. Czas to poprawić. Kolejny projekt będzie polegał na sterowaniu przełączaniu diody w jednym ESP po naciśnięciu przycisku podpiętego do drugiego.

Czytaj dalej Podłączenie ESP8266 do internetu

IoT z wykorzystaniem ESP8266

IoT (ang. Internet of Things – Internet rzeczy ) jest koncepcją w której otaczające nas urządzenia będą wykorzystywać internet aby komunikować się między sobą, żeby lepiej spełniać swoje zadania.

Każde urządzenie musi zawierać podłączony do internetu komputer z zestawem wejść i wyjść aby móc to urządzenie monitorować i nim sterować. Komputer ten musi być tani, mały, pobierać niewiele energii i być programowalny.

Raspberry Pi oraz Arduino spełniają te wymagania, jest jednak układ który spełnia je bardziej: ESP8266 – chiński programowalny mikrokontroler wspierający TCP IP, WiFi, posiadający porty wejścia i wyjścia, niski pobór mocy. Jest on też naprawdę tani: od $0.50 w hurcie do $1 w detalu. Dodatkowo układ ten jest częściowo kompatybilny z Arduino dzięki czemu narzędzia stworzone dla tej popularnej płytki.

Czytaj dalej IoT z wykorzystaniem ESP8266

Niezmienny obiekt i budowniczy

Niespodziewana zmiana stanu obiektu jest jedną z częstszych przyczyn błędów programistów. Dwoma, moim zdaniem, najczęstszymi przypadkami, w których zmiana może być zaskoczeniem są:

  • Zmiana stanu obiektu gdy jest on przekazany do metody, zwłaszcza funkcji, której nazwa sugeruje że jest to bezpieczne
  • Zmiana stanu w wyniku współbieżnego dostępu do jednego obiektu
Czytaj dalej Niezmienny obiekt i budowniczy

Immutable Map – modyfikowanie wielu pól

Klasa Map z pakietu immutable jest obecnie popularnie wybierana jako kontener dla globalnego stanu w aplikacjach wykorzystujących redux.

Zauważyłem też że powszechną, ale błędną, praktyką jest modyfikowanie wielu pól przy pomocy łańcucha poleceń set.

const newState = oldState
    .set('field1', 'value1')
    .set('field2', 'value2')
    .set('field3', 'value3');
Czytaj dalej Immutable Map – modyfikowanie wielu pól