Hopp til innhold
Bokmål

Fag

Oppgave
Interaktivt innhold

Bygg en trådløs værstasjon med ESP32 og BMP280 eller BME280

Lag et trådløst sensorystem i Arduino med en ESP32-DevKitC og en kombinert temperatur-, trykk- og fuktsensor (BME280). Alternativt kan du bruke en sensor som bare måler temperatur og trykk (BMP280).

Dagens læringsaktivitet

Du skal lage et trådløst sensorsystem som programmeres i Arduino. Du bruker et ESP32-DevKitC-utviklingskort og en sensor som måler temperatur, trykk og fukt og sender dataene til Deploii-nettsida.

Dataene kan vises i sanntid på nettsida og lagres i skya. Seinere kan du laste ned dataene i ønska filformat (.csv, .txt osv.) og analysere dem videre i Python eller Excel.

Slik kan et ferdig oppsett se ut:

Utstyr

Til denne oppgava trenger du følgende utstyr:

  • ESP32-DevKitC

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

  • pc som kjører 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)

  • ledninger og koplingsbrett (breadboard)

  • Arduino IDE installert (versjon 2.0 eller nyere)

  • Deploii-biblioteket installert, samt Board Manager for ESP32 (eventuelt også drivere)

  • bruker på Deploii

Oppkopling

Det trengs bare fire koplinger for å drive en BMP280 eller en BME280. Den trenger strøm/VCC (3,3 volt) og jord for strømtilførsel. Dataene sendes fra sensoren via den innebygde I2C-modulen. ESP32 koples til pinnene SCL (pin 22) og SDA (pin 21) på kortet.

Se 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 også velge å bygge prosjektet inn i en støtsikker boks, for eksempel NDLA-boksen.

Deploii-nettsida

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

  • et kort av typen ESP32

  • fire datastrømmer, gjerne kalt Temperatur, Trykk, BMP280 og Logg; eventuelt også en femte datastrøm Fukt

  • en måleserie

  • et kontrollpanel med

    • en graf som viser datastrømmene Temperatur og Trykk

    • en terminal som viser datastrømmen BMP280

    • en terminal som viser datastrømmen Logg

Om du lurer på noe underveis, kan du sjekke ut de generelle guidene for Deploii på NDLA. De viser deg hvordan du utfører de forskjellige stega i lista over. Deploii-filmene kan også være gode hjelpemidler. Og så kan du selvfølgelig spørre læreren din om hjelp.

Programmering

Installasjon (Arduino IDE)

Om du ikke har installert noe fra før av, kan du gjøre følgende:

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

  2. Deretter må du laste ned en såkalt Board Manager for ESP32 og kanskje en COM Port Driver i tillegg. Filmene om Deploii viser deg hvordan du kan gjøre dette.

  3. Deretter må du laste biblioteket for Deploii ned i Arduino IDE. Dette gjør du via den innebygde bibliotekfunksjonen i Arduino.

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

Eksempelkode

Du finner en eksempelkode for sensoren BMP280 i et vedlegg sist i denne artikkelen. Denne koden får sensoren til å måle temperatur og lufttrykk. Så blir dataene sendt til Deploii. Du må tilpasse eksempelkoden litt og sette opp alt riktig på nettsida.

Har du en BME280, som måler fukt i tillegg, må du selv oppdatere koden med måling av fukt, men dette er valgfritt.

Programmering med KI

Hvis du vil programmere ved hjelp av KI, er det viktig at du forteller prateroboten hvilken rolle den skal ha, og hva du vil at den skal gjøre. Her får du et eksempel på en slik instruksjon. Du må fylle inn din egen informasjon i felta som er merka med XXXXXX.

Det er også viktig at du limer inn koden du får når du har satt opp Deploii, for å sikre riktig kommunikasjon mellom mikrokontrolleren og Deploii. Slik kan instruksen til prateroboten se ut:

Du skal være min digitale hjelper når jeg skal programmere min ESP32. Jeg skal kople en ESP32 versjon XX til en sensor av typen BMP280 for å måle temperatur og trykk (Alternativ: til en sensor av typen BME280 for å måle temperatur, trykk og fukt).

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

Dataene ESP32 mottar, skal sendes til nettportalen Deploii, og datastrømmene skal hete Temperatur, Trykk og Fukt.

Måleverdier skal vises i seriell monitor på Arduino IDE, og det med en hastighet på 9600.

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

Det skal sendes data hvert sekund, og dataene som vises, skal omregnes og vises i celsius, prosent og millibar.

Gi meg et eksempel på kode, ei liste over komponentene jeg trenger for å kople en slik krets, og en instruksjon i hvordan jeg skal kople kretsen.

Du skal ta utgangspunkt i denne koden fra Deploii som beskriver hvordan mikrokontroller og Deploii koples sammen: LIM INN KODE FRA DEPLOII HER

Test ut

Nå som du har satt opp og programmert alt, skal du teste ut systemet.

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

  2. Hva slags data ser du?

  3. I hvilket format synes du dataene er enklest å lese av?

  4. Fungerer datainnsamlinga også om du kopler din ESP32 til noen andres pc?

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

  6. Hva slags data finner du i fila du har lasta ned?

Dataanalyse med Python eller Excel

Nå skal du anvende kunnskapene dine til å hente ut og analysere dataene. Start en ny måleserie på nettsida for datastrømmene du har laga for temperatur, trykk og (eventuelt) fukt.

Etter at du har fått et tilstrekkelig antall datapunkter, for eksempel 200 målepunkter fordelt på en ti minutters periode, kan du laste ned måleserien.

Fila du får, vil ha samme navn som datastrømmen din, og den er stempla med dato og tid slik at du kan holde styre på hvilken fil som er nyest. Når fila er på pc-en din, kan du laste den inn i Python eller Excel og f.eks. lage grafer og studere dataene i detalj.

Filer for nedlasting

Her finner du et eksempel på programvare du kan prøve ut for å få systemet til å fungere.

Relatert innhold

NDLA-boksen

NDLA-boksen er spesialdesigna for Arduino-programmering. Her får du mulighet til å lage din egen boks til bruk i programmeringsøvinger.

Introduksjon til Deploii

Deploii lar deg kople mikrokontrollere til nettsida deploii.no, slik at du kan samle inn og visualisere data via et kontrollpanel.

Skrevet av Roger Rosmo. Rettighetshaver: Company of Things AS.
Sist oppdatert 03.09.2025