Publisert Legg igjen en kommentar

Kom i gang med ESP32: Din første mikrokontroller

ESP32 er en kraftig og rimelig mikrokontroller som har revolusjonert hobbyelektronikk og IoT-prosjekter. Med innebygd WiFi og Bluetooth, samt en rekke sensorer og utganger, er ESP32 det perfekte startpunktet for din reise inn i verden av programmérbare elektronikk.

Hva du trenger

  • ESP32 utviklingskort (f.eks. ESP32 DevKit V1)
  • USB-kabel (micro-USB eller USB-C, avhengig av kort)
  • LED (valgfritt for blink-eksempel)
  • 220Ω motstand (valgfritt)
  • Breadboard og jumperledninger (valgfritt)
  • Datamaskin med internettilgang

Hva er ESP32?

ESP32 er en mikrokontroller utviklet av Espressif Systems. En mikrokontroller er en liten datamaskin på en brikke som kan programmeres til å styre elektroniske komponenter. ESP32 skiller seg ut med innebygd WiFi og Bluetooth, noe som gjør det ideelt for IoT-prosjekter (Internet of Things – ting koblet til internett).

ESP32 har mange GPIO-pins (General Purpose Input/Output), som er tilkoblingspunkter der du kan koble til sensorer, LED-lys, motorer og andre komponenter.

Installasjon av Arduino IDE

Arduino IDE (Integrated Development Environment) er programvaren vi bruker for å skrive og laste opp kode til ESP32. La oss installere det steg for steg:

  1. Last ned Arduino IDE fra arduino.cc og installer programmet på datamaskinen din
  2. Åpne Arduino IDE og gå til File → Preferences
  3. Legg til ESP32 board manager URL: I feltet «Additional Board Manager URLs», lim inn:
    https://dl.espressif.com/dl/package_esp32_index.json
  4. Installer ESP32 boards: Gå til Tools → Board → Boards Manager, søk etter «esp32» og installer «ESP32 by Espressif Systems»
  5. Velg riktig board: Gå til Tools → Board → ESP32 Arduino og velg «ESP32 Dev Module» eller det som matcher ditt kort

Tips: Hvis du har problemer med installasjon, prøv å kjøre Arduino IDE som administrator (Windows) eller bruk sudo (Mac/Linux).

Ditt første program: Blink

Det tradisjonelle første programmet for mikrokontrollere er «blink» – å få en LED til å blinke. ESP32 har en innebygd LED som vi kan bruke:

// Definerer pin for innebygd LED
#define LED_PIN 2

void setup() {
  // Setter LED-pin som utgang
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  // Skrur på LED
  digitalWrite(LED_PIN, HIGH);
  delay(1000); // Venter 1 sekund
  
  // Skrur av LED
  digitalWrite(LED_PIN, LOW);
  delay(1000); // Venter 1 sekund
}

Slik laster du opp koden:

  1. Koble ESP32 til datamaskinen med USB-kabel
  2. Velg riktig COM-port under Tools → Port
  3. Klikk «Upload»-knappen (pil som peker høyre)
  4. LED-en på ESP32 skal nå begynne å blinke hvert sekund
ESP32 DevKit V1

GPIO 2

GND

LED

220Ω

Ekstern LED-tilkobling (valgfritt) Blå = Signal (GPIO 2) Svart = GND

WiFi-oppsett

En av ESP32s største styrker er den innebygde WiFi-funksjonaliteten. Her er et enkelt eksempel som kobler ESP32 til ditt trådløse nettverk:

#include <WiFi.h>

// Erstatt med ditt nettverk
const char* ssid = "DITT_WIFI_NAVN";
const char* password = "DITT_WIFI_PASSORD";

void setup() {
  Serial.begin(115200);
  
  // Starter WiFi-tilkobling
  WiFi.begin(ssid, password);
  Serial.print("Kobler til WiFi");
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  
  Serial.println();
  Serial.println("WiFi tilkoblet!");
  Serial.print("IP-adresse: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  // Hovedprogrammet ditt her
}

Åpne Serial Monitor (Tools → Serial Monitor) for å se tilkoblingsstatusen. Sett baudrate til 115200.

Tips: Hvis ESP32 ikke kobler til WiFi, sjekk at nettverksnavnet og passordet er korrekt, og at du bruker 2.4GHz WiFi (ESP32 støtter ikke 5GHz).

GPIO-grunnleggende

ESP32 har over 30 GPIO-pins som kan konfigureres som inn- eller utganger. Her er de vanligste funksjonene:

  • Digital utgang: Sender 3.3V (HIGH) eller 0V (LOW)
  • Digital inngang: Leser 3.3V som HIGH, 0V som LOW
  • Analog inngang: Leser spenningsverdier mellom 0-3.3V
  • PWM: Simulerer analog utgang ved å variere puls-bredde

Eksempel på å lese en knapp og styre en LED:

#define BUTTON_PIN 4
#define LED_PIN 2

void setup() {
  pinMode(LED_PIN, OUTPUT);
  pinMode(BUTTON_PIN, INPUT_PULLUP);
}

void loop() {
  if (digitalRead(BUTTON_PIN) == LOW) {
    digitalWrite(LED_PIN, HIGH); // Skru på LED
  } else {
    digitalWrite(LED_PIN, LOW);  // Skru av LED
  }
}

Tips: INPUT_PULLUP aktiverer en intern motstand som «trekker» pin-en til HIGH når knappen ikke trykkes. Dette forhindrer «flytende» pin-verdier.

Vanlige feil og løsninger

  • «Port ikke funnet»: Sjekk at USB-kabelen er koblet til og at du har valgt riktig COM-port. På Windows kan du trenge å installere CP210x eller CH340 drivere.
  • «Compilation error»: Kontroller at du har valgt riktig board (ESP32 Dev Module) og at koden ikke har skrivefeil.
  • WiFi kobler ikke til: Sjekk at SSID og passord er korrekt, og at du bruker 2.4GHz nettverk.
  • LED blinker ikke: Prøv en annen GPIO-pin (f.eks. pin 5 eller 18) – noen ESP32-kort har LED på forskjellige pins.
  • «Brownout detector»: Dette skjer ved lav spenning. Prøv en annen USB-kabel eller USB-port med mer strøm.

Neste steg

Gratulerer! Du har nå installert Arduino IDE, programmert din første ESP32, og koblet den til WiFi. Dette åpner dører for utallige prosjekter som værstasjoner, smart hjemkontrollere, og IoT-sensorer.

Hos RoboNordic finner du et bredt utvalg av ESP32-kort og tilhørende komponenter i vår elektronikk-kategori, perfekt for å utvide dine ferdigheter videre.

I kommende guider vil vi dekke mer avanserte temaer som webservere, sensorlesing, og MQTT-kommunikasjon. Følg med for mer spennende ESP32-innhold!