Search Code

Tutorial ESP32 18/55 - Detectarea înclinării folosind ESP32 | Kitul de învățare IoT ESP32 de la SunFounder

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

comutator_de_inclinare

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

ESP32-18_tile_wiring

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

Imagini

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
Limba: 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);
  }
}

Resurse și referințe

Fișiere📁

Nu sunt disponibile fișiere.