Mafunzo ya ESP32 18/55 - Kugundua Mwelekeo (Tilt) kwa kutumia ESP32 | Kifurushi cha Kujifunza cha IoT cha ESP32 cha SunFounder
Katika mafunzo haya, tutatumia microcontroller ya SunFounder ESP32 kuunda mradi rahisi unaogundua mwelekeo (tilt) kwa kutumia swichi ya tilt. Wakati swichi ya tilt inapowashwa, LED itazimika, na inapokuwa katika nafasi yake ya wima, LED itawashwa. Mradi huu sio tu utangulizi mzuri wa kufanya kazi na sensor za tilt, bali pia ni msingi wa matumizi mbalimbali ya robotiki. Kwa mwongozo wa kina wa kuona, hakikisha umeangalia video iliyounganishwa hapo juu (katika video saa 00:00).

Maelezo ya Vifaa
Vipengele vikuu vinavyotumika katika mradi huu ni pamoja na microcontroller ya ESP32, swichi ya tilt, na LED. ESP32 ni microcontroller yenye nguvu iliyo na Wi-Fi na Bluetooth iliyojengewa ndani, na kuifanya kuwa bora kwa matumizi ya IoT. Swichi ya tilt ni kifaa rahisi kilicho na mpira wa chuma ndani ya kopo. Inapoelekezwa, mpira husogea na kuvunja mzunguko, kuturuhusu kugundua hali ya tilt. LED itaonyesha hali ya tilt kwa kuonekana kulingana na hali ya swichi. Mbali na vipengele hivi, tutatumia pia resistors kwa ajili ya kudhibiti mkondo na madhumuni ya pull-down. Resistor ya 220-ohm iliyounganishwa kwenye LED inahakikisha LED inafanya kazi kwa usalama bila kuchukua mkondo mwingi. Resistor ya 10k-ohm hufanya kama pull-down kwa swichi ya tilt, ikihakikisha kwamba pin ya kuingiza inasoma hali inayojulikana wakati swichi haijawashwa.
Maelezo ya Datasheet
| Mtengenezaji | SunFounder |
|---|---|
| Nambari ya sehemu | ESP32 |
| Voltage ya Logic/IO | 3.3 V |
| Voltage ya usambazaji | 5 V |
| Mkondo wa pato (kwa kila channel) | 12 mA |
| Mkondo wa kilele (kwa kila channel) | 40 mA |
| Mwongozo wa frequency ya PWM | 1 kHz |
| Viwango vya kizingiti cha logic ya kuingiza | 0.8 V (chini), 2.0 V (juu) |
| Kushuka kwa voltage / RDS(on) / kueneza | 0.2 V |
| Mipaka ya joto | 85 °C |
| Kifurushi | Moduli ya ESP32 |
| Vidokezo / lahaja | Inajumuisha uwezo wa Wi-Fi na Bluetooth |
- Hakikisha maadili sahihi ya resistor ili kuzuia uharibifu wa LED.
- Weka wiring vizuri ili kuepuka mzunguko mfupi.
- Tumia resistors za pull-down ili kuhakikisha usomaji thabiti kutoka kwa swichi ya tilt.
- Jaribu miunganisho kabla ya kuwasha mzunguko ili kuepuka kushindwa kwa vipengele.
- Thibitisha mwelekeo wa swichi ya tilt kwa utendaji sahihi.
Maagizo ya Wiring

Ili kuunganisha vipengele, anza na swichi ya tilt, ambayo haina polarity, kwa hivyo inaweza kuunganishwa kwa mwelekeo wowote. Unganisha pin moja ya swichi ya tilt kwenye usambazaji wa 3.3V na pin nyingine kwenye pin 14 kwenye ESP32. Ili kuhakikisha pin 14 inasoma hali inayojulikana wakati swichi haijawashwa, unganisha resistor ya 10k-ohm kutoka kwenye pin hiyo hiyo hadi ground. Ifuatayo, chukua LED na uiingize kwenye breadboard na mguu mrefu (anode) ukiunganishwa kwenye resistor ya 220-ohm. Unganisha mwisho mwingine wa resistor kwenye pin 26 kwenye ESP32. Mguu mfupi (cathode) wa LED unapaswa kuunganishwa kwenye ground. Hatimaye, unganisha pin ya ground ya ESP32 kwenye reli ya ground ya breadboard yako na pin ya 3.3V kwenye reli ya nguvu. Hakikisha umeangalia mara mbili miunganisho yote ili kuzuia mzunguko mfupi au usomaji usio sahihi. Ukifuata hatua hizi, unapaswa kuwa na usanidi wa sensor ya tilt unaofanya kazi tayari kwa programu.
Mifano ya Code na Maelekezo
Code huanza kwa kufafanua nambari za pin za swichi ya tilt na LED. Swichi ya tilt imeunganishwa kwenye pin 14, na LED imeunganishwa kwenye pin 26. Hali ya swichi ya tilt inahifadhiwa katika variable tiltState.
// Weka nambari za pin
const int tiltPin = 14; // Swichi ya Tilt
const int ledPin = 26; // LED
// Variable ya kuhifadhi hali ya tilt
int tiltState = 0;
Sehemu hii inaonyesha ugawaji wa pin na tamko la variable ambayo itafuatilia hali ya tilt. tiltPin imewekwa kama input kusoma hali ya swichi. Katika kazi ya setup(), mawasiliano ya serial yanaanzishwa, na modes za pin zimewekwa kwa swichi ya tilt na LED. Hii inahakikisha ESP32 inaweza kusoma input kutoka kwa swichi ya tilt na kudhibiti LED ipasavyo.
void setup() {
Serial.begin(115200);
// Anzisha pin ya tilt kama input
pinMode(tiltPin, INPUT);
// Anzisha pin ya LED kama output
pinMode(ledPin, OUTPUT);
}
Sehemu hii ni muhimu kwani inaweka mazingira, ikiruhusu ESP32 kuwasiliana kwa ufanisi na kudhibiti pato kulingana na hali ya swichi ya tilt. Kazi ya loop() inaangalia hali ya swichi ya tilt kila wakati. Ikiwa swichi iko wima, LED itawashwa; ikiwa imeelekezwa, LED itazimika. Hali ya sasa inachapishwa kwenye serial monitor kwa ajili ya debugging.
void loop() {
// Soma hali ya swichi ya tilt
tiltState = digitalRead(tiltPin);
Serial.println(tiltState);
// Ikiwa swichi iko wima
if (tiltState == HIGH) {
// Washa LED
digitalWrite(ledPin, HIGH);
} else {
// Zima LED
digitalWrite(ledPin, LOW);
}
}
Loop hii inaendesha kila wakati, ikiruhusu ufuatiliaji wa wakati halisi wa hali ya swichi ya tilt na udhibiti sambamba wa LED. Pato linaweza kuonekana kwenye serial monitor, na kufanya iwe rahisi kuthibitisha utendaji.
Maonyesho / Nini cha Kutarajia
Mara kila kitu kimeunganishwa kwa usahihi na msimbo umepakiwa, unapaswa kuona LED ikiwasha wakati swichi ya kuinamia iko wima, na itazima ikipinda. Uhusiano huu wa moja kwa moja kati ya hali ya kuinamia na mwitikio wa LED unaonyesha utendaji wa swichi ya kuinamia kwa ufanisi. Makosa ya kawaida ni pamoja na kuhakikisha kwamba wiring ni sahihi na kuthibitisha kwamba resistors zimewekwa ipasavyo ili kuepuka mzunguko mfupi (katika video saa 12:00).
Vidokezo vya Muda wa Video
- 00:00 Mwanzo
- 1:44 Utangulizi wa Mradi
- 2:49 Nyaraka
- 6:43 Ufafanuzi wa Wiring ya Arduino
- 10:39 Ufafanuzi wa Msimbo wa Arduino
- 13:40 Kuchagua bodi ya ESP32 na COM port kwenye Arduino IDE
- 15:22 Maonyesho ya Kuinamia kwa Mradi
// 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
Resurser och referenser
-
DokumentationESP32 Tutorial 18/55- SunFounder Tile sensor documentationdocs.sunfounder.com
Filer📁
Inga filer tillgängliga.