Upoznaj ESP32: tvoj prvi Arduino program

Pripremi Arduino IDE, poveži ESP32 i prati pozdrav, brojač poruka i proteklo vrijeme u Serial Monitoru.

Prvi koraci sa ESP32 i ArduinomPočetni nivo60 min

Ciljevi učenja

  • Instalirati podršku za klasični ESP32 i izabrati ploču i port.
  • Razlikovati kompajliranje programa od njegovog učitavanja na uređaj.
  • Objasniti uloge setup(), loop() i serijske komunikacije.
  • Promijeniti poruku i interval ispisivanja te provjeriti rezultat.

Prije početka

Predznanje programiranja nije potrebno. Potrebno je osnovno snalaženje sa datotekama i instaliranjem programa na računaru.

Referentna postavka

Ploča u Arduino IDE-u
ESP32 Dev Module
Arduino-ESP32
3.3.12
Serial Monitor
115200 baud

Ovo je referentni profil, a ne identifikacija ploče sa fotografije. Za ESP32-C3/S2/S3 ili drugačije označenu ploču treba prilagoditi GPIO i provjeriti šemu prije spajanja.

Šta ćeš napraviti

Povezaćeš ESP32 sa računarom i pokrenuti program koji šalje pozdrav, a zatim približno jednom u sekundi ispisuje novi podatak u Serial Monitoru. Posmatraćeš brojač poruka i proteklo vrijeme od pokretanja. To je prvi mali dokaz da možeš da napišeš program, preneseš ga na uređaj i vidiš njegov rezultat.

U ovom kursu nema spoljnog elektronskog kola. Ne zavisimo od toga da li razvojna ploča ima ugrađenu LED diodu kojom se može upravljati. Računar prikazuje poruke, a program se izvršava na ESP32.

Šta ćeš naučiti

  • Da pripremiš Arduino IDE za klasični ESP32.
  • Da razlikuješ izbor ploče od izbora komunikacionog porta.
  • Da učitaš program i koristiš Serial Monitor.
  • Da objasniš uloge funkcija setup() i loop().
  • Da promijeniš poruku i period njenog ispisivanja.

Predznanje

Programiranje nije preduslov. Potrebno je da znaš da preuzmeš datoteku, raspakuješ arhivu i pronađeš fasciklu na računaru. Pripremi približno 60 minuta; instalacija može trajati duže ako je internet spor.

Referentni uređaj je razvojna ploča sa klasičnim ESP32/ESP32-WROOM-32. Ovaj profil nije namijenjen pločama ESP32-C3, S2 ili S3, za koje se posebno prilagođavaju izbor ploče i naredni kursevi.

Potrebna oprema

KomponentaKoličinaSpecifikacija i napomene
ESP32 razvojna ploča sa klasičnim ESP32-WROOM-32 modulom1GPIO nazivi moraju odgovarati referentnom profilu; fizički položaj izvoda provjeriti na ploči.
USB kabl za podatke i napajanje1Priključak prilagoditi ploči; komplet na slici navodi Micro-USB.

USB kabl mora prenositi podatke. Kabl koji služi samo za punjenje može napajati ploču, a da se komunikacioni port uopšte ne pojavi. Arduino preporučuje provjeru kabla i direktno povezivanje sa računarom kada uređaj nije otkriven: provjera USB veze.

Kako radi

Arduino program se često naziva skica, odnosno „sketch”. IDE prevodi napisani tekst u oblik koji ESP32 može izvršavati, a zatim ga prenosi u memoriju uređaja. Dugme Verify provjerava prevođenje; Upload dodatno pokreće prenos na ploču. Uspješan Verify ne potvrđuje da je program prenesen ili da se uređaj ponaša kako očekuješ.

setup() priprema program pri svakom pokretanju. Poslije njega se ponavlja loop(). Serijska veza nam omogućava da vidimo podatke iz programa. Brzina podešena u programu i Serial Monitoru mora biti ista: ovdje koristimo 115200 baud.

Povezivanje

Šema povezivanja

Prikaz prikazuje električne veze po GPIO nazivima, a ne fizički raspored priključaka ploče. Napajanje ploče je preko USB kabla.

Šema povezivanja — električne veze navedene u tabeli ispod
Šema povezivanjaUvećajSVGPNG
Veze · Šema povezivanja
OdDoOpis veze
COMPUTER.USBESP32.USBUSB kabl za napajanje i razmjenu podataka.
  1. Položi ploču na čistu, neprovodnu podlogu i ukloni spojne žice sa njenih pinova.
  2. Priključi odgovarajući USB konektor na ploču, a drugi kraj direktno na računar.
  3. Sačekaj da operativni sistem prepozna priključeni uređaj.

Ploča se u ovoj vježbi napaja samo preko USB-a. Spoljne izvore napajanja ne povezujemo. Raspored konektora i tastera provjeri na svojoj ploči; Espressifov vodič za DevKitC objašnjava tipične funkcije USB, EN i BOOT priključaka/tastera.

Priprema Arduino okruženja

  1. Instaliraj Arduino IDE 2.x sa zvanične Arduino stranice.
  2. U Preferences pronađi Additional Boards Manager URLs i dodaj https://espressif.github.io/arduino-esp32/package_esp32_index.json.
  3. Otvori Boards Manager, pronađi „esp32 by Espressif Systems” i izaberi verziju 3.3.12, ciljnu verziju ovog paketa kurseva. Postupak instalacije opisuje Espressif.
  4. U izboru ploče postavi ESP32 Dev Module. Zatim izaberi port priključene ploče. Ako nije jasno koji je, uporedi listu portova prije i poslije isključivanja USB kabla.
  5. Preuzmi Arduino primjer (.zip) i raspakuj ga. Zadrži datoteku first_program.ino unutar istoimene fascikle first_program i otvori je dvostrukim klikom.

Dodatne biblioteke nisu potrebne. Izbor ploče određuje kako se program prevodi, a port određuje uređaj kome se šalje. To su dva odvojena podešavanja, čak i kada ih IDE nudi zajedno: Arduino — ploča i port.

Program

Prikazani program i datoteka za preuzimanje imaju isti izvor. Najprije pokreni original, pa tek onda sačuvaj kopiju za svoje izmjene.

first_program.ino Arduino / C++
Preuzmi .ino

#include <Arduino.h>

constexpr uint32_t REPORT_INTERVAL_MS = 1000;
uint32_t lastReportMs = 0;
uint32_t counter = 0;

void setup() {
  Serial.begin(115200);
  Serial.println("Hello from WB Maker Bridge!");
  Serial.println("ESP32 is ready. Watch the counter and uptime.");
  lastReportMs = millis();
}

void loop() {
  const uint32_t now = millis();

  // Subtraction keeps this timer working across millis() rollover.
  if (now - lastReportMs >= REPORT_INTERVAL_MS) {
    lastReportMs = now;
    counter++;

    Serial.print("Counter: ");
    Serial.print(counter);
    Serial.print(" | Uptime (s): ");
    Serial.println(now / 1000);
  }
}

Kako čitati program

Pronađi Serial.begin(115200) u početnom dijelu. Ono postavlja serijsku komunikaciju. Pozdrav se ispisuje tokom pripreme, zbog čega se ne pojavljuje u svakom prolasku kroz loop().

Program pamti vrijeme prethodnog periodičnog ispisa. Funkcija millis() daje protekle milisekunde, a razlika između sadašnjeg i prethodnog vremena poredi se sa intervalom REPORT_INTERVAL_MS. Hiljadu milisekundi je jedna sekunda. Kada interval protekne, nastaje novi red i ažurira se zabilježeno vrijeme. Ovaj pristup ostavlja petlji prostor za druge zadatke; sličan princip pokazuje Arduino Blink Without Delay.

Brojač poruka i protekle sekunde imaju različito značenje. U početnom programu rastu približno zajedno jer šaljemo jednu poruku u sekundi. Ako interval promijeniš, njihov odnos će se promijeniti.

Pokretanje i očekivani rezultat

Klikni Verify, sačekaj uspješan završetak, zatim klikni Upload. Kada prenos završi, otvori Serial Monitor iz menija Tools i postavi 115200 baud. Ako si propustio početni pozdrav, kratko pritisni EN/RESET nakon otvaranja monitora.

Očekuješ početnu poruku i redove koji se dodaju približno svake sekunde. Prebroj pet uzastopnih redova. Pritisak na reset ponovo pokreće program; početne vrijednosti se uspostavljaju iznova. Samo zatvaranje monitora ne predstavlja namjerno resetovanje, mada promjena veze na nekim pločama može pokrenuti reset.

Posmatranje i bilješke

PostupakŠta treba zabilježiti
Posmatraj pet periodičnih redovaDa li je razmak približno jedna sekunda?
Pritisni EN/RESETDa li se pozdrav ponavlja i brojač počinje iznova?
Isključi i ponovo priključi USBDa li isti program ponovo radi bez novog učitavanja?

Rješavanje problema

ProblemProvjera i sljedeći korak
Port se ne pojavljujeProbaj provjeren podatkovni kabl i drugi USB priključak. Provjeri prepoznavanje uređaja u operativnom sistemu.
ESP32 Dev Module nije na listiProvjeri da je instaliran paket kompanije Espressif.
Upload prijavljuje nedostupan portPonovo izaberi port i zatvori druge programe koji ga koriste.
Povezivanje pri Upload-u ne uspijevaTek nakon provjere kabla i porta pokušaj držati BOOT tokom poruke „Connecting”; otpusti kada prenos počne. Ako ploča zahtijeva ručni ulazak, drži BOOT, kratko pritisni EN, pa ponovi Upload.
Tekst je nečitljivPostavi 115200 baud.
Monitor je prazanProvjeri port, sačekaj nekoliko sekundi i pritisni EN/RESET.

Samostalni izazov

Sačuvaj kopiju programa. Promijeni pozdrav tako da sadrži tvoje ime i „WB Maker Bridge”. Zatim promijeni interval na dvije sekunde. Prije učitavanja predvidi: koliko poruka će stići za približno deset sekundi i kako će se mijenjati prikaz proteklog vremena?

Provjeri razumijevanje

  1. Koji dio programa se izvršava jednom nakon resetovanja?
  2. Zašto izbor ispravne ploče nije dovoljan za Upload?
  3. Da li promjena perioda ispisivanja mijenja brzinu proticanja vremena?

Smjernice i rješenja

Za izazov izmijeni tekst pozdrava i postavi REPORT_INTERVAL_MS na 2000 milisekundi. Očekuješ oko pet periodičnih poruka za deset sekundi. Brojač poruka napreduje po jedan, a prikaz proteklih sekundi približno po dva. Vrijeme mjeriš od pokretanja uređaja, ne od trenutka kada si pogledao monitor.

Odgovori: setup() se izvršava pri pokretanju; port određuje fizički povezani uređaj; interval mijenja učestalost slanja poruka. Prije sljedećeg kursa vrati originalni interval i samostalno ponovi učitavanje.

Preuzimanje

Primarni izvori