Jump to content
  • Sign Up
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

    User Feedback

    Recommended Comments

    There are no comments to display.



    Join the conversation

    You can post now and register later. If you have an account, sign in now to post with your account.

    Guest
    Add a comment...

    ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.




×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.