X

Kurs ESP - ESP-01

ESP-01 to jeden z najmniejszych mikrokontrolerów, wykorzystujących chip ESP8266. Posiada moduł Wi-Fi 2.4 GHz w standardach b/g/n. Moduł posiada przyłącz na osiem pinów. Dysponuje 1MB pamięci flash, trzema portami GPIO, portami (TX, RX) do komunikacji z  programatorem oraz wbudowaną anteną i diodą LED. Układ nie posiada modułu, odpowiadającego za regulację napięcia zasilania układu.

Piny układu

Poszczególne piny płytki odpowiadają za:

1 (VCC) –  zasilanie 3,3V max 3,6 wymagane natężenie 300mA,

2 (RST) – reset po podaniu stanu niskiego,

3 (CH-DP) – wyłączenie po podaniu stanu niskiego, podczas pracy stan wysoki,

4 (TXD) – GPIO1, nadajnik interfejsu szeregowego UART,

5 (GND) – uziemienie,

6 (GPIO2) – port komunikacyjny, FLASH,

7 (GPIO0) – port komunikacyjny, aktualizacja programu,

8 (RXD) – GPIO3, odbiornik interfejsu szeregowego UART.
 

Zasilanie

Układ nie posiada modułu, odpowiadającego za regulację napięcia zasilania układu. Wymagane napięcie zasilania wynosi 3,3V.

Programowanie układu

Układ ESP-01 nie posiada wbudowanego programatora. W celu programowania należy wykorzystać programator lub inny mikrokontroler, wyposażony w interfejs szeregowy UART. Poniżej przedstawiono programowanie mikrokontrolera za pomocą Arduino Nano.

W przypadku programowania ESP-01 należy: podpiąć porty CH-DP oraz VCC do napięcia 3,3v, porty GPIO0 oraz GND do uziemiania. Należy prawidłowo podłączyć szeregowy interfejs UART.

Schemat podłączenia

ESP-01programing

Konfiguracja Arduino IDE

ESP-01 IDE config

Program sterowanie diodą LED (Blynk)

Płytka może działać jako moduł rozszerzeń do mikrokontrolerów, niewyposażonych w  interfejs komunikacyjny Wi-Fi lub jako oddzielny układ. W przypadku samodzielnego działania występuje jednak ograniczenie, co do ilości portów. Poniżej przedstawiono schemat wykorzystania modułu ESP-01 do sterowania diodą LED.

Schemat podłączenia.

Wymagany rezystor 220Ω. Przetwornica ustawiona na 3,3V.

ESP-01 LED

Kod programu 

void setup() {
  pinMode(2, OUTPUT);  
}

void loop() {
  digitalWrite(2, LOW);
  delay(1000);                   
  digitalWrite(2, HIGH);  
  delay(2000);                
}