- Co to jest ESP8266?
- Podstawy teorii WiFi:
- Rodzaje programowania z ESP8266:
- Sprzęt do programowania modułu ESP8266:
- Wymagane materiały:
- Objaśnienie obwodu:
- Płyta budowlana do programu ESP8266:
Internet rzeczy i automatyka domowa były w ostatnich dniach bardzo popularne. Tworzenie czegoś samodzielnie, co może komunikować się z siecią WWW i jest dostępne z dowolnego miejsca na świecie, naprawdę brzmi fajnie, prawda?
Ale poczekaj!!! To też brzmi skomplikowanie ???….
Zrobiłem to dla mnie, pomyślałem, że zbudowanie rzeczy, które mogą współdziałać z Internetem, zajmie dużo czasu i umiejętności. NIE, całkowicie się myliłem, dzięki temu fantastycznemu modułowi ESP8266 firmy Espressif Systems. Teraz możesz łatwo otworzyć swoje drzwi dla projektów IoT za pomocą tego modułu. Ten niedrogi, niewielki moduł może zdziałać cuda i jest naprawdę prosty i łatwy w użyciu, pod warunkiem, że zastosujemy się do właściwych kroków.
Te samouczki mają na celu wprowadzenie do modułu ESP8266-01 i pomoc w rozpoczęciu z nim pracy. Być może już przyniosłeś swój moduł i utknąłeś podczas próby jego użycia. Wtedy nie jesteś sam, nie martw się, wiele osób ma trudności z rozpoczęciem pracy z modułem, ponieważ nie ma odpowiednich wskazówek ani dokumentacji dla tego modułu. To jest powód stworzenia tego samouczka. Postępuj zgodnie z instrukcjami tutaj, a powinieneś być w stanie szybko uruchomić moduł ESP8266-01, tutaj użyjemy modułu adaptera szeregowego FTDI USB na TTL do zaprogramowania ESP8266. Sprawdź szczegółowe wideo na końcu samouczka.
Zanim przejdziemy do tematu, omówmy kilka podstaw dotyczących modułu ESP8266-01.
Co to jest ESP8266?
Większość ludzi nazywa ESP8266 modułem WIFI, ale w rzeczywistości jest to mikrokontroler. ESP8266 to nazwa mikrokontrolera opracowanego przez firmę Espressif Systems z siedzibą w Szanghaju. Ten mikrokontroler ma możliwość wykonywania czynności związanych z WIFI, dlatego jest szeroko stosowany jako moduł WIFI.
Dostępnych jest wiele typów modułów ESP8266, od ESP8266-01 do ESP8266-12. Ten, którego używamy w samouczku, to ESP8266-01, ponieważ jest najtańszy i łatwo dostępny. Jednak wszystkie moduły ESP mają tylko jeden typ procesora ESP, co różni się tylko typem zastosowanego barda breakout. Płytka rozdzielająca ESP8266-01 będzie miała tylko 2 piny GPIO, podczas gdy w innych płytach będzie wyższa.
Pełną specyfikację modułu zawiera poniższa tabela
Napięcie |
3,3 V. |
Obecne zużycie |
10uA-170mA |
Maksymalny pobór prądu podczas flashowania |
800mA |
Pamięć flash |
16 MB (normalne 512 K) |
Edytor |
Tensilica L106 32 bity |
Szybkość procesora |
80-160 MHz |
Baran |
32 tys. + 80 tys |
GPIO |
17 (ale większość jest multipleksowana) |
Analogowy do cyfrowego konwertera |
1 (10-bitowy) |
Maksymalna liczba połączeń TCP |
5 |
Okej, kilka rzeczy, które mogłyby Cię zaskoczyć w specyfikacji, to to, że TAK, moduł ESP8266 jest wyposażony w konwerter ADC i zużywa bardzo duży prąd 0,8 A podczas flashowania urządzenia.
Sprawdź również nasze różne ciekawe projekty IoT oparte na ESP8266.
Podstawy teorii WiFi:
Protokół kontroli transferu (TCP), protokół internetowy (IP), protokół datagramów użytkownika (UDP), punkt dostępu (AP), stacja (Sta), identyfikator zestawu usług (SSID), interfejs programowania aplikacji (API), serwer sieciowy…..
Czy wszystkie powyższe określenia mają dla Ciebie sens?
Jeśli tak. Następnie BINGO możesz przeskoczyć tę część i przejść do następnej sekcji.
Jeśli nie. W takim razie musisz być jednym z wielu studentów elektrotechniki, którzy po prostu przejrzeli większość tych terminów, tak jak ja, kiedy po raz pierwszy zapoznałem się z tymi wszystkimi rzeczami. Przejdźmy więc szybko przez wszystkie te terminy, ponieważ tylko wtedy mogliśmy wejść w świat IOT.
Protokół kontroli transferu (TCP):
Większość z nas wiedziałaby, co to oznacza. Tak, to zbiór reguł, na podstawie których działa internet. Ponieważ ESP8266 ma możliwość konfigurowania połączeń WIFI. Na wysokim poziomie Wi-Fi to możliwość uczestniczenia w połączeniach TCP / IP przez łącze bezprzewodowe. Możesz skonfigurować ESP do pracy z protokołem TCP / IP lub protokołem UDP.
Protokół datagramów użytkownika (UDP):
UDP to także inny rodzaj protokołu internetowego. Ten rodzaj komunikacji jest szybszy niż TCP, ale jest mniej dokładny. Powodem jest to, że TCP używa potwierdzenia podczas komunikacji, ale UDP tego nie robi. TCP jest najczęściej używany w sieciach, w których wymagana jest wysoka niezawodność. Protokół UDP jest używany w miejscach, w których szybkość ma wyższy priorytet niż niezawodność. Na przykład UDP jest używany w wideokonferencjach, ponieważ nawet jeśli niektóre piksele nie są przesyłane, nie wpłynie to tak bardzo na jakość wideo, ale szybkość jest bardzo ważna.
Większość projektów i kodów ESP8266 dotyczy protokołu TCP / IP, najmniej przeszkadza UDP.
Punkt dostępowy (AP) i stacja (STA):
Po rozpoczęciu pracy z modułem ESP często spotykasz te dwa terminy. Załóżmy, że Ty i Twój znajomy chcielibyście surfować po Internecie na swoich smartfonach, ale ponieważ nie ma on aktywnego połączenia internetowego, decydujesz się włączyć swój punkt dostępu, a Twój znajomy łączy się z nim. W tym przypadku Twój telefon, który jest źródłem połączenia internetowego, jest punktem dostępu (AP), a telefon znajomego, który korzysta z Internetu, nazywa się Stacją (STA).
Moduł ESP8266 może być używany w trzech trybach, trybie AP, trybie STA lub zarówno w trybie STA, jak i AP (łącznie).
Identyfikator zestawu usług (SSID):
To dość proste określenie. Prawie każdy z nas korzystał z WIFI. Nazwa sieci Wi-Fi to jej identyfikator SSID. Gdy mamy wiele punktów dostępowych, z którymi stacja może się połączyć, stacja powinna wiedzieć, z którym punktem dostępu powinna się połączyć, stąd każdemu punktowi dostępowemu (AP) nadawana jest tożsamość zwana SSID.
Interfejs programowania aplikacji (API):
Mówiąc prościej, API to komunikator, który przyjmuje Twoje żądania, przetwarza je i zwraca systemowi pożądany wynik. Większość działań, które wykonujemy w Internecie, wykorzystuje API, np. Kiedy rezerwujesz lot, dokonujesz zakupu online itp. Każda witryna łączy Cię z API, w którym część pracy, jak rejestracja, dokonywanie płatności itp., Jest wykonywana za Ciebie. tam.
ESP8266 wykorzystuje API do komunikacji ze światem Internetu. Na przykład, jeśli chce poznać czas, klimat lub cokolwiek powinien zażądać w formie interfejsu API na odpowiedniej stronie internetowej. Ta strona otrzyma żądanie i przekaże żądany wynik z powrotem do naszego modułu ESP.
Serwer internetowy:
Serwer WWW to coś, co jest odpowiedzialne za wyświetlanie zawartości strony internetowej. Cała zawartość tej konkretnej witryny zostanie załadowana na jej serwer sieciowy. Istnieją dedykowane komputery, których zadaniem jest jedynie działanie jako serwer WWW. Możemy również zaprogramować nasz ESP8266 do pracy jako serwer WWW i łączyć się z nim z dowolnego miejsca na świecie.
Ok, to wystarczy, żebyśmy zaczęli. Teraz zajmijmy się sprzętem.
Rodzaje programowania z ESP8266:
Istnieją dwa sposoby pracy z modułem ESP8266. Ten samouczek pomoże Ci zacząć korzystać z obu. Jednym ze sposobów jest użycie poleceń AT. Innym sposobem jest użycie Arduino IDE. Zrozummy, co to znaczy.
Wszystkie moduły ESP8266 wysyłane z fabryki będą miały załadowane domyślne oprogramowanie układowe (SDK + API). To oprogramowanie pomoże Ci zaprogramować moduł ESP8266 za pomocą poleceń AT.
Innym sposobem jest bezpośrednie programowanie modułu ESP8266 za pomocą Arduino IDE (płytka nie jest potrzebna) i jego bibliotek. Wszystkie projekty można wykonać obiema metodami. Ale jeśli zaczniesz używać Arduino IDE do programowania ESP8266, możesz nie być w stanie używać poleceń AT, ponieważ domyślny zestaw SDK mógł zostać uszkodzony. W takim przypadku musisz sflashować ESP z domyślnymi ustawieniami. Omówimy to w innym samouczku.
Sprzęt do programowania modułu ESP8266:
ESP8266 to moduł z 8 zaciskami. Pin z tego samego pokazano poniżej.
Niestety ten moduł nie jest przyjazny dla płytki prototypowej i dlatego nie możemy go zamontować bezpośrednio na naszej płytce stykowej. W przeciwieństwie do Arduino nie ma wbudowanego sterownika USB to Serial; dlatego musimy używać „FTDI USB to TTL Serial Adapter Module” do komunikacji z nim. Upewnij się, że płyta FTDI może również działać na 3.3 V; ten, którego używamy w tym samouczku, jest pokazany poniżej.
Teraz, jak wiemy, powinniśmy zasilić ESP8266 napięciem 3,3 V. Ale pobór prądu wynosi 0,8 A, więc może nie działać zgodnie z oczekiwaniami, jeśli jest zasilany z naszej tablicy rozdzielczej FTDI. Dlatego musimy zbudować własny obwód zasilający. Tutaj użyliśmy LM317 do zasilania; szczegóły dotyczące wykonania kompletnego sprzętu podano w dalszej części.
Wymagane materiały:
- Płyta Perf
- ESP8266-01
- Płytka wyprowadzająca FTDI
- LM317
- Kondensator 0,1 uf
- Kondensator 10uf
- Barrel Jack
- Bergstik Mężczyzna i Kobieta
- Naciśnij przycisk
- Przewody łączące
- Adapter 12V do zasilania tablicy.
Objaśnienie obwodu:
Schemat tablicy przedstawiono poniżej
Niektórzy mogli próbować zasilać ESP bezpośrednio z FTDI i sprawić, by działał, ale następujące powody do zbudowania własnej płyty z kilkoma dodatkowymi komponentami:
- Tylko kilka płyt FTDI może dostarczyć wystarczającą ilość prądu dla modułu ESP. Kilka modułów ESP może pobierać wysoki prąd niż inne podczas flashowania. Dlatego zawsze bezpiecznie jest mieć własne źródło zasilania i łatwiej będzie zintegrować obwód zasilający na Dot Board zamiast na płytce stykowej.
- Zawsze powinniśmy resetować moduł ESP przed wgraniem kodu, zbudowanie własnej płytki pomoże nam łatwo zresetować moduł. Użyliśmy przycisku, aby zresetować ESP8266.
- Pin GPIO0 musi być uziemiony podczas programowania za pomocą Arduino i musi być wolny podczas używania poleceń AT, można to łatwo przełączać, jeśli zbudujemy własną płytkę. Użyliśmy zworki do przełączania między trybem poleceń AT a trybem programowania Arduino IDE.
- Całe programowanie odbywa się za pomocą komunikacji szeregowej , jeśli używasz płytki prototypowej, niektóre luźne zaciski mogą spowodować błąd w połowie i zmusić nas do flashowania modułu do ponownej pracy.
Mając to na uwadze, możesz wybrać między użyciem płytki prototypowej a utworzeniem własnej płytki do programowania modułu. Jeśli nadal chcesz używać płytki prototypowej, ten sam obwód pokazany powyżej można zbudować za pomocą płytki prototypowej. Tylko wygląd będzie inny, wszystkie inne instrukcje w tym samouczku będą miały takie samo zastosowanie.
Płyta budowlana do programu ESP8266:
Więc tutaj budujemy płytkę do programowania modułu ESP8266, który ma własny obwód zasilający do zasilania ESP8266.
Jak wspomniano, nasz moduł będzie wymagał około 800 mA podczas programowania. Dlatego skonstruowaliśmy własny moduł zasilania, używając regulatora zmiennego napięcia LM317, ponieważ prąd źródła LM317 wynosi prawie 1,2A. Napięcie wejściowe LM317 będzie wynosić 12 V, które będzie podawane za pomocą adaptera do montażu ściennego 12 V 2 A. Wyjście LM317 będzie stale regulowane do 3,3V za pomocą rezystorów 220ohm i 360ohm. Sprawdź również nasz obwód ładowarki akumulatora przy użyciu LM317, aby dowiedzieć się więcej o LM317.
Wzór na obliczenie napięcia wyjściowego LM317 podano poniżej:
Vout = 1,25 * (1+ (R2 / R1))
Gdzie R1 to 220 omów, a R2 to 360 omów.
Moduł ESP8266 jest podłączony zgodnie z pinami pokazanymi w poniższej tabeli.
Nr pinu |
Nazwa pinu ESP |
Połączony z |
1 |
Ziemia |
Masa modułu FTDI |
2 |
GPIO2 |
Pozostawiony wolny lub podłączony do kija berg do wykorzystania w przyszłości |
3 |
GPIO0 |
Przełącz, aby przełączać się między trybami programowania |
4 |
Rx |
Tx modułu FTDI |
5 |
Tx |
Rx modułu FTDI |
6 |
CH_PH |
3,3 V z LM317 |
7 |
Resetowanie |
Przycisk resetowania modułu |
8 |
Vcc |
3,3 V z LM317 |
Aby łatwo przełączać się między trybem poleceń AT a trybem programowania Arduino, umieściłem przełącznik (zworkę), który pociągnie GPIO 0 do masy podczas korzystania z Arduino IDE i pozostawi go w pozycji pływającej podczas korzystania z poleceń AT.
Jest przycisk, którego naciśnięcie zresetuje moduł ESP. Odbywa się to poprzez proste podłączenie wtyku RST modułu ESP do szyny uziemiającej za pomocą przycisku. Za każdym razem, zanim zaprogramujemy nasz moduł ESP, należy go zresetować.
Po zmontowaniu obwodu powinien on wyglądać mniej więcej tak poniżej.
Użyłem tablicy Perf, ale jeśli jesteś zainteresowany, możesz również użyć płytki prototypowej (jak omówiono powyżej). Pełną kompilację i wyjaśnienie pokazano na poniższym filmie.
Po zakończeniu połączeń. Włącz płytkę bez płyt ESP i FTDI i sprawdź, czy na zaciskach Vcc i Ground pozycji modułów ESP otrzymujemy prawidłowo 3,3 V. Teraz upewnij się, że twoja płyta FTDI jest w trybie 3,3 V i podłącz moduły FTDI i ESP do swojej płyty.
Włącz adapter i podłącz go do płytki, moduł ESP powinien zaświecić się na czerwono.
Następnie podłącz płytkę FTDI do komputera za pomocą kabla mini-USB na USB i przejdź do Menedżera urządzeń na komputerze i powinieneś znaleźć kartę FTDI podłączoną do portu COM, jak pokazano poniżej:
Nadszedł czas, aby nauczyć się programowania naszego modułu ESP8266. Możesz zacząć od użycia poleceń AT, a następnie przejść do korzystania z Arduino IDE. Nie zapomnij sprawdzić naszych innych projektów opartych na ESP8266.