Search Code

ESP32 Tutorial 18/55 - Kanteling detecteren met ESP32 | SunFounder's ESP32 IoT-leerset

ESP32 Tutorial 18/55 - Kanteling detecteren met ESP32 | SunFounder's ESP32 IoT-leerset

In deze tutorial gebruiken we de SunFounder ESP32-microcontroller om een eenvoudig project te maken dat kanteling detecteert met behulp van een kantelschakelaar. Wanneer de kantelschakelaar wordt geactiveerd, gaat een LED uit, en wanneer deze in rechtopstaande positie staat, gaat de LED aan. Dit project is niet alleen een geweldige introductie tot het werken met kantelsensoren, maar vormt ook een basis voor verschillende robotica-toepassingen. Voor een gedetailleerde visuele gids, bekijk zeker de video die hierboven is gelinkt (in video op 00:00).

kantelschakelaar

Hardware Uitgelegd

De belangrijkste componenten die in dit project worden gebruikt, zijn de ESP32-microcontroller, een kantelschakelaar en een LED. De ESP32 is een krachtige microcontroller met ingebouwde Wi-Fi en Bluetooth, waardoor het ideaal is voor IoT-toepassingen. De kantelschakelaar is een eenvoudig apparaat dat een metalen bal in een blik bevat. Wanneer deze wordt gekanteld, beweegt de bal en verbreekt het circuit, waardoor we de kantelstatus kunnen detecteren. De LED geeft visueel de kantelstatus aan op basis van de staat van de schakelaar. Naast deze componenten gebruiken we ook weerstanden voor stroombegrenzing en pull-down-doeleinden. De 220-ohm-weerstand die op de LED is aangesloten, zorgt ervoor dat de LED veilig werkt zonder te veel stroom te trekken. De 10k-ohm-weerstand fungeert als pull-down voor de kantelschakelaar, zodat de ingangspin een bekende staat leest wanneer de schakelaar niet is geactiveerd.

Datasheet Details

Fabrikant SunFounder
Onderdeelnummer ESP32
Logica/IO-spanning 3,3 V
Voedingsspanning 5 V
Uitgangsstroom (per kanaal) 12 mA
Piekstroom (per kanaal) 40 mA
PWM-frequentierichtlijn 1 kHz
Ingangslogische drempels 0,8 V (laag), 2,0 V (hoog)
Spanningsval / RDS(on) / verzadiging 0,2 V
Thermische limieten 85 °C
Behuizing ESP32-module
Opmerkingen / varianten Bevat Wi-Fi- en Bluetooth-mogelijkheden

 

  • Zorg voor de juiste weerstandswaarden om schade aan de LED te voorkomen.
  • Houd de bedrading netjes om kortsluiting te voorkomen.
  • Gebruik pull-down-weerstanden om stabiele metingen van de kantelschakelaar te garanderen.
  • Test verbindingen voordat u het circuit van stroom voorziet om componentstoringen te voorkomen.
  • Controleer de oriëntatie van de kantelschakelaar voor nauwkeurige functionaliteit.

Bedradingsinstructies

ESP32-18_tile_wiring

Om de componenten te bedraden, begint u met de kantelschakelaar, die geen polariteit heeft, dus deze kan in beide richtingen worden aangesloten. Verbind één pin van de kantelschakelaar met de 3,3V-voeding en de andere pin met pin 14 op de ESP32. Om ervoor te zorgen dat pin 14 een bekende staat leest wanneer de schakelaar niet is geactiveerd, verbindt u een 10k-ohm-weerstand van dezelfde pin naar de grond. Neem vervolgens de LED en plaats deze in het breadboard met het langere been (anode) verbonden met een 220-ohm-weerstand. Verbind het andere uiteinde van de weerstand met pin 26 op de ESP32. Het kortere been (kathode) van de LED moet worden verbonden met de grond. Verbind ten slotte de grondpin van de ESP32 met de grondrail van uw breadboard en de 3,3V-pin met de stroomrail. Controleer alle verbindingen dubbel om kortsluiting of onjuiste metingen te voorkomen. Als u deze stappen volgt, zou u een functionele kantelsensoropstelling moeten hebben die klaar is voor programmeren.

Codevoorbeelden & Uitleg

De code begint met het definiëren van de pinnummers voor de kantelschakelaar en de LED. De kantelschakelaar is verbonden met pin 14, en de LED is verbonden met pin 26. De staat van de kantelschakelaar wordt opgeslagen in de variabele tiltState.


// Stel pinnummers in
const int tiltPin = 14;  // Kantelschakelaar
const int ledPin = 26;   // LED

// Variabele voor het opslaan van de kantelstatus
int tiltState = 0;

Dit fragment toont de pintoewijzingen en de declaratie van de variabele die de kantelstatus zal bijhouden. De tiltPin is ingesteld als invoer om de schakelaarstatus te lezen. In de setup()-functie wordt de seriële communicatie geïnitialiseerd en worden de pinmodi ingesteld voor de kantelschakelaar en de LED. Dit zorgt ervoor dat de ESP32 invoer van de kantelschakelaar kan lezen en de LED dienovereenkomstig kan aansturen.


void setup() {
  Serial.begin(115200);
  // Initialiseer de kantelpin als invoer
  pinMode(tiltPin, INPUT);
  // Initialiseer de LED-pin als uitvoer
  pinMode(ledPin, OUTPUT);
}

Deze sectie is cruciaal omdat het de omgeving instelt, waardoor de ESP32 effectief kan communiceren en de uitvoer kan aansturen op basis van de kantelschakelaarstatus. De loop()-functie controleert continu de staat van de kantelschakelaar. Als de schakelaar rechtop staat, gaat de LED aan; als deze gekanteld is, gaat de LED uit. De huidige staat wordt naar de seriële monitor geprint voor debugging.


void loop() {
  // Lees de staat van de kantelschakelaar
  tiltState = digitalRead(tiltPin);

  Serial.println(tiltState);
  // Als de schakelaar rechtop staat
  if (tiltState == HIGH) {
    // Zet LED aan
    digitalWrite(ledPin, HIGH);
  } else {
    // Zet LED uit
    digitalWrite(ledPin, LOW);
  }
}

Deze loop draait continu, waardoor realtime monitoring van de kantelschakelaarstatus en de bijbehorende LED-besturing mogelijk is. De uitvoer kan worden waargenomen in de seriële monitor, waardoor het gemakkelijk is om de functionaliteit te verifiëren.

Demonstratie / Wat te Verwachten

Zodra alles correct is bedraad en de code is geüpload, zou je de LED moeten zien aangaan wanneer de kantelschakelaar rechtop staat, en deze gaat uit wanneer deze gekanteld wordt. Deze directe correlatie tussen de kanteltoestand en de LED-respons toont effectief de functionaliteit van de kantelschakelaar. Veelvoorkomende valkuilen zijn onder meer het controleren of de bedrading correct is en het verifiëren dat de weerstanden op de juiste plaats zijn geplaatst om kortsluiting te voorkomen (in video op 12:00).

Videotijdstippen

  • 00:00 Start
  • 1:44 Introductie project
  • 2:49 Documentatie
  • 6:43 Arduino-bedrading uitgelegd
  • 10:39 Arduino-code uitgelegd
  • 13:40 ESP32-board en COM-poort selecteren in Arduino IDE
  • 15:22 Project kanteldemonstratie

Afbeeldingen

ESP32-18_tile_wiring
ESP32-18_tile_wiring
tilt_switch
tilt_switch
ESP32-18_tile_schematic
ESP32-18_tile_schematic
817-ESP32 Tutorial 18/55- Arduino code for tilt sensor
Taal: C++
// Set pin numbers
const int tiltPin = 14;  // Tilt Switch
const int ledPin = 26;   // LED

// Variable for storing the tilt status
int tiltState = 0;

void setup() {
  Serial.begin(115200);
  // Initialize the tilt pin as an input
  pinMode(tiltPin, INPUT);
  // Initialize the LED pin as an output
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // Read the state of the tilt switch
  tiltState = digitalRead(tiltPin);

  Serial.println(tiltState);
  // If the switch is upright
  if (tiltState == HIGH) {
    // Turn LED on
    digitalWrite(ledPin, HIGH);

  } else {
    // Turn LED off
    digitalWrite(ledPin, LOW);
  }
}

Hulpmiddelen en referenties

Bestanden📁

Geen bestanden beschikbaar.