P2-012
← Všetky témyArduino a ESP32 · 11 / 18

ESP32 a WiFi

Poznámka

ESP32 je mikrokontrolér s vestavaným WiFi a Bluetooth, ktorý sa programuje rovnako ako Arduino (cez Arduino IDE), ale pracuje s logikou 3,3 V (Napäťové úrovne) – nie 5 V ako Arduino Uno.

Príprava Arduino IDE pre ESP32

  1. V Arduino IDE otvor File → Preferences a do “Additional Board Manager URLs” vlož adresu balíka ESP32 (nájdeš ju vyhľadaním “ESP32 Arduino core”).
  2. Otvor Tools → Board → Boards Manager, vyhľadaj “esp32” a nainštaluj balík.
  3. V Tools → Board vyber konkrétny model (napr. “ESP32 Dev Module”).

Upozornenie

ESP32 GPIO piny nezvládnu 5 V – pri pripájaní senzorov navrhnutých pre Arduino Uno over, že pracujú aj na 3,3 V, alebo použi logický prevodník.

Pripojenie k WiFi

#include <WiFi.h>

const char* ssid = "Nazov_siete";
const char* heslo = "heslo_siete";

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, heslo);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("Pripojené!");
  Serial.print("IP adresa: ");
  Serial.println(WiFi.localIP());
}

void loop() {
}

Tip

IP adresu, ktorú ESP32 vypíše do Serial Monitora, budeš potrebovať v ďalšom kroku – zapíš si ju.

Jednoduchý webový server

#include <WiFi.h>

const char* ssid = "Nazov_siete";
const char* heslo = "heslo_siete";

WiFiServer server(80);

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, heslo);
  while (WiFi.status() != WL_CONNECTED) delay(500);
  server.begin();
}

void loop() {
  WiFiClient klient = server.available();
  if (klient) {
    klient.println("HTTP/1.1 200 OK");
    klient.println("Content-type:text/html");
    klient.println();
    klient.println("<h1>Ahoj z ESP32!</h1>");
    klient.stop();
  }
}

Po nahraní programu zadaj IP adresu ESP32 do prehliadača (napr. 192.168.1.55) – zobrazí sa stránka generovaná priamo z mikrokontroléra.

Ovládanie LED cez webovú stránku

#include <WiFi.h>

const char* ssid = "Nazov_siete";
const char* heslo = "heslo_siete";
const int pinLED = 2;

WiFiServer server(80);

void setup() {
  pinMode(pinLED, OUTPUT);
  WiFi.begin(ssid, heslo);
  while (WiFi.status() != WL_CONNECTED) delay(500);
  server.begin();
}

void loop() {
  WiFiClient klient = server.available();
  if (klient) {
    String pozadovka = klient.readStringUntil('\r');

    if (pozadovka.indexOf("/zapni") >= 0) digitalWrite(pinLED, HIGH);
    if (pozadovka.indexOf("/vypni") >= 0) digitalWrite(pinLED, LOW);

    klient.println("HTTP/1.1 200 OK");
    klient.println("Content-type:text/html");
    klient.println();
    klient.println("<a href=\"/zapni\">Zapnúť</a> | <a href=\"/vypni\">Vypnúť</a>");
    klient.stop();
  }
}

Mini-úlohy – ESP32

  1. Pripoj ESP32 k WiFi sieti a over IP adresu cez Serial Monitor.
  2. Vytvor jednoduchý webový server, ktorý zobrazí “Ahoj z ESP32!”.
  3. Rozšír server tak, aby cez /zapni a /vypni ovládal LED diódu.
  4. Vyskúšaj otvoriť webovú stránku ESP32 z telefónu pripojeného na rovnakú WiFi sieť.

Cheat sheet – rýchla referencia

WiFi.begin(ssid, heslo);              // pripoj sa k WiFi
WiFi.status() == WL_CONNECTED         // over stav pripojenia
WiFi.localIP()                         // získaj IP adresu

WiFiServer server(80);                 // webový server na porte 80
WiFiClient klient = server.available(); // čakaj na pripojenie klienta
klient.println("text");                // odošli odpoveď klientovi
Postup sa ukladá iba v tomto prehliadači.
18 kapitol · vyhľadávanie aj v texte