1. Wprowadzenie
Wiele młodych osób zaczyna obecnie swoją przygodę z elektroniką od Adruino UNO R3 lub jakiś gotowych zestawów opartych na tej właśnie platformie, czy też jej klonów.
Arduino UNO R3 od frontu
Arduino UNO R3 od tyłu
Po wstępnym zapoznaniu się z możliwościami Arduino, przećwiczeniu przykładów z oficjalnej strony projektu, wszelkiej maści kursów czy poradników przychodzi kolej na bardziej samodzielne projekty, w których jako programator możemy wykorzystać Arduino.
W obecnych czasach, gdzie Internet jest już nieodłączną częścią naszej rzeczywistości prędzej czy później przyjdzie pora na IoT, czyli Internet rzeczy, którego reprezentantem są wszelkiej maści urządzenia podłączone do Internetu. Od prostych termometrów, poprzez różnego rodzaju oświetlenia RGB, sprzętach AGD, RTV, na autonomicznych samochodach kończąc.
2. ESP8266
Najbardziej popularnym układem zapewniającym naszym projektom komunikację z siecią jest ESP8266 i występuje on w wielu wersjach i formach. Wykorzystywany jest obecnie w większości rozwiązań IoT czy to amatorskich, czy komercyjnych.
Głównymi cechami całej rodziny ESP8266 są między innymi niska cena, spore możliwości wbudowanego mikrokontrolera i co kluczowe obsługi WiFi w standzie IEEE 802.11 b/g/n co w zupełności wystarcza do większości projektów.
Podstawowe parametry układów ESP8266:
- 32-bitowy procesor RISC taktowany zegarem 80MHz (możliwość zwiększenia w niektórych modelach do 160MHz);
- 64 KB pamięci RAM na program;
- 96 KB pamięci RAM na dane;
- od 512 KB do 4 MB pamięci FLASH na oprogramowanie sprzętowe;
- do 16 linii cyfrowych wejścia/wyjścia,
- jedno 10-bitowe wejście ADC;
- obsługa interfejsów: SPI, I2C, I2S, UART;
- zasilanie napięciem 3.3V;
- pobór mocy w stanie spoczynku to ~10uA;
- WiFi 802.11 b/g/n;
- częstotliwość pracy 2,4 GHz;
- wspiera zabezpieczenia WPA i WPA2;
- możliwość pracy w trybie AP (Access Point), STA (Standalone) oraz AP+STA;
- wsparcie dla komend AT
Porównanie wizualne ESP8266 z ESP8266-01S od frontu
ESP8266-01S jest nieznacznie poprawioną wersją cechującą się lepszą stabilnością pracy układu i większą pamięcią. Dla wersji bez dopisku "S" pamięć ma rozmiar 512kB, zaś wersja z dopiskiem ma jej 1MB.
3. Projekt i narzędzia
Dziś zajmiemy się jedną z najprostszych wersji, a mianowicie ESP8266-01 i jego programowaniem przy użyciu znanego już Arduino.
Aby zaprogramować układ znajdujący się na płytce ESP8266-01 możemy skorzystać z dedykowanego lub uniwersalnego programatora albo użyć prostej przejściówki / końcówki, którą zaraz wykonamy. Umożliwi ona nam programowanie przy użyciu Arduino IDE
Przykładowy programator od frontu
Przykładowy programator od tyłu
Gotowa przejściówka / końcówka z jednej strony
Gotowa przejściówka / końcówka z drugiej strony
Do wykonania przejściówki / końcówki i przetestowania wszystkiego będzie nam potrzebne:
- ESP8266-01 lub ESP8266-01S;
- Adruino UNO R3 lub klon;
- Arduino IDE;
- przewody, na przykład do płytek stykowych lub ze skrętki: 4 sztuki - 10 cm, 1 sztuka - 4 cm, 2 sztuki - 2 cm;
- żeńskie wtyki goldpin: 1 sztuka 2x4 i 4 sztuki pojedyncze;
- żeńskie styki do wtyków goldpin: 8 sztuk;
- męskie styki do wtyków goldpin: 4 sztuki;
- rezystor w przedziale od 1 do 10 kΩ;
- lutownica / stacja lutownicza i stop lutowniczy;
- cążki do cięcia metalu;
- szczypce / kombinerki, ewentualnie zagniatarka;
- opcjonalnie biały papier samoprzylepny do opisu pinów;
4. Schemat połączeń
Wyprowadzenia dla ESP8266-01 i ESP8266-01S są identyczne, a ich rozkład prezentuje poniższy rysunek.
Schemat modułu ESP8266-01 z zaznaczonymi wyprowadzeniami
Aby ustawić ESP8266 w tryb programowania, trzeba podłączyć jego wyjścia w następujący sposób.
Tak też będzie wyglądała nasza przejściówka / końcówka do programowania.
Widok od strony, do której będzie przyłączany ESP8266
Przewody należy zagnieść przy pomocy szczypiec, bądź zagniatarki i umieścić w żeńskich wtyczkach goldpin. W przypadku pojedynczych przewodów należy pierwsze zagniecenie wykonać na odizolowanym przewodzie, drugie zaś na przewodzie z izolacją. W przypadku podwójnych wejść, gdzie w jednym wtyku znajdują się 2 przewody, jak VCC 3.3 V i GPIO0 należy dokonać obu zagnieceń przewodów ze zdjętą izolacją, w przeciwnym wypadku będziemy mieć spory problem z umieszczeniem takiego pinu w gnieździe. Rezystor między CH_PD i VCC 3.3V najlepiej jest przylutować do przewodów przez zagniataniem wtyków.
Widok pojedynczego przewodu gotowego do zagniecenie, izolacja ściągnięta częściowo
Widok podwójnego przewodu gotowe do zagniecenia, izolacja ściągnięta całkowicie
Gotowa przejściówka / końcówka wpięta w klon Arduino UNO R3
Po wykonaniu końcówki można wydrukować opis wyjść / wejść na papierze samoprzylepnym i przykleić go do odpowiednich pinów, co ułatwi przyszłe użytkowanie.
5. Arduino IDE
Gdy już zbudowaliśmy naszą przejściówkę nadszedł czas na testy. W celu obsłużenia ESP8266 będzie nam potrzebna odpowiednia biblioteka.
Spora część z was zapewne ma już zainstalowane Arduino IDE, lecz jeśli nie to należy pamiętać, aby pobierać je zawsze z oficjalnej strony dystrybutora. Zminimalizuje to możliwość pobrania przy okazji złośliwego oprogramowania. Oficjalny dystrybutor to:
Po pobraniu, zainstalowaniu czy też ewentualnej aktualizacji oprogramowania należy z górnego menu wybrać: Plik > Preferencja.
Interfejs Arduino IDE, opcje Plik > Preferencja
Pojawi się nowe okno z opcjami. W polu „Dodatkowe adresy URL do menedżera płytek:” należy wkleić adres:
I zatwierdzić klawiszem [OK].
Okno Preferencje z opcjami
Następnie z menu wybieramy: Narzędzia > Płytka: … > Menedżer płytek…
Interfejs Arduino IDE, opcje Narzędzia > Płytka: … > Menedżer płytek…
Pojawi się nowe okno. W polu wyszukiwarki należy wpisać „ESP8266” i zatwierdzić ENTERem. Pojawi się biblioteka, którą należy zainstalować klikając na przycisk [Instaluj]. Po udanej instalacji zamykamy to okno i resetujemy Arduino IDE.
Menedżer płytek
Po ponownym uruchomieniu Arduino IDE w menu: Narzędzia > Płytka: … powinny być widoczne układy z serii ESP8266.
Biblioteka układów ESP8266
6. Programowanie
Gdy już wszystko zostało zrobione, możemy przystąpić do testowania. Wybieramy z menu: Plik > Przykłady > ESP8266WiFi > WiFiScan
Interfejs Arduino IDE, opcje Plik > Przykłady > ESP8266WiFi > WiFiScan
Wpinamy moduł ESP8266-01 do wykonanej końcówki, a końcówkę do Arduino zgodnie z oznaczeniami. Należy pamiętać, że moduł który będziemy programować działa tylko i wyłącznie na napięciu 3.3V i napięcie 5V jest dla niego zabójcze. Należy jeszcze ustawić tryb programowania w Arduino zwierając wyjście RST z wejściem GND na płytce Arduino.
Gdy już wszystko jest zostało połączone, to podpinamy Ardunio przy pomocy przewody USB do komputera. Upewniamy się, że wybrana płytka to „Generic ESP8266 Module” i sprawdzamy poprawność portu COM. Teraz możemy przystąpić do kompilacji i wgrywania kodu.
Komunikat w przypadku udanego zaprogramowania układu
Po zaprogramowaniu układu włączamy monitor portu szeregowego (Narzędzia > Monitor portu szeregowego) i naszym oczom powinna ukazać się lista wszystkich dostępnych sieci WiFi w okolicy.
W przypadku gdy wgrywanie kodu się nie powiedzie należy odpiąć Arduino od komputera i podpiąć jeszcze raz. gdy błąd będzie się powtarzał należy rozpiąć cały układ i złożyć go jeszcze raz.
Wiele młodych osób zaczyna obecnie swoją przygodę z elektroniką od Adruino UNO R3 lub jakiś gotowych zestawów opartych na tej właśnie platformie, czy też jej klonów.

Arduino UNO R3 od frontu

Arduino UNO R3 od tyłu
Po wstępnym zapoznaniu się z możliwościami Arduino, przećwiczeniu przykładów z oficjalnej strony projektu, wszelkiej maści kursów czy poradników przychodzi kolej na bardziej samodzielne projekty, w których jako programator możemy wykorzystać Arduino.
W obecnych czasach, gdzie Internet jest już nieodłączną częścią naszej rzeczywistości prędzej czy później przyjdzie pora na IoT, czyli Internet rzeczy, którego reprezentantem są wszelkiej maści urządzenia podłączone do Internetu. Od prostych termometrów, poprzez różnego rodzaju oświetlenia RGB, sprzętach AGD, RTV, na autonomicznych samochodach kończąc.
2. ESP8266
Najbardziej popularnym układem zapewniającym naszym projektom komunikację z siecią jest ESP8266 i występuje on w wielu wersjach i formach. Wykorzystywany jest obecnie w większości rozwiązań IoT czy to amatorskich, czy komercyjnych.
Głównymi cechami całej rodziny ESP8266 są między innymi niska cena, spore możliwości wbudowanego mikrokontrolera i co kluczowe obsługi WiFi w standzie IEEE 802.11 b/g/n co w zupełności wystarcza do większości projektów.
Podstawowe parametry układów ESP8266:
- 32-bitowy procesor RISC taktowany zegarem 80MHz (możliwość zwiększenia w niektórych modelach do 160MHz);
- 64 KB pamięci RAM na program;
- 96 KB pamięci RAM na dane;
- od 512 KB do 4 MB pamięci FLASH na oprogramowanie sprzętowe;
- do 16 linii cyfrowych wejścia/wyjścia,
- jedno 10-bitowe wejście ADC;
- obsługa interfejsów: SPI, I2C, I2S, UART;
- zasilanie napięciem 3.3V;
- pobór mocy w stanie spoczynku to ~10uA;
- WiFi 802.11 b/g/n;
- częstotliwość pracy 2,4 GHz;
- wspiera zabezpieczenia WPA i WPA2;
- możliwość pracy w trybie AP (Access Point), STA (Standalone) oraz AP+STA;
- wsparcie dla komend AT

Porównanie wizualne ESP8266 z ESP8266-01S od frontu
ESP8266-01S jest nieznacznie poprawioną wersją cechującą się lepszą stabilnością pracy układu i większą pamięcią. Dla wersji bez dopisku "S" pamięć ma rozmiar 512kB, zaś wersja z dopiskiem ma jej 1MB.
3. Projekt i narzędzia
Dziś zajmiemy się jedną z najprostszych wersji, a mianowicie ESP8266-01 i jego programowaniem przy użyciu znanego już Arduino.
Aby zaprogramować układ znajdujący się na płytce ESP8266-01 możemy skorzystać z dedykowanego lub uniwersalnego programatora albo użyć prostej przejściówki / końcówki, którą zaraz wykonamy. Umożliwi ona nam programowanie przy użyciu Arduino IDE

Przykładowy programator od frontu

Przykładowy programator od tyłu

Gotowa przejściówka / końcówka z jednej strony

Gotowa przejściówka / końcówka z drugiej strony
Do wykonania przejściówki / końcówki i przetestowania wszystkiego będzie nam potrzebne:
- ESP8266-01 lub ESP8266-01S;
- Adruino UNO R3 lub klon;
- Arduino IDE;
- przewody, na przykład do płytek stykowych lub ze skrętki: 4 sztuki - 10 cm, 1 sztuka - 4 cm, 2 sztuki - 2 cm;
- żeńskie wtyki goldpin: 1 sztuka 2x4 i 4 sztuki pojedyncze;
- żeńskie styki do wtyków goldpin: 8 sztuk;
- męskie styki do wtyków goldpin: 4 sztuki;
- rezystor w przedziale od 1 do 10 kΩ;
- lutownica / stacja lutownicza i stop lutowniczy;
- cążki do cięcia metalu;
- szczypce / kombinerki, ewentualnie zagniatarka;
- opcjonalnie biały papier samoprzylepny do opisu pinów;
4. Schemat połączeń
Wyprowadzenia dla ESP8266-01 i ESP8266-01S są identyczne, a ich rozkład prezentuje poniższy rysunek.

Schemat modułu ESP8266-01 z zaznaczonymi wyprowadzeniami
Aby ustawić ESP8266 w tryb programowania, trzeba podłączyć jego wyjścia w następujący sposób.
ESP8266 | Arduino |
RXD | RX |
GPIO0 | GND |
GPIO2 | brak połączenia |
GND | GND |
VCC | 3.3 V |
RST | brak połączenia |
CH_PD | 3.3 V przez rezystor |
TXD | TX |
Tak też będzie wyglądała nasza przejściówka / końcówka do programowania.

Widok od strony, do której będzie przyłączany ESP8266
Przewody należy zagnieść przy pomocy szczypiec, bądź zagniatarki i umieścić w żeńskich wtyczkach goldpin. W przypadku pojedynczych przewodów należy pierwsze zagniecenie wykonać na odizolowanym przewodzie, drugie zaś na przewodzie z izolacją. W przypadku podwójnych wejść, gdzie w jednym wtyku znajdują się 2 przewody, jak VCC 3.3 V i GPIO0 należy dokonać obu zagnieceń przewodów ze zdjętą izolacją, w przeciwnym wypadku będziemy mieć spory problem z umieszczeniem takiego pinu w gnieździe. Rezystor między CH_PD i VCC 3.3V najlepiej jest przylutować do przewodów przez zagniataniem wtyków.

Widok pojedynczego przewodu gotowego do zagniecenie, izolacja ściągnięta częściowo

Widok podwójnego przewodu gotowe do zagniecenia, izolacja ściągnięta całkowicie

Gotowa przejściówka / końcówka wpięta w klon Arduino UNO R3
Po wykonaniu końcówki można wydrukować opis wyjść / wejść na papierze samoprzylepnym i przykleić go do odpowiednich pinów, co ułatwi przyszłe użytkowanie.
5. Arduino IDE
Gdy już zbudowaliśmy naszą przejściówkę nadszedł czas na testy. W celu obsłużenia ESP8266 będzie nam potrzebna odpowiednia biblioteka.
Spora część z was zapewne ma już zainstalowane Arduino IDE, lecz jeśli nie to należy pamiętać, aby pobierać je zawsze z oficjalnej strony dystrybutora. Zminimalizuje to możliwość pobrania przy okazji złośliwego oprogramowania. Oficjalny dystrybutor to:
Code:
arduino.cc/en/Main/Software
Po pobraniu, zainstalowaniu czy też ewentualnej aktualizacji oprogramowania należy z górnego menu wybrać: Plik > Preferencja.

Interfejs Arduino IDE, opcje Plik > Preferencja
Pojawi się nowe okno z opcjami. W polu „Dodatkowe adresy URL do menedżera płytek:” należy wkleić adres:
Code:
https://arduino.esp8266.com/stable/package_esp8266com_index.json
I zatwierdzić klawiszem [OK].

Okno Preferencje z opcjami
Następnie z menu wybieramy: Narzędzia > Płytka: … > Menedżer płytek…

Interfejs Arduino IDE, opcje Narzędzia > Płytka: … > Menedżer płytek…
Pojawi się nowe okno. W polu wyszukiwarki należy wpisać „ESP8266” i zatwierdzić ENTERem. Pojawi się biblioteka, którą należy zainstalować klikając na przycisk [Instaluj]. Po udanej instalacji zamykamy to okno i resetujemy Arduino IDE.

Menedżer płytek
Po ponownym uruchomieniu Arduino IDE w menu: Narzędzia > Płytka: … powinny być widoczne układy z serii ESP8266.

Biblioteka układów ESP8266
6. Programowanie
Gdy już wszystko zostało zrobione, możemy przystąpić do testowania. Wybieramy z menu: Plik > Przykłady > ESP8266WiFi > WiFiScan

Interfejs Arduino IDE, opcje Plik > Przykłady > ESP8266WiFi > WiFiScan
Wpinamy moduł ESP8266-01 do wykonanej końcówki, a końcówkę do Arduino zgodnie z oznaczeniami. Należy pamiętać, że moduł który będziemy programować działa tylko i wyłącznie na napięciu 3.3V i napięcie 5V jest dla niego zabójcze. Należy jeszcze ustawić tryb programowania w Arduino zwierając wyjście RST z wejściem GND na płytce Arduino.
Gdy już wszystko jest zostało połączone, to podpinamy Ardunio przy pomocy przewody USB do komputera. Upewniamy się, że wybrana płytka to „Generic ESP8266 Module” i sprawdzamy poprawność portu COM. Teraz możemy przystąpić do kompilacji i wgrywania kodu.

Komunikat w przypadku udanego zaprogramowania układu
Po zaprogramowaniu układu włączamy monitor portu szeregowego (Narzędzia > Monitor portu szeregowego) i naszym oczom powinna ukazać się lista wszystkich dostępnych sieci WiFi w okolicy.
W przypadku gdy wgrywanie kodu się nie powiedzie należy odpiąć Arduino od komputera i podpiąć jeszcze raz. gdy błąd będzie się powtarzał należy rozpiąć cały układ i złożyć go jeszcze raz.
Cool? Ranking DIY