WLAN w Arduino - podłącz ESP8266-01 do Arduino i kontroluj NodeMCU Amica zdalnie za pomocą smartfona
Arduino to jedna z najbardziej znanych płyt programistycznych. Niestety standardowe modele nie mają zainstalowanego układu Wi-Fi. Ta praktyczna wskazówka pokazuje, jak podłączyć moduł WLAN ESP8266-01 do Arduino i jak zdalnie sterować NodeMCU Amica za pomocą smartfona.
Steruj NodeMCU Amica za pomocą smartfona
NodeMCU Amica ma wiele pinów, a także wbudowany układ Wi-Fi ESP8266 i gniazdo microUSB. Dlatego sensowne jest używanie urządzenia jako samodzielnego urządzenia. Sposób podłączenia „klasycznej” płytki ESP8266 do Arduino opisano w dalszej części tego artykułu.
- Aby móc programować układy ESP, musisz najpierw pobrać i zainstalować sterowniki dla wszystkich układów CP210er z Silicon Labs. Na szczęście dzieje się to stosunkowo szybko.
- Następnie otwórz Arduino IDE i przejdź do Ustawień. Dodaj adres URL „//arduino.esp8266.com/stable/package_esp8266com_index.json” (bez znaków cudzysłowu) do dodatkowych adresów URL administratora forum. Następnie uruchom administratora forum, wpisz „ESP8266” i zainstaluj pakiet.
- Przejdź również do menedżera biblioteki, wpisz „Blynk” i zainstaluj najnowszą wersję. Wszystkie niezbędne komponenty są teraz zainstalowane.
- Potrzebujesz aplikacji Blynk do sterowania NodeMCU za pomocą smartfona. Jeśli nie zostało to jeszcze zrobione, utwórz nowe konto tutaj lub zaloguj się przy użyciu istniejącego. Następnie utwórz nowy projekt i wybierz NodeMCU jako płytkę.
- Z przykładowymi kodami w Arduino IDE powinieneś również znaleźć kod dla Blynk (→ „Boards_WiFi”) na NodeMCU. Po prostu wprowadź tutaj token Blynk swojego projektu, który został automatycznie wysłany e-mailem. Podaj także swój identyfikator SSID i hasło.
- Aby załadować kod na tablicę, musisz oczywiście wybrać go z zakładki „Narzędzia”. W naszym przypadku trzeba było wybrać „NodeMCU 1.0 (moduł ESP12E)”, częstotliwość 80 MHz, rozmiar pamięci „4M (3M SPIFFS)” i szybkość transmisji 115200. Należy jednak pamiętać, że informacje mogą się różnić w zależności od modelu.
- Następnie możesz po prostu załadować kod na tablicę i kontrolować go za pomocą aplikacji Blynk. Tutaj możesz łatwo tworzyć różne widżety i, na przykład, sterować diodą LED za pomocą przycisku.
Połącz WiFi na Arduino - ESP8266-01 z Arduino
Następnie chcemy połączyć i używać modułu ESP8266-01 z Arduino.
- Jeśli obrócisz płytkę tak, aby wskazywała złotą anteną, możesz znaleźć pin VCC w lewym górnym rogu, który oczywiście musi być ustawiony na WYSOKI. Po prawej stronie znajduje się pin RST, którego zwykle nie trzeba używać. Stojący obok niego pin CH_PD musi być ponownie ustawiony na WYSOKI. W prawym górnym rogu mamy pin TXD, który wysyła sygnały, a w lewym dolnym rogu mamy pin RXD, który odbiera sygnały, oczywiście. Mamy również GPIO0 i GPIO2, a także klasyczny pin uziemiający, który znajduje się w prawym dolnym rogu.
- Aby móc korzystać z modułu w Arduino, warto skorzystać z SoftwareSerial, ponieważ HardwareSerial jest najczęściej używany do komunikacji między Arduino i komputerem. W naszym przypadku moduł wykorzystuje 115200 jako prędkość transmisji, co oznacza, że komunikacja między ESP a Arduino za pośrednictwem SoftwareSerial nie jest możliwa.
- Aby zmienić szybkość transmisji, wielu użytkowników po prostu flashuje nowe oprogramowanie, które zapewnia inną prędkość transmisji. Nie jest to jednak absolutnie konieczne, ponieważ prędkość transmisji można również zmienić za pomocą polecenia. To polecenie to „AT + UART_DEF”. Inne polecenia, takie jak „AT + IPR” lub „AT + CIOBAUD” można również znaleźć w Internecie, ale nie jest to wskazane, ponieważ w szczególności „AT + IPR” może również spowodować awarię modułu.
- Aby wysłać polecenie do modułu, zaleca się podłączenie go do komputera za pomocą adaptera USB, który zwykle jest dostarczany bezpłatnie lub można go znaleźć w Internecie za około jednego euro. Jeśli nie masz adaptera USB, możesz go zamówić online, co jest wysoce zalecane, lub użyć uniwersalnego adaptera FTDI, który jest dość złożony i często nie działa poprawnie. Alternatywnie istnieje inny wariant, który zostanie wyjaśniony później.
- Jeśli moduł został podłączony do komputera, możesz wysłać polecenie „AT + UART_DEF = 9600, 8, 1, 0, 0” z szybkością transmisji 115200 i CR + LF. Następnie możesz ponownie podłączyć moduł i wysyłać polecenia z prędkością 9600.
- Następnie musisz zaprogramować Arduino. Kod jest stosunkowo prosty. Najpierw definiujemy pusty ciąg za pomocą polecenia »String s =" ";«, importujemy SoftwareSerial (»#include«) i tworzymy nowy obiekt SoftwareSerial (»SoftwareSerial Serial_ESP (2, 3);«). W metodzie konfiguracji uruchamiane jest połączenie z ESP (»Serial_ESP.begin (9600);«) i połączenie z komputerem (»Serial.begin (9600);«). Jeśli ESP wysyła sygnał, jest on dodawany do łańcucha, a następnie łańcuch jest wyprowadzany na monitor szeregowy (»while (Serial_ESP.available ()> 0) {s + = (char) Serial_ESP.read ();} if (s ! = "") {Serial.println (s); s = "";} «). I odwrotnie, sygnały wysyłane przez monitor szeregowy, tj. Komputer, są również przekazywane do ESP (»while (Serial.available ()> 0) {Serial_ESP.write (Serial.read ());}«). Jednak bardzo ważne jest, aby całość przekształcić w znak, ponieważ ESP odsyła liczby z powrotem. Możesz także znaleźć kod ponownie w galerii zdjęć na końcu artykułu.
- Po załadowaniu kodu do Arduino musisz podłączyć ESP. Uwaga! ESP wykorzystuje 3, 3 wolta zamiast 5 V. 5 V całkowicie to zepsuło. Ponieważ jednak Arduino pracuje z logiką 5 V, napięcie należy odpowiednio dostosować.
- Teoretycznie można użyć dzielnika napięcia z rezystorami, ale w praktyce całość jest dość nieprecyzyjna i może być łatwo zakłócona. Dlatego musisz przełączyć konwerter poziomu logicznego między Arduino i ESP.
- Podłącz styk 5 V Arduino do WN, tj. Styk wysokiego napięcia na przetwornicy, a styk LV przetwornika do styku VCC ESP. Podłącz również styk LV równolegle do styku CH_PD ESP, aby układ również był włączony. Ponadto, aby uzyskać wystarczającą ilość prądu, należy podłączyć pin 3, 3 V Arduino do pinu LV konwertera, a tym samym do VCC i CH_PD ESP. Teraz podłącz pin TX z SoftwareSerial - w naszym przypadku pin 3 na Arduino - z HV 1, 2, 3 lub 4, a przeciwny pin LV z pinem RXD na ESP. Powtórz ten krok również dla pinu RX Arduino.
- Na koniec musisz podłączyć ziemię. Aby to zrobić, podłącz masę Arduino do masy po stronie WN przetwornika. Następnie podłącz masę po stronie niskiego napięcia do masy ESP. Na koniec musisz połączyć uziemienie WN i uziemienie WN.
- Teraz możesz łatwo wysyłać polecenia AT z komputerem do ESP za pomocą Arduino. Możesz łatwo podłączyć Arduino do Wi-Fi, stworzyć serwer WWW i wiele więcej. Wystarczy dodać odpowiednie polecenia AT do kodu Arduino (w metodzie konfiguracji), które mają zostać wysłane do ESP, które można również znaleźć w „Zestawie instrukcji AT”.
- Jeśli nie masz gotowego adaptera USB, możesz również wysłać polecenie zmiany szybkości transmisji za pośrednictwem HardwareSerial, używając tego samego obwodu, używając pinów TX i RX Arduino, tj. 0 i 1. Nie zapomnij jednak odpowiednio dostosować szybkości transmisji w kodzie.
W następnej praktycznej wskazówce przedstawimy wprowadzenie do języka programowania Java.