Tutorial ESP32 18/55 - Detectarea înclinării folosind ESP32 | Kitul de învățare IoT ESP32 de la SunFounder
În acest tutorial, vom folosi microcontrolerul SunFounder ESP32 pentru a crea un proiect simplu care detectează înclinarea folosind un comutator de înclinare. Când comutatorul de înclinare este activat, un LED se va stinge, iar când este în poziție verticală, LED-ul se va aprinde. Acest proiect nu este doar o introducere excelentă în lucrul cu senzori de înclinare, dar servește și ca fundație pentru diverse aplicații robotice. Pentru un ghid vizual detaliat, asigurați-vă că verificați videoclipul legat mai sus (în videoclip la 00:00).

Hardware Explicat
Componentele principale folosite în acest proiect includ microcontrolerul ESP32, un comutator de înclinare și un LED. ESP32 este un microcontroler puternic cu Wi-Fi și Bluetooth integrate, fiind ideal pentru aplicații IoT. Comutatorul de înclinare este un dispozitiv simplu care conține o bilă metalică într-o carcasă. Când este înclinat, bila se mișcă și întrerupe circuitul, permițându-ne să detectăm starea de înclinare. LED-ul va indica vizual starea de înclinare pe baza stării comutatorului. Pe lângă aceste componente, vom folosi și rezistențe pentru limitarea curentului și pentru pull-down. Rezistența de 220 ohmi conectată la LED asigură că LED-ul funcționează în siguranță fără a consuma prea mult curent. Rezistența de 10k ohmi acționează ca pull-down pentru comutatorul de înclinare, asigurând că pinul de intrare citește o stare cunoscută când comutatorul nu este activat.
Detalii din Fișa Tehnică
| Producător | SunFounder |
|---|---|
| Număr de piesă | ESP32 |
| Tensiune logică/IO | 3,3 V |
| Tensiune de alimentare | 5 V |
| Curent de ieșire (pe canal) | 12 mA |
| Curent de vârf (pe canal) | 40 mA |
| Ghid de frecvență PWM | 1 kHz |
| Praguri logice de intrare | 0,8 V (jos), 2,0 V (sus) |
| Cădere de tensiune / RDS(on) / saturație | 0,2 V |
| Limite termice | 85 °C |
| Pachet | Modul ESP32 |
| Note / variante | Include capacități Wi-Fi și Bluetooth |
- Asigurați valori corecte ale rezistențelor pentru a preveni deteriorarea LED-ului.
- Mențineți cablurile ordonate pentru a evita scurtcircuitele.
- Folosiți rezistențe pull-down pentru a asigura citiri stabile de la comutatorul de înclinare.
- Testați conexiunile înainte de a alimenta circuitul pentru a evita defectarea componentelor.
- Verificați orientarea comutatorului de înclinare pentru o funcționare corectă.
Instrucțiuni de Cablare

Pentru a cabla componentele, începeți cu comutatorul de înclinare, care nu are polaritate, deci poate fi conectat în orice direcție. Conectați un pin al comutatorului de înclinare la sursa de 3,3V și celălalt pin la pinul 14 de pe ESP32. Pentru a asigura că pinul 14 citește o stare cunoscută când comutatorul nu este activat, conectați o rezistență de 10k ohmi de la același pin la masă. Apoi, luați LED-ul și introduceți-l în breadboard cu piciorul mai lung (anodul) conectat la o rezistență de 220 ohmi. Conectați celălalt capăt al rezistenței la pinul 26 de pe ESP32. Piciorul mai scurt (catodul) al LED-ului ar trebui conectat la masă. În final, conectați pinul de masă al ESP32 la șina de masă a breadboard-ului și pinul de 3,3V la șina de alimentare. Asigurați-vă că verificați toate conexiunile pentru a preveni scurtcircuite sau citiri incorecte. Dacă urmați acești pași, ar trebui să aveți o configurație funcțională de senzor de înclinare gata pentru programare.
Exemple de Cod & Explicații
Codul începe prin definirea numerelor pinilor pentru comutatorul de înclinare și LED. Comutatorul de înclinare este conectat la pinul 14, iar LED-ul este conectat la pinul 26. Starea comutatorului de înclinare este stocată în variabila tiltState.
// Setează numerele pinilor
const int tiltPin = 14; // Comutator de înclinare
const int ledPin = 26; // LED
// Variabilă pentru stocarea stării de înclinare
int tiltState = 0;
Acest extras arată atribuirile pinilor și declarația variabilei care va urmări starea de înclinare. tiltPin este setat ca intrare pentru a citi starea comutatorului. În funcția setup(), comunicarea serială este inițializată, iar modurile pinilor sunt setate pentru comutatorul de înclinare și LED. Aceasta asigură că ESP32 poate citi intrarea de la comutatorul de înclinare și controla LED-ul corespunzător.
void setup() {
Serial.begin(115200);
// Inițializează pinul de înclinare ca intrare
pinMode(tiltPin, INPUT);
// Inițializează pinul LED ca ieșire
pinMode(ledPin, OUTPUT);
}
Această secțiune este crucială deoarece configurează mediul, permițând ESP32 să comunice eficient și să controleze ieșirea pe baza stării comutatorului de înclinare. Funcția loop() verifică continuu starea comutatorului de înclinare. Dacă comutatorul este vertical, LED-ul se va aprinde; dacă este înclinat, LED-ul se va stinge. Starea curentă este afișată în monitorul serial pentru depanare.
void loop() {
// Citește starea comutatorului de înclinare
tiltState = digitalRead(tiltPin);
Serial.println(tiltState);
// Dacă comutatorul este vertical
if (tiltState == HIGH) {
// Aprinde LED-ul
digitalWrite(ledPin, HIGH);
} else {
// Stinge LED-ul
digitalWrite(ledPin, LOW);
}
}
Această buclă rulează continuu, permițând monitorizarea în timp real a stării comutatorului de înclinare și controlul corespunzător al LED-ului. Ieșirea poate fi observată în monitorul serial, facilitând verificarea funcționalității.
Demonstrație / Ce să Așteptați
Odată ce totul este conectat corect și codul este încărcat, ar trebui să vezi LED-ul aprinzându-se când comutatorul de înclinare este vertical, și se va stinge când este înclinat. Această corelație directă între starea de înclinare și răspunsul LED-ului demonstrează eficient funcționalitatea comutatorului de înclinare. Capcanele comune includ asigurarea că conexiunile sunt corecte și verificarea că rezistențele sunt plasate corespunzător pentru a evita scurtcircuitele (în videoclip la 12:00).
Marcaje temporale video
- 00:00 Start
- 1:44 Introducere proiect
- 2:49 Documentație
- 6:43 Explicarea conexiunilor Arduino
- 10:39 Explicarea codului Arduino
- 13:40 Selectarea plăcii ESP32 și a portului COM în Arduino IDE
- 15:22 Demonstrație înclinare proiect
// 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
Resurse și referințe
-
DocumentațieESP32 Tutorial 18/55- SunFounder Tile sensor documentationdocs.sunfounder.com
Fișiere📁
Nu sunt disponibile fișiere.