Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!
  • Fermate
    Fermate

    ESP32 Komme igang (1)

    Som jeg lovet: Koden øverst

     

    Sitat
    #define ONBOARD_LED 2

     

    // the setup function runs once when you press reset or power the board
    void setup() {
      // initialize digital pin ONBOARD_LED pin as an output.
      pinMode(ONBOARD_LED, OUTPUT);
    }

     

    // the loop function runs over and over again forever
    void loop() {
      digitalWrite(ONBOARD_LED, HIGH);  // turn the LED on (HIGH is the voltage level)
      delay(1000);                      // wait for a second
      digitalWrite(ONBOARD_LED, LOW);   // turn the LED off by making the voltage LOW
      delay(1000);                      // wait for a second
    }


     

    Det finnes en million guider om det å komme igang med Arduino eller ESP32 så egentlig burde jeg bare henvise til nettet, men for å gjøre dette komplett får jeg ta en miniversjon her også:

     

    • Skaff deg en ESP32 🙂
      Dessverre ser jeg at Kjell&co ikke fører den versjonen lengre så da blir det Aliexpress kanskje?
    • Last ned Arduino IDE. Etterhvert ønsker du kanskje å bruke platform.io for VS Code, men i starten er Arduino IDE helt greit
    • Trykk på BOARDS MANAGEREN og last ned ESP32
    • Sjekk i Tools/Port menyen hvilke seriell porter du har FØR du plugger inn ESP32
    • Koble prosessoren til PCen med en USB kabel. (Sjekk at det røde lyset tenner på ESP32'en)
    • Gå i Tools/Port menyen og velg den porten som nå (helst) har dukket opp
    • Gå i Tools/Board:/ESP32 menyen og velg ESP32 Dev Module
    • Kopier og lim inn programmet (istedet for det som ligger i den høyre delen av vinduet (void setup() osv))
    • Trykk på toolbar inkon Pil til høyre (Upload) og vent på at programmet kompilerer og laster ESP32'en
    • Om alt går bra står det
      Leaving...
      Hard resetting via RTS pin...

     

    Nå skal det blå lyset blinke hvert sekund. Hurra du har laget et program og kjører det på en mikroprosessor.

     

    La oss koble til serial monitoren for å følge med i hva som skjer i programmet.
    Endre programmet til dette:

     

    Sitat
    #define ONBOARD_LED 2

     

    // the setup function runs once when you press reset or power the board
    void setup() {
      // initialize digital pin LED_BUILTIN as an output.
      pinMode(ONBOARD_LED, OUTPUT);

     

      Serial.begin(115200);
      Serial.println("Startup");
    }

     

    // the loop function runs over and over again forever
    void loop() {
      digitalWrite(ONBOARD_LED, HIGH);  // turn the LED on (HIGH is the voltage level)
      Serial.println("Funkar");
      delay(1000);                      // wait for a second
      Serial.println("Funkar inte");
      digitalWrite(ONBOARD_LED, LOW);   // turn the LED off by making the voltage LOW
      delay(1000);                      // wait for a second
    }

     

    Trykk på toolbar pila igjen og vent på kompilering og upload.

    Når den er ferdig velger du Tools/Serial Monitor og endrer dropdown boksen til høyre til 115200

    Du ser nå teksten som mikroprosessoren skriver ut til deg.

    Om du trykker på den lille bryteren til venstre for USBen på ESP32 kortet vil den restarte.

     

    La oss nå bruke en "bryter" til å tenne LEDen istedet. Last ned og print ut dette kartet og heng det på veggen i laben din:

     

    ESP32-DOIT-DEV-KIT-v1-pinout-mischianti.png

     

    Vi skal nå bruke GPOI pin 13 som input pinne. Vi definerer den som INPUT og sier ifra at vi ønsker at ESP32'en internt skal sørge for å dra den opp til HIGH dersom den ikke er tilkoblet til noe. For å aktivere den trenger vi da kun å koble den til jord (GND)

     

    Sitat
    #define BRYTER_PIN GPIO_NUM_13

     
    pinMode(BRYTER_PIN,INPUT_PULLUP);


    Vi endrer programmet til å teste på denne pinnen og styre lyset. For at ikke teksten skal rase forbi (prøv uten den linja så skal du se) beholder vi den lille pausen på 1 sek. ( delay(1000); )

     

    Da blir programmet slik:

     

     

    Sitat
    #define ONBOARD_LED 2
    #define BRYTER_PIN GPIO_NUM_13

     

    // the setup function runs once when you press reset or power the board
    void setup() {
      // initialize digital pin ONBOARD_LED as an output.
      pinMode(ONBOARD_LED, OUTPUT);
      // INPUT PIN med intern PULLUP
      pinMode(BRYTER_PIN,INPUT_PULLUP);

     

      Serial.begin(115200);
      Serial.println("Startup");
    }

     

    // the loop function runs over and over again forever
    void loop() {
      if (digitalRead(BRYTER_PIN) == LOW) {
       digitalWrite(ONBOARD_LED, HIGH);  // turn the LED on (HIGH is the voltage level)
       Serial.println("Funkar");
      } else {
       digitalWrite(ONBOARD_LED, LOW);   // turn the LED off by making the voltage LOW
       Serial.println("Funkar inte");
       delay(1000);
      }
    }

     

    Om du nå kobler en ledning mellom GND og GPOI_13 vil du se at LEDen tenner.


    Når vi har gått gjennom MQTT Komme i gang skal vi bygge dette ut og styre LEDen og lese pinnen over MQTT i  ESP32/MQTT Det første programmet

    Brukertilbakemelding

    Anbefalte kommentarer

    Det er ingen kommentarer å vise.



    Bli med i samtalen

    Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

    Gjest
    Skriv en kommentar...

    ×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

      Du kan kun bruke opp til 75 smilefjes.

    ×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

    ×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

    ×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.




×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.