Samouczek ESP32 18/55 - Wykrywanie przechyłu za pomocą ESP32 | Zestaw edukacyjny IoT ESP32 od SunFounder
W tym samouczku użyjemy mikrokontrolera SunFounder ESP32 do stworzenia prostego projektu, który wykrywa przechylenie za pomocą przełącznika pochylenia. Gdy przełącznik pochylenia zostanie aktywowany, dioda LED zgaśnie, a gdy znajduje się w pozycji pionowej, dioda LED się zapali. Ten projekt to nie tylko świetne wprowadzenie do pracy z czujnikami pochylenia, ale także stanowi podstawę dla różnych zastosowań robotycznych. Aby uzyskać szczegółowy przewodnik wizualny, koniecznie obejrzyj wideo powyżej (na wideo o 00:00).

Wyjaśnienie sprzętu
Główne komponenty użyte w tym projekcie to mikrokontroler ESP32, przełącznik pochylenia oraz dioda LED. ESP32 to wydajny mikrokontroler z wbudowanym Wi-Fi i Bluetooth, co czyni go idealnym do zastosowań IoT. Przełącznik pochylenia to proste urządzenie zawierające metalową kulkę wewnątrz puszki. Po przechyleniu kulka przesuwa się i przerywa obwód, co pozwala nam wykryć stan pochylenia. Dioda LED będzie wizualnie wskazywać stan pochylenia na podstawie stanu przełącznika. Oprócz tych komponentów użyjemy również rezystorów do ograniczania prądu i podciągania do masy. Rezystor 220 omów podłączony do diody LED zapewnia bezpieczną pracę diody bez pobierania zbyt dużego prądu. Rezystor 10k omów działa jako podciąganie do masy dla przełącznika pochylenia, zapewniając, że pin wejściowy odczytuje znany stan, gdy przełącznik nie jest aktywowany.
Szczegóły z karty katalogowej
| Producent | SunFounder |
|---|---|
| Numer części | ESP32 |
| Napięcie logiczne/IO | 3,3 V |
| Napięcie zasilania | 5 V |
| Prąd wyjściowy (na kanał) | 12 mA |
| Prąd szczytowy (na kanał) | 40 mA |
| Zalecana częstotliwość PWM | 1 kHz |
| Progi logiczne wejścia | 0,8 V (niski), 2,0 V (wysoki) |
| Spadek napięcia / RDS(on) / nasycenie | 0,2 V |
| Limity termiczne | 85 °C |
| Obudowa | Moduł ESP32 |
| Uwagi / warianty | Obejmuje możliwości Wi-Fi i Bluetooth |
- Zapewnij odpowiednie wartości rezystorów, aby zapobiec uszkodzeniu diody LED.
- Utrzymuj okablowanie w porządku, aby uniknąć zwarć.
- Użyj rezystorów podciągających do masy, aby zapewnić stabilne odczyty z przełącznika pochylenia.
- Przetestuj połączenia przed zasileniem obwodu, aby uniknąć awarii komponentów.
- Sprawdź orientację przełącznika pochylenia, aby zapewnić dokładne działanie.
Instrukcje okablowania

Aby podłączyć komponenty, zacznij od przełącznika pochylenia, który nie ma polaryzacji, więc można go podłączyć w dowolnym kierunku. Podłącz jeden pin przełącznika pochylenia do zasilania 3,3 V, a drugi pin do pinu 14 na ESP32. Aby zapewnić, że pin 14 odczytuje znany stan, gdy przełącznik nie jest aktywowany, podłącz rezystor 10k omów z tego samego pinu do masy. Następnie weź diodę LED i umieść ją na płytce stykowej, podłączając dłuższą nóżkę (anodę) do rezystora 220 omów. Podłącz drugi koniec rezystora do pinu 26 na ESP32. Krótsza nóżka (katoda) diody LED powinna być podłączona do masy. Na koniec podłącz pin masy ESP32 do szyny masy na płytce stykowej, a pin 3,3 V do szyny zasilania. Upewnij się, że dokładnie sprawdziłeś wszystkie połączenia, aby zapobiec zwarciom lub błędnym odczytom. Jeśli wykonasz te kroki, powinieneś mieć funkcjonalny zestaw czujnika pochylenia gotowy do programowania.
Przykłady kodu i omówienie
Kod zaczyna się od zdefiniowania numerów pinów dla przełącznika pochylenia i diody LED. Przełącznik pochylenia jest podłączony do pinu 14, a dioda LED do pinu 26. Stan przełącznika pochylenia jest przechowywany w zmiennej tiltState.
// Ustaw numery pinów
const int tiltPin = 14; // Przełącznik pochylenia
const int ledPin = 26; // Dioda LED
// Zmienna do przechowywania stanu pochylenia
int tiltState = 0;
Ten fragment pokazuje przypisania pinów i deklarację zmiennej, która będzie śledzić stan pochylenia. tiltPin jest ustawiony jako wejście do odczytu stanu przełącznika. W funkcji setup() inicjalizowana jest komunikacja szeregowa, a tryby pinów są ustawiane dla przełącznika pochylenia i diody LED. Zapewnia to, że ESP32 może odczytywać wejście z przełącznika pochylenia i odpowiednio sterować diodą LED.
void setup() {
Serial.begin(115200);
// Inicjalizuj pin pochylenia jako wejście
pinMode(tiltPin, INPUT);
// Inicjalizuj pin diody LED jako wyjście
pinMode(ledPin, OUTPUT);
}
Ta sekcja jest kluczowa, ponieważ konfiguruje środowisko, umożliwiając ESP32 skuteczną komunikację i kontrolę wyjścia na podstawie stanu przełącznika pochylenia. Funkcja loop() ciągle sprawdza stan przełącznika pochylenia. Jeśli przełącznik jest w pozycji pionowej, dioda LED się zapali; jeśli jest przechylony, dioda LED zgaśnie. Aktualny stan jest drukowany na monitorze szeregowym w celu debugowania.
void loop() {
// Odczytaj stan przełącznika pochylenia
tiltState = digitalRead(tiltPin);
Serial.println(tiltState);
// Jeśli przełącznik jest w pozycji pionowej
if (tiltState == HIGH) {
// Włącz diodę LED
digitalWrite(ledPin, HIGH);
} else {
// Wyłącz diodę LED
digitalWrite(ledPin, LOW);
}
}
Ta pętla działa ciągle, umożliwiając monitorowanie stanu przełącznika pochylenia w czasie rzeczywistym i odpowiednią kontrolę diody LED. Wynik można obserwować na monitorze szeregowym, co ułatwia weryfikację działania.
Demonstracja / Czego się spodziewać
Gdy wszystko jest poprawnie podłączone, a kod został wgrany, powinieneś zobaczyć, że dioda LED zapala się, gdy przełącznik pochylenia jest w pozycji pionowej, i gaśnie po przechyleniu. Ta bezpośrednia zależność między stanem przechylenia a reakcją diody LED skutecznie pokazuje działanie przełącznika pochylenia. Częste błędy obejmują upewnienie się, że okablowanie jest poprawne oraz sprawdzenie, czy rezystory są odpowiednio umieszczone, aby uniknąć zwarć (na filmie w 12:00).
Znaczniki czasowe wideo
- 00:00 Start
- 1:44 Wprowadzenie do projektu
- 2:49 Dokumentacja
- 6:43 Wyjaśnienie okablowania Arduino
- 10:39 Wyjaśnienie kodu Arduino
- 13:40 Wybór płytki ESP32 i portu COM w Arduino IDE
- 15:22 Demonstracja działania przechylenia projektu
// 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
Zasoby i odniesienia
-
DokumentacjaESP32 Tutorial 18/55- SunFounder Tile sensor documentationdocs.sunfounder.com
Pliki📁
Brak dostępnych plików.