ESP32 Tutorijal 18/55 - Detekcija nagiba koristeći ESP32 | SunFounder-ov ESP32 IoT komplet za učenje
U ovom tutorijalu koristit ćemo SunFounder ESP32 mikrokontroler za kreiranje jednostavnog projekta koji detektuje nagib pomoću tilt prekidača. Kada je tilt prekidač aktiviran, LED dioda će se ugasiti, a kada je u uspravnom položaju, LED dioda će se upaliti. Ovaj projekt nije samo odličan uvod u rad sa tilt senzorima, već služi i kao osnova za razne robotičke aplikacije. Za detaljan vizualni vodič, svakako pogledajte video povezan iznad (u videu na 00:00).

Objašnjenje hardvera
Primarne komponente korištene u ovom projektu uključuju ESP32 mikrokontroler, tilt prekidač i LED diodu. ESP32 je moćan mikrokontroler s ugrađenim Wi-Fi i Bluetooth mogućnostima, što ga čini idealnim za IoT aplikacije. Tilt prekidač je jednostavan uređaj koji sadrži metalnu kuglicu unutar kućišta. Kada se nagne, kuglica se pomjeri i prekida strujni krug, omogućavajući nam da detektujemo stanje nagiba. LED dioda će vizualno prikazati status nagiba na osnovu stanja prekidača. Pored ovih komponenti, koristit ćemo i otpornike za ograničavanje struje i pull-down svrhe. Otpornik od 220 oma spojen na LED diodu osigurava da LED dioda radi sigurno bez povlačenja previše struje. Otpornik od 10k oma djeluje kao pull-down za tilt prekidač, osiguravajući da ulazni pin čita poznato stanje kada prekidač nije aktiviran.
Detalji iz tehničke dokumentacije
| Proizvođač | SunFounder |
|---|---|
| Broj dijela | ESP32 |
| Logički/IO napon | 3.3 V |
| Napon napajanja | 5 V |
| Izlazna struja (po kanalu) | 12 mA |
| Vršna struja (po kanalu) | 40 mA |
| Smjernice za PWM frekvenciju | 1 kHz |
| Ulazni logički pragovi | 0.8 V (nisko), 2.0 V (visoko) |
| Pad napona / RDS(on) / zasićenje | 0.2 V |
| Termička ograničenja | 85 °C |
| Paket | ESP32 modul |
| Napomene / varijante | Uključuje Wi-Fi i Bluetooth mogućnosti |
- Osigurajte odgovarajuće vrijednosti otpornika kako biste spriječili oštećenje LED diode.
- Održavajte ožičenje urednim kako biste izbjegli kratke spojeve.
- Koristite pull-down otpornike kako biste osigurali stabilna očitanja s tilt prekidača.
- Testirajte spojeve prije uključivanja strujnog kruga kako biste izbjegli kvar komponenti.
- Provjerite orijentaciju tilt prekidača za tačnu funkcionalnost.
Upute za ožičenje

Za ožičenje komponenti, počnite s tilt prekidačem, koji nema polaritet, pa se može spojiti u bilo kojem smjeru. Spojite jedan pin tilt prekidača na napajanje od 3.3V, a drugi pin na pin 14 na ESP32. Kako biste osigurali da pin 14 čita poznato stanje kada prekidač nije aktiviran, spojite otpornik od 10k oma s istog pina na masu. Zatim uzmite LED diodu i umetnite je u breadboard s dužom nogicom (anodom) spojenom na otpornik od 220 oma. Spojite drugi kraj otpornika na pin 26 na ESP32. Kraća nogica (katoda) LED diode treba biti spojena na masu. Na kraju, spojite pin za masu ESP32 na masu breadboarda, a pin od 3.3V na napajanje. Provjerite sve spojeve kako biste spriječili kratke spojeve ili netačna očitanja. Ako slijedite ove korake, trebali biste imati funkcionalnu postavku tilt senzora spremnu za programiranje.
Primjeri koda i objašnjenje
Kod počinje definiranjem brojeva pinova za tilt prekidač i LED diodu. Tilt prekidač je spojen na pin 14, a LED dioda na pin 26. Stanje tilt prekidača pohranjeno je u varijabli tiltState.
// Postavi brojeve pinova
const int tiltPin = 14; // Tilt prekidač
const int ledPin = 26; // LED
// Varijabla za pohranjivanje statusa nagiba
int tiltState = 0;
Ovaj izvod prikazuje dodjelu pinova i deklaraciju varijable koja će pratiti stanje nagiba. tiltPin je postavljen kao ulaz za čitanje statusa prekidača. U funkciji setup(), inicijalizira se serijska komunikacija i postavljaju se načini rada pinova za tilt prekidač i LED diodu. Ovo osigurava da ESP32 može čitati ulaz s tilt prekidača i upravljati LED diodom u skladu s tim.
void setup() {
Serial.begin(115200);
// Inicijaliziraj tilt pin kao ulaz
pinMode(tiltPin, INPUT);
// Inicijaliziraj LED pin kao izlaz
pinMode(ledPin, OUTPUT);
}
Ovaj dio je ključan jer postavlja okruženje, omogućavajući ESP32 da efikasno komunicira i upravlja izlazom na osnovu statusa tilt prekidača. Funkcija loop() kontinuirano provjerava stanje tilt prekidača. Ako je prekidač u uspravnom položaju, LED dioda će se upaliti; ako je nagnut, LED dioda će se ugasiti. Trenutno stanje se ispisuje na serijski monitor radi otklanjanja grešaka.
void loop() {
// Čitaj stanje tilt prekidača
tiltState = digitalRead(tiltPin);
Serial.println(tiltState);
// Ako je prekidač u uspravnom položaju
if (tiltState == HIGH) {
// Upali LED
digitalWrite(ledPin, HIGH);
} else {
// Ugasi LED
digitalWrite(ledPin, LOW);
}
}
Ova petlja radi kontinuirano, omogućavajući praćenje stanja tilt prekidača u realnom vremenu i odgovarajuću kontrolu LED diode. Izlaz se može promatrati na serijskom monitoru, što olakšava provjeru funkcionalnosti.
Demonstracija / Šta očekivati
Jednom kada je sve pravilno povezano i kod je učitan, trebali biste vidjeti da se LED dioda uključi kada je tilt prekidač uspravan, a isključit će se kada je nagnut. Ova direktna korelacija između stanja nagiba i reakcije LED diode učinkovito prikazuje funkcionalnost tilt prekidača. Uobičajene zamke uključuju osiguravanje da je ožičenje ispravno i provjeru da su otpornici pravilno postavljeni kako bi se izbjegli kratki spojevi (u videu na 12:00).
Vremenske oznake videa
- 00:00 Početak
- 1:44 Uvod u projekt
- 2:49 Dokumentacija
- 6:43 Objašnjeno Arduino ožičenje
- 10:39 Objašnjen Arduino kod
- 13:40 Odabir ESP32 ploče i COM porta u Arduino IDE-u
- 15:22 Demonstracija nagiba projekta
// 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
Resources & references
-
DocumentationESP32 Tutorial 18/55- SunFounder Tile sensor documentationdocs.sunfounder.com
Files📁
No files available.