Qoʻllanma · ESP32 · Maslahatlar
ESP32 allaqachon qiladigan 5 narsa
Koʻpchilik ESP32’ni Wi-Fi’li kichik Arduino kabi ishlatadi va qolganiga tegmaydi. Ammo chipda beshta kuchli imkoniyat allaqachon bor — qoʻshimcha temirsiz, kutubxona qidirmasdan. Mana bu nima, nega arziydi va beshtasi uchun tayyor kod misoli.
1. ESP-NOW — routersiz boshqa ESP32 bilan gaplash
ESP-NOW ikki (yoki koʻp) ESP plataga kichik paketlarni toʻgʻridan-toʻgʻri almashish imkonini beradi — Wi-Fi routersiz va internetsiz — faqat MAC manzillari boʻyicha. Tez (~1 ms), kam quvvatli, pultlar, datchik tugunlari va robot-robot aloqasi uchun ideal. Wi-Fi radiosida yuradi, ammo butun TCP/IP stekini chetlab oʻtadi; u Wi-Fi va BLE yonida qayerda ekani protokollar qoʻllanmasida.
#include <esp_now.h>
#include <WiFi.h>
uint8_t peer[] = {0x24, 0x6F, 0x28, 0xAA, 0xBB, 0xCC}; // qabul qiluvchi MAC
typedef struct { int id; float temp; } Msg;
Msg data;
void setup() {
WiFi.mode(WIFI_STA);
esp_now_init();
esp_now_peer_info_t p = {};
memcpy(p.peer_addr, peer, 6);
esp_now_add_peer(&p);
}
void loop() {
data.id = 1; data.temp = 24.5;
esp_now_send(peer, (uint8_t *)&data, sizeof(data)); // routersiz, ~1 ms
delay(2000);
} 2. Sigʻim touch — istalgan maydoncha tugmaga aylanadi
Klassik ESP32’da 10 ta touch’ga mos GPIO bor. Pinni mis, folga yoki vint boshiga ulang —
touchRead() barmoq yaqinlashganda kamayadigan son qaytaradi — tugmasiz, qoʻshimcha
chipsiz. Chiroyli panellar, yashirin boshqaruv va teginish bilan uygʻonish uchun zoʻr. (S2/S3 da touch-API
biroz boshqacha; klassik ESP32 touchRead(T0..T9) ishlatadi.)

void setup() {
Serial.begin(115200);
}
void loop() {
int v = touchRead(T0); // T0 = klassik ESP32 da GPIO4
if (v < 40) Serial.println("touched!"); // kichik = barmoq yaqin
delay(100);
} 3. Chuqur uyqu — batareyada oylab ishlash
Ish portlashlari orasida ESP32 ~10 µA da chuqur uyquga tushib, taymer yoki pin boʻyicha
uygʻonishi mumkin. Bu batareyali tugunning bir kun yoki bir yil ishlashi orasidagi farq. Kamchilik:
uygʻonishda chip qayta yuklanadi va setup() qaytadan ishlaydi, shuning uchun holatni RTC
xotirada saqla. Batafsil — chuqur uyqu qoʻllanmasida.

#define uS_PER_S 1000000ULL
void setup() {
Serial.begin(115200);
Serial.println("uygʻonildi — ish bajarildi, uxlaymiz");
// ... datchik oʻqiladi, yuboriladi ...
esp_sleep_enable_timer_wakeup(10 * uS_PER_S); // 10 s dan keyin uygʻonish
esp_deep_sleep_start(); // uygʻongunicha ~10 µA
}
void loop() {} // ishlamaydi — har uygʻonishda setup() qayta ishlaydi 4. OTA — proshivkani havodan yangila
Plata devorda turganda uni qayta proshivka uchun sugʻurib olishni xohlamaysan. OTA yangi
proshivkani Wi-Fi orqali yuklaydi: bir necha qator qoʻsh — Arduino IDE’da tarmoq porti paydo boʻladi.
Joylashtirilgan qurilmalar uchun shart — va agar bir qatorda xohlasang,
RisalDash dashboardi dash.enableOTA() orqali «Proshivkani yangilash»
tugmasini beradi.

#include <WiFi.h>
#include <ArduinoOTA.h>
void setup() {
WiFi.begin("your-ssid", "your-pass");
while (WiFi.status() != WL_CONNECTED) delay(300);
ArduinoOTA.begin(); // endi plata Wi-Fi orqali proshivka boʻladi
}
void loop() {
ArduinoOTA.handle(); // IDE da tarmoq porti paydo boʻladi
} 5. Deyarli istalgan pinda PWM — yorqinlik, tezlik, servo
ESP32’ning LEDC periferiyasi deyarli istalgan GPIO’da apparatli PWM generatsiya qiladi —
LED’ni xiralashtir, motor tezligini yoki servo pozitsiyasini belgila, hammasi CPU’ni bloklamasdan. Pin,
chastota va aniqlikni tanlaysan, keyin shunchaki duty qiymatini yozasan. Arduino-ESP32 core 3.x da bu
quyidagi ozoda ledcAttach() API (eski 2.x da ledcSetup() +
ledcAttachPin() edi).
void setup() {
ledcAttach(18, 5000, 8); // pin 18, 5 kHz, 8-bit (0..255) [core 3.x]
}
void loop() {
for (int d = 0; d <= 255; d++) { ledcWrite(18, d); delay(4); } // yorishuv
for (int d = 255; d >= 0; d--) { ledcWrite(18, d); delay(4); } // soʻnish
} Hammasini birlashtir
Bularning hech biri shild yoki xarid roʻyxati talab qilmaydi — bu sende allaqachon bor kremniy. Teginish bilan uygʻonadigan, oʻqiydigan, qiymatni ESP-NOW orqali yuboradigan va yana chuqur uyquga tushadigan batareyali datchik — dalada OTA bilan yangilanadigan, PWM status-LED bilan — bu besh «yashirin» funksiya va nol qoʻshimcha qism. Gap shunda: ESP32’ing miltillashdan koʻra ancha koʻp narsani qiladi.
Ustiga UI kerakmi? Toʻliq jonli dashboard — OTA ichida — bir necha qator C++.