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).

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

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
// 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);
}
}
Common Course Links
Common Course Files
Hulpmiddelen en referenties
-
DocumentatieESP32 Tutorial 18/55- SunFounder Tile sensor documentationdocs.sunfounder.com
Bestanden📁
Geen bestanden beschikbaar.