Kurs ESP8266 #3: Zapoznanie ze środowiskiem oraz pierwszy program

Kurs ESP8266 #3: Zapoznanie ze środowiskiem oraz pierwszy program

Opis Wyprowadzeń 

ESP-01:

ESP01PINOUT_ts

 

NodeMCU V2 (ESP12):

 

nodemcu_pinout_700-2

 

Każdy pin GPIO posiada swój własny numer, który wpisujemy podczas programowania. Te numery to:

nr Pinu GPIO nr Pinu GPIO
0 [*] GPIO16 7 GPIO13
1 GPIO5 8 GPIO15
2 GPIO4 9 GPIO3
3 GPIO0 10 GPIO1
4 GPIO2 11 GPIO9
5 GPIO14 12 GPIO10
6 GPIO12

*GPIO0 może być tylko wykorzystane jako zwykłe I/O

Język programistyczny Lua

Ze względu na to, że chcemy, aby nasze kursy nie były robione „na jedno kopyto” to kurs o modułach ESP8266 będzie się odbywać w języku programistycznym Lua (ESP8266 można jeszcze programować jak Arduino). Ale tak właściwie czym jest Lua ?LUA

Lua (z j.portugalskiego = księżyc) to multi-platformowy język skryptowy, pierwotnie zaprojektowany dla rozszerzenia funkcjonalności różnych aplikacji, jednak często jest używany jako samodzielny język. Lua wiąże w sobie prostą składnię procedury (podobną do Pascala) z konstrukcjami opisu danych opartymi na tablicach asocjacyjnych i rozszerzalnej semantyce. Język ten zaimplementowany jest jako mała biblioteka języka C, napisana według standardu ANSI C. Celami implementacji są: prostota, wydajność i przenośność kodu.
Tyle wiemy w teorii, a jak to wygląda w praktyce ? Zobaczmy:

 

 

 

Przykład komunikacji po UART:

Wpiszmy do naszego okienka taką funkcję:

Następnie klikamy powyżej dyskietkę Save zapisujemy nasz pliki jako init.lua Jest to bardzo ważne, ponieważ tak nazwany plik będzie wykonywany razem ze startem ESP8266. Po zatwierdzeniu zobaczymy na monitorze portu szeregowego, że nasz pliki był wysłyany po kolei linijkami. Po wgraniu programu otrzymujemy taki komunikat:

UART

Jak widać program został wykonany. W porównaniu do Arduino nie musimy definiować komunikacji UART, ustawiać prędkości transmisji itp. Tutaj chciałbym wtrącić ważną rzecz. Jeżeli używacie NodeMCU v2 to może Wam się wyświetlać taki komunikat „Can’t autodetect firmware, because proper answer not received. ” Można go zignorować ponieważ to bug i oprogramowanie jest poprawnie wykrywane. Jeżeli się rozłączymy i połączymy ponownie to już powinno pokazać odpowienią linijkę odpowiedzialną za nasz firmware.

Teraz jak klikniemy Reload po prawej stronie to zostanie odświeżona zawartość układu ESP8266 i powinniśmy otrzymać takie okno:

reload

Zostanie nam wyświetlona lista wgranych plików do modułu oraz ich waga. Ponadto od tego momentu pod przyciskiem Reload będą się wyświetlać wgrane pliki, które będziemy mogli bezpośrednio wykonywać po naciśnięciu ich.

Zapalanie diody

Teraz napiszmy już „trudniejszy program”, który będzie się składać z dwóch linii. Jego zadaniem będzie zapalać diodę. Naszą diodę podłączamy do GPIO0, co koresponduje z pinem 3. Aby zapalić naszą diodę to musimy na pin 3 podać stan niski. Do tego trzeba się przyzwyczaić, ponieważ wszystkie piny GPIO są na stałe podciągnięte do 3,3V. Zatem diodę podłączamy katodą do pinu GPIO0, a anodę przez rezystor do 3,3V.

Teraz potrzebujemy funkcje, przy pomocy których zrealizujemy nasz program:

Konfiguracja pinu
W pierwszej kolejności musimy ustalić jaki pin chcemy wykorzystać i jaką ma pełnić funkcję. Z pomocą przychodzi gpio.mode():

Stan pinu:

Znając te dwie podstawowe funkcje jesteśmy w stanie sklecić nasz program, a wygląda on następująco:

Efekt jaki uzyskamy powinien być następujący:

DSCN171