IoT og smarthus

ESP32 for nybegynnere: fra første oppkobling til sensorprosjekt

ESP32-utviklingskort på breadboard med sensor og OLED-skjerm

ESP32 er en familie av rimelige mikrokontrollere fra Espressif med innebygd WiFi og som regel Bluetooth. Ett lite kort kan lese sensorer, styre lys og motorer og sende data trådløst. I motsetning til en Raspberry Pi kjører ESP32 ett kompakt program uten Linux. Derfor starter kortet nesten umiddelbart, bruker lite strøm og gir deg direkte kontroll over pinnene.

Kort forklartStart med et ESP32-utviklingskort, en USB-kabel som overfører data, et breadboard og én enkel sensor. Last opp et blinkprogram, les sensoren i seriellmonitoren, vis verdien på en liten OLED-skjerm og koble til WiFi til slutt. ESP32 bruker 3,3 V-logikk, så et 5 V-signal skal aldri kobles direkte til en GPIO-pinne.

Hva kan ESP32 brukes til?

De fleste ESP32-kort har digitale inn- og utganger, analoge innganger (ADC), PWM og busser som I²C, SPI og UART. Sammen med WiFi gir det en praktisk plattform for værstasjoner, dataloggere, lysstyring, små roboter og egne smarthussensorer. Du skriver programmet på PC-en i Arduino IDE, PlatformIO, ESP-IDF eller MicroPython og laster det opp via USB.

Et ESP32-startsett med sensorer og OLED er nyttig fordi du kan følge flere øvelser uten å lete etter motstander, ledninger og breadboard. Et kompakt kort som M5StickS3 med integrert skjerm passer bedre når du vil ha en liten, ferdig enhet med kabinett, knapper og display.

ESP32 startsett med utviklingskort, sensorer, breadboard og OLED-skjerm
Et startsett gjør det lettere å bygge flere små øvelser med kompatible basisdeler.

Hvilken ESP32-variant?

«ESP32» brukes både om den opprinnelige brikken og om hele familien. Variantene har ulik prosessor, radio og USB-løsning. Sjekk derfor hvilken brikke som sitter på kortet før du følger et eksempel eller en pinout.

VariantProsessorTrådløstGodt å vite
ESP32 (original)To Xtensa-kjerner, opptil 240 MHzWiFi 4, Bluetooth Classic og BLEFlest eksempler på nett; USB går vanligvis via en egen USB-seriell-brikke på kortet
ESP32-S3To Xtensa-kjerner, opptil 240 MHzWiFi 4 og BLE 5Innebygd USB og mange GPIO; vanlig i nyere M5Stack-produkter
ESP32-C3Én RISC-V-kjerne, opptil 160 MHzWiFi 4 og BLE 5Rimelig og strømgjerrig, men færre pinner
ESP32-C6RISC-V, opptil 160 MHzWiFi 6, BLE 5 og IEEE 802.15.4Kan i tillegg brukes til Zigbee og Thread
ESP32-H2RISC-V, opptil 96 MHzBLE 5 og IEEE 802.15.4, ikke WiFiLaget for Zigbee- og Thread-enheter, ikke for WiFi-prosjekter

ESP32, S3, C3 og C6 bruker bare WiFi på 2,4 GHz. Hvis ruteren har separate nett, må kortet kobles til 2,4 GHz-nettet. For et første prosjekt er en klassisk ESP32 eller en ESP32-S3 et trygt valg, fordi de har størst utvalg av eksempler og biblioteker.

ESP32 eller Raspberry Pi?

EgenskapESP32Raspberry Pi 4/5
KjøremiljøEtt program, ofte med FreeRTOS i bakgrunnenLinux med mange samtidige programmer
OppstartVanligvis under ett sekundOperativsystemet må starte først
StrømforbrukLavt, med dyp søvn mellom målingerHøyere; laget som en liten datamaskin
Sensorer og timingDirekte og forutsigbarGod, men operativsystemet kan påvirke timingen
Analoge inngangerInnebygd ADCKrever en ekstern ADC-modul
Nettleser, database, videoBegrensetNaturlig bruksområde

Velg ESP32 når én liten enhet skal gjøre en avgrenset jobb. Velg Raspberry Pi når prosjektet trenger nettleser, database, kamera med videobehandling eller flere tunge tjenester. En vanlig og robust arkitektur er å la flere ESP32-sensorer sende data til en Raspberry Pi eller en Home Assistant-server.

Hvis du vil forstå hele Pi-familien, se Hva er Raspberry Pi?. Står du mellom flere plattformer, sammenligner Arduino, ESP32 eller Raspberry Pi og Raspberry Pi Pico eller ESP32 dem mer detaljert.

Dette trenger du

  • Et ESP32-utviklingskort med USB-tilkobling.
  • En USB-kabel som overfører data, ikke bare strøm. Mange «ladekabler» mangler dataledere.
  • Et loddefritt breadboard og jumperledninger.
  • En enkel sensor med dokumentert driftsspenning og grensesnitt, for eksempel analog, I²C eller digital.
  • Eventuelt en I²C OLED-skjerm.
  • Arduino IDE, PlatformIO eller et annet støttet utviklingsmiljø på PC-en.
3,3 volt: ESP32-pinnene tåler ikke 5 V. Kontroller signalnivåene før du kobler en modul til GPIO. «5 V-kompatibel modul» betyr ofte bare at modulen kan forsynes med 5 V, ikke at signalutgangene er trygge for ESP32. Bruk nivåomformer eller spenningsdeler når et signal er høyere enn 3,3 V.

Første prosjekt i fem trinn

  1. Last opp et blinkprogram. Da bekrefter du USB-driver, kortvalg, port og opplasting før andre komponenter blandes inn.
  2. Koble til sensoren uten skjerm. Les verdien i seriellmonitoren og kontroller at den endrer seg på en rimelig måte.
  3. Legg til OLED via I²C. Finn adressen til skjermen og bruk de SDA- og SCL-pinnene som kortets pinout angir.
  4. Koble til WiFi sist. Hold nettverksnavn og passord utenfor kode du deler. Skriv logikk som tåler at nettet forsvinner.
  5. Gjør strømforsyningen robust. Test uten PC, kontroller kabel og forsyning, og se at kortet starter pålitelig mange ganger på rad.

Trinn 2 kan se slik ut i Arduino IDE. Programmet leser en analog sensor én gang i sekundet og skriver både råverdi og omtrentlig spenning:

// Les en analog sensor og skriv verdien til seriellmonitoren
const int SENSOR_PIN = 34;  // ADC1-pinne på klassisk ESP32; sjekk pinout for ditt kort

void setup() {
  Serial.begin(115200);
}

void loop() {
  int raw = analogRead(SENSOR_PIN);                 // 0–4095 med 12 bit
  int millivolt = analogReadMilliVolts(SENSOR_PIN); // kalibrert omregning
  Serial.printf("Rå: %d  Spenning: %d mV\n", raw, millivolt);
  delay(1000);
}

Sett seriellmonitoren til 115200 baud. På den klassiske ESP32 kan ADC2-pinnene ikke brukes mens WiFi er aktiv, så velg en ADC1-pinne fra starten. GPIO 34–39 på den samme brikken er bare innganger og mangler interne pull-up-motstander. Endre én ting om gangen og lagre en fungerende versjon før neste trinn. Hvis skjermen blir blank etter at WiFi er lagt til, vet du da at sensor og skjerm virket før nettverkskoden.

Vanlige problemer og løsninger

Kortet vises ikke som port

Prøv en kabel du vet overfører data, en annen USB-port og riktig driver. Mange kort bruker en USB-seriell-brikke av typen CP210x eller CH340, som kan kreve driver på enkelte systemer. Noen kort må settes i opplastingsmodus ved at du holder BOOT-knappen inne mens opplastingen starter. Velg nøyaktig kortvariant i verktøyet.

Sensorverdien er ustabil

Kontroller felles jord, driftsspenning, ledningslengde og pull-up-motstander. Ta flere målinger og bruk gjerne median eller gjennomsnitt, men ikke bruk programvare til å skjule en dårlig elektrisk forbindelse.

Kortet finner ikke WiFi-nettet

Kontroller at nettet sender på 2,4 GHz, at navnet er stavet nøyaktig og at kortet er innenfor rekkevidde. Kort med liten PCB-antenne har kortere rekkevidde enn en mobiltelefon, særlig gjennom vegger og metall.

WiFi gir omstarter

Radiosending trekker korte strømtopper. En svak USB-port, tynn kabel eller dårlig regulator kan gi spenningsfall. Se etter «brownout»-meldinger i seriellmonitoren, og prøv en bedre strømforsyning før du endrer koden.

Pinnene stemmer ikke med eksempelet

ESP32 er en familie, ikke ett identisk kort. Integrerte moduler som M5Atom Lite bruker enkelte pinner internt til LED, knapp eller flashminne. Følg produsentens pinout for akkurat ditt kort fremfor et tilfeldig diagram fra nettet.

Fra prototype til ferdig enhet

Når prototypen virker, bestemmer du måleintervall, feiltilstander og hva som skal skje uten nett. En typisk smarthussensor har denne flyten:

For et lokalt smarthus er ESPHome en enkel vei: du beskriver sensorene i en konfigurasjonsfil, og Home Assistant finner enheten automatisk. Les først vår sammenligning av Home Assistant-protokoller. Et eget WiFi-produkt og en Zigbee-sensor har ulike konsekvenser for dekning, batteritid og vedlikehold.

Legg inn diagnostikk før prosjektet bygges inn. Seriell logging bør vise oppstart, sensorfeil og nettverkstilkobling uten å skrive ut passord eller nøkler. Bestem hva som er en gyldig måling, og hva enheten skal gjøre når sensoren svarer med en umulig verdi. En status-LED eller en enkel feilkode sparer mye tid når enheten senere står uten skjerm.

Flytt forbindelsene fra breadboard til loddet kort når oppsettet er ferdig. Et breadboard er fint på arbeidsbenken, men ikke en varig forbindelse i et fuktig miljø eller der det er vibrasjoner. Bruk fargekoder, strekkavlastning og et koblingsskjema som følger prosjektet. Lagre kildekode, bibliotekversjoner og en kort oppskrift for opplasting. Test deretter kald oppstart, tapt WiFi, frakoblet sensor og mange timers drift.

Strøm og batteridrift

Mål strømforbruket i den tilstanden prosjektet faktisk skal bruke. WiFi-sending, lyssterk skjerm og sensorer med varmeelement dominerer ofte forbruket. Selve ESP32-brikken bruker bare noen få mikroampere i dyp søvn, men mange utviklingskort trekker flere milliampere på grunn av spenningsregulator, strømindikator-LED og USB-brikke. Til batteridrift trenger du derfor ofte et kort laget for lavt hvileforbruk, sjeldnere målinger og dyp søvn mellom dem.

Ikke koble litiumceller direkte til kortet uten riktig lade- og beskyttelseskrets. Kontroller i dokumentasjonen om utviklingskortets USB- og batteriinnganger kan brukes slik du planlegger.

Neste steg

Når maskinvaren virker, velger du programmeringsvei i guiden til UIFlow, MicroPython, Arduino og ESP-IDF. Har du et M5Stack-kort, viser UIFlow 2.0-guiden hvordan blokker, Code Preview og WebTerminal brukes sammen. Vil du sammenligne utviklingsmiljøene mer i detalj, se Arduino IDE, PlatformIO eller ESP-IDF.

Et godt første sensorprosjekt med praktisk nytte er en plantemåler. Guiden til jordfuktighetssensor med Arduino og ESP32 viser kobling, kalibrering og filtrering.

Oppsummering

ESP32 passer når du vil lære elektronikk og bygge en liten, trådløs enhet med en tydelig oppgave. Sjekk hvilken variant kortet har, begynn med blink, les én sensor, legg til skjerm og koble til nettverk til slutt. Respekter 3,3 V-grensen, bruk riktig pinout og dokumenter hvert trinn som virker. Den metoden er mer verdifull enn å kopiere et stort prosjekt du ikke kan feilsøke.

Alle guider

Produkter omtalt i denne guiden

Produktene som brukes og sammenlignes i guiden, med pris og lagerstatus.