Hopp til innhald
Nynorsk

Fag

Oppgåve
Interaktivt innhald

Bygg ein trådlaus vêrstasjon med ESP32 og BMP280 eller BME280

Lag eit trådlaust sensorystem i Arduino med ein ESP32-DevKitC og ein kombinert temperatur-, trykk- og fuktsensor (BME280). Alternativt kan du bruke ein sensor som berre måler temperatur og trykk (BMP280).

Dagens læringsaktivitet

Du skal lage eit trådlaust sensorsystem som du programmerer i Arduino. Du bruker eit ESP32-Devkitc-utviklingskort og ein sensor som måler temperatur, trykk og fukt og sender dataa til Deploii-nettsida.

Dataa kan visast i sanntid på nettsida og lagrast i skya. Seinare kan du laste ned dataa i ønskt filformat (.csv, .txt osb.) og analysere dei vidare i Python eller Excel.

Slik kan eit ferdig oppsett sjå ut:

Utstyr

Til denne oppgåva treng du følgande utstyr:

  • ESP32-DevKitC

  • USB-A-til-mikro-USB-B-kabel med signallinje

  • pc som køyrer Windows, Mac OS eller Linux

  • BMP280- eller BME280-sensor (den første måler temperatur og trykk, den siste måler både temperatur, trykk og fukt)

  • leidningar og koplingsbrett (breadboard)

  • Arduino IDE installert (versjon 2.0 eller nyare)

  • Deploii-biblioteket installert, og dessutan Board Manager for ESP32 (eventuelt også drivarar)

  • brukar på Deploii

Oppkopling

Det trengst berre fire koplingar for å drive ein BMP280 eller ein BME280. Han treng straum/VCC (3,3 volt) og jord for straumtilførsel. Dataa blir sende frå sensoren via den innebygde -modulen. ESP32 blir kopla til pinnane SCL (pin 22) og SDA (pin 21) på kortet.

Sjå vedlegg for pinout-diagram av ESP32-DevKitC.

Oppkopling: Esp32 og BMP280

ESP32

BMP280

BME280

3,3 VVCCVCC
GNDGNDGND
SCL (22)SCLSCL
SDA (21)SDASDA

NDLA-boksen

Du kan òg velje å bygge prosjektet inn i ein støytsikker boks, til dømes NDLA-boksen.

Deploii-nettsida

Når alt er installert, loggar du deg inn på innloggingssida til Deploii. Deretter må du setje opp følgande (helst i rekkefølge):

  • eit kort av typen ESP32

  • fire datastraumar, gjerne kalla Temperatur, Trykk, BMP280 og Logg; eventuelt òg ein femte datastraum Fukt

  • ein måleserie

  • eit kontrollpanel med

    • ein graf som viser datastraumane Temperatur og Trykk

    • ein terminal som viser datastraumen BMP280

    • ein terminal som viser datastraumen Logg

Om du lurer på noko undervegs, kan du sjekke ut dei generelle guidane for Deploii på NDLA. Dei viser deg korleis du utfører dei ulike stega i lista over. Deploii-filmane kan òg vere gode hjelpemiddel. Og så kan du sjølvsagt spørje læraren din om hjelp.

Programmering

Installasjon (Arduino IDE)

Om du ikkje har installert noko frå før av, kan du gjere følgande:

  1. Først installerer du Arduino IDE. Følg oppstartsguiden for Arduino.

  2. Deretter må du laste ned ein såkalla Board Manager for ESP32 og kanskje ein COM Port Driver i tillegg. Filmane om Deploii viser deg korleis du kan gjere dette.

  3. Så må du laste biblioteket for Deploii ned i Arduino IDE. Dette gjer du via den innebygde bibliotekfunksjonen i Arduino.

  4. Til slutt må biblioteket for sensoren BMP280 eller BME280 installerast. Dette biblioteket heiter BMx280MI og vil stå som "laga av Gregor Christandl".

Dømekode

Du finn ein dømekode for sensoren BMP280 i eit vedlegg sist i denne artikkelen. Denne koden får sensoren til å måle temperatur og lufttrykk. Så blir dataa sende til Deploii. Du må tilpasse dømekoden litt og setje opp alt rett på nettsida.

Har du ein BME280, som måler fukt i tillegg, må du sjølv oppdatere koden med måling av fukt, men dette er valfritt.

Programmering med KI

Viss du vil programmere ved hjelp av KI, er det viktig at du fortel prateroboten kva rolle han skal ha, og kva du vil at han skal gjere. Her får du eit døme på ein slik instruksjon. Du må fylle inn din eigen informasjon i felta som er merkte med XXXXXX.

Det er òg viktig at du limer inn koden du får når du har sett opp Deploii, for å sikre rett kommunikasjon mellom mikrokontrollaren og Deploii. Slik kan instruksen til prateroboten sjå ut:

Du skal vere den digitale hjelparen min når eg skal programmere ESP32-en min. Eg skal kople ein ESP32 versjon XX til ein sensor av typen BMP280 for å måle temperatur og trykk (Alternativ: til ein sensor av typen BME280 for å måle temperatur, trykk og fukt).

ESP32 skal koplast med SCL til pinne 22 og med SDA til pinne 21.

Dataene ESP32 får, skal sendast til nettportalen Deploii, og datastraumane skal heite Temperatur, Trykk og Fukt.

Måleverdiar skal visast i seriell monitor på Arduino IDE, og det med ein fart på 9600.

Nettverksnamnet mitt er XXXXXXXX, og passord er XXXXXXXX. ESP32 har definert kort-ID XXXXXXXX.

Det skal sendast data kvart sekund, og dataa som blir viste, skal reknast om og visast i celsius, prosent og millibar.

Gi meg eit døme på kode, ei liste over komponentane eg treng for å kople ein slik krets, og ein instruksjon i korleis eg skal kople kretsen.

Du skal ta utgangspunkt i denne koden frå Deploii som beskriv korleis mikrokontrollar og Deploii blir kopla saman: LIM INN KODE FRÅ DEPLOII HER

Test ut

No som du har sett opp og programmert alt, skal du teste ut systemet.

  1. Klarer du å få inn nokre data på kontrollpanelet?

  2. Kva slags data ser du?

  3. I kva format synest du dataa er enklast å lese av?

  4. Fungerer datainnsamlinga òg om du koplar ESP32-en din til ein annan pc enn din eigen?

  5. Klarer du å laste ned dataa du har målt?

  6. Kva slags data finn du i fila du har lasta ned?

Dataanalyse med Python eller Excel

No skal du nytte kunnskapane dine til å hente ut og analysere dataa. Start ein ny måleserie på nettsida for datastraumane du har laga for temperatur, trykk og (eventuelt) fukt.

Etter at du har fått eit tilstrekkeleg antal datapunkt, til dømes 200 målepunkt fordelte på ein ti minutts periode, kan du laste ned måleserien.

Fila du får, vil ha same namn som datastraumen din, og ho er stempla med dato og tid slik at du kan halde styre på kva fil som er nyast. Når fila er på pc-en din, kan du laste ho inn i Python eller Excel og t.d. lage grafar og studere dataa i detalj.

Filer for nedlasting

Her finn du eit døme på programvare du kan prøve ut for å få systemet til å fungere.

Relatert innhald

NDLA-boksen

NDLA-boksen er spesialdesigna for Arduino-programmering. Her får du høve til å lage din eigen boks til bruk i programmeringsøvingar.

Introduksjon til Deploii

Deploii let deg kople mikrokontrollarar til nettsida deploii.no, slik at du kan samle inn og visualisere data via eit kontrollpanel.

Skrive av Roger Rosmo. Rettshavar: Company of Things AS.
Sist oppdatert 03.09.2025