Hľadať kód

Návod na ESP32 18/55 - Detekcia náklonu pomocou ESP32 | SunFounder's ESP32 IoT Learning kit

Návod na ESP32 18/55 - Detekcia náklonu pomocou ESP32 | SunFounder's ESP32 IoT Learning kit

V tomto návode budeme používať mikrokontrolér SunFounder ESP32 na vytvorenie jednoduchého projektu, ktorý deteguje náklon pomocou náklonového spínača. Keď je náklonový spínač aktivovaný, LED dióda sa vypne, a keď je vo vzpriamenej polohe, LED dióda sa zapne. Tento projekt nie je len skvelým úvodom do práce s náklonovými senzormi, ale slúži aj ako základ pre rôzne robotické aplikácie. Podrobný vizuálny návod nájdete vo videu uvedenom vyššie (vo videu o 00:00).

náklonový_spínač

Vysvetlenie hardvéru

Hlavné komponenty použité v tomto projekte zahŕňajú mikrokontrolér ESP32, náklonový spínač a LED diódu. ESP32 je výkonný mikrokontrolér so zabudovaným Wi-Fi a Bluetooth, čo ho robí ideálnym pre IoT aplikácie. Náklonový spínač je jednoduché zariadenie, ktoré obsahuje kovovú guľôčku vo vnútri puzdra. Pri náklone sa guľôčka pohybuje a preruší obvod, čo nám umožňuje detegovať stav náklonu. LED dióda vizuálne indikuje stav náklonu na základe stavu spínača. Okrem týchto komponentov použijeme aj rezistory na obmedzenie prúdu a na pull-down účely. Rezistor 220 ohmov pripojený k LED dióde zabezpečuje, že LED dióda pracuje bezpečne bez odberu príliš veľkého prúdu. Rezistor 10k ohmov funguje ako pull-down pre náklonový spínač, čo zabezpečuje, že vstupný pin číta známy stav, keď spínač nie je aktivovaný.

Podrobnosti z datasheetu

Výrobca SunFounder
Označenie dielu ESP32
Logické/IO napätie 3,3 V
Napájacie napätie 5 V
Výstupný prúd (na kanál) 12 mA
Špičkový prúd (na kanál) 40 mA
Odporúčaná PWM frekvencia 1 kHz
Vstupné logické prahy 0,8 V (nízka), 2,0 V (vysoká)
Pokles napätia / RDS(on) / saturácia 0,2 V
Tepelné limity 85 °C
Puzdro Modul ESP32
Poznámky / varianty Zahŕňa Wi-Fi a Bluetooth možnosti

 

  • Zabezpečte správne hodnoty rezistorov, aby ste predišli poškodeniu LED diódy.
  • Udržiavajte zapojenie prehľadné, aby ste predišli skratom.
  • Použite pull-down rezistory na zabezpečenie stabilných hodnôt z náklonového spínača.
  • Pred napájaním obvodu otestujte pripojenia, aby ste predišli zlyhaniu komponentov.
  • Overte orientáciu náklonového spínača pre presnú funkčnosť.

Pokyny na zapojenie

ESP32-18_tile_wiring

Na zapojenie komponentov začnite s náklonovým spínačom, ktorý nemá polaritu, takže ho možno pripojiť v ľubovoľnom smere. Pripojte jeden pin náklonového spínača na napájanie 3,3 V a druhý pin na pin 14 na ESP32. Aby pin 14 čítal známy stav, keď spínač nie je aktivovaný, pripojte rezistor 10k ohmov z toho istého pinu na zem. Ďalej vezmite LED diódu a vložte ju do breadboardu s dlhšou nožičkou (anódou) pripojenou k rezistoru 220 ohmov. Pripojte druhý koniec rezistora na pin 26 na ESP32. Kratšia nožička (katóda) LED diódy by mala byť pripojená na zem. Nakoniec pripojte uzemňovací pin ESP32 na uzemňovaciu lištu vášho breadboardu a pin 3,3 V na napájaciu lištu. Uistite sa, že ste skontrolovali všetky pripojenia, aby ste predišli skratom alebo nesprávnym hodnotám. Ak budete postupovať podľa týchto krokov, mali by ste mať funkčnú zostavu náklonového senzora pripravenú na programovanie.

Príklady kódu a vysvetlenie

Kód začína definovaním čísel pinov pre náklonový spínač a LED diódu. Náklonový spínač je pripojený na pin 14 a LED dióda na pin 26. Stav náklonového spínača je uložený v premennej tiltState.


// Nastavenie čísel pinov
const int tiltPin = 14;  // Náklonový spínač
const int ledPin = 26;   // LED dióda

// Premenná na ukladanie stavu náklonu
int tiltState = 0;

Tento výňatok ukazuje priradenia pinov a deklaráciu premennej, ktorá bude sledovať stav náklonu. tiltPin je nastavený ako vstup na čítanie stavu spínača. Vo funkcii setup() je inicializovaná sériová komunikácia a sú nastavené režimy pinov pre náklonový spínač a LED diódu. To zabezpečuje, že ESP32 môže čítať vstup z náklonového spínača a podľa toho ovládať LED diódu.


void setup() {
  Serial.begin(115200);
  // Inicializácia náklonového pinu ako vstup
  pinMode(tiltPin, INPUT);
  // Inicializácia pinu LED ako výstup
  pinMode(ledPin, OUTPUT);
}

Táto časť je kľúčová, pretože nastavuje prostredie, čo umožňuje ESP32 efektívne komunikovať a ovládať výstup na základe stavu náklonového spínača. Funkcia loop() nepretržite kontroluje stav náklonového spínača. Ak je spínač vo vzpriamenej polohe, LED dióda sa zapne; ak je naklonený, LED dióda sa vypne. Aktuálny stav sa vypisuje do sériového monitora na ladenie.


void loop() {
  // Čítanie stavu náklonového spínača
  tiltState = digitalRead(tiltPin);

  Serial.println(tiltState);
  // Ak je spínač vo vzpriamenej polohe
  if (tiltState == HIGH) {
    // Zapnutie LED diódy
    digitalWrite(ledPin, HIGH);
  } else {
    // Vypnutie LED diódy
    digitalWrite(ledPin, LOW);
  }
}

Táto slučka beží nepretržite, čo umožňuje monitorovanie stavu náklonového spínača v reálnom čase a zodpovedajúce ovládanie LED diódy. Výstup možno pozorovať v sériovom monitore, čo uľahčuje overenie funkčnosti.

Demonštrácia / Čo očakávať

Keď je všetko správne zapojené a kód je nahraný, mali by ste vidieť, ako sa LED rozsvieti, keď je náklonový spínač vo vzpriamenej polohe, a zhasne, keď je naklonený. Táto priama korelácia medzi stavom náklonu a odozvou LED efektívne demonštruje funkčnosť náklonového spínača. Medzi časté chyby patrí zabezpečenie správneho zapojenia a overenie, či sú rezistory vhodne umiestnené, aby sa predišlo skratom (vo videu o 12:00).

Časové značky videa

  • 00:00 Začiatok
  • 1:44 Úvod projektu
  • 2:49 Dokumentácia
  • 6:43 Vysvetlenie zapojenia Arduina
  • 10:39 Vysvetlenie kódu Arduina
  • 13:40 Výber dosky ESP32 a COM portu v Arduino IDE
  • 15:22 Demonštrácia náklonu projektu

Obrázky

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

Zdroje a referencie

Súbory📁

Žiadne súbory nie sú k dispozícii.