Hopp til innhald
Nynorsk

Fag

Oppgåve
Interaktivt innhald

Bygg eit trådlaust varslingssystem med ESP32 og PIR-rørslesensor

Lag eit trådlaust varslingssystem for rørsle med ein ESP32 og ein PIR-sensor som registrerer rørsle i området framfor sensoren.

Dagens læringsaktivitet

Du skal lage eit trådlaust sensorsystem som blir programmert i Arduino. Med eit ESP32-utviklingskort og ein PIR-sensor registrerer du rørsle i eit område og sender dataa til Deploii-nettsida.

Dataa kan visast i sanntid på nettsida og lagrast i skya. Derfrå kan du laste dei ned 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

  • PIR-sensor, til dømes Grove Digital PIR (måler rørsle)

  • leidningar og koplingsbrett (breadboard)

  • Arduino IDE installert (versjon 2.0 eller nyare)

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

  • brukar på Deploii

Oppkopling

Det trengst berre tre koplingar for å drive ein PIR-sensor: Han treng straum/VCC (3,3 volt) og jord for straumtilførsel. For å hente ut data gjennom SIG til sensoren må du kople han til pin 19 på ESP32-en.

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

Oppkopling: Esp32 og PIR-sensor

ESP32

PIR-sensor

3,3 VVCC
GNDGND
19SIG
Ikkje i brukNC

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, går du til innloggingssida til Deploii og loggar deg inn. Deretter må du setje opp følgande (helst i rekkefølge):

  • eit kort av typen ESP32

  • ein datastraum, gjerne kalla PIR

  • ein måleserie

  • eit kontrollpanel med

    • ein graf som viser datastraumen PIR

    • ei talvisning som viser datastraumen PIR

    • ein terminal som viser datastraumen PIR

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 ved å følge 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. Deretter må biblioteket for Deploii lastast ned i Arduino IDE. Dette gjer du via den innebygde bibliotekfunksjonen i Arduino.

Dømekode

Du finn ein dømekode for Grove Digital PIR-sensoren i eit vedlegg sist i denne artikkelen. Denne koden får sensoren til å registrere rørsle. Så blir dataa sende til Deploii. Men du må tilpasse dømekoden litt og setje opp alt rett på nettsida.

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 ønsker 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 Grove Digital PIR-sensor for å registrere rørsle.

ESP32 skal koplast med signal (SIG) til pinne 19. Pinne NC skal ikkje brukast.

Dataa ESP32 får, skal sendast til nettportalen Deploii, og datastraumen skal heite PIR.

Eg ønsker òg at måleverdiar skal visast i seriell monitor på Arduino IDE, og det med ein fart på 9600.

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

Det skal sendast data kvart sekund. Dataa skal visast som verdien 0 for inga rørsle og verdien 1 for rørsle.

Kan du gi meg eit døme på kode, ei liste over komponentane eg treng for å kople ein slik krets, og ein instruks for 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

Datainnsamling

Du kan velje å samle inn data over eit bestemt tidsrom og lagre desse dataa i ein måleserie. I og med at PIR-sensoren berre gir verdien 0 eller 1, får du kanskje ikkje brukt dataa frå denne måleserien til så mykje praktisk arbeid.

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 andre pc-ar 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?

Filer for nedlasting

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

Relatert innhald

Introduksjon til Deploii

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

Deploii – hurtigguide

For å opprette kommunikasjon mellom eit utviklarkort og Deploii må du gjere nokre grunnleggande oppsett på Deploii og programmere mikrokontrolleren din.

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