ESP32 အခြေခံ Starter
Kit
ကုန်ပစ္စည်းစာရင်း
ESP32 နိဒါန်း
ESP32 အတွက် အသစ်လား။ ဤနေရာတွင် စတင်ပါ။ ESP32 သည် Wi-Fi နှင့် Bluetooth ကြိုးမဲ့စွမ်းရည်များနှင့် dual-core ပရိုဆက်ဆာများပါ ၀ င်သော Espressif မှထုတ်လုပ်သော Chip (SoC) မိုက်ခရိုကွန်ထရိုများတွင် ကုန်ကျစရိတ်သက်သာပြီး ပါဝါနည်းသောစနစ်စီးရီးတစ်ခုဖြစ်သည်။ အကယ်၍ သင်သည် ESP8266 နှင့် ရင်းနှီးပါက၊ ESP32 သည် အင်္ဂါရပ်အသစ်များစွာဖြင့် ၎င်း၏ဆက်ခံသူဖြစ်သည်။ESP32 သတ်မှတ်ချက်များ
အနည်းငယ်ပို၍ နည်းပညာပိုင်းနှင့် တိကျမှုကို ရယူလိုပါက၊ ESP32 ၏ အောက်ပါအသေးစိတ်သတ်မှတ်ချက်များကို ကြည့်ရှုနိုင်သည် (အရင်းအမြစ်- http://esp32.net/)—အသေးစိတ်အချက်အလက်များအတွက်၊ datasheet ကိုစစ်ဆေးပါ။):
- ကြိုးမဲ့ချိတ်ဆက်မှု WiFi- 150.0 Mbps ဒေတာနှုန်း HT40
- Bluetooth- BLE (Bluetooth Low Energy) နှင့် Bluetooth Classic
- ပရိုဆက်ဆာ- Tensilica Xtensa Dual-Core 32-bit LX6 မိုက်ခရိုပရိုဆက်ဆာ၊ 160 သို့မဟုတ် 240 MHz
- မှတ်ဉာဏ်-
- ROM: 448 KB (booting နှင့် core functions များအတွက်)
- SRAM- 520 KB (ဒေတာနှင့် ညွှန်ကြားချက်များအတွက်)
- RTC fas SRAM- 8 KB (ဒေတာသိုလှောင်မှုနှင့် ပင်မ CPU အတွက် RTC Boot ကာလအတွင်း အိပ်ငိုက်ခြင်းမုဒ်မှ)
- RTC နှေးကွေးသော SRAM- 8KB (နက်ရှိုင်းစွာအိပ်စက်နေစဉ်အတွင်း တွဲဖက်ပရိုဆက်ဆာအတွက်) eFuse- 1 Kbit (စနစ်အတွက် 256 ဘစ်များ (MAC လိပ်စာနှင့် ချစ်ပ်ဖွဲ့စည်းမှုပုံစံ) နှင့် ကျန် 768 ဘစ်များကို သုံးစွဲသူအပလီကေးရှင်းများအတွက် သီးသန့်ထားပါသည်၊ Flash-Encryption နှင့် Chip-ID)
Embedded flash- flash ကို ESP16-D17WD နှင့် ESP0-PICO-D1 တွင် IO32၊ IO2၊ SD_CMD၊ SD_CLK၊ SD_DATA_32 နှင့် SD_DATA_4 တို့မှ အတွင်းတွင် ချိတ်ဆက်ထားသည်။
- 0 MiB (ESP32-D0WDQ6၊ ESP32-D0WD၊ နှင့် ESP32-S0WD ချစ်ပ်များ)
- 2 MiB (ESP32-D2WD ချစ်ပ်)
- 4 MiB (ESP32-PICO-D4 SiP မော်ဂျူး)
ပါဝါနည်းပါးခြင်း- ဥပမာအားဖြင့် သင်သည် ADC ပြောင်းလဲမှုများကို ဆက်လက်အသုံးပြုနိုင်ကြောင်း သေချာစေပါသည်။ample၊ အိပ်ပျော်နေစဉ်။
အရံအ၀င်/အထွက်-
- capacitive touch ပါ ၀ င်သော DMA နှင့် peripheral interface
- ADCs (Analog-to-Digital Converter)
- DACs (Digital-to-Analog Converter)
- I²C (Inter-Integrated Circuit)
- UART (Universal Asynchronous Receiver/Transmitter)
- SPI (Serial Peripheral Interface)
- I²S (Integrated Interchip အသံ)
- RMII (Reduced Media-Independent Interface)
- PWM (Pulse-Width Modulation)
လုံခြုံရေး- AES နှင့် SSL/TLS အတွက် ဟာ့ဒ်ဝဲ အရှိန်မြှင့်စက်များ
ESP32 ဖွံ့ဖြိုးတိုးတက်ရေးဘုတ်အဖွဲ့များ
ESP32 သည် ဗလာ ESP32 ချစ်ပ်ကို ရည်ညွှန်းသည်။ သို့သော် ESP32 ဖွံ့ဖြိုးတိုးတက်မှုဘုတ်အဖွဲ့များကိုရည်ညွှန်းရန် "ESP32" ဝေါဟာရကိုလည်းအသုံးပြုသည်။ အထူးသဖြင့် သင်ယူခြင်း၊ စမ်းသပ်ခြင်းနှင့် ပုံတူရိုက်ခြင်းများတွင် ESP32 ဗလာ ချစ်ပ်များကို အသုံးပြုခြင်းသည် လွယ်ကူသည် သို့မဟုတ် လက်တွေ့မကျပါ။ အများစုမှာ ESP32 ဖွံ့ဖြိုးတိုးတက်ရေးဘုတ်အဖွဲ့ကို သင်အသုံးပြုလိုမည်ဖြစ်သည်။
ကိုးကားချက်အဖြစ် ESP32 DEVKIT V1 ဘုတ်ကို ကျွန်ုပ်တို့အသုံးပြုပါမည်။ အောက်တွင်ဖော်ပြထားသောပုံသည် ESP32 DEVKIT V1 ဘုတ်၊ GPIO ပင်နံပါတ် 30 ပါသော ဗားရှင်းကိုပြသထားသည်။သတ်မှတ်ချက်များ – ESP32 DEVKIT V1
အောက်ဖော်ပြပါဇယားသည် ESP32 DEVKIT V1 DOIT ဘုတ်၏အင်္ဂါရပ်များနှင့် သတ်မှတ်ချက်များ၏ အကျဉ်းချုပ်ကို ပြသသည်-
Core အရေအတွက် | 2 ( dual core ) |
ဝိုင်ဖိုင် | 2.4 GHz မှ 150 Mbits/s အထိ |
ဘလူးတုသ် | BLE (Bluetooth Low Energy) နှင့် အမွေအနှစ် Bluetooth |
ဗိသုကာပညာ | 32 bits |
နာရီအကြိမ်ရေ | 240 MHz အထိ |
ရမ် | 512 KB |
တံ | 30 (မော်ဒယ်ပေါ်မူတည်ပြီး) |
ဆက်စပ်ပစ္စည်းများ | Capacitive touch၊ ADC (analog to digital converter), DAC (digital to analog converter), 12C (Inter-Integrated Circuit), UART (universal asynchronous receiver/transmitter), CAN 2.0 (Controller Area Netwokr), SPI (Serial Peripheral Interface) , 12S (Integrated Inter-IC အသံ)၊ RMII (လျှော့ချထားသော မီဒီယာ-အမှီအခိုကင်းသော အင်တာဖေ့စ်)၊ PWM (သွေးခုန်နှုန်း အကျယ်မွမ်းမံမှု) နှင့် အခြားအရာများ။ |
Built-in ခလုတ်များ | RESET နှင့် BOOT ခလုတ်များ |
Built-in LED များ | GPIO2 နှင့် ချိတ်ဆက်ထားသော အပြာရောင် LED ၊ ဘုတ်အား ပါဝါဖွင့်ထားကြောင်း ပြသသည့် အနီရောင် LED တပ်ဆင်ထားသည်။ |
UART သို့ USB တံတား |
CP2102 |
ကုဒ်ကို အပ်လုဒ်လုပ်ရန် သို့မဟုတ် ပါဝါအသုံးပြုရန် ဘုတ်အား သင့်ကွန်ပျူတာနှင့် ချိတ်ဆက်ရန် အသုံးပြုနိုင်သည့် microUSB မျက်နှာပြင်ပါရှိသည်။
၎င်းသည် CP2102 ချစ်ပ် (USB မှ UART) ကိုအသုံးပြုပြီး အမှတ်စဉ်အင်တာဖေ့စ်ကိုအသုံးပြု၍ COM port တစ်ခုမှတစ်ဆင့် သင့်ကွန်ပျူတာနှင့် ဆက်သွယ်ရန်။ နောက်ထပ်နာမည်ကြီးချစ်ပ်ကတော့ CH340 ဖြစ်ပါတယ်။ သင့်ကွန်ပြူတာဘုတ်အဖွဲ့နှင့် ဆက်သွယ်နိုင်စေရန်အတွက် လိုအပ်သော Driver များကို တပ်ဆင်ရန် လိုအပ်သောကြောင့် သင့်ဘုတ်တွင် USB to UART ချစ်ပ်ပြောင်းသည့်စက်ကို စစ်ဆေးပါ (ဤလမ်းညွှန်ချက်တွင် နောက်မှသိရှိလိုပါက)။
ဤဘုတ်တွင် ဘုတ်အား ပြန်လည်စတင်ရန် RESET ခလုတ် (EN ဟု တံဆိပ်တပ်ထားနိုင်သည်) နှင့် ဘုတ်ကို မှိတ်တုတ်မှိတ်တုတ်မုဒ်တွင်ထားရန် (ကုဒ်လက်ခံရရှိရန်) ခလုတ်တစ်ခုလည်း ပါရှိသည်။ အချို့ဘုတ်များတွင် BOOT ခလုတ်မပါဝင်နိုင်သည်ကို သတိပြုပါ။
၎င်းတွင် GPIO 2 နှင့် အတွင်းပိုင်း ချိတ်ဆက်ထားသည့် အပြာရောင် LED တစ်လုံးလည်း ပါရှိသည်။ ဤ LED သည် အမြင်ပိုင်းဆိုင်ရာ ရုပ်ထွက်ကို ထုတ်ပေးနိုင်ရန် အမှားရှာပြင်ခြင်းအတွက် အသုံးဝင်သည်။ သင်ဘုတ်အား ပါဝါပေးသည့်အခါ အနီရောင် LED လည်း ပါရှိပါသည်။ESP32 Pinout
ESP32 အရံပစ္စည်းများ ပါဝင်သည်-
- 18 Analog-to-Digital Converter (ADC) ချန်နယ်များ
- SPI အင်တာဖေ့စ် 3 ခု
- UART အင်တာဖေ့စ် 3 ခု
- I2C အင်တာဖေ့စ် ၂ ခု
- 16 PWM အထွက်လိုင်းများ
- ဒစ်ဂျစ်တယ်မှ အန်နာလော့ပြောင်းများ (DAC) 2 ခု
- I2S အင်တာဖေ့စ် ၂ ခု
- Capacitive အာရုံခံ GPIO ၁၀ ခု
ADC (analog to digital converter) နှင့် DAC (digital to analog converter) အင်္ဂါရပ်များကို သတ်သတ်မှတ်မှတ် static pins များသို့ တာဝန်ပေးအပ်သည်။ သို့ရာတွင်၊ မည်သည့်ပင်နံပါတ်များသည် UART၊ I2C၊ SPI၊ PWM စသည်ဖြင့် ဆုံးဖြတ်နိုင်သည် - ၎င်းတို့ကို ကုဒ်တွင် သတ်မှတ်ရန်သာ လိုအပ်သည်။ ESP32 ချစ်ပ်၏ multiplexing လုပ်ဆောင်ချက်ကြောင့် ဖြစ်နိုင်သည်။
ဆော့ဖ်ဝဲလ်တွင် pins ဂုဏ်သတ္တိများကို သင်သတ်မှတ်နိုင်သော်လည်း၊ အောက်ပါပုံတွင်ပြထားသည့်အတိုင်း ပုံသေသတ်မှတ်ထားသော pins များရှိပါသည်။ထို့အပြင်၊ သီးခြားပရောဂျက်တစ်ခုအတွက် ၎င်းတို့ကို သင့်လျော်သည်ဖြစ်စေ မသင့်လျော်စေသော သီးခြားအင်္ဂါရပ်များပါရှိသော ပင်နံပါတ်များရှိသည်။ အောက်ဖော်ပြပါဇယားတွင် မည်သည့် pins များကို သွင်းအားစုများ၊ အထွက်များအဖြစ် အသုံးပြုရန် အကောင်းဆုံးနှင့် မည်သည့် pin များကို သင်သတိထားရန် လိုအပ်ကြောင်း ပြသထားသည်။
အစိမ်းရောင်ဖြင့် မီးမောင်းထိုးပြထားသည့် ပင်များသည် အသုံးပြုရန် အဆင်ပြေပါသည်။ အဝါရောင်ဖြင့် မီးမောင်းထိုးပြထားသော အရာများသည် အသုံးပြုရန် အဆင်ပြေသော်လည်း ၎င်းတို့သည် အဓိကအားဖြင့် boot တွင် မမျှော်လင့်ထားသော အမူအကျင့်များ ရှိနေနိုင်သောကြောင့် သတိထားရန် လိုအပ်ပါသည်။ အနီရောင်ဖြင့် မီးမောင်းထိုးပြထားသည့် ပင်များကို သွင်းအားစု သို့မဟုတ် အထွက်များအဖြစ် အသုံးပြုရန် အကြံပြုထားခြင်း မရှိပါ။
GP IO | ထည့်သွင်းခြင်း။ | အထွက် | မှတ်စုများ |
0 | ဆွဲထုတ်ခဲ့သည်။ | OK | boot တွင် PWM signal ကိုထုတ်ပေးသည်၊ flashing mode သို့ဝင်ရောက်ရန် LOW ဖြစ်ရမည်။ |
1 | TX ပင်နံပါတ် | OK | boot တွင် debug output ကို |
2 | OK | OK | on-board LED နှင့် ချိတ်ဆက်ထားပြီး၊ flashing မုဒ်သို့ ဝင်ရောက်ရန် ရေပေါ်ဝဲ သို့မဟုတ် နိမ့်နေရပါမည်။ |
3 | OK | RX ပင်နံပါတ် | boot တက်ချိန်တွင် မြင့်မားသည်။ |
4 | OK | OK | |
5 | OK | OK | boot, strapping pin တွင် PWM signal ကိုထုတ်ပေးသည်။ |
12 | OK | OK | ကြိုးကို မြင့်မြင့်ဆွဲလိုက်လျှင် boot အဆင်မပြေပါ။ |
13 | OK | OK | |
14 | OK | OK | boot တွင် PWM signal ကိုထုတ်ပေးသည်။ |
15 | OK | OK | boot, strapping pin တွင် PWM signal ကိုထုတ်ပေးသည်။ |
16 | OK | OK | |
17 | OK | OK | |
18 | OK | OK | |
19 | OK | OK | |
21 | OK | OK | |
22 | OK | OK | |
23 | OK | OK | |
25 | OK | OK | |
26 | OK | OK | |
27 | OK | OK | |
32 | OK | OK | |
33 | OK | OK | |
34 | OK | ထည့်သွင်းခြင်းသာ | |
35 | OK | ထည့်သွင်းခြင်းသာ | |
36 | OK | ထည့်သွင်းခြင်းသာ | |
39 | OK | ထည့်သွင်းခြင်းသာ |
ESP32 GPIOs နှင့် ၎င်း၏လုပ်ဆောင်ချက်များကို ပိုမိုအသေးစိတ်နှင့် အတွင်းကျကျခွဲခြမ်းစိတ်ဖြာရန်အတွက် ဆက်လက်ဖတ်ရှုပါ။
ပင်နံပါတ်များကိုသာ ထည့်သွင်းပါ။
GPIOs 34 မှ 39 များသည် GPIs များဖြစ်သည် – ထည့်သွင်းရန် ပင်နံပါတ်များသာဖြစ်သည်။ ဤပင်ချောင်းများတွင် အတွင်းပိုင်း ဆွဲတင်ခြင်း သို့မဟုတ် ဆွဲချခြင်း ခံနိုင်ရည်များ မရှိပါ။ ၎င်းတို့ကို အထွက်များအဖြစ် အသုံးမပြုနိုင်ပါ၊ ထို့ကြောင့် ဤပင်နံပါတ်များကို ထည့်သွင်းမှုအဖြစ်သာ အသုံးပြုပါ-
- GPIO ၁၀
- GPIO ၁၀
- GPIO ၁၀
- GPIO ၁၀
ESP-WROOM-32 တွင် SPI flash ပေါင်းစပ်ထားသည်။
GPIO 6 မှ GPIO 11 ကို ESP32 ဖွံ့ဖြိုးတိုးတက်ရေးဘုတ်များအချို့တွင် ဖော်ထုတ်ထားသည်။ သို့သော်လည်း ဤပင်နံပါတ်များသည် ESP-WROOM-32 ချစ်ပ်ရှိ SPI flash နှင့် ချိတ်ဆက်ထားပြီး အခြားအသုံးပြုမှုအတွက် အကြံပြုထားခြင်းမရှိပါ။ ထို့ကြောင့် သင့်ပရောဂျက်များတွင် ဤပင်နံပါတ်များကို မသုံးပါနှင့်။
- GPIO 6 (SCK/CLK)
- GPIO 7 (SDO/SD0)
- GPIO 8 (SDI/SD1)
- GPIO 9 (SHD/SD2)
- GPIO 10 (SWP/SD3)
- GPIO 11 (CSC/CMD)
Capacitive touch GPIOs
ESP32 တွင် အတွင်းပိုင်း capacitive touch အာရုံခံကိရိယာ 10 ပါရှိသည်။ ယင်းတို့သည် လူ့အရေပြားကဲ့သို့ လျှပ်စစ်ဓာတ်အား ကိုင်ဆောင်ထားသည့် မည်သည့်အရာမဆို ကွဲပြားမှုကို ခံစားနိုင်သည်။ ထို့ကြောင့် ၎င်းတို့သည် GPIO များကို လက်ချောင်းဖြင့်ထိသောအခါ ဖြစ်ပေါ်လာသော ကွဲပြားမှုများကို သိရှိနိုင်သည်။ အဆိုပါ pins များကို capacitive pads များတွင် အလွယ်တကူ ပေါင်းစပ်နိုင်ပြီး စက်ခလုတ်များကို အစားထိုးနိုင်သည်။ နှစ်နှစ်ခြိုက်ခြိုက်အိပ်ပျော်ခြင်းမှ ESP32 ကိုနှိုးရန် capacitive touch pins ကိုလည်းအသုံးပြုနိုင်ပါသည်။ ထိုအတွင်းပိုင်းထိတွေ့အာရုံခံကိရိယာများသည် ဤ GPIO များနှင့် ချိတ်ဆက်ထားသည်-
- T0 (GPIO 4)
- T1 (GPIO 0)
- T2 (GPIO 2)
- T3 (GPIO 15)
- T4 (GPIO 13)
- T5 (GPIO 12)
- T6 (GPIO 14)
- T7 (GPIO 27)
- T8 (GPIO 33)
- T9 (GPIO 32)
ဒစ်ဂျစ်တယ် Converter မှ analog မှ (ADC)
ESP32 တွင် 18 x 12 bits ADC input ချန်နယ်များ ပါရှိသည် (ESP8266 တွင် 1x 10 bits ADC သာရှိသည်)။ ၎င်းတို့သည် ADC နှင့် သက်ဆိုင်ရာ ချန်နယ်များအဖြစ် အသုံးပြုနိုင်သည့် GPIO များဖြစ်သည်-
- ADC1_CH0 (GPIO 36)
- ADC1_CH1 (GPIO 37)
- ADC1_CH2 (GPIO 38)
- ADC1_CH3 (GPIO 39)
- ADC1_CH4 (GPIO 32)
- ADC1_CH5 (GPIO 33)
- ADC1_CH6 (GPIO 34)
- ADC1_CH7 (GPIO 35)
- ADC2_CH0 (GPIO 4)
- ADC2_CH1 (GPIO 0)
- ADC2_CH2 (GPIO 2)
- ADC2_CH3 (GPIO 15)
- ADC2_CH4 (GPIO 13)
- ADC2_CH5 (GPIO 12)
- ADC2_CH6 (GPIO 14)
- ADC2_CH7 (GPIO 27)
- ADC2_CH8 (GPIO 25)
- ADC2_CH9 (GPIO 26)
မှတ်ချက် - Wi-Fi ကိုအသုံးပြုသည့်အခါ ADC2 ပင်နံပါတ်များကို အသုံးမပြုနိုင်ပါ။ ထို့ကြောင့်၊ သင်သည် Wi-Fi ကိုအသုံးပြုနေပြီး ADC2 GPIO မှတန်ဖိုးကိုရယူရန်အခက်အခဲရှိနေပါက၊ ၎င်းအစား ADC1 GPIO ကိုအသုံးပြုရန်စဉ်းစားနိုင်သည်။ အဲဒါက မင်းရဲ့ပြဿနာကို ဖြေရှင်းရမယ်။
ADC input ချန်နယ်များသည် 12-bit resolution ရှိသည်။ ဆိုလိုသည်မှာ 0 မှ 4095 မှ 0V နှင့် 0 မှ 4095V နှင့် ကိုက်ညီသော analog readings များကို သင်ရနိုင်သည်ဟု ဆိုလိုသည်။ ကုဒ်နှင့် ADC အကွာအဝေးတွင် သင့်ချန်နယ်များ၏ ကြည်လင်ပြတ်သားမှုကိုလည်း သင်သတ်မှတ်နိုင်သည်။
ESP32 ADC ပင်နံပါတ်များသည် linear အပြုအမူ မရှိပါ။ သင်သည် 0 နှင့် 0.1V အကြား သို့မဟုတ် 3.2 နှင့် 3.3V အကြား ခွဲခြားနိုင်မည်မဟုတ်ပေ။ ADC ပင်နံပါတ်များကို အသုံးပြုသည့်အခါ ၎င်းကို မှတ်သားထားရန် လိုအပ်သည်။ အောက်ပါပုံတွင် ပြထားသည့် အပြုအမူနှင့် ဆင်တူသည်ကို သင်ရရှိမည်ဖြစ်သည်။ဒစ်ဂျစ်တယ်မှ အင်နာလော့ပြောင်းပြောင်း (DAC)
ဒစ်ဂျစ်တယ်အချက်ပြမှုများကို analog vol သို့ပြောင်းရန် ESP2 တွင် 8 x 32 bits DAC ချန်နယ်များ ရှိသည်tage အချက်ပြအထွက်များ။ ၎င်းတို့သည် DAC ချန်နယ်များဖြစ်သည်-
- DAC1 (GPIO25)
- DAC2 (GPIO26)
RTC GPIO များ
ESP32 တွင် RTC GPIO ပံ့ပိုးမှုရှိသည်။ ESP32 သည် နှစ်နှစ်ခြိုက်ခြိုက် အိပ်စက်နေချိန်တွင် RTC ပါဝါနည်းသော စနစ်ခွဲသို့ ဖြတ်သွားသော GPIO များကို အသုံးပြုနိုင်ပါသည်။ ဤ RTC GPIO များသည် အလွန်နိမ့်သောအခါတွင် နှစ်နှစ်ခြိုက်ခြိုက် အိပ်စက်ခြင်းမှ ESP32 ကို နှိုးရန် အသုံးပြုနိုင်ပါသည်။
ပါဝါ (ULP) ပူးတွဲပရိုဆက်ဆာကို လုပ်ဆောင်နေပါသည်။ အောက်ပါ GPIO များကို ပြင်ပနိုးထမှုအရင်းအမြစ်အဖြစ် အသုံးပြုနိုင်ပါသည်။
- RTC_GPIO0 (GPIO36)
- RTC_GPIO3 (GPIO39)
- RTC_GPIO4 (GPIO34)
- RTC_GPIO5 (GPIO35)
- RTC_GPIO6 (GPIO25)
- RTC_GPIO7 (GPIO26)
- RTC_GPIO8 (GPIO33)
- RTC_GPIO9 (GPIO32)
- RTC_GPIO10 (GPIO4)
- RTC_GPIO11 (GPIO0)
- RTC_GPIO12 (GPIO2)
- RTC_GPIO13 (GPIO15)
- RTC_GPIO14 (GPIO13)
- RTC_GPIO15 (GPIO12)
- RTC_GPIO16 (GPIO14)
- RTC_GPIO17 (GPIO27)
PWM
ESP32 LED PWM ထိန်းချုပ်ကိရိယာတွင် မတူညီသောဂုဏ်သတ္တိများဖြင့် PWM အချက်ပြမှုများကို ထုတ်ပေးရန်အတွက် ပြင်ဆင်သတ်မှတ်နိုင်သည့် သီးခြားလွတ်လပ်သောချန်နယ် 16 လိုင်းရှိသည်။ အထွက်များအဖြစ် လုပ်ဆောင်နိုင်သော ပင်များအားလုံးကို PWM ပင်များအဖြစ် သုံးနိုင်သည် (GPIOs 34 မှ 39 သည် PWM ထုတ်ပေး၍မရပါ)။
PWM အချက်ပြမှုကို သတ်မှတ်ရန်၊ သင်သည် ဤကန့်သတ်ချက်များကို ကုဒ်တွင် သတ်မှတ်ရန် လိုအပ်သည်-
- အချက်ပြ၏ကြိမ်နှုန်း;
- တာဝန်သံသရာ;
- PWM ချန်နယ်;
- GPIO သည် သင် signal ကိုထုတ်ပေးလိုသောနေရာတွင်။
I2C
ESP32 တွင် I2C ချန်နယ်နှစ်ခုရှိပြီး မည်သည့် pin ကို SDA သို့မဟုတ် SCL အဖြစ် သတ်မှတ်နိုင်သည်။ Arduino IDE ဖြင့် ESP32 ကိုအသုံးပြုသောအခါ၊ မူရင်း I2C ပင်နံပါတ်များမှာ-
- GPIO 21 (SDA)
- GPIO 22 (SCL)
ဝါယာကြိုးစာကြည့်တိုက်ကို အသုံးပြုသည့်အခါ အခြားပင်နံပါတ်များကို အသုံးပြုလိုပါက၊ ဖုန်းခေါ်ဆိုရန်သာ လိုအပ်ပါသည်။
Wire.begin(SDA၊ SCL);
SPI
မူရင်းအားဖြင့်၊ SPI အတွက် ပင်နံပါတ်မြေပုံဆွဲခြင်းသည်-
SPI | မောရှေ | MISO | CLK | CS |
VSPI | GPIO ၁၀ | GPIO ၁၀ | GPIO ၁၀ | GPIO ၁၀ |
HSPI | GPIO ၁၀ | GPIO ၁၀ | GPIO ၁၀ | GPIO ၁၀ |
ကြားဖြတ်
GPIO အားလုံးကို ကြားဖြတ်များအဖြစ် ပြင်ဆင်သတ်မှတ်နိုင်သည်။
Strapping Pins များ
ESP32 ချစ်ပ်တွင် အောက်ပါ ခါးပတ်ကြိုးများ ပါရှိသည်။
- GPIO 0 (boot mode သို့ဝင်ရောက်ရန် LOW ဖြစ်ရမည်)
- GPIO 2 (စတင်ချိန်တွင် ပေါ်နေ သို့မဟုတ် နိမ့်နေရမည်)
- GPIO ၁၀
- GPIO 5 (စတင်နေစဉ်အတွင်း မြင့်မားနေရမည်)
- GPIO 12 (စတင်ချိန်တွင် နိမ့်နေရမည်)
- GPIO 15 (စတင်နေစဉ်အတွင်း မြင့်မားနေရမည်)
ESP32 ကို bootloader သို့မဟုတ် flashing mode သို့ထည့်သွင်းရန် ၎င်းတို့ကိုအသုံးပြုသည်။ Built-in USB/Serial ပါရှိသော developer board အများစုတွင်၊ ဤ pins များ၏ အခြေအနေအတွက် သင်စိုးရိမ်နေရန် မလိုအပ်ပါ။ ဘုတ်သည် မှိတ်တုတ်မှိတ်တုတ် သို့မဟုတ် boot မုဒ်အတွက် ပင်နံပါတ်များကို မှန်ကန်သောအခြေအနေတွင်ထားပေးသည်။ ESP32 Boot Mode ရွေးချယ်မှုဆိုင်ရာ နောက်ထပ်အချက်အလက်များကို ဤနေရာတွင် တွေ့နိုင်ပါသည်။
သို့သော် သင့်တွင် အဆိုပါ pins များနှင့် ချိတ်ဆက်ထားသော အရံအတားများရှိပါက၊ ကုဒ်အသစ်ကို အပ်လုဒ်လုပ်ရန်၊ ESP32 ကို firmware အသစ်ဖြင့် flash လုပ်ခြင်း သို့မဟုတ် board ကို ပြန်လည်သတ်မှတ်ရန် ကြိုးစားရာတွင် အခက်အခဲရှိနိုင်ပါသည်။ သင့်တွင် အရံအတားအချို့ရှိ၍ ကုဒ်ကို အပ်လုဒ်တင်ခြင်း သို့မဟုတ် ESP32 ကို flashing လုပ်ရာတွင် ပြဿနာရှိနေပါက၊ အဆိုပါအရံပစ္စည်းများသည် ESP32 ကို မှန်ကန်သောမုဒ်သို့ မဝင်ရောက်စေရန် တားဆီးထားသောကြောင့် ဖြစ်နိုင်ပါသည်။ သင့်အား လမ်းကြောင်းမှန်သို့ လမ်းညွှန်ရန် Boot Mode ရွေးချယ်မှု စာရွက်စာတမ်းကို ဖတ်ပါ။ ပြန်လည်သတ်မှတ်ခြင်း၊ မှိတ်တုတ်မှိတ်တုတ် သို့မဟုတ် စတင်ခြင်းပြီးနောက်၊ အဆိုပါ pin များသည် မျှော်လင့်ထားသည့်အတိုင်း အလုပ်လုပ်ပါသည်။
Boot တွင် HIGH ကိုထိုးပါ။
အချို့သော GPIO များသည် ၎င်းတို့၏ အခြေအနေကို HIGH သို့ပြောင်းသည် သို့မဟုတ် boot သို့မဟုတ် reset တွင် PWM အချက်ပြမှုများကို ထုတ်ပေးသည်။
ဆိုလိုသည်မှာ သင့်တွင် ဤ GPIOs များနှင့် ချိတ်ဆက်ထားသော output များရှိပါက ESP32 ကို ပြန်လည်သတ်မှတ်ခြင်း သို့မဟုတ် boot လုပ်သောအခါတွင် မမျှော်လင့်ထားသောရလဒ်များ ရရှိနိုင်သည်။
- GPIO ၁၀
- GPIO ၁၀
- GPIO ၁၀
- GPIO 6 မှ GPIO 11 (ESP32 ပေါင်းစပ်ထားသော SPI flash memory သို့ ချိတ်ဆက်ထားသည် - အသုံးပြုရန် အကြံပြုထားခြင်း မရှိပါ။)
- GPIO ၁၀
- GPIO ၁၀
ဖွင့်ပါ (EN)
Enable (EN) သည် 3.3V regulator ၏ enable pin ဖြစ်သည်။ ၎င်းကို ဆွဲထုတ်လိုက်သောကြောင့် 3.3V ထိန်းညှိအား ပိတ်ရန် မြေပြင်သို့ ချိတ်ဆက်ပါ။ ဆိုလိုသည်မှာ ဥပမာအားဖြင့် သင်၏ ESP32 ကို ပြန်လည်စတင်ရန် ခလုတ်တစ်ခုနှင့် ချိတ်ဆက်ထားသော ဤပင်နံပါတ်ကို သင်အသုံးပြုနိုင်ပါသည်။ampလဲ့
GPIO လက်ရှိရေးဆွဲထားသည်။
ESP40 ဒေတာစာရွက်ရှိ "အကြံပြုထားသော လည်ပတ်မှုအခြေအနေများ" ကဏ္ဍအရ GPIO တစ်ခုလျှင် ထုတ်ယူသည့် ပကတိအမြင့်ဆုံး လက်ရှိ 32mA ရှိပါသည်။
ESP32 Built-In Hall Effect Sensor
ESP32 တွင် ၎င်း၏ပတ်ဝန်းကျင်ရှိ သံလိုက်စက်ကွင်းပြောင်းလဲမှုများကို သိရှိနိုင်သည့် built-in Hall effect အာရုံခံကိရိယာလည်းပါရှိသည်။
ESP32 Arduino IDE
Arduino IDE နှင့် ၎င်း၏ပရိုဂရမ်းမင်းဘာသာစကားကို အသုံးပြု၍ ESP32 ကို ပရိုဂရမ်ပြုလုပ်နိုင်စေမည့် Arduino IDE အတွက် အပိုပရိုဂရမ်တစ်ခုရှိသည်။ ဤသင်ခန်းစာတွင် သင်သည် Windows၊ Mac OS X သို့မဟုတ် Linux ကိုအသုံးပြုနေသည်ဖြစ်စေ Arduino IDE တွင် ESP32 ဘုတ်ကို မည်သို့ထည့်သွင်းရမည်ကို သင့်အားပြသပါမည်။
ကြိုတင်လိုအပ်ချက်များ- Arduino IDE ကို ထည့်သွင်းထားသည်။
ဤတပ်ဆင်ခြင်းလုပ်ငန်းစဉ်ကိုမစတင်မီ၊ သင်သည်သင်၏ကွန်ပျူတာပေါ်တွင် Arduino IDE ကိုထည့်သွင်းရန်လိုအပ်သည်။ သင်ထည့်သွင်းနိုင်သော Arduino IDE ဗားရှင်း နှစ်မျိုးရှိသည်- ဗားရှင်း 1 နှင့် ဗားရှင်း 2 ။
အောက်ပါလင့်ခ်ကိုနှိပ်ခြင်းဖြင့် Arduino IDE ကိုဒေါင်းလုဒ်လုပ်ပြီး ထည့်သွင်းနိုင်သည်- arduino.cc/en/Main/Software
မည်သည့် Arduino IDE ဗားရှင်းကို ကျွန်ုပ်တို့ အကြံပြုထားသနည်း။ လောလောဆယ်တော့ တချို့ရှိတယ်။ plugins ESP32 အတွက် (SPIFFS ကဲ့သို့ FileArduino 2 တွင် မပံ့ပိုးရသေးသော system Uploader Plugin)။ ထို့ကြောင့် အနာဂတ်တွင် SPIFFS ပလပ်အင်ကို အသုံးပြုလိုပါက၊ အမွေအနှစ်ဗားရှင်း 1.8.X ကို ထည့်သွင်းရန် အကြံပြုအပ်ပါသည်။ ၎င်းကိုရှာဖွေရန် Arduino ဆော့ဖ်ဝဲစာမျက်နှာပေါ်မှဆင်းရန်သာလိုသည်။
Arduino IDE တွင် ESP32 Add-on ကို ထည့်သွင်းခြင်း။
သင်၏ Arduino IDE တွင် ESP32 ဘုတ်ကို ထည့်သွင်းရန်၊ အောက်ပါ ညွှန်ကြားချက်များကို လိုက်နာပါ-
- သင်၏ Arduino IDE တွင်၊ သို့သွားပါ။ File> နှစ်သက်မှုများ
- “နောက်ထပ်ဘုတ်အဖွဲ့မန်နေဂျာ” တွင် အောက်ပါတို့ကို ထည့်သွင်းပါ။ URLs" အကွက်-
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
ထို့နောက် "OK" ခလုတ်ကိုနှိပ်ပါ။မှတ်ချက် - အကယ်၍ သင့်တွင် ESP8266 ဘုတ်များ ရှိနှင့်ပြီးဖြစ်သည်။ URL, သင်ခွဲခြားနိုင်ပါတယ်။ URLs သည် အောက်ပါအတိုင်း ကော်မာဖြင့်
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Boards Manager ကိုဖွင့်ပါ။ Tools > Board > Boards Manager သို့သွားပါ...အားရှာဖွေခြင်း ESP32 and press install button for the “ESP32 by Espressif Systems“:
ဒါပဲ။ စက္ကန့်အနည်းငယ်အကြာတွင် ထည့်သွင်းသင့်သည်။
စမ်းသပ်ကုဒ်ကို အပ်လုဒ်လုပ်ပါ။
ESP32 ဘုတ်ကို သင့်ကွန်ပျူတာတွင် ချိတ်ပါ။ သင်၏ Arduino IDE ကိုဖွင့်ခြင်းဖြင့်၊ ဤအဆင့်များကို လိုက်နာပါ။
- ကိရိယာများ > ဘုတ်မီနူးတွင် သင့်ဘုတ်အဖွဲ့ကို ရွေးပါ (ကျွန်ုပ်ကိစ္စတွင် ၎င်းသည် ESP32 DEV Module ဖြစ်သည်)
- Port ကို ရွေးပါ (သင်၏ Arduino IDE တွင် COM Port ကို မတွေ့ပါက၊ CP210x USB to UART Bridge VCP Drivers များကို ထည့်သွင်းရန် လိုအပ်သည်-
- အောက်ပါ ex ကိုဖွင့်ပါ။ample အောက် File > ထွamples > WiFi
(ESP32) > WiFi စကင်န် - သင်၏ Arduino IDE တွင် ပုံကြမ်းအသစ်တစ်ခု ဖွင့်သည်-
- Arduino IDE ရှိ အပ်လုဒ်ခလုတ်ကို နှိပ်ပါ။ ကုဒ်ကိုစုစည်းပြီး သင့်ဘုတ်သို့ အပ်လုဒ်လုပ်နေစဉ် စက္ကန့်အနည်းငယ်စောင့်ပါ။
- အားလုံးမျှော်လင့်ထားသည့်အတိုင်း ဖြစ်သွားခဲ့ပါက၊ "ပြီးပြီ အပ်လုဒ်တင်ခြင်း" ကို တွေ့ရပါမည်။ သတင်းစကား
- Arduino IDE Serial Monitor ကို 115200 baud နှုန်းဖြင့် ဖွင့်ပါ-
- သင်္ဘောပေါ်ရှိ ESP32 ကို ဖွင့်ရန် ခလုတ်ကို နှိပ်ပြီး သင်၏ ESP32 အနီးတွင် ရရှိနိုင်သော ကွန်ရက်များကို သင်တွေ့ရပါမည်။
ပြသာနာရှာဖွေရှင်းပေးခြင်း
အကယ်၍ သင်သည် သင်၏ ESP32 သို့ ပုံကြမ်းအသစ်တစ်ခုကို အပ်လုဒ်လုပ်ရန် ကြိုးစားပါက ဤအမှားအယွင်း မက်ဆေ့ချ်ကို သင်ရရှိမည်ဆိုပါက “ဆိုးရွားသော အမှားတစ်ခု ဖြစ်ပွားခဲ့သည်- ESP32 သို့ ချိတ်ဆက်ရန် မအောင်မြင်ပါ- အချိန်ကုန်သွားသည်… ချိတ်ဆက်နေသည်…”။ ဆိုလိုသည်မှာ သင်၏ ESP32 သည် flashing/uploading mode တွင်မရှိပါ။
မှန်ကန်သောဘုတ်အမည်နှင့် COM por ကိုရွေးချယ်ထားပါက အောက်ပါအဆင့်များကို လိုက်နာပါ-
သင်၏ ESP32 ဘုတ်ရှိ “BOOT” ခလုတ်ကို ဖိထားပါ။
- သင်၏ ပုံကြမ်းကို အပ်လုဒ်လုပ်ရန် Arduino IDE ရှိ "အပ်လုဒ်" ခလုတ်ကို နှိပ်ပါ။
- "Connecting..." ကိုတွေ့ပြီးနောက်။ သင်၏ Arduino IDE တွင် မက်ဆေ့ချ်၊ “BOOT” ခလုတ်မှ လက်ချောင်းကို လွှတ်ပါ။
- ၎င်းနောက်၊ သင်သည် "အပ်လုဒ်တင်ခြင်းပြီးပြီ" မက်ဆေ့ခ်ျကိုတွေ့ရပါမည်။
ဒါပဲ။ သင်၏ ESP32 တွင် ပုံကြမ်းအသစ် လည်ပတ်နေသင့်သည်။ ESP32 ကို ပြန်လည်စတင်ပြီး အပ်လုဒ်လုပ်ထားသော ပုံကြမ်းအသစ်ကို လုပ်ဆောင်ရန် "ENABLE" ခလုတ်ကို နှိပ်ပါ။
ပုံကြမ်းအသစ်တစ်ခုကို အပ်လုဒ်တင်လိုသည့်အခါတိုင်း ထိုခလုတ်အတွဲလိုက်ကို ပြန်လုပ်ရမည်ဖြစ်ပါသည်။
Project 1 ESP32 Inputs Outputs
ဤစတင်ခြင်းလမ်းညွှန်တွင် ခလုတ်ခလုတ်တစ်ခုကဲ့သို့သော ဒစ်ဂျစ်တယ်ထည့်သွင်းမှုများကိုဖတ်ရန်နှင့် Arduino IDE ဖြင့် ESP32 ကိုအသုံးပြု၍ LED ကဲ့သို့ ဒစ်ဂျစ်တယ်အထွက်များကို ထိန်းချုပ်နိုင်ပုံကို သင်လေ့လာရပါမည်။
လိုအပ်ချက်များ
Arduino IDE ကို အသုံးပြု၍ ESP32 ကို ပရိုဂရမ်လုပ်ပါမည်။ ထို့ကြောင့်၊ ရှေ့ဆက်မလုပ်ဆောင်မီ သင့်တွင် ESP32 ဘုတ်များ အပိုပရိုဂရမ်များ ထည့်သွင်းထားကြောင်း သေချာပါစေ။
- Arduino IDE တွင် ESP32 Add-on ကို ထည့်သွင်းခြင်း။
ESP32 ဒစ်ဂျစ်တယ် အထွက်များကို ထိန်းချုပ်သည်။
ပထမဦးစွာ၊ သင်ထိန်းချုပ်လိုသော GPIO ကို OUTPUT တစ်ခုအဖြစ် သတ်မှတ်ရန်လိုအပ်သည်။ အောက်ပါအတိုင်း pinMode() လုပ်ဆောင်ချက်ကို အသုံးပြုပါ။
pinMode(GPIO၊ OUTPUT);
ဒစ်ဂျစ်တယ်အထွက်ကို ထိန်းချုပ်ရန် အကြောင်းပြချက်များအဖြစ် လက်ခံသည့် digitalWrite() လုပ်ဆောင်ချက်၊ သင်ရည်ညွှန်းသော GPIO (int နံပါတ်) နှင့် အခြေအနေ၊ HIGH သို့မဟုတ် LOW တို့ကို အသုံးပြုရန် လိုအပ်သည်။
digitalWrite(GPIO၊ ပြည်နယ်);
GPIOs 6 မှ 11 (ပေါင်းစပ် SPI ဖလက်ရှ်သို့ ချိတ်ဆက်ထားသည်) နှင့် GPIOs 34၊ 35၊ 36 နှင့် 39 မှလွဲ၍ အထွက်များအဖြစ် အသုံးပြုနိုင်ပါသည်။
ESP32 GPIOs များအကြောင်း ပိုမိုလေ့လာပါ- ESP32 GPIO အကိုးအကားလမ်းညွှန်
ESP32 ဒစ်ဂျစ်တယ် ထည့်သွင်းမှုများကို ဖတ်ပါ။
ပထမဦးစွာ၊ pinMode() လုပ်ဆောင်ချက်ကို အသုံးပြု၍ သင်ဖတ်လိုသော GPIO ကို INPUT အဖြစ် သတ်မှတ်ပါ-
pinMode(GPIO၊ ထည့်သွင်းမှု);
ခလုတ်တစ်ခုကဲ့သို့ ဒစ်ဂျစ်တယ်ထည့်သွင်းမှုကို ဖတ်ရန်၊ သင်သည် အငြင်းအခုံအဖြစ် လက်ခံသည့် digitalRead() လုပ်ဆောင်ချက်၊ သင်ရည်ညွှန်းနေသော GPIO (int နံပါတ်) ကို အသုံးပြုသည်။
digitalRead(GPIO);
GPIOs 32 မှ 6 (ပေါင်းစပ် SPI flash နှင့် ချိတ်ဆက်ထားသည်) မှလွဲ၍ ESP11 GPIO အားလုံးကို ထည့်သွင်းမှုအဖြစ် အသုံးပြုနိုင်ပါသည်။
ESP32 GPIOs များအကြောင်း ပိုမိုလေ့လာပါ- ESP32 GPIO အကိုးအကားလမ်းညွှန်
ပရောဂျက် Example
ဒစ်ဂျစ်တယ် သွင်းအားစုများနှင့် ဒစ်ဂျစ်တယ် ရလဒ်များကို မည်သို့အသုံးပြုရမည်ကို သင့်အား ပြသရန်၊ ကျွန်ုပ်တို့သည် ရိုးရှင်းသော ပရောဂျက်ဟောင်းကို တည်ဆောက်ပါမည်။ampခလုတ်တစ်ခုနှင့် LED တစ်ခုပါရှိသည်။ အောက်ဖော်ပြပါပုံတွင် ပြထားသည့်အတိုင်း ခလုတ်နှိပ်သည့် အခြေအနေကို ဖတ်ပြီး LED ကို အလင်းပေးပါမည်။
လိုအပ်သော အစိတ်အပိုင်းများ
ဤသည်မှာ ဆားကစ်တည်ဆောက်ရန် လိုအပ်သော အစိတ်အပိုင်းများစာရင်းဖြစ်သည်။
- ESP32 DEVKIT V1
- 5 မီလီမီတာ LED
- 220 Ohm ခုခံအား
- ခလုတ်
- 10k Ohm ခုခံမှု
- ပေါင်မုန့်ပြား
- Jumper ဝါယာကြိုးများ
ဇယားကွက်
ဆက်လက်မလုပ်ဆောင်မီ၊ သင်သည် LED နှင့် ခလုတ်တစ်ခုပါရှိသော ဆားကစ်တစ်ခုကို စုစည်းရန် လိုအပ်သည်။
LED ကို GPIO 5 နှင့် GPIO သို့ ခလုတ်နှိပ်ပါမည်။ 4.ကုတ်
arduino IDE တွင် Project_1_ESP32_Inputs_Outputs.ino ကုဒ်ကိုဖွင့်ပါCode ဘယ်လိုအလုပ်လုပ်လဲ။
အောက်ဖော်ပြပါ စာကြောင်းနှစ်ကြောင်းတွင်၊ သင်သည် ပင်များကို သတ်မှတ်ရန် ကိန်းရှင်များကို ဖန်တီးသည်-
ခလုတ်ကို GPIO 4 နှင့် ချိတ်ဆက်ထားပြီး LED သည် GPIO 5 နှင့် ချိတ်ဆက်ထားသည်။ Arduino IDE ကို ESP32 ဖြင့် အသုံးပြုသောအခါ 4 သည် GPIO 4 နှင့် သက်ဆိုင်ပြီး 5 သည် GPIO 5 နှင့် ကိုက်ညီသည်။
ထို့နောက်၊ သင်သည် ခလုတ်အခြေအနေအား ထိန်းထားရန် ကိန်းရှင်တစ်ခုကို ဖန်တီးပါ။ ပုံမှန်အားဖြင့်၊ ၎င်းသည် 0 (မနှိပ်ပါ)။
int buttonState = 0;
setup() တွင် သင်သည် ခလုတ်ကို INPUT အဖြစ် စတင်ကာ၊ LED ကို OUTPUT အဖြစ် သတ်မှတ်သည်။
၎င်းအတွက်၊ သင်သည် သင်ရည်ညွှန်းသော ပင်ကို လက်ခံသည့် pinMode() လုပ်ဆောင်ချက်နှင့် မုဒ်- INPUT သို့မဟုတ် OUTPUT ကို အသုံးပြုသည်။
pinMode(buttonPin၊ INPUT);
pinMode(ledPin၊ OUTPUT);
loop() တွင် သင်သည် ခလုတ်အခြေအနေကို ဖတ်ပြီး LED ကို လိုက်လျောညီထွေ သတ်မှတ်ပေးသည့် နေရာဖြစ်သည်။
နောက်စာကြောင်းတွင် သင်သည် ခလုတ်အခြေအနေအား ဖတ်ပြီး ၎င်းကို buttonState variable တွင် သိမ်းဆည်းပါ။
ယခင်က ကျွန်ုပ်တို့မြင်ဖူးသည့်အတိုင်း၊ သင်သည် digitalRead() လုပ်ဆောင်ချက်ကို အသုံးပြုသည်။
buttonState = digitalRead(buttonPin);
အောက်ပါ if ထုတ်ပြန်ချက်တွင်၊ ခလုတ်အခြေအနေသည် မြင့်မားခြင်းရှိမရှိ စစ်ဆေးသည်။ အကယ်၍ ၎င်းသည် ledPin ကို အငြင်းအခုံအဖြစ် လက်ခံသည့် digitalWrite() လုပ်ဆောင်ချက်ကို အသုံးပြု၍ LED ကို ဖွင့်ပေးမည်ဖြစ်ပြီး ၎င်းသည် ledPin နှင့် HIGH အနေအထားကို ပြောင်းလဲစေသည်။
အကယ်၍ (buttonState == HIGH)ခလုတ်အခြေအနေသည် မမြင့်မားပါက၊ သင်သည် LED ကို ပိတ်ထားသည်။ digitalWrite() လုပ်ဆောင်ချက်တွင် ဒုတိယအငြင်းအခုံအဖြစ် LOW ကို သတ်မှတ်လိုက်ပါ။
ကုဒ်ကို တင်ခြင်း။
အပ်လုဒ်ခလုတ်ကို မနှိပ်မီ၊ ကိရိယာများ > ဘုတ်အဖွဲ့သို့သွားပြီး၊ ဘုတ်အဖွဲ့-DOIT ESP32 DEVKIT V1 ဘုတ်ကို ရွေးချယ်ပါ။
Tools > Port သို့သွားပြီး ESP32 နှင့်ချိတ်ဆက်ထားသည့် COM port ကိုရွေးချယ်ပါ။ ထို့နောက် အပ်လုဒ်ခလုတ်ကို နှိပ်ပြီး “အပ်လုဒ်တင်ခြင်းပြီးပြီ” မက်ဆေ့ချ်ကို စောင့်ပါ။မှတ်ချက်- အမှားရှာပြင်သည့်ဝင်းဒိုးတွင် အစက်အပြောက်များစွာ (ချိတ်ဆက်နေသည်… __…__) နှင့် "ESP32 သို့ချိတ်ဆက်ရန်ပျက်ကွက်- ပက်ကတ်ခေါင်းစီးကို စောင့်ဆိုင်းနေသည်" မက်ဆေ့ချ်တွင် အချိန်ကုန်သွားပါက၊ ဆိုလိုသည်မှာ သင်သည် ESP32 on-board BOOT ကို နှိပ်ရန် လိုအပ်ပါသည်။ အစက်များနောက်တွင် ခလုတ်ကိုနှိပ်ပါ။
စတင်ပေါ်လာသည်။ ပြဿနာဖြေရှင်းခြင်း။
ဆန္ဒပြပွဲ
ကုဒ်ကို အပ်လုဒ်တင်ပြီးနောက်၊ သင့်ပတ်လမ်းကို စမ်းသပ်ပါ။ ခလုတ်နှိပ်လိုက်သောအခါတွင် သင်၏ LED သည် လင်းလာပါမည်-လွှတ်လိုက်သောအခါ ပိတ်ပါ-
ပရောဂျက် 2 ESP32 Analog ထည့်သွင်းမှုများ
ဤပရောဂျက်သည် Arduino IDE ကိုအသုံးပြု၍ ESP32 ဖြင့် analog input များကိုမည်သို့ဖတ်ရမည်ကိုပြသသည်။
အင်နာလော့ဂ်ဖတ်ခြင်းသည် potentiometers သို့မဟုတ် analog အာရုံခံကိရိယာများကဲ့သို့ ပြောင်းလဲနိုင်သော ပြောင်းလဲနိုင်သော resistors များမှ တန်ဖိုးများကို ဖတ်ရန် အသုံးဝင်သည်။
Analog Inputs (ADC)
ESP32 ဖြင့် analog တန်ဖိုးကို ဖတ်ခြင်းသည် မတူညီသော vol ကို တိုင်းတာနိုင်သည်။tag0 V နှင့် 3.3 V ကြား e အဆင့်။
voltagထို့နောက် e တိုင်းတာခြင်းကို 0 နှင့် 4095 အကြားတန်ဖိုးတစ်ခုအဖြစ်သတ်မှတ်ထားပြီး 0 V နှင့် 0 နှင့် 3.3 V သည် 4095 နှင့် သက်ဆိုင်သည်။ မည်သည့် voltage သည် 0 V နှင့် 3.3 V အကြားရှိ ဆက်စပ်တန်ဖိုးကို ပေးလိမ့်မည်။ADC သည် Non-linear ဖြစ်သည်။
အကောင်းဆုံးကတော့ ESP32 ADC pins ကိုအသုံးပြုတဲ့အခါ linear အပြုအမူကို သင်မျှော်လင့်ထားမှာပါ။
သို့သော် ထိုသို့မဖြစ်ပါ။ သင်ရရှိမည့်အရာမှာ အောက်ပါဇယားတွင် ပြထားသည့်အတိုင်း အပြုအမူတစ်ခုဖြစ်သည်။ဤအပြုအမူကိုဆိုလိုသည်မှာ သင်၏ ESP32 သည် 3.3 V နှင့် 3.2 V ကို ခွဲခြား၍မရပါ။
vol နှစ်ခုလုံးအတွက် တူညီသောတန်ဖိုးကို သင်ရရှိမည်ဖြစ်သည်။tages: 4095 ။
အရမ်းနိမ့်တဲ့ vol အတွက်လည်း ဒီလိုပါပဲ။tage တန်ဖိုးများ- 0 V နှင့် 0.1 V အတွက် တူညီသောတန်ဖိုးများ- 0 ကို ရရှိမည်ဖြစ်သည်။ ESP32 ADC ပင်များကို အသုံးပြုသည့်အခါ ၎င်းကို မှတ်သားထားရန် လိုအပ်သည်။
analogRead() လုပ်ဆောင်ချက်
Arduino IDE ကိုအသုံးပြု၍ ESP32 ဖြင့် analog input ကိုဖတ်ခြင်းသည် analogRead() လုပ်ဆောင်ချက်ကိုအသုံးပြုခြင်းကဲ့သို့ရိုးရှင်းပါသည်။ ၎င်းသည် အငြင်းအခုံအဖြစ် လက်ခံသည်၊ သင်ဖတ်လိုသော GPIO
analogRead(GPIO);
DEVKIT V15board (GPIO 1 ပါသောဗားရှင်း) တွင် 30 ခုသာရနိုင်သည်။
သင်၏ ESP32 ဘုတ် pinout ကိုယူပြီး ADC pins ကိုရှာပါ။ ၎င်းတို့ကို အောက်ပါပုံတွင် အနီရောင်ဘောင်ဖြင့် မီးမောင်းထိုးပြထားသည်။ဤ analog input pin များသည် 12-bit resolution ရှိသည်။ ဆိုလိုသည်မှာ သင်သည် analog input ကိုဖတ်သောအခါ၊ ၎င်း၏အကွာအဝေးသည် 0 မှ 4095 အထိ ကွဲပြားနိုင်သည်။
မှတ်ချက်- Wi-Fi ကိုအသုံးပြုသည့်အခါ ADC2 pins ကို အသုံးမပြုနိုင်ပါ။ ထို့ကြောင့်၊ သင်သည် Wi-Fi ကိုအသုံးပြုနေပြီး ADC2 GPIO မှတန်ဖိုးကိုရယူရန်အခက်အခဲရှိနေပါက၊ ၎င်းအစား ADC1 GPIO ကိုအသုံးပြုရန် စဉ်းစားနိုင်သည်၊ ၎င်းသည် သင့်ပြဿနာကိုဖြေရှင်းနိုင်မည်ဖြစ်သည်။
အရာအားလုံးက ဘယ်လို ဆက်စပ်နေလဲဆိုတာ ကြည့်ဖို့အတွက် ရိုးရှင်းတဲ့ ex ကို လုပ်မယ်။amppotentiometer မှ analog တန်ဖိုးကိုဖတ်ရန်။
လိုအပ်သော အစိတ်အပိုင်းများ
ဒီ ex အတွက်ample၊ အောက်ပါ အစိတ်အပိုင်းများ လိုအပ်ပါသည်။
- ESP32 DEVKIT V1 ဘုတ်
- Potentiometers
- ပေါင်မုန့်ပြား
- Jumper ဝါယာကြိုးများ
သိပ္ပံပညာ
သင်၏ ESP32 သို့ potentiometer ကို ကြိုးတပ်ပါ။ potentiometer အလယ် pin ကို GPIO 4 နှင့် ချိတ်ဆက်ထားသင့်သည်။ အောက်ပါ schematic diagram ကို အကိုးအကားအဖြစ် အသုံးပြုနိုင်ပါသည်။ကုတ်
Arduino IDE ကို အသုံးပြု၍ ESP32 ကို ကျွန်ုပ်တို့ ပရိုဂရမ်လုပ်မည်ဖြစ်သောကြောင့် ဆက်လက်မလုပ်ဆောင်မီ သင့်တွင် ESP32 အပိုပရိုဂရမ်ကို ထည့်သွင်းထားကြောင်း သေချာပါစေ-(ဤအဆင့်ကို လုပ်ဆောင်ပြီးပါက နောက်တစ်ဆင့်သို့ ကျော်သွားနိုင်ပါသည်။)
Arduino IDE တွင် ESP32 Add-on ကို ထည့်သွင်းခြင်း။
arduino IDE တွင် Project_2_ESP32_Inputs_Outputs.ino ကုဒ်ကိုဖွင့်ပါဤကုဒ်သည် potentiometer မှတန်ဖိုးများကိုရိုးရှင်းစွာဖတ်ပြီး Serial Monitor တွင်ထိုတန်ဖိုးများကို print ထုတ်ပါသည်။
ကုဒ်တွင်၊ potentiometer နှင့်ချိတ်ဆက်ထားသည့် GPIO ကို သတ်မှတ်ခြင်းဖြင့် စတင်သည်။ ဒီ example၊ GPIO ၄။setup() တွင် 115200 baud rate ဖြင့် serial communication ကို စတင်ပါ။
loop() တွင် potPin မှ analog input ကိုဖတ်ရန် analogRead() လုပ်ဆောင်ချက်ကိုသုံးပါ။
နောက်ဆုံးတွင်၊ အမှတ်စဉ်မော်နီတာရှိ potentiometer မှဖတ်ထားသောတန်ဖိုးများကို print ထုတ်ပါ။
သင်၏ ESP32 သို့ ပေးထားသည့်ကုဒ်ကို အပ်လုဒ်လုပ်ပါ။ Tools menu တွင် သင့်တွင် မှန်ကန်သော board နှင့် COM port ကို ရွေးချယ်ထားကြောင်း သေချာပါစေ။
Ex ကို စမ်းသပ်ခြင်းample
ကုဒ်ကို အပ်လုဒ်တင်ပြီး ESP32 ပြန်လည်သတ်မှတ်ရန် ခလုတ်ကို နှိပ်ပြီးနောက်၊ Serial Monitor ကို baud နှုန်း 115200 ဖြင့် ဖွင့်ပါ။ potentiometer ကို လှည့်ပြီး တန်ဖိုးများ ပြောင်းလဲခြင်းကို ကြည့်ရှုပါ။သင်ရရှိမည့်အမြင့်ဆုံးတန်ဖိုးမှာ 4095 ဖြစ်ပြီး အနိမ့်ဆုံးတန်ဖိုးမှာ 0 ဖြစ်သည်။
အကျဉ်းချုပ်
ဤဆောင်းပါးတွင် Arduino IDE ဖြင့် ESP32 ကို အသုံးပြု၍ analog inputs များကို မည်သို့ဖတ်ရမည်ကို သင်လေ့လာခဲ့သည်။ အကျဉ်းချုပ်မှာ:
- ESP32 DEVKIT V1 DOIT board (30 pins ပါသောဗားရှင်း) တွင် analog input များကိုဖတ်ရန် သင်သုံးနိုင်သော ADC pin 15 ခု ပါရှိသည်။
- ဤ pin များသည် 12 bits ၏ resolution ရှိပြီး၊ ဆိုလိုသည်မှာ 0 မှ 4095 မှ တန်ဖိုးများကို သင်ရနိုင်သည်။
- Arduino IDE တွင်တန်ဖိုးတစ်ခုဖတ်ရန်၊ သင်သည် analogRead() လုပ်ဆောင်ချက်ကိုရိုးရှင်းစွာအသုံးပြုပါ။
- ESP32 ADC ပင်နံပါတ်များသည် linear အပြုအမူ မရှိပါ။ သင်သည် 0 နှင့် 0.1V အကြား သို့မဟုတ် 3.2 နှင့် 3.3V အကြား ခွဲခြားနိုင်မည်မဟုတ်ပေ။ ADC ပင်နံပါတ်များကို အသုံးပြုသည့်အခါ ၎င်းကို မှတ်သားထားရန် လိုအပ်သည်။
ပရောဂျက် 3 ESP32 PWM (အင်နာလော့ အထွက်)
ဤသင်ခန်းစာတွင် Arduino IDE ကို အသုံးပြု၍ ESP32 ဖြင့် PWM အချက်ပြမှုများကို မည်သို့ထုတ်လုပ်ရမည်ကို ကျွန်ုပ်တို့ပြသပါမည်။ ရည်းစားဟောင်းအဖြစ်ampESP32 ၏ LED PWM ထိန်းချုပ်ကိရိယာကို အသုံးပြု၍ LED မီးမှိန်သွားစေသည့် ရိုးရှင်းသော ဆားကစ်တစ်ခုကို တည်ဆောက်ပါမည်။ESP32 LED PWM ထိန်းချုပ်ကိရိယာ
ESP32 တွင် မတူညီသောဂုဏ်သတ္တိများဖြင့် PWM အချက်ပြမှုများကို ထုတ်ပေးရန်အတွက် ပြင်ဆင်သတ်မှတ်နိုင်သည့် သီးခြားလွတ်လပ်သောချန်နယ် 16 လိုင်းပါရှိသော LED PWM ထိန်းချုပ်ကိရိယာတစ်ခုရှိသည်။
Arduino IDE ကို အသုံးပြု၍ PWM ဖြင့် LED ကိုမှိန်ရန် သင်လိုက်နာရမည့် အဆင့်များ ဖြစ်ပါသည် ။
- ပထမဦးစွာသင် PWM ချန်နယ်ကိုရွေးချယ်ရန်လိုအပ်သည်။ 16 မှ 0 လိုင်းများ 15 လိုင်းရှိသည်။
- ထို့နောက်၊ သင်သည် PWM အချက်ပြကြိမ်နှုန်းကို သတ်မှတ်ရန် လိုအပ်သည်။ LED တစ်ခုအတွက်၊ ကြိမ်နှုန်း 5000 Hz သည် အသုံးပြုရန် ကောင်းမွန်သည်။
- Signal ၏ Duty Cycle Resolution ကိုလည်း သင်သတ်မှတ်ရန်လိုအပ်သည်- သင့်တွင် ပြတ်သားမှု 1 မှ 16 bits ရှိသည်။ ကျွန်ုပ်တို့သည် 8-bit ရုပ်ထွက်ကို အသုံးပြုမည်ဖြစ်ပြီး ဆိုလိုသည်မှာ သင်သည် 0 မှ 255 တန်ဖိုးကို အသုံးပြု၍ LED တောက်ပမှုကို ထိန်းချုပ်နိုင်သည်။
- ထို့နောက်၊ မည်သည့် GPIO သို့မဟုတ် GPIO များပေါ်တွင် အချက်ပြမှု ပေါ်လာမည်ကို သင်သတ်မှတ်ရန် လိုအပ်သည်။ ၎င်းအတွက် အောက်ပါလုပ်ဆောင်ချက်ကို သင်အသုံးပြုနိုင်မည်ဖြစ်သည်။
ledcAttachPin(GPIO၊ ချန်နယ်)
ဤလုပ်ဆောင်ချက်သည် အကြောင်းပြချက်နှစ်ခုကို လက်ခံသည်။ ပထမအချက်မှာ signal ကိုထုတ်ပေးမည့် GPIO ဖြစ်ပြီး ဒုတိယမှာ signal ကိုထုတ်ပေးမည့် channel ဖြစ်သည်။ - နောက်ဆုံးအနေဖြင့် PWM ကို အသုံးပြု၍ LED အလင်းအမှောင်ကို ထိန်းချုပ်ရန် အောက်ပါလုပ်ဆောင်ချက်ကို အသုံးပြုပါ။
ledcWrite(ချန်နယ်၊ တာဝန်စက်ဘီး)
ဤလုပ်ဆောင်ချက်သည် PWM အချက်ပြမှုကိုထုတ်ပေးသည့်ချန်နယ်နှင့် တာဝန်စက်ဝန်းကို အကြောင်းပြချက်အဖြစ် လက်ခံသည်။
လိုအပ်သော အစိတ်အပိုင်းများ
ဤသင်ခန်းစာကို လိုက်နာရန် သင်သည် ဤအပိုင်းများ လိုအပ်သည်-
- ESP32 DEVKIT V1 ဘုတ်
- ၃ မီလီမီတာ LED
- 220 Ohm ခုခံအား
- ပေါင်မုန့်ပြား
- Jumper ဝါယာကြိုးများ
သိပ္ပံပညာ
အောက်ပါ schematic diagram တွင်ရှိသကဲ့သို့ သင်၏ ESP32 သို့ LED ကို ကြိုးတပ်ပါ။ LED သည် GPIO နှင့်ချိတ်ဆက်သင့်သည်။ 4.မှတ်ချက် - အထွက်တစ်ခုအဖြစ် လုပ်ဆောင်နိုင်သရွေ့ သင်အလိုရှိသော မည်သည့်ပင်ကိုမဆို အသုံးပြုနိုင်သည်။ အထွက်များအဖြစ် လုပ်ဆောင်နိုင်သော ပင်များအားလုံးကို PWM pins အဖြစ် အသုံးပြုနိုင်သည်။ ESP32 GPIO များအကြောင်း နောက်ထပ်အချက်အလက်များအတွက် ဖတ်ရှုရန်- ESP32 Pinout ရည်ညွှန်းချက်- မည်သည့် GPIO ပင်များကို သင်အသုံးပြုသင့်သနည်း။
ကုတ်
Arduino IDE ကို အသုံးပြု၍ ESP32 ကို ကျွန်ုပ်တို့ ပရိုဂရမ်လုပ်မည်ဖြစ်သောကြောင့် ဆက်လက်မလုပ်ဆောင်မီ သင့်တွင် ESP32 အပိုပရိုဂရမ်ကို ထည့်သွင်းထားကြောင်း သေချာပါစေ-(ဤအဆင့်ကို လုပ်ဆောင်ပြီးပါက နောက်တစ်ဆင့်သို့ ကျော်သွားနိုင်ပါသည်။)
Arduino IDE တွင် ESP32 Add-on ကို ထည့်သွင်းခြင်း။
arduino IDE တွင် Project_3_ESP32_PWM.ino ကုဒ်ကိုဖွင့်ပါ။LED ချိတ်တွဲထားသော ပင်ကို သတ်မှတ်ခြင်းဖြင့် စတင်ပါ။ ဤကိစ္စတွင် LED သည် GPIO 4 နှင့်တွဲထားသည်။
ထို့နောက် သင်သည် PWM အချက်ပြဂုဏ်သတ္တိများကို သတ်မှတ်ပါ။ သင်သည် 5000 Hz ကြိမ်နှုန်းကို သတ်မှတ်ပြီး၊ အချက်ပြမှုကို ထုတ်ပေးရန် ချန်နယ် 0 ကို ရွေးချယ်ကာ ကြည်လင်ပြတ်သားမှု 8 bits ကို သတ်မှတ်ပါ။ ကွဲပြားခြားနားသော PWM အချက်ပြမှုများကို ထုတ်လုပ်ရန်အတွက် ဤကဲ့သို့သော အခြားဂုဏ်သတ္တိများကို သင်ရွေးချယ်နိုင်သည်။
setup() တွင်၊ သင်သည် အောက်ပါအတိုင်း ledcSetup() လုပ်ဆောင်ချက်ကို လက်ခံသော ledcSetup() လုပ်ဆောင်ချက်ကို အသုံးပြုခြင်းဖြင့် သင်သည် အစောပိုင်းက သတ်မှတ်ထားသော ဂုဏ်သတ္တိများနှင့် LED PWM ကို configure ပြုလုပ်ရန် လိုအပ်သည်-
ထို့နောက်သင်ထံမှ signal ကိုရရှိမည့် GPIO ကိုရွေးချယ်ရန်လိုအပ်သည်။ ၎င်းအတွက် သင်အချက်ပြမှုရယူလိုသည့် GPIO နှင့် signal ကိုထုတ်ပေးသည့်ချန်နယ်ကို အငြင်းအခုံအဖြစ်လက်ခံသည့် ledcAttachPin() လုပ်ဆောင်ချက်ကို အသုံးပြုပါ။ ဒီ example၊ GPIO 4 နှင့် ကိုက်ညီသော ledPin GPIO တွင် အချက်ပြမှုကို ကျွန်ုပ်တို့ ရရှိပါမည်။ အချက်ပြမှုကို ထုတ်ပေးသည့် ချန်နယ်မှာ ledChannel ဖြစ်ပြီး ချန်နယ် 0 နှင့် သက်ဆိုင်ပါသည်။
ကွင်းဆက်တွင်၊ LED တောက်ပမှုကို တိုးမြှင့်ရန်အတွက် သင်သည် 0 နှင့် 255 အကြား တာဝန်လည်ပတ်မှုကို ကွဲပြားစေမည်ဖြစ်သည်။
ထို့နောက် 255 နှင့် 0 အကြား တောက်ပမှုကို လျှော့ချပါ။
LED ၏တောက်ပမှုကိုသတ်မှတ်ရန်၊ သင်သည် signal ကိုထုတ်ပေးနေသောချန်နယ်နှင့်တာဝန်စက်ဝန်းအားအငြင်းပွားမှုများအဖြစ်လက်ခံသည့် ledcWrite() လုပ်ဆောင်ချက်ကိုအသုံးပြုရန်လိုအပ်သည်။
ကျွန်ုပ်တို့သည် 8-bit ကြည်လင်ပြတ်သားမှုကို အသုံးပြုနေသကဲ့သို့၊ တာဝန်စက်ဝန်းအား 0 မှ 255 အထိ တန်ဖိုးတစ်ခုအသုံးပြုကာ ထိန်းချုပ်သွားမည်ဖြစ်သည်။ ledcWrite() လုပ်ဆောင်ချက်တွင် ကျွန်ုပ်တို့သည် signal ကိုထုတ်ပေးသည့်ချန်နယ်ကို အသုံးပြုသည်၊ GPIO မဟုတ်ပါ။
Ex ကို စမ်းသပ်ခြင်းample
ကုဒ်ကို သင်၏ ESP32 သို့ အပ်လုဒ်လုပ်ပါ။ သင့်တွင် မှန်ကန်သောဘုတ်နှင့် COM port ကိုရွေးချယ်ထားကြောင်း သေချာပါစေ။ သင်၏ပတ်လမ်းကိုကြည့်ပါ။ သင့်တွင် တောက်ပမှုကို တိုးစေပြီး လျော့ချပေးသည့် မှိန်စက် LED ရှိသင့်သည်။
Project 4 ESP32 PIR Motion Sensor
ဤပရောဂျက်သည် PIR လှုပ်ရှားမှုအာရုံခံကိရိယာကို အသုံးပြု၍ ESP32 ဖြင့် ရွေ့လျားမှုကို မည်သို့သိရှိနိုင်ပုံကို ပြသထားသည်။ လှုပ်ရှားမှုကို တွေ့ရှိသောအခါ နှိုးစက်သံမြည်မည်ဖြစ်ပြီး ကြိုတင်သတ်မှတ်အချိန် (၄ စက္ကန့်ကဲ့သို့) ရွေ့လျားမှုမတွေ့ပါက အချက်ပေးသံကို ရပ်တန့်ပါမည်။
HC-SR501 Motion Sensor အလုပ်လုပ်ပုံ
.HC-SR501 အာရုံခံကိရိယာ၏ လုပ်ဆောင်မှုနိယာမသည် ရွေ့လျားနေသော အရာဝတ္တုပေါ်ရှိ အနီအောက်ရောင်ခြည် ပြောင်းလဲမှုအပေါ် အခြေခံထားသည်။ HC-SR501 အာရုံခံကိရိယာမှ ရှာဖွေတွေ့ရှိရန်၊ အရာဝတ္ထုသည် လိုအပ်ချက်နှစ်ခုနှင့် ကိုက်ညီရမည်-
- အရာဝတ္ထုသည် အနီအောက်ရောင်ခြည်ကို ထုတ်လွှတ်သည်။
- အရာဝတ္ထုသည် ရွေ့လျားနေသည် သို့မဟုတ် တုန်လှုပ်နေသည်။
ဒါကြောင့်-
အရာဝတ္ထုတစ်ခုသည် အနီအောက်ရောင်ခြည်ကို ထုတ်လွှတ်သော်လည်း မရွေ့လျားခြင်း (ဥပမာ၊ လူတစ်ဦးသည် မလှုပ်ရှားဘဲ ရပ်နေပါက) ၎င်းကို အာရုံခံကိရိယာမှ မတွေ့ပါ။
အရာဝတ္ထုတစ်ခုသည် ရွေ့လျားနေသော်လည်း အနီအောက်ရောင်ခြည် (ဥပမာ၊ စက်ရုပ် သို့မဟုတ် ယာဉ်) ကို အာရုံခံကိရိယာမှ မတွေ့မြင်နိုင်ပါ။
Timers မိတ်ဆက်ခြင်း။
ဒီ examptimers ကိုလည်း မိတ်ဆက်ပေးပါမယ်။ ရွေ့လျားမှုကို တွေ့ရှိပြီးနောက် ကြိုတင်သတ်မှတ်ထားသော စက္ကန့်အရေအတွက်တစ်ခုအတွက် LED ကို ဆက်လက်ဖွင့်ထားစေလိုပါသည်။ သင့်ကုဒ်ကို ပိတ်ဆို့ပြီး သတ်မှတ်ထားသော စက္ကန့်အတိုင်းအတာတစ်ခုအထိ အခြားမည်သည့်အရာကိုမျှ လုပ်ဆောင်ခွင့်မပြုသော delay() လုပ်ဆောင်ချက်ကို အသုံးပြုမည့်အစား၊ ကျွန်ုပ်တို့သည် အချိန်တိုင်းကိရိယာကို အသုံးပြုသင့်ပါသည်။နှောင့်နှေး() လုပ်ဆောင်ချက်
၎င်းကို တွင်ကျယ်စွာအသုံးပြုသောကြောင့် delay() function နှင့် ရင်းနှီးသင့်သည်။ ဒီလုပ်ဆောင်ချက်က သုံးရတာ ရိုးရှင်းပါတယ်။ ၎င်းသည် အကြောင်းပြချက်တစ်ခုအဖြစ် int နံပါတ်တစ်ခုကို လက်ခံသည်။
ဤနံပါတ်သည် ပရိုဂရမ်၏ ကုဒ်နောက်တစ်ကြောင်းသို့ ဆက်သွားသည်အထိ စောင့်ရမည့်အချိန်ကို မီလီစက္ကန့်အတွင်း ကိုယ်စားပြုသည်။သင်နှောင့်နှေးမှု (1000) ကိုပြုလုပ်သောအခါ သင့်ပရိုဂရမ်သည် ထိုလိုင်းပေါ်တွင် 1 စက္ကန့်ကြာ ရပ်သွားပါသည်။
delay() သည် blocking function တစ်ခုဖြစ်သည်။ လုပ်ဆောင်ချက်များကို ပိတ်ဆို့ခြင်းသည် ပရိုဂရမ်တစ်ခုအား အဆိုပါအလုပ်တစ်ခုပြီးမြောက်သည်အထိ အခြားမည်သည့်အရာကိုမျှ လုပ်ဆောင်ခြင်းမှ တားဆီးသည်။ သင်သည် တစ်ချိန်တည်းတွင် လုပ်ဆောင်စရာများစွာကို လိုအပ်ပါက၊ သင်သည် delay() ကို အသုံးမပြုနိုင်ပါ။
ပရောဂျက်အများစုအတွက် သင်သည် နှောင့်နှေးမှုများကို ရှောင်ကြဉ်ပြီး တိုင်မာများကို အသုံးပြုပါ။
millis() လုပ်ဆောင်ချက်
millis() ဟုခေါ်သော လုပ်ဆောင်ချက်ကို အသုံးပြုခြင်းဖြင့် သင်သည် ပရိုဂရမ်စတင်ချိန်မှစ၍ ကျော်လွန်သွားသော မီလီစက္ကန့်အရေအတွက်ကို ပြန်ပေးနိုင်ပါသည်။ဒီလုပ်ဆောင်ချက်က ဘာကြောင့်အသုံးဝင်တာလဲ။ သင်္ချာအချို့ကို အသုံးပြု၍ သင့်ကုဒ်ကို မပိတ်ဆို့ဘဲ အချိန်မည်မျှ ကုန်သွားသည်ကို အလွယ်တကူ စစ်ဆေးနိုင်သောကြောင့် ဖြစ်သည်။
လိုအပ်သော အစိတ်အပိုင်းများ
ဤသင်ခန်းစာကို လိုက်နာရန် အောက်ပါ အပိုင်းများ လိုအပ်ပါသည်။
- ESP32 DEVKIT V1 ဘုတ်
- PIR လှုပ်ရှားမှုအာရုံခံကိရိယာ (HC-SR501)
- Active Buzzer ဖြစ်သည်
- Jumper ဝါယာကြိုးများ
- ပေါင်မုန့်ပြား
သိပ္ပံပညာမှတ်ချက် - အလုပ်လုပ်တဲ့ voltagHC-SR501 ၏ e သည် 5V ဖြစ်သည်။ ၎င်းကိုအားသွင်းရန် Vin pin ကိုသုံးပါ။
ကုတ်
ဤသင်ခန်းစာကို ဆက်လက်မလုပ်ဆောင်မီ သင့် Arduino IDE တွင် ESP32 အပိုပရိုဂရမ်ကို ထည့်သွင်းထားသင့်သည်။ Arduino IDE တွင် ESP32 ကို ထည့်သွင်းရန် အောက်ဖော်ပြပါ သင်ခန်းစာများထဲမှ တစ်ခုကို လိုက်နာပါ။(သင်မရှိသေးပါက ဤအဆင့်ကို လုပ်ဆောင်ပြီးပါက နောက်တစ်ဆင့်သို့ ကျော်သွားနိုင်ပါသည်။)
Arduino IDE တွင် ESP32 Add-on ကို ထည့်သွင်းခြင်း။
arduino IDE တွင် Project_4_ESP32_PIR_Motion_Sensor.ino ကုဒ်ကိုဖွင့်ပါ။
ဆန္ဒပြပွဲ
ကုဒ်ကို သင်၏ ESP32 ဘုတ်သို့ အပ်လုဒ်လုပ်ပါ။ သင့်တွင် မှန်ကန်သောဘုတ်အဖွဲ့နှင့် COM အပေါက်ကို ရွေးချယ်ထားကြောင်း သေချာပါစေ။ ကုဒ်ကိုးကားချက်အဆင့်များကို အပ်လုဒ်လုပ်ပါ။
115200 baud နှုန်းဖြင့် Serial Monitor ကိုဖွင့်ပါ။သင်၏လက်ကို PIR အာရုံခံကိရိယာရှေ့သို့ ရွှေ့ပါ။ buzzer ကိုဖွင့်ထားသင့်ပြီး "Motion detected! Buzzer alarm" ဟု Serial Monitor တွင် မက်ဆေ့ချ်ကို ရိုက်နှိပ်ထားသည်။
4 စက္ကန့်အကြာတွင် buzzer ကိုပိတ်သင့်သည်။
Project 5 ESP32 Switch Web ဆာဗာ
ဤပရောဂျက်တွင် သင်သည် သီးသန့်တစ်ခု ဖန်တီးပေးလိမ့်မည်။ web Arduino IDE ပရိုဂရမ်းမင်းပတ်ဝန်းကျင်ကို အသုံးပြု၍ အထွက်များ (LED နှစ်ခု) ကို ထိန်းချုပ်သည့် ESP32 ပါသည့် ဆာဗာ။ ဟိ web ဆာဗာသည် မိုဘိုင်းတုံ့ပြန်မှုဖြစ်ပြီး ဒေသတွင်းကွန်ရက်ရှိ ဘရောက်ဆာအဖြစ် မည်သည့်စက်ပစ္စည်းဖြင့်မဆို ဝင်ရောက်ကြည့်ရှုနိုင်ပါသည်။ ဖန်တီးနည်းကို သင်ပြပါမယ်။ web server နှင့် code အလုပ်လုပ်ပုံအဆင့်ဆင့်။
စီမံကိန်းပြီးပါပြီview
ပရောဂျက်ကို တည့်တည့်မသွားမီ၊ ကျွန်ုပ်တို့၏ အရာကို အကြမ်းဖျဉ်းဖော်ပြရန် အရေးကြီးပါသည်။ web နောင်တွင် အဆင့်များကို လိုက်နာရန် ပိုမိုလွယ်ကူစေရန် ဆာဗာက လုပ်ဆောင်ပေးမည်ဖြစ်သည်။
- ဟိ web ESP32 GPIO 26 နှင့် GPIO 27 သို့ ချိတ်ဆက်ထားသော LEDs နှစ်လုံးကို သင်တည်ဆောက်ပေးမည့် ဆာဗာကို ထိန်းချုပ်သည်။
- ESP32 ကိုသင်ဝင်ရောက်နိုင်သည်။ web ပြည်တွင်းကွန်ရက်ရှိ ဘရောက်ဆာတစ်ခုပေါ်တွင် ESP32 IP လိပ်စာကို ရိုက်ထည့်ခြင်းဖြင့် ဆာဗာ၊
- သင့်အပေါ်ရှိ ခလုတ်များကို နှိပ်ပါ။ web ဆာဗာတစ်ခုစီ၏ LED အခြေအနေကို သင်ချက်ချင်းပြောင်းလဲနိုင်သည်။
လိုအပ်သော အစိတ်အပိုင်းများ
ဤသင်ခန်းစာအတွက် အောက်ပါအပိုင်းများ လိုအပ်ပါမည်။
- ESP32 DEVKIT V1 ဘုတ်
- 2x 5mm LED
- 2x 200 Ohm resistor
- ပေါင်မုန့်ပြား
- Jumper ဝါယာကြိုးများ
သိပ္ပံပညာ
ပတ်လမ်းတည်ဆောက်ခြင်းဖြင့် စတင်ပါ။ အောက်ဖော်ပြပါ ဇယားကွက်တွင် ပြထားသည့်အတိုင်း LED နှစ်လုံးကို ESP32 သို့ ချိတ်ဆက်ပါ - LED တစ်ခုသည် GPIO 26 သို့ ချိတ်ဆက်ထားပြီး နောက်တစ်ခုသည် GPIO 27 သို့ ချိတ်ဆက်ပါ။
မှတ်ချက် - ကျွန်ုပ်တို့သည် 32 pins ပါသော ESP36 DEVKIT DOIT ဘုတ်ကို အသုံးပြုနေပါသည်။ ဆားကစ်ကို မတပ်ဆင်မီ၊ သင်အသုံးပြုနေသော ဘုတ်အတွက် ပင်ထွက်ကို သေချာစစ်ဆေးပါ။ကုတ်
ဤတွင်ကျွန်ုပ်တို့သည် ESP32 ကိုဖန်တီးသောကုဒ်ကိုပေးသည်။ web ဆာဗာ။ ကုဒ်ကိုဖွင့်ပါ Project_5_ESP32_Switch _Web_Server.ino သည် arduino IDE တွင်၊ သို့သော် ၎င်းကို အပ်လုဒ်မလုပ်သေးပါ။ သင့်အတွက် အဆင်ပြေစေရန် အပြောင်းအလဲအချို့ ပြုလုပ်ရန် လိုအပ်ပါသည်။
Arduino IDE ကို အသုံးပြု၍ ESP32 ကို ကျွန်ုပ်တို့ ပရိုဂရမ်လုပ်မည်ဖြစ်သောကြောင့် ဆက်လက်မလုပ်ဆောင်မီ သင့်တွင် ESP32 အပိုပရိုဂရမ်ကို ထည့်သွင်းထားကြောင်း သေချာပါစေ-(ဤအဆင့်ကို လုပ်ဆောင်ပြီးပါက နောက်တစ်ဆင့်သို့ ကျော်သွားနိုင်ပါသည်။)
Arduino IDE တွင် ESP32 Add-on ကို ထည့်သွင်းခြင်း။
သင့်ကွန်ရက် အထောက်အထားများကို သတ်မှတ်ခြင်း။
သင့်ကွန်ရက်အထောက်အထားများဖြင့် အောက်ပါလိုင်းများကို ပြင်ဆင်ရန် လိုအပ်သည်- SSID နှင့် စကားဝှက်။ ပြောင်းလဲမှုများပြုလုပ်သင့်သည့်နေရာတွင် ကုဒ်ကို ကောင်းမွန်စွာ မှတ်ချက်ပေးထားသည်။ကုဒ်ကို တင်ခြင်း။
ယခု၊ သင်သည် ကုဒ်နှင့်လည်းကောင်း၊ web ဆာဗာချက်ချင်းအလုပ်လုပ်ပါလိမ့်မယ်။
ESP32 သို့ ကုဒ်ကို အပ်လုဒ်လုပ်ရန် နောက်အဆင့်များကို လိုက်နာပါ-
- သင်၏ ESP32 ဘုတ်ကို သင့်ကွန်ပျူတာတွင် ချိတ်ပါ။
- Arduino IDE တွင် Tools > Board တွင် သင့်ဘုတ်ကို ရွေးပါ (ကျွန်ုပ်တို့၏ အခြေအနေတွင်၊ ကျွန်ုပ်တို့သည် ESP32 DEVKIT DOIT ဘုတ်ကို အသုံးပြုနေသည်)။
- Tools > Port တွင် COM port ကို ရွေးပါ။
- Arduino IDE တွင် အပ်လုဒ်လုပ်ရန် ခလုတ်ကို နှိပ်ပြီး ကုဒ်များ စုစည်းပြီး သင့်ဘုတ်သို့ အပ်လုဒ်လုပ်နေစဉ် စက္ကန့်အနည်းငယ် စောင့်ပါ။
- "အပ်လုဒ်တင်ခြင်းပြီးပါပြီ" မက်ဆေ့ချ်ကို စောင့်ပါ။
ESP IP လိပ်စာကိုရှာဖွေခြင်း။
ကုဒ်ကို အပ်လုဒ်တင်ပြီးနောက်၊ 115200 baud နှုန်းဖြင့် Serial Monitor ကိုဖွင့်ပါ။ESP32 EN ခလုတ်ကို နှိပ်ပါ (ပြန်လည်သတ်မှတ်ပါ)။ ESP32 သည် Wi-Fi သို့ချိတ်ဆက်ပြီး Serial Monitor တွင် ESP IP လိပ်စာကိုထုတ်ပေးသည်။ ESP32 ကိုဝင်ရောက်ရန် လိုအပ်သောကြောင့် အဆိုပါ IP လိပ်စာကို ကူးယူပါ။ web ဆာဗာ။
ဝင်ရောက်ခြင်း။ Web ဆာဗာ
ဝင်ရောက်ရန် web ဆာဗာ၊ သင့်ဘရောက်ဆာကိုဖွင့်ပါ၊ ESP32 IP လိပ်စာကို ကူးထည့်ပါ၊ ထို့နောက် အောက်ပါစာမျက်နှာကို သင်မြင်ရပါမည်။
မှတ်ချက် - သင့်ဘရောက်ဆာနှင့် ESP32 သည် တူညီသော LAN သို့ ချိတ်ဆက်သင့်သည်။Serial Monitor ကို ကြည့်လိုက်လျှင် နောက်ခံတွင် ဖြစ်ပျက်နေသည်ကို တွေ့နိုင်သည်။ ESP သည် client အသစ်တစ်ခုထံမှ HTTP တောင်းဆိုချက်ကို လက်ခံရရှိသည် (ဤကိစ္စတွင်၊ သင့်ဘရောက်ဆာ)။
HTTP တောင်းဆိုချက်နှင့်ပတ်သက်သော အခြားအချက်အလက်များကိုလည်း သင်တွေ့မြင်နိုင်ပါသည်။
ဆန္ဒပြပွဲ
ဒါဆိုရင်တော့ စမ်းသပ်လို့ရပါပြီ။ web ဆာဗာသည် ကောင်းမွန်စွာ အလုပ်လုပ်ပါသည်။ LED များကို ထိန်းချုပ်ရန် ခလုတ်များကို နှိပ်ပါ။တစ်ချိန်တည်းမှာပဲ၊ နောက်ခံမှာ ဘာတွေဖြစ်နေလဲဆိုတာကို Serial Monitor မှာ ကြည့်ရှုနိုင်ပါတယ်။ ဟောင်းအတွက်ample၊ GPIO 26 ကိုဖွင့်ရန် ခလုတ်ကို နှိပ်လိုက်သောအခါ၊ ESP32 သည် /26/on တွင် တောင်းဆိုချက်တစ်ခုကို လက်ခံရရှိသည် ။ URL.
ESP32 သည် ထိုတောင်းဆိုချက်ကို လက်ခံရရှိသောအခါ၊ ၎င်းသည် GPIO 26 နှင့် ချိတ်ဆက်ထားသော LED ကိုဖွင့်ပြီး ၎င်း၏အခြေအနေကို အပ်ဒိတ်လုပ်သည်။ web စာမျက်နှာ။
GPIO 27 အတွက် ခလုတ်သည် အလားတူနည်းလမ်းဖြင့် အလုပ်လုပ်ပါသည်။ မှန်ကန်စွာ အလုပ်လုပ်ကြောင်း စမ်းသပ်ပါ။
Code ဘယ်လိုအလုပ်လုပ်လဲ။
ဤကဏ္ဍတွင် ကုဒ်ကို မည်သို့လုပ်ဆောင်သည်ကို ကြည့်ရှုရန် အနီးကပ်ကြည့်ရှုပါမည်။
ပထမဆုံးလုပ်ရမှာက WiFi စာကြည့်တိုက်ကို ထည့်သွင်းဖို့ပါပဲ။ယခင်က ဖော်ပြခဲ့သည့်အတိုင်း၊ သင်သည် သင်၏ ssid နှင့် စကားဝှက်ကို အောက်ဖော်ပြပါ စာကြောင်းများတွင် ကိုးကားချက်နှစ်ထပ်အတွင်း ထည့်သွင်းရန် လိုအပ်သည်။
ထို့နောက်တွင်၊ သင်၏သတ်မှတ် web server မှ port 80 သို့။
အောက်ပါစာကြောင်းသည် HTTP တောင်းဆိုချက်၏ ခေါင်းစီးကို သိမ်းဆည်းရန် ကိန်းရှင်တစ်ခု ဖန်တီးသည်-
ထို့နောက်၊ သင်သည် သင်၏ output ၏ လက်ရှိအခြေအနေကို သိမ်းဆည်းရန် auxiliar variable များကို ဖန်တီးပါ။ အထွက်များ များများထည့်ကာ ၎င်း၏အခြေအနေကို သိမ်းဆည်းလိုပါက၊ ကိန်းရှင်များ ထပ်မံဖန်တီးရန် လိုအပ်ပါသည်။
သင့် output တစ်ခုစီအတွက် GPIO တစ်ခုကိုလည်း သတ်မှတ်ပေးရန်လိုအပ်ပါသည်။ ဤနေရာတွင် ကျွန်ုပ်တို့သည် GPIO 26 နှင့် GPIO 27 ကို အသုံးပြုနေပါသည်။ သင်သည် အခြားသင့်လျော်သော GPIO များကို အသုံးပြုနိုင်ပါသည်။
တည်ဆောက်သည်()
ကဲ setup() ကိုသွားကြည့်ရအောင်။ ပထမဦးစွာ၊ ကျွန်ုပ်တို့သည် အမှားရှာပြင်ခြင်းရည်ရွယ်ချက်အတွက် 115200 baud နှုန်းဖြင့် အမှတ်စဉ်ဆက်သွယ်မှုကို စတင်သည်။သင်၏ GPIO များကို OUTPUT များအဖြစ် သတ်မှတ်ပြီး ၎င်းတို့ကို LOW ဟု သတ်မှတ်သည်။
အောက်ပါလိုင်းများသည် WiFi.begin(ssid၊ စကားဝှက်) ဖြင့် Wi-Fi ချိတ်ဆက်မှုကို စတင်သည်) အောင်မြင်သောချိတ်ဆက်မှုကို စောင့်ပြီး Serial Monitor တွင် ESP IP လိပ်စာကို ပရင့်ထုတ်ပါ။
ကွင်း()
loop() တွင် client အသစ်တစ်ခုသည် ၎င်းနှင့်ချိတ်ဆက်မှုတစ်ခုပြုလုပ်သောအခါ ဘာဖြစ်မည်ကို ကျွန်ုပ်တို့ အစီအစဉ်ချပါသည်။ web ဆာဗာ။
ESP32 သည် အောက်ပါလိုင်းဖြင့် ဝင်လာသော ဖောက်သည်များအတွက် အမြဲတမ်း နားထောင်နေပါသည်။ကလိုင်းယင့်ထံမှ တောင်းဆိုမှုတစ်ခုကို လက်ခံရရှိသောအခါ၊ ကျွန်ုပ်တို့သည် အဝင်ဒေတာကို သိမ်းဆည်းမည်ဖြစ်သည်။ client သည် ချိတ်ဆက်နေသရွေ့ အောက်ပါအတိုင်း loop လည်ပတ်နေမည်ဖြစ်သည်။ သင်ဘာလုပ်နေသည်ကို အတိအကျမသိပါက အောက်ပါကုဒ်၏ အစိတ်အပိုင်းကို ပြောင်းရန် ကျွန်ုပ်တို့ အကြံပြုမည်မဟုတ်ပါ။
if and else ဖော်ပြချက်၏ နောက်အပိုင်းတွင် သင့်တွင် မည်သည့်ခလုတ်ကို နှိပ်ထားသည်ကို စစ်ဆေးသည်။ web စာမျက်နှာနှင့် လိုက်လျောညီထွေရှိသော အထွက်များကို ထိန်းချုပ်သည်။ ယခင်က တွေ့ဖူးသည့်အတိုင်း ကျွန်ုပ်တို့သည် မတူညီသော တောင်းဆိုချက်တစ်ခုကို ပြုလုပ်ပါသည်။ URLs နှိပ်တဲ့ခလုတ်ပေါ် မူတည်.
ဟောင်းအတွက်ampအကယ်၍ သင်သည် GPIO 26 ON ခလုတ်ကို နှိပ်ပါက၊ ESP32 သည် /26/ON တွင် တောင်းဆိုချက်ကို လက်ခံရရှိသည် URL (Serial Monitor ရှိ HTTP header တွင် ထိုအချက်အလက်များကို ကျွန်ုပ်တို့တွေ့မြင်နိုင်သည်)။ ထို့ကြောင့်၊ ခေါင်းစီးတွင် GET /26/on ဟူသော စကားရပ်ပါရှိမရှိ စစ်ဆေးနိုင်ပါသည်။ ၎င်းတွင်ပါဝင်ပါက၊ ကျွန်ုပ်တို့သည် output26state variable ကို ON သို့ပြောင်းပြီး ESP32 သည် LED ကိုဖွင့်ပေးပါသည်။
၎င်းသည် အခြားခလုတ်များအတွက် အလားတူလုပ်ဆောင်သည်။ ထို့ကြောင့်၊ သင်သည် နောက်ထပ်ထွက်ရှိချက်များကို ထည့်လိုပါက၊ ၎င်းတို့ကို ထည့်သွင်းရန် ကုဒ်၏ ဤအပိုင်းကို ပြင်ဆင်သင့်သည်။
HTML ကိုပြသခြင်း။ web စာမျက်နှာ
နောက်တစ်ခုလုပ်ရမှာက ဖန်တီးမှုပါ။ web စာမျက်နှာ။ ESP32 သည် ၎င်းကို တည်ဆောက်ရန်အတွက် HTML ကုဒ်အချို့ဖြင့် သင့်ဘရောက်ဆာထံ တုံ့ပြန်မှုတစ်ခု ပေးပို့မည်ဖြစ်သည်။ web စာမျက်နှာ။
ဟိ web ဤဖော်ပြခြင်း client.println() ကို အသုံးပြု၍ စာမျက်နှာကို သုံးစွဲသူထံ ပေးပို့သည်။ အငြင်းအခုံအဖြစ် ဖောက်သည်ထံ သင်ပေးပို့လိုသောအရာကို ထည့်သွင်းသင့်သည်။
ကျွန်ုပ်တို့ ပေးပို့သင့်သော ပထမဆုံးအရာမှာ HTML ပေးပို့နေကြောင်း ညွှန်ပြသော အောက်ပါစာကြောင်းကို အမြဲဖော်ပြသည်။ထို့နောက် အောက်ပါစာကြောင်းကို ပြုလုပ်သည်။ web မည်သည့်စာမျက်နှာတွင်မဆို တုံ့ပြန်မှုရှိသည်။ web ဘရောက်ဆာ။
favicon ပေါ်ရှိ တောင်းဆိုမှုများကို တားဆီးရန် အောက်ပါတို့ကို အသုံးပြုပါသည်။ - ဒီလိုင်းအတွက် စိတ်ပူစရာ မလိုပါဘူး။
ပုံသွင်းခြင်း Web စာမျက်နှာ
ထို့နောက်၊ ကျွန်ုပ်တို့တွင် ခလုတ်များနှင့် စတိုင်ရန် CSS စာသားအချို့ရှိသည်။ web စာမျက်နှာအသွင်အပြင်။
ကျွန်ုပ်တို့သည် Helvetica ဖောင့်ကို ရွေးချယ်ကာ၊ ပိတ်ဆို့ခြင်းအဖြစ် ပြသမည့် အကြောင်းအရာကို သတ်မှတ်ပြီး အလယ်ဗဟိုတွင် ချိန်ညှိထားသည်။ကျွန်ုပ်တို့၏ခလုတ်များကို #4CAF50 အရောင်၊ နယ်ခြားမရှိ၊ အဖြူရောင်ဖြင့် စာသား၊ နှင့် ဤ padding- 16px 40px ဖြင့် ပုံစံလုပ်ထားပါသည်။ ကျွန်ုပ်တို့သည် စာသားအလှဆင်ခြင်းကို အဘယ်သူမျှမအဖြစ် သတ်မှတ်ပြီး၊ ဖောင့်အရွယ်အစား၊ အနားသတ်နှင့် ကာဆာကို ညွှန်ပြချက်အဖြစ် သတ်မှတ်ပါသည်။
အစောပိုင်းတွင် ကျွန်ုပ်တို့သတ်မှတ်ထားသော ခလုတ်၏ ဂုဏ်သတ္တိများ အားလုံးနှင့်အတူ ဒုတိယခလုတ်တစ်ခုအတွက် စတိုင်ကို ကျွန်ုပ်တို့ သတ်မှတ်ပါသည်။ ၎င်းသည် ပိတ်ခလုတ်အတွက် ပုံစံဖြစ်လိမ့်မည်။
သတ်မှတ်ခြင်း။ Web စာမျက်နှာ ပထမဦးတည်ချက်
နောက်စာကြောင်းတွင် သင့်၏ ပထမဆုံး ခေါင်းစီးကို သင် သတ်မှတ်နိုင်သည်။ web စာမျက်နှာ။ ဤတွင် ကျွန်ုပ်တို့တွင် “ESP32 Web ဆာဗာ”၊ သို့သော် ဤစာသားကို သင်နှစ်သက်သလို ပြောင်းနိုင်သည်။ခလုတ်များနှင့် သက်ဆိုင်ရာပြည်နယ်ကို ပြသခြင်း။
ထို့နောက်၊ သင်သည် GPIO 26 လက်ရှိအခြေအနေကိုပြသရန် စာပိုဒ်တစ်ခုရေးပါ။ သင်တွေ့မြင်ရသည့်အတိုင်း ကျွန်ုပ်တို့သည် output26State variable ကိုအသုံးပြုသည်၊ ထို့ကြောင့် ဤ variable သည် ပြောင်းလဲသောအခါတွင် state updates များကိုချက်ချင်းပြုလုပ်နိုင်သည်။ထို့နောက်၊ ကျွန်ုပ်တို့သည် GPIO ၏လက်ရှိအခြေအနေပေါ် မူတည်၍ အဖွင့် သို့မဟုတ် ပိတ်ခြင်းကို ပြသသည်။ GPIO ၏လက်ရှိအခြေအနေသည်ပိတ်ထားပါက၊ ကျွန်ုပ်တို့သည် ON ခလုတ်ကိုပြသသည်၊ မဟုတ်ပါက၊ ကျွန်ုပ်တို့သည် OFF ခလုတ်ကိုပြသသည်။
ကျွန်ုပ်တို့သည် GPIO 27 အတွက် အလားတူလုပ်ထုံးလုပ်နည်းကို အသုံးပြုပါသည်။
ချိတ်ဆက်မှုကို ပိတ်ခြင်း။
နောက်ဆုံးတွင်၊ တုံ့ပြန်မှုပြီးဆုံးသောအခါ၊ ကျွန်ုပ်တို့သည် header variable ကိုရှင်းလင်းပြီး client.stop() ဖြင့် client နှင့်ချိတ်ဆက်မှုကို ရပ်လိုက်ပါ။
အကျဉ်းချုပ်
ဤသင်ခန်းစာတွင် သင်တည်ဆောက်နည်းကို ကျွန်ုပ်တို့ပြသထားပါသည်။ web ESP32 ဖြင့် ဆာဗာ။ ရိုးရှင်းသော ex ကို သင့်အား ပြသထားပါသည်။ampLED နှစ်ခုကို ထိန်းချုပ်သည့် le၊ သို့သော် ယင်းအိုင်ဒီယာများကို relay သို့မဟုတ် သင်ထိန်းချုပ်လိုသော အခြားအထွက်တစ်ခုဖြင့် အစားထိုးရန် စိတ်ကူးဖြစ်သည်။
Project 6 RGB LED Web ဆာဗာ
ဤပရောဂျက်တွင် ESP32 ဘုတ်ဖြင့် RGB LED ကို အဝေးထိန်းစနစ်ဖြင့် ထိန်းချုပ်နည်းကို သင့်အား ပြသပါမည်။ web အရောင်ရွေးချယ်မှုဖြင့် ဆာဗာ။
စီမံကိန်းပြီးပါပြီview
မစတင်မီ ဤပရောဂျက်ကို မည်သို့လုပ်ဆောင်သည်ကို ကြည့်ကြပါစို့။
- ESP32 web ဆာဗာသည် အရောင်ရွေးချယ်မှုတစ်ခုကို ပြသသည်။
- အရောင်တစ်ခုကို သင်ရွေးချယ်သောအခါ၊ သင့်ဘရောက်ဆာသည် တောင်းဆိုမှုတစ်ခုပြုလုပ်သည်။ URL ရွေးချယ်ထားသောအရောင်၏ R၊ G နှင့် B ဘောင်များပါရှိသည်။
- သင်၏ ESP32 သည် တောင်းဆိုချက်ကို လက်ခံရရှိပြီး အရောင်သတ်မှတ်ချက်တစ်ခုစီအတွက် တန်ဖိုးကို ပိုင်းခြားပေးသည်။
- ထို့နောက်၊ ၎င်းသည် RGB LED ကိုထိန်းချုပ်နေသော GPIO များသို့သက်ဆိုင်ရာတန်ဖိုးနှင့်အတူ PWM signal ကိုပေးပို့သည်။
RGB LED များ မည်သို့အလုပ်လုပ်သနည်း။
ဘုံ cathode RGB LED တွင်၊ LED သုံးခုစလုံးသည် အနုတ်လက္ခဏာချိတ်ဆက်မှု (cathode) ကို မျှဝေပါသည်။ Kit တွင်ပါဝင်သောအားလုံးသည် common-cathode RGB ဖြစ်သည်။မတူညီတဲ့အရောင်တွေကို ဘယ်လိုဖန်တီးမလဲ။
RGB LED ဖြင့် သင်သည် အနီရောင်၊ အစိမ်းရောင်နှင့် အပြာရောင်အလင်းတန်းများကို ထုတ်လုပ်နိုင်ပြီး LED တစ်ခုစီ၏ ပြင်းထန်မှုကို ချိန်ညှိခြင်းဖြင့် သင်သည် အခြားအရောင်များကိုလည်း ထုတ်လုပ်နိုင်သည်။
ဟောင်းအတွက်ample၊ အပြာရောင်အလင်းတန်းကို သက်သက်ထုတ်လုပ်ရန်၊ သင်သည် အပြာရောင် LED ကို အမြင့်ဆုံးပြင်းထန်မှုအဖြစ် သတ်မှတ်ပြီး အစိမ်းရောင်နှင့် အနီရောင် LED များကို အနိမ့်ဆုံးပြင်းထန်မှုသို့ သတ်မှတ်ရမည်ဖြစ်သည်။ အဖြူရောင်အလင်းတစ်ခုအတွက်၊ သင်သည် LED မီးလုံးသုံးလုံးကို အမြင့်ဆုံးပြင်းထန်မှုသို့ သတ်မှတ်ရမည်ဖြစ်သည်။
အရောင်များရောစပ်ခြင်း။
အခြားအရောင်များကို ထုတ်လုပ်ရန်၊ သင်သည် မတူညီသော ပြင်းထန်မှုဖြင့် အရောင်သုံးရောင်ကို ပေါင်းစပ်နိုင်သည်။ LED တစ်ခုစီ၏ ပြင်းထန်မှုကို ချိန်ညှိရန် PWM အချက်ပြမှုကို သင် အသုံးပြုနိုင်သည်။
LEDs များသည် တစ်ခုနှင့်တစ်ခု အလွန်နီးကပ်နေသောကြောင့်၊ ကျွန်ုပ်တို့၏မျက်လုံးများသည် အရောင်သုံးရောင်ကို တစ်ဦးချင်းမဟုတ်ဘဲ အရောင်ပေါင်းစပ်မှု၏ရလဒ်ကို မြင်တွေ့ရသည်။
အရောင်များကို ပေါင်းစပ်နည်းကို စိတ်ကူးရရန် အောက်ပါဇယားကို ကြည့်ပါ။
ဤသည်မှာ အရိုးရှင်းဆုံးအရောင် ရောစပ်ထားသောဇယားဖြစ်သည်၊ သို့သော် ၎င်းသည် မည်သို့အလုပ်လုပ်ပုံနှင့် ကွဲပြားသောအရောင်များကို မည်သို့ထုတ်လုပ်ရမည်ကို သင့်အား အကြံဥာဏ်ပေးသည်။လိုအပ်သော အစိတ်အပိုင်းများ
ဤပရောဂျက်အတွက် အောက်ပါ အစိတ်အပိုင်းများ လိုအပ်ပါသည်။
- ESP32 DEVKIT V1 ဘုတ်
- RGB LED
- 3x 220 ohm resistors များ
- Jumper ဝါယာကြိုးများ
- ပေါင်မုန့်ပြား
သိပ္ပံပညာကုတ်
Arduino IDE ကို အသုံးပြု၍ ESP32 ကို ကျွန်ုပ်တို့ ပရိုဂရမ်လုပ်မည်ဖြစ်သောကြောင့် ဆက်လက်မလုပ်ဆောင်မီ သင့်တွင် ESP32 အပိုပရိုဂရမ်ကို ထည့်သွင်းထားကြောင်း သေချာပါစေ-(ဤအဆင့်ကို လုပ်ဆောင်ပြီးပါက နောက်တစ်ဆင့်သို့ ကျော်သွားနိုင်ပါသည်။)
- Arduino IDE တွင် ESP32 Add-on ကို ထည့်သွင်းခြင်း။
ဆားကစ်ကို တပ်ဆင်ပြီးနောက်၊ ကုဒ်ကိုဖွင့်ပါ။
ပရောဂျက်_6_RGB_LED_Webarduino IDE တွင် _Server.ino
ကုဒ်ကို အပ်လုဒ်မတင်မီ၊ ESP သည် သင့်ပြည်တွင်းကွန်ရက်သို့ ချိတ်ဆက်နိုင်စေရန် သင်၏ကွန်ရက်အထောက်အထားများကို ထည့်သွင်းရန် မမေ့ပါနှင့်။Code ဘယ်လိုအလုပ်လုပ်လဲ။
ESP32 ပုံကြမ်းသည် WiFi.h စာကြည့်တိုက်ကို အသုံးပြုသည်။တောင်းဆိုချက်မှ R၊ G နှင့် B ဘောင်များကို ထိန်းထားရန် အောက်ပါစာကြောင်းများသည် string variable များကို သတ်မှတ်သည်။
HTTP တောင်းဆိုမှုကို နောက်ပိုင်းတွင် ကုဒ်လုပ်ရန် နောက်ထပ် variable လေးခုကို အသုံးပြုသည်။
strip R၊ G နှင့် B ဘောင်များကို ထိန်းချုပ်မည့် GPIO များအတွက် variable သုံးခုဖန်တီးပါ။ ဤကိစ္စတွင် ကျွန်ုပ်တို့သည် GPIO 13၊ GPIO 12 နှင့် GPIO 14 ကို အသုံးပြုနေပါသည်။
ဤ GPIO များသည် PWM အချက်ပြမှုများကို ထုတ်ပေးရန်လိုအပ်သည်၊ ထို့ကြောင့် PWM ဂုဏ်သတ္တိများကို ဦးစွာပြင်ဆင်ရန် လိုအပ်ပါသည်။ PWM အချက်ပြကြိမ်နှုန်းကို 5000 Hz သို့ သတ်မှတ်ပါ။ ထို့နောက် အရောင်တစ်ခုစီအတွက် PWM ချန်နယ်တစ်ခုကို ချိတ်ဆက်ပါ။
နောက်ဆုံးအနေနှင့်၊ PWM ချန်နယ်များ၏ resolution ကို 8-bit သို့သတ်မှတ်ပါ။
setup() တွင် PWM ဂုဏ်သတ္တိများကို PWM ချန်နယ်များသို့ သတ်မှတ်ပေးပါ။
PWM ချန်နယ်များကို သက်ဆိုင်ရာ GPIO များနှင့် တွဲပါ။
အောက်ပါ ကုဒ်ကဏ္ဍသည် သင့်ရှိ အရောင်ရွေးချယ်မှုအား ပြသပေးပါသည်။ web စာမျက်နှာနှင့် သင်ရွေးချယ်ထားသော အရောင်ပေါ်မူတည်၍ တောင်းဆိုချက်တစ်ခု ပြုလုပ်ပါ။
သင်အရောင်တစ်ခုရွေးသောအခါတွင် အောက်ပါဖော်မတ်ဖြင့် တောင်းဆိုချက်ကို လက်ခံရရှိမည်ဖြစ်သည်။
ထို့ကြောင့် R၊ G နှင့် B ဘောင်များကို ရယူရန် ဤစာကြောင်းကို ပိုင်းခြားရန် လိုအပ်ပါသည်။ ဘောင်များကို redString၊ greenString နှင့် blueString variable များဖြင့် သိမ်းဆည်းထားပြီး 0 နှင့် 255 ကြား တန်ဖိုးများ ရှိနိုင်ပါသည်။ESP32 ဖြင့် strip ကိုထိန်းချုပ်ရန် HTTP မှသုံးသောတန်ဖိုးများဖြင့် PWM အချက်ပြမှုများကိုထုတ်လုပ်ရန် ledcWrite() လုပ်ဆောင်ချက်ကိုအသုံးပြုပါ။ တောင်းဆိုချက်။
မှတ်ချက် - ESP32 ဖြင့် PWM အကြောင်းပိုမိုလေ့လာပါ- Project 3 ESP32 PWM(Analog Output)
အကွက်ကို ESP8266 ဖြင့် ထိန်းချုပ်ရန်၊ ကျွန်ုပ်တို့ အသုံးပြုရန်သာ လိုအပ်ပါသည်။
HTPP တောင်းဆိုချက်မှ ကုဒ်လုပ်ထားသော တန်ဖိုးများဖြင့် PWM အချက်ပြမှုများကို ဖန်တီးရန် analogWrite() လုပ်ဆောင်ချက်။
analogWrite(redPin၊ redString.toInt());
analogWrite(greenPin၊ greenString.toInt());
analogWrite(bluePin၊ blueString.toInt())
string variable တွင် တန်ဖိုးများကို ကျွန်ုပ်တို့ရရှိသောကြောင့်၊ ၎င်းတို့ကို toInt() နည်းလမ်းကို အသုံးပြု၍ ကိန်းပြည့်များအဖြစ်သို့ ပြောင်းလဲရန် လိုအပ်ပါသည်။
ဆန္ဒပြပွဲ
သင့်ကွန်ရက်အထောက်အထားများကို ထည့်သွင်းပြီးနောက်၊ ညာဘက်ဘုတ်နှင့် COM ဆိပ်ကမ်းကို ရွေးချယ်ပြီး ကုဒ်ကို သင်၏ ESP32 သို့ အပ်လုဒ်လုပ်ပါ။ ကုဒ်ကိုးကားမှုအဆင့်များကို အပ်လုဒ်လုပ်ပါ။
အပ်လုဒ်တင်ပြီးနောက်၊ 115200 baud နှုန်းဖြင့် Serial Monitor ကိုဖွင့်ပြီး ESP Enable/Reset ခလုတ်ကိုနှိပ်ပါ။ သင်ဘုတ်အဖွဲ့ IP လိပ်စာကိုရသင့်သည်။သင့်ဘရောက်ဆာကိုဖွင့်ပြီး ESP IP လိပ်စာကို ထည့်သွင်းပါ။ ယခု၊ RGB LED အတွက် အရောင်တစ်ခုရွေးချယ်ရန် အရောင်ရွေးချယ်မှုစနစ်ကို အသုံးပြုပါ။
ထို့နောက် အရောင်အကျိုးသက်ရောက်စေရန် "Change Color" ခလုတ်ကို နှိပ်ရပါမည်။RGB LED ကိုပိတ်ရန် အနက်ရောင်အရောင်ကို ရွေးချယ်ပါ။
အပြင်းထန်ဆုံးအရောင်များ (အရောင်ရွေးချယ်မှု၏ထိပ်တွင်) သည် ပိုမိုကောင်းမွန်သောရလဒ်များကိုထုတ်ပေးမည့်အရာများဖြစ်သည်။
Project 7 ESP32 Relay Web ဆာဗာ
ESP32 ဖြင့် relay ကိုအသုံးပြုခြင်းသည် AC အိမ်သုံးပစ္စည်းများကိုအဝေးမှထိန်းချုပ်ရန် အကောင်းဆုံးနည်းလမ်းတစ်ခုဖြစ်သည်။ ဤသင်ခန်းစာတွင် ESP32 ဖြင့် relay module တစ်ခုကို ထိန်းချုပ်နည်းကို ရှင်းပြထားသည်။
relay module တစ်ခု အလုပ်လုပ်ပုံ၊ relay ကို ESP32 သို့ ချိတ်ဆက်ပုံနှင့် တည်ဆောက်ပုံတို့ကို လေ့လာကြည့်ပါမည်။ web relay ကိုအဝေးမှထိန်းချုပ်ရန်ဆာဗာ။
Relay များကို မိတ်ဆက်ခြင်း။
Relay သည် လျှပ်စစ်ဖြင့်လည်ပတ်သော ခလုတ်တစ်ခုဖြစ်ပြီး အခြားခလုတ်များကဲ့သို့ပင်၊ ၎င်းသည် အဖွင့်အပိတ်ပြုလုပ်နိုင်ပြီး လျှပ်စီးကြောင်းကို ဖြတ်သန်းနိုင်သည်ဖြစ်စေ မဖြတ်သန်းနိုင်ပေ။ အနိမ့် volt ဖြင့် ထိန်းချုပ်နိုင်သည်။tages၊ ESP3.3 GPIOs မှပေးသော 32V ကဲ့သို့ပင် ကျွန်ုပ်တို့အား မြင့်မားသောဗို့အားကို ထိန်းချုပ်နိုင်စေသည်tag12V၊ 24V သို့မဟုတ် mains vol ကဲ့သို့ဖြစ်သည်။tage (ဥရောပတွင် 230V နှင့် US တွင် 120V)။ဘယ်ဘက်ခြမ်းတွင် high vol ကိုချိတ်ဆက်ရန် socket သုံးခုတွဲနှစ်ခုရှိသည်။tages နှင့် ညာဘက်ခြမ်းရှိ တံသင်များ (low-voltage) ESP32 GPIO များနှင့် ချိတ်ဆက်ပါ။
Mains Voltage ချိတ်ဆက်မှုများယခင်ဓာတ်ပုံတွင်ပြသထားသည့် relay module တွင် connector နှစ်ခုပါရှိပြီး တစ်ခုချင်းစီတွင် ဘုံ (COM)၊ ပုံမှန်ပိတ် (NC) နှင့် ပုံမှန်ဖွင့်ခြင်း (NO) တို့ပါရှိသည်။
- COM- သင်ထိန်းချုပ်လိုသော လက်ရှိကို ချိတ်ဆက်ပါ (ပင်မ အတွဲtagင) ။
- NC (Normally Closed) - ပုံမှန်အားဖြင့် relay ကို ပိတ်စေလိုသောအခါတွင် ပုံမှန်အားဖြင့် ပိတ်ထားသော configuration ကို အသုံးပြုပါသည်။ NC များသည် COM pin များကို ချိတ်ဆက်ထားပြီး၊ ဆိုလိုသည်မှာ သင် ESP32 မှ အချက်ပြမှုတစ်ခုမှ circuit ကိုဖွင့်ပြီး လက်ရှိစီးဆင်းမှုကိုရပ်တန့်ရန် relay module သို့ အချက်ပြမပို့ပါက စီးဆင်းနေပါသည်။
- NO (Normally Open)- ပုံမှန်အားဖြင့် ဖွင့်ထားသော ဖွဲ့စည်းမှုပုံစံသည် အခြားနည်းလမ်းဖြင့် အလုပ်လုပ်သည်- NO နှင့် COM pins များကြားတွင် ချိတ်ဆက်မှု မရှိသောကြောင့် ဆားကစ်ကို ပိတ်ရန် ESP32 မှ အချက်ပြချက်တစ်ခု မပေးပို့ပါက ဆားကစ်သည် ပျက်သွားပါသည်။
ထိန်းချုပ်တံသင်အနိမ့်ပိုင်းtage ဘက်တွင် pin လေးခုနှင့် pin သုံးခုပါရှိသည်။ ပထမ set တွင် module အား ပါဝါဖွင့်ရန် VCC နှင့် GND ပါ၀င်ပြီး အောက်ခြေနှင့် အပေါ်ထပ် relay များကို ထိန်းချုပ်ရန်အတွက် input 1 (IN1) နှင့် input 2 (IN2) တို့ကို တွေ့ရပါသည်။
သင့် relay module တွင် ချန်နယ်တစ်ခုသာ ရှိပါက၊ သင့်တွင် IN pin တစ်ခုသာ ရှိပါမည်။ သင့်တွင် ချန်နယ် လေးခုရှိပါက၊ သင့်တွင် ပင်နံပါတ် လေးခုရှိမည်၊
IN pins များသို့ သင်ပေးပို့သော အချက်ပြမှုသည် relay သည် အသက်ဝင်သည် သို့မဟုတ် မလုပ်ဆောင်ကြောင်း ဆုံးဖြတ်သည်။ input 2V ခန့်အောက်ရောက်သွားသောအခါ relay ကို အစပျိုးသည်။ ဆိုလိုသည်မှာ သင့်တွင် အောက်ပါအခြေအနေများ ရှိလိမ့်မည်-
- သာမာန် ပိတ်ထားသော ဖွဲ့စည်းမှုစနစ် (NC)-
- မြင့်မားသောအချက်ပြမှု - လက်ရှိစီးဆင်းနေသည်။
- အချက်ပြနည်း - လျှပ်စီးကြောင်း မစီးဆင်းပါ။
- ပုံမှန်အားဖြင့် ဖွင့်ထားသော ဖွဲ့စည်းမှုစနစ် (NO):
- မြင့်မားသောအချက်ပြမှု - လက်ရှိစီးဆင်းနေသည်မဟုတ်ပါ။
- အနိမ့်အချက်ပြမှု - စီးဆင်းနေသည့် လျှပ်စီးကြောင်း
လက်ရှိ အကြိမ်အများစု စီးဆင်းနေချိန်တွင် သင်သည် ပုံမှန်အတိုင်း အပိတ်ဖွဲ့စည်းမှုစနစ်ကို အသုံးပြုသင့်ပြီး ၎င်းကို ရံဖန်ရံခါ ရပ်တန့်လိုပါသည်။
သင်သည် ရံဖန်ရံခါ စီးဆင်းစေလိုသောအခါတွင် ပုံမှန်အားဖြင့် ဖွင့်ထားသော ဖွဲ့စည်းမှုစနစ်ကို အသုံးပြုပါ (ဥပမာample၊ အယ်လ်ကိုဖွင့်ပါ။amp ရံဖန်ရံခါ)။
Power Supply ရွေးချယ်မှုဒုတိယ pins များသည် GND၊ VCC နှင့် JD-VCC ပင်များ ပါဝင်သည်။
JD-VCC pin သည် relay ၏ လျှပ်စစ်သံလိုက်အား စွမ်းအားပေးသည်။ မော်ဂျူးတွင် VCC နှင့် JD-VCC ပင်များကို ချိတ်ဆက်ထားသော jumper cap တစ်ခု ပါရှိသည်ကို သတိပြုပါ။ ဤနေရာတွင်ပြသထားသည့်အရာသည် အဝါရောင်ဖြစ်သော်လည်း သင့်အရောင်သည် ကွဲပြားနိုင်သည်။
jumper cap ကိုဖွင့်ထားခြင်းဖြင့် VCC နှင့် JD-VCC pin များကို ချိတ်ဆက်ထားသည်။ ဆိုလိုသည်မှာ relay electromagnet သည် ESP32 power pin မှ တိုက်ရိုက် ပါဝါရှိသောကြောင့် relay module နှင့် ESP32 circuits များသည် တစ်ခုနှင့်တစ်ခု ခွဲခြား၍မရပေ။
jumper cap မပါဘဲ၊ သင်သည် JD-VCC pin မှတဆင့် relay ၏ electromagnet အား အားဖြည့်ရန်အတွက် သီးခြားပါဝါအရင်းအမြစ်ကို ပံ့ပိုးပေးရန်လိုအပ်ပါသည်။ ထိုဖွဲ့စည်းပုံသည် လျှပ်စစ် spikes ဖြစ်သောအခါ ESP32 အား ပျက်စီးမှုမှကာကွယ်ပေးသည့် module ၏ built-in optocoupler နှင့် ESP32 မှ relay များကို ရုပ်ပိုင်းဆိုင်ရာအရ ခွဲထုတ်သည်။
သိပ္ပံပညာသတိပေးချက်- high vol ကိုအသုံးပြုခြင်း။tage ပါဝါထောက်ပံ့မှုများသည် ပြင်းထန်သောဒဏ်ရာကို ဖြစ်စေနိုင်သည်။
ထို့ကြောင့် 5mm LED များကို high supply vol အစား အသုံးပြုသည်။tagစမ်းသပ်မှုတွင် မီးသီးများ။ mains vol နဲ့ မရင်းနှီးရင်tagမင်းကိုကူညီမယ့်သူကို တောင်းပါ။ ESP ကို ပရိုဂရမ်ရေးဆွဲနေစဉ် သို့မဟုတ် သင့်ပတ်လမ်းကို ကြိုးသွယ်စဉ်တွင် အရာအားလုံးသည် mains vol နှင့် ချိတ်ဆက်မှုပြတ်တောက်ကြောင်း သေချာပါစေ။tage.ESP32 အတွက် စာကြည့်တိုက်ကို ထည့်သွင်းခြင်း။
ဒါကို တည်ဆောက်ဖို့ web ဆာဗာ၊ ကျွန်ုပ်တို့သည် ESPAsync ကိုအသုံးပြုသည်။Webဆာဗာစာကြည့်တိုက်နှင့် AsyncTCP စာကြည့်တိုက်။
ESPAsync ကို ထည့်သွင်းခြင်း။Webဆာဗာစာကြည့်တိုက်
ထည့်သွင်းရန် နောက်အဆင့်များကို လိုက်နာပါ။ ESPAsyncWebဆာဗာ စာကြည့်တိုက်-
- ESPAsync ကိုဒေါင်းလုဒ်လုပ်ရန် ဤနေရာကိုနှိပ်ပါ။Webဆာဗာစာကြည့်တိုက်။ ရှိသင့်တယ်။
သင့်ဒေါင်းလုဒ်များဖိုဒါရှိ .zip ဖိုဒါတစ်ခု - .zip ဖိုဒါကို ဇစ်ဖွင့်ပြီး ESPAsync ကို ရသင့်သည်။Webဆာဗာ-မာစတာဖိုင်တွဲ
- သင့်ဖိုင်တွဲကို ESPAsync မှ အမည်ပြောင်းပါ။WebESPAsync သို့ ဆာဗာ-မာစတာWebဆာဗာ
- ESPAsync ကိုရွှေ့ပါ။Webသင်၏ Arduino IDE တပ်ဆင်မှုစာကြည့်တိုက်ဖိုင်တွဲသို့ ဆာဗာဖိုဒါ
တနည်းအားဖြင့် သင်၏ Arduino IDE တွင်၊ သင်သည် Sketch > Include သို့ သွားနိုင်သည်။
စာကြည့်တိုက် > .ZIP စာကြည့်တိုက်ကို ပေါင်းထည့်ပါ… ပြီးလျှင် သင်ယခုလေးတင်ဒေါင်းလုဒ်လုပ်ထားသော စာကြည့်တိုက်ကို ရွေးပါ။
ESP32 အတွက် AsyncTCP Library ကို ထည့်သွင်းခြင်း။
ဟိ ESPAsyncWebဆာဗာ စာကြည့်တိုက် လိုအပ်သည်။ AsyncTCP အလုပ်လုပ်ရန်စာကြည့်တိုက်။ လိုက်နာပါ။
ထိုစာကြည့်တိုက်ကို ထည့်သွင်းရန် နောက်အဆင့်များ-
- AsyncTCP စာကြည့်တိုက်ကို ဒေါင်းလုဒ်လုပ်ရန် ဤနေရာကိုနှိပ်ပါ။ သင့်ဒေါင်းလုဒ်များဖိုဒါတွင် .zip ဖိုဒါတစ်ခု ရှိသင့်သည်။
- .zip ဖိုဒါကို ဇစ်ဖွင့်ပြီး AsyncTCP-master ဖိုင်တွဲကို ရသင့်သည်။
1. သင်၏ဖိုင်တွဲကို AsyncTCP-master မှ AsyncTCP သို့ အမည်ပြောင်းပါ။
3. AsyncTCP ဖိုဒါကို သင်၏ Arduino IDE တပ်ဆင်မှု စာကြည့်တိုက်များ ဖိုင်တွဲသို့ ရွှေ့ပါ။
4. နောက်ဆုံးတွင် သင်၏ Arduino IDE ကို ပြန်ဖွင့်ပါ။
တနည်းအားဖြင့် သင်၏ Arduino IDE တွင်၊ သင်သည် Sketch > Include သို့ သွားနိုင်သည်။
စာကြည့်တိုက် > .ZIP စာကြည့်တိုက်ကို ပေါင်းထည့်ပါ… ပြီးလျှင် သင်ယခုလေးတင်ဒေါင်းလုဒ်လုပ်ထားသော စာကြည့်တိုက်ကို ရွေးပါ။
ကုတ်
Arduino IDE ကို အသုံးပြု၍ ESP32 ကို ကျွန်ုပ်တို့ ပရိုဂရမ်လုပ်မည်ဖြစ်သောကြောင့် ဆက်လက်မလုပ်ဆောင်မီ သင့်တွင် ESP32 အပိုပရိုဂရမ်ကို ထည့်သွင်းထားကြောင်း သေချာပါစေ-(ဤအဆင့်ကို လုပ်ဆောင်ပြီးပါက နောက်တစ်ဆင့်သို့ ကျော်သွားနိုင်ပါသည်။)
Arduino IDE တွင် ESP32 Add-on ကို ထည့်သွင်းခြင်း။
လိုအပ်သော စာကြည့်တိုက်များကို ထည့်သွင်းပြီးနောက်၊ ကုဒ် Project_7_ESP32_Relay_ ကိုဖွင့်ပါ။Webarduino IDE တွင် _Server.ino
ကုဒ်ကို အပ်လုဒ်မတင်မီ၊ ESP သည် သင့်ပြည်တွင်းကွန်ရက်သို့ ချိတ်ဆက်နိုင်စေရန် သင်၏ကွန်ရက်အထောက်အထားများကို ထည့်သွင်းရန် မမေ့ပါနှင့်။ဆန္ဒပြပွဲ
လိုအပ်သောပြောင်းလဲမှုများပြုလုပ်ပြီးနောက်၊ ကုဒ်ကို သင်၏ ESP32 သို့ အပ်လုဒ်လုပ်ပါ။ ကုဒ်ကိုးကားမှုအဆင့်များကို အပ်လုဒ်လုပ်ပါ။
Serial Monitor ကို baud နှုန်း 115200 ဖြင့် ဖွင့်ပြီး ၎င်း၏ IP လိပ်စာကို ရယူရန် ESP32 EN ခလုတ်ကို နှိပ်ပါ။ ထို့နောက်၊ သင်၏ ဒေသတွင်း ကွန်ရက်တွင် ဘရောက်ဆာတစ်ခုကို ဖွင့်ပြီး ၎င်းကို ဝင်ရောက်ခွင့်ရရန် ESP32 IP လိပ်စာကို ရိုက်ထည့်ပါ။ web ဆာဗာ။
Serial Monitor ကို baud နှုန်း 115200 ဖြင့် ဖွင့်ပြီး ၎င်း၏ IP လိပ်စာကို ရယူရန် ESP32 EN ခလုတ်ကို နှိပ်ပါ။ ထို့နောက်၊ သင်၏ ဒေသတွင်း ကွန်ရက်တွင် ဘရောက်ဆာတစ်ခုကို ဖွင့်ပြီး ၎င်းကို ဝင်ရောက်ခွင့်ရရန် ESP32 IP လိပ်စာကို ရိုက်ထည့်ပါ။ web ဆာဗာ။မှတ်ချက် - သင့်ဘရောက်ဆာနှင့် ESP32 သည် တူညီသော LAN သို့ ချိတ်ဆက်သင့်သည်။
သင့်ကုဒ်တွင် သင်သတ်မှတ်ထားသော relay အရေအတွက်အတိုင်း ခလုတ်နှစ်ခုပါသည့် အောက်ပါအတိုင်း တစ်ခုခုကို သင်ရသင့်သည်။ယခု သင်သည် သင့်စမတ်ဖုန်းဖြင့် သင့် relay များကို ထိန်းချုပ်ရန် ခလုတ်များကို အသုံးပြုနိုင်သည်။
Project_8_Output_State_Synchronization_ Web_Server
ဤပရောဂျက်သည် ESP32 သို့မဟုတ် ESP8266 အထွက်များကို မည်သို့ထိန်းချုပ်ရမည်ကို ပြသထားသည်။ web server နှင့် Physical Button တို့ကို တစ်ပြိုင်နက် အထွက်အခြေအနေသည် အဆိုပါပေါ်တွင် အပ်ဒိတ်လုပ်ထားသည်။ web စာမျက်နှာကို ရုပ်ပိုင်းဆိုင်ရာခလုတ်မှတစ်ဆင့် ပြောင်းလဲသည်ဖြစ်စေ သို့မဟုတ် web ဆာဗာ။
စီမံကိန်းပြီးပါပြီview
ပရောဂျက်ဘယ်လိုအလုပ်လုပ်လဲဆိုတာကို တစ်ချက်ကြည့်လိုက်ရအောင်။ESP32 သို့မဟုတ် ESP8266 သည် a ကို လက်ခံဆောင်ရွက်ပေးသည်။ web output တစ်ခု၏အခြေအနေကိုထိန်းချုပ်ရန်ခွင့်ပြုသောဆာဗာ။
- လက်ရှိ output state ကို ပေါ်တွင် ပြသထားသည်။ web ဆာဗာ;
- ESP သည် တူညီသောအထွက်ကို ထိန်းချုပ်သည့် ရုပ်ပိုင်းဆိုင်ရာခလုတ်တစ်ခုနှင့်လည်း ချိတ်ဆက်ထားသည်။
- ရုပ်ပိုင်းဆိုင်ရာ puhsbutton ကိုအသုံးပြုပြီး output state ကိုပြောင်းလဲပါက၊ ၎င်း၏လက်ရှိအခြေအနေကိုလည်း အပ်ဒိတ်လုပ်ထားသည်။ web ဆာဗာ။
အချုပ်အားဖြင့်၊ ဤပရောဂျက်သည် သင့်အား တူညီသော output ကို အသုံးပြု၍ ထိန်းချုပ်နိုင်သည်။ web ဆာဗာနှင့် ခလုတ်ကို တစ်ပြိုင်နက် နှိပ်ပါ။ အထွက်အခြေအနေ ပြောင်းလဲသည့်အခါတိုင်း၊ web ဆာဗာကို အပ်ဒိတ်လုပ်ထားသည်။
လိုအပ်သော အစိတ်အပိုင်းများ
ဤသည်မှာ ဆားကစ်တည်ဆောက်ရန် လိုအပ်သော အစိတ်အပိုင်းများစာရင်းဖြစ်သည်။
- ESP32 DEVKIT V1 ဘုတ်
- 5 မီလီမီတာ LED
- 220Ohm ခုခံမှု
- ခလုတ်
- 10k Ohm ခုခံမှု
- ပေါင်မုန့်ပြား
- Jumper ဝါယာကြိုးများ
သိပ္ပံပညာESP32 အတွက် စာကြည့်တိုက်ကို ထည့်သွင်းခြင်း။
ဒါကို တည်ဆောက်ဖို့ web ဆာဗာ၊ ကျွန်ုပ်တို့သည် ESPAsync ကိုအသုံးပြုသည်။Webဆာဗာစာကြည့်တိုက်နှင့် AsyncTCP စာကြည့်တိုက်။(ဤအဆင့်ကို သင်လုပ်ဆောင်ပြီးဖြစ်ပါက၊ သင်သည် နောက်တစ်ဆင့်သို့ ကျော်သွားနိုင်ပါသည်။)
ESPAsync ကို ထည့်သွင်းခြင်း။Webဆာဗာစာကြည့်တိုက်
ESPAsync ကို ထည့်သွင်းရန် နောက်အဆင့်များကို လိုက်နာပါ။Webဆာဗာဒစ်ဂျစ်တိုက်-
- ESPAsync ကိုဒေါင်းလုဒ်လုပ်ရန် ဤနေရာကိုနှိပ်ပါ။Webဆာဗာစာကြည့်တိုက်။ ရှိသင့်တယ်။
သင့်ဒေါင်းလုဒ်များဖိုဒါရှိ .zip ဖိုဒါတစ်ခု - .zip ဖိုဒါကို ဇစ်ဖွင့်ပြီး ESPAsync ကို ရသင့်သည်။Webဆာဗာ-မာစတာဖိုင်တွဲ
- သင့်ဖိုင်တွဲကို ESPAsync မှ အမည်ပြောင်းပါ။WebESPAsync သို့ ဆာဗာ-မာစတာWebဆာဗာ
- ESPAsync ကိုရွှေ့ပါ။Webသင်၏ Arduino IDE တပ်ဆင်မှုစာကြည့်တိုက်ဖိုင်တွဲသို့ ဆာဗာဖိုဒါ
တနည်းအားဖြင့် သင်၏ Arduino IDE တွင်၊ သင်သည် Sketch > Include သို့ သွားနိုင်သည်။
စာကြည့်တိုက် > .ZIP စာကြည့်တိုက်ကို ပေါင်းထည့်ပါ… ပြီးလျှင် သင်ယခုလေးတင်ဒေါင်းလုဒ်လုပ်ထားသော စာကြည့်တိုက်ကို ရွေးပါ။
ESP32 အတွက် AsyncTCP Library ကို ထည့်သွင်းခြင်း။
ESPAsyncWebဆာဗာစာကြည့်တိုက် အလုပ်လုပ်ရန် AsyncTCP စာကြည့်တိုက် လိုအပ်သည်။ ထိုစာကြည့်တိုက်ကို ထည့်သွင်းရန် နောက်အဆင့်များကို လိုက်နာပါ-
- AsyncTCP စာကြည့်တိုက်ကို ဒေါင်းလုဒ်လုပ်ရန် ဤနေရာကိုနှိပ်ပါ။ သင့်ဒေါင်းလုဒ်များဖိုဒါတွင် .zip ဖိုဒါတစ်ခု ရှိသင့်သည်။
- .zip ဖိုဒါကို ဇစ်ဖွင့်ပြီး AsyncTCP-master ဖိုင်တွဲကို ရသင့်သည်။
- သင်၏ဖိုင်တွဲကို AsyncTCP-master မှ AsyncTCP သို့ အမည်ပြောင်းပါ။
- AsyncTCP ဖိုဒါကို သင်၏ Arduino IDE တပ်ဆင်မှု စာကြည့်တိုက်များ ဖိုင်တွဲသို့ ရွှေ့ပါ။
- နောက်ဆုံးတွင် သင်၏ Arduino IDE ကို ပြန်ဖွင့်ပါ။
တနည်းအားဖြင့် သင်၏ Arduino IDE တွင်၊ သင်သည် Sketch > Include သို့ သွားနိုင်သည်။
စာကြည့်တိုက် > .ZIP စာကြည့်တိုက်ကို ပေါင်းထည့်ပါ… ပြီးလျှင် သင်ယခုလေးတင်ဒေါင်းလုဒ်လုပ်ထားသော စာကြည့်တိုက်ကို ရွေးပါ။
ကုတ်
Arduino IDE ကို အသုံးပြု၍ ESP32 ကို ကျွန်ုပ်တို့ ပရိုဂရမ်လုပ်မည်ဖြစ်သောကြောင့် ဆက်လက်မလုပ်ဆောင်မီ သင့်တွင် ESP32 အပိုပရိုဂရမ်ကို ထည့်သွင်းထားကြောင်း သေချာပါစေ-(ဤအဆင့်ကို လုပ်ဆောင်ပြီးပါက နောက်တစ်ဆင့်သို့ ကျော်သွားနိုင်ပါသည်။)
Arduino IDE တွင် ESP32 Add-on ကို ထည့်သွင်းခြင်း။
လိုအပ်သော စာကြည့်တိုက်များကို ထည့်သွင်းပြီးနောက်၊ ကုဒ်ကိုဖွင့်ပါ။
Project_8_Output_State_Synchronization_Webarduino IDE တွင် _Server.ino
ကုဒ်ကို အပ်လုဒ်မတင်မီ၊ ESP သည် သင့်ပြည်တွင်းကွန်ရက်သို့ ချိတ်ဆက်နိုင်စေရန် သင်၏ကွန်ရက်အထောက်အထားများကို ထည့်သွင်းရန် မမေ့ပါနှင့်။
Code ဘယ်လိုအလုပ်လုပ်လဲ။
Button State နှင့် Output State
ledState variable သည် LED အထွက်အခြေအနေကို ထိန်းထားသည်။ Default အနေဖြင့်၊ web ဆာဗာစတင်သည်၊ ၎င်းသည်နိမ့်သည်။
buttonState နှင့် lastButtonState ကို ခလုတ်နှိပ်ထားခြင်း ရှိ၊ မရှိ သိရှိရန် အသုံးပြုပါသည်။ခလုတ် (web ဆာဗာ)
index_html variable ပေါ်ရှိ ခလုတ်ကို ဖန်တီးရန် HTML မပါဝင်ပါ။
အဘယ်ကြောင့်ဆိုသော် ကျွန်ုပ်တို့သည် ခလုတ်ခလုတ်ဖြင့် ပြောင်းလဲနိုင်သော လက်ရှိ LED အခြေအနေပေါ် မူတည်၍ ၎င်းကို ပြောင်းလဲနိုင်လိုသောကြောင့် ဖြစ်သည်။
ထို့ကြောင့်၊ ကုဒ်ပေါ်တွင် နောက်ပိုင်းခလုတ်ကိုဖန်တီးရန် HTML စာသားဖြင့် အစားထိုးမည့် %BUTTONPLACEHOLDER% ခလုတ်အတွက် နေရာတစ်ခုအား ဖန်တီးထားပါသည် (၎င်းကို ပရိုဆက်ဆာ() လုပ်ဆောင်ချက်တွင် လုပ်ဆောင်သည်)။ပရိုဆက်ဆာ()
ပရိုဆက်ဆာ() လုပ်ဆောင်ချက်သည် HTML စာသားပေါ်ရှိ နေရာချထားသူများကို အမှန်တကယ်တန်ဖိုးများဖြင့် အစားထိုးသည်။ ပထမဦးစွာ၊ ၎င်းသည် HTML စာသားများတွင် မည်သည့်အရာပါ၀င်သည်ကို စစ်ဆေးသည်။
နေရာကိုင်ဆောင်သူများ %BUTTONPLACEHOLDER%.ထို့နောက် လက်ရှိထွက်ရှိမှုအခြေအနေကို ပြန်ပေးသည့် theoutputState() လုပ်ဆောင်ချက်ကို ခေါ်ဆိုပါ။ ၎င်းကို outputStateValue variable တွင် သိမ်းဆည်းပါသည်။
ထို့နောက်၊ မှန်ကန်သောအခြေအနေဖြင့် ခလုတ်ကိုပြသရန် HTML စာသားကိုဖန်တီးရန် ထိုတန်ဖိုးကိုအသုံးပြုပါ။
Output State ကိုပြောင်းရန် HTTP GET တောင်းဆိုချက် (JavaScript)
ခလုတ်ကိုနှိပ်သောအခါ၊ thetoggleCheckbox() လုပ်ဆောင်ချက်ကို ခေါ်သည်။ ဤလုပ်ဆောင်ချက်သည် မတူညီသော တောင်းဆိုမှုတစ်ခု ပြုလုပ်လိမ့်မည်။ URLs LED အဖွင့် သို့မဟုတ် ပိတ်ရန်။LED ကိုဖွင့်ရန်၊ ၎င်းသည် /update?state=1 တွင် တောင်းဆိုချက်တစ်ခု ပြုလုပ်သည်။ URL:
မဟုတ်ပါက /update?state=0 တွင် တောင်းဆိုချက်တစ်ခု ပြုလုပ်သည်။ URL.
အဆင့်မြှင့်တင်ရန် HTTP GET တောင်းဆိုချက် (JavaScript)
အထွက်အခြေအနေကို အပ်ဒိတ်လုပ်ထားရန် web ဆာဗာ၊ ကျွန်ုပ်တို့သည် /state တွင် တောင်းဆိုမှုအသစ်ပြုလုပ်သည့် အောက်ပါလုပ်ဆောင်ချက်ကို ကျွန်ုပ်တို့ခေါ်ဆိုသည်။ URL စက္ကန့်တိုင်းတောင်းဆိုချက်များကို ကိုင်တွယ်ပါ။
ထို့နောက် ESP32 သို့မဟုတ် ESP8266 သည် ၎င်းတို့အပေါ် တောင်းဆိုချက်များကို လက်ခံရရှိသောအခါတွင် ဖြစ်ပျက်သွားသည်ကို ကိုင်တွယ်ဖြေရှင်းရန် လိုအပ်ပါသည်။ URLs.
တောင်းဆိုချက်တစ်ခုကို root တွင်လက်ခံရရှိသောအခါ /URLHTML စာမျက်နှာအပြင် ပရိုဆက်ဆာကို ကျွန်ုပ်တို့ ပေးပို့ပါသည်။အောက်ပါလိုင်းများသည် /update?state=1 သို့မဟုတ် /update?state=0 တွင် တောင်းဆိုမှုတစ်ခု လက်ခံရရှိခြင်းရှိမရှိ စစ်ဆေးပါ။ URL ပြီးလျှင် ledState ကို လိုက်လျောညီထွေ ပြောင်းလဲပါ။
/state တွင်တောင်းဆိုမှုတစ်ခုလက်ခံရရှိသောအခါ URLကျွန်ုပ်တို့သည် လက်ရှိထွက်ရှိမှုအခြေအနေကို ပေးပို့သည်-
ကွင်း()
loop() တွင် ကျွန်ုပ်တို့သည် ခလုတ်ခလုတ်ကို ဖြုတ်ချပြီး ledState ၏တန်ဖိုးပေါ် မူတည်၍ LED အဖွင့်အပိတ်ကို ဖွင့်ပါ။ ပြောင်းလဲနိုင်သော။ဆန္ဒပြပွဲ
ကုဒ်ကို သင်၏ ESP32 ဘုတ်သို့ အပ်လုဒ်လုပ်ပါ။ ကုဒ်ကိုးကားချက် အဆင့်များကို အပ်လုဒ်လုပ်ပါ။
ထို့နောက် 115200 baud နှုန်းဖြင့် Serial Monitor ကိုဖွင့်ပါ။ IP လိပ်စာကို ရယူရန် on-board EN/RST ခလုတ်ကို နှိပ်ပါ။သင့်ဒေသခံကွန်ရက်တွင် ဘရောက်ဆာကိုဖွင့်ပြီး ESP IP လိပ်စာကို ရိုက်ထည့်ပါ။ သင်ဝင်ရောက်ခွင့်ရှိသင့်သည်။ web server ကို အောက်မှာ ပြထားသလိုပါပဲ။
မှတ်ချက် - သင့်ဘရောက်ဆာနှင့် ESP32 သည် တူညီသော LAN သို့ ချိတ်ဆက်သင့်သည်။ပေါ်တွင်ခလုတ်ကိုသင်ပြောင်းနိုင်သည်။ web LED ကိုဖွင့်ရန်ဆာဗာ။
တူညီသော LED ကို ရုပ်ပိုင်းဆိုင်ရာခလုတ်ဖြင့်လည်း ထိန်းချုပ်နိုင်သည်။ ၎င်း၏ အခြေအနေကို အမြဲတမ်း အလိုအလျောက် အပ်ဒိတ်လုပ်ပါမည်။ web ဆာဗာ။
ပရောဂျက် 9 ESP32 DHT11 Web ဆာဗာ
ဤပရောဂျက်တွင်၊ သင်သည် ချိန်ကိုက်နိုင်သော ESP32 ကို မည်သို့တည်ဆောက်ရမည်ကို လေ့လာနိုင်မည်ဖြစ်သည်။ web Arduino IDE ကို အသုံးပြု၍ အပူချိန်နှင့် စိုထိုင်းဆကို ပြသသည့် DHT11 နှင့် ဆာဗာ။
လိုအပ်ချက်များ
ဟိ web ဆာဗာကို ပြန်လည်စတင်ရန်မလိုအပ်ဘဲ ကျွန်ုပ်တို့သည် ဖတ်ရှုမှုများကို အလိုအလျောက် အပ်ဒိတ်များ တည်ဆောက်ပေးပါမည်။ web စာမျက်နှာ။
ဤပရောဂျက်ဖြင့် သင်လေ့လာနိုင်သည်-
- DHT အာရုံခံကိရိယာများမှ အပူချိန်နှင့် စိုထိုင်းဆကို ဖတ်နည်း။
- အညီအမျှ တည်ဆောက်ပါ။ web server ကို အသုံးပြု ESPAsyncWebဆာဗာစာကြည့်တိုက်;
- ပြန်လည်ဆန်းသစ်ရန်မလိုအပ်ဘဲ အာရုံခံစာဖတ်မှုများကို အလိုအလျောက် အပ်ဒိတ်လုပ်ပါ။ web စာမျက်နှာ။
တပြိုင်နက်တည်း Web ဆာဗာ
တည်ဆောက်ရန် web server ကိုကျွန်ုပ်တို့အသုံးပြုပါမည်။ ESPAsyncWebဆာဗာစာကြည့်တိုက် ၎င်းသည် asynchronous တည်ဆောက်ရန် လွယ်ကူသောနည်းလမ်းကို ပေးဆောင်သည်။ web ဆာဗာ။ အညီအမျှတည်ဆောက်ခြင်း။ web server တွင် advan များစွာရှိသည်။tages ကဲ့သို့သော စာကြည့်တိုက် GitHub စာမျက်နှာတွင် ဖော်ပြထားသည့်အတိုင်း၊
- “ချိတ်ဆက်မှုတစ်ခုထက်ပို၍ တစ်ချိန်တည်းတွင် ကိုင်တွယ်ပါ”;
- "သင်တုံ့ပြန်မှုပေးပို့သည့်အခါ၊ ဆာဗာသည် နောက်ခံတွင် တုံ့ပြန်မှုကိုပေးပို့ခြင်းကို ဂရုစိုက်နေချိန်တွင် သင်သည် အခြားချိတ်ဆက်မှုများကို ကိုင်တွယ်ရန် ချက်ချင်းအဆင်သင့်ဖြစ်နေပြီ";
- “တမ်းပလိတ်များကို ကိုင်တွယ်ရန် ရိုးရှင်းသော ပုံစံပလိတ် လုပ်ဆောင်ခြင်းအင်ဂျင်”;
လိုအပ်သော အစိတ်အပိုင်းများ
ဤသင်ခန်းစာကို ပြီးမြောက်ရန် အောက်ပါ အပိုင်းများ လိုအပ်သည် ။
- ESP32 ဖွံ့ဖြိုးတိုးတက်ရေးဘုတ်အဖွဲ့
- DHT11 မော်ဂျူး
- ပေါင်မုန့်ပြား
- Jumper ဝါယာကြိုးများ
သိပ္ပံပညာစာကြည့်တိုက်များ ထည့်သွင်းခြင်း။
ဤပရောဂျက်အတွက် စာကြည့်တိုက်အချို့ကို သင်ထည့်သွင်းရန် လိုအပ်သည်-
- ဟိ DHT နှင့် Adafruit ပေါင်းစပ်အာရုံခံကိရိယာ DHT အာရုံခံကိရိယာမှဖတ်ရန်ယာဉ်မောင်းစာကြည့်တိုက်များ။
- ESPAsyncWebဆာဗာ နှင့် Async TCP asynchronous တည်ဆောက်ရန် စာကြည့်တိုက်များ web ဆာဗာ။
ထိုစာကြည့်တိုက်များကို ထည့်သွင်းရန် နောက်ထပ်ညွှန်ကြားချက်များကို လိုက်နာပါ-
DHT Sensor Library ကို ထည့်သွင်းခြင်း။
Arduino IDE ကိုအသုံးပြု၍ DHT အာရုံခံကိရိယာမှဖတ်ရှုရန်၊ သင်ထည့်သွင်းရန်လိုအပ်သည်။ DHT အာရုံခံ စာကြည့်တိုက်. စာကြည့်တိုက်ကို ထည့်သွင်းရန် နောက်အဆင့်များကို လိုက်နာပါ။
- DHT Sensor စာကြည့်တိုက်ကို ဒေါင်းလုဒ်လုပ်ရန် ဤနေရာကိုနှိပ်ပါ။ သင့်ဒေါင်းလုဒ်များဖိုဒါတွင် .zip ဖိုဒါတစ်ခု ရှိသင့်သည်။
- .zip ဖိုဒါကို ဇစ်ဖွင့်ပြီး DHT-sensor-library-master ဖိုင်တွဲကို ရရှိသင့်သည်။
- သင့်ဖိုင်တွဲကို DHT-sensor-library-master မှ DHT_sensor သို့ အမည်ပြောင်းပါ။
- DHT_sensor ဖိုဒါကို သင်၏ Arduino IDE တပ်ဆင်မှု ဒစ်ဂျစ်တယ် ဖိုင်တွဲသို့ ရွှေ့ပါ။
- နောက်ဆုံးတွင် သင်၏ Arduino IDE ကို ပြန်ဖွင့်ပါ။
Adafruit Unified Sensor Driver ကို ထည့်သွင်းခြင်း။
တပ်ဆင်ရန်လည်း လိုအပ်ပါသည်။ Adafruit Unified Sensor Driver စာကြည့်တိုက် DHT အာရုံခံကိရိယာနှင့်အလုပ်လုပ်ရန်။ စာကြည့်တိုက်ကို ထည့်သွင်းရန် နောက်အဆင့်များကို လိုက်နာပါ။
- Adafruit Unified Sensor စာကြည့်တိုက်ကို ဒေါင်းလုဒ်လုပ်ရန် ဤနေရာကိုနှိပ်ပါ။ သင့်ဒေါင်းလုဒ်များဖိုဒါတွင် .zip ဖိုဒါတစ်ခု ရှိသင့်သည်။
- .zip ဖိုဒါကို ဇစ်ဖွင့်ပြီး Adafruit_sensor-master ဖိုင်တွဲကို ရရှိသင့်သည်။
- သင့်ဖိုင်တွဲကို Adafruit_sensor-master မှ Adafruit_sensor သို့ အမည်ပြောင်းပါ။
- Adafruit_sensor ဖိုဒါကို သင်၏ Arduino IDE တပ်ဆင်မှု ဒစ်ဂျစ်တယ် ဖိုင်တွဲသို့ ရွှေ့ပါ။
- နောက်ဆုံးတွင် သင်၏ Arduino IDE ကို ပြန်ဖွင့်ပါ။
ESPAsync ကို ထည့်သွင်းခြင်း။Webဆာဗာစာကြည့်တိုက်
ထည့်သွင်းရန် နောက်အဆင့်များကို လိုက်နာပါ။ ESPAsyncWebဆာဗာ စာကြည့်တိုက်-
- ESPAsync ကိုဒေါင်းလုဒ်လုပ်ရန် ဤနေရာကိုနှိပ်ပါ။Webဆာဗာစာကြည့်တိုက်။ ရှိသင့်တယ်။
သင့်ဒေါင်းလုဒ်များဖိုဒါရှိ .zip ဖိုဒါတစ်ခု - .zip ဖိုဒါကို ဇစ်ဖွင့်ပြီး သင်လုပ်သင့်တယ်။
ESPAsync ကို ရယူပါ။Webဆာဗာ-မာစတာဖိုင်တွဲ - သင့်ဖိုင်တွဲကို ESPAsync မှ အမည်ပြောင်းပါ။WebESPAsync သို့ ဆာဗာ-မာစတာWebဆာဗာ
- ESPAsync ကိုရွှေ့ပါ။Webသင်၏ Arduino IDE တပ်ဆင်မှုစာကြည့်တိုက်ဖိုင်တွဲသို့ ဆာဗာဖိုဒါ
ESP32 အတွက် Async TCP Library ကို ထည့်သွင်းခြင်း။
ဟိ ESPAsyncWebဆာဗာ စာကြည့်တိုက် လိုအပ်သည်။ AsyncTCP အလုပ်လုပ်ရန်စာကြည့်တိုက်။ ထိုစာကြည့်တိုက်ကို ထည့်သွင်းရန် နောက်အဆင့်များကို လိုက်နာပါ-
- AsyncTCP စာကြည့်တိုက်ကို ဒေါင်းလုဒ်လုပ်ရန် ဤနေရာကိုနှိပ်ပါ။ သင့်ဒေါင်းလုဒ်များဖိုဒါတွင် .zip ဖိုဒါတစ်ခု ရှိသင့်သည်။
- .zip ဖိုဒါကို ဇစ်ဖွင့်ပြီး AsyncTCP-master ဖိုင်တွဲကို ရသင့်သည်။
- သင်၏ဖိုင်တွဲကို AsyncTCP-master မှ AsyncTCP သို့ အမည်ပြောင်းပါ။
- AsyncTCP ဖိုဒါကို သင်၏ Arduino IDE တပ်ဆင်မှု စာကြည့်တိုက်များ ဖိုင်တွဲသို့ ရွှေ့ပါ။
- နောက်ဆုံးတွင် သင်၏ Arduino IDE ကို ပြန်ဖွင့်ပါ။
ကုတ်
Arduino IDE ကို အသုံးပြု၍ ESP32 ကို ကျွန်ုပ်တို့ ပရိုဂရမ်လုပ်မည်ဖြစ်သောကြောင့် ဆက်လက်မလုပ်ဆောင်မီ သင့်တွင် ESP32 အပိုပရိုဂရမ်ကို ထည့်သွင်းထားကြောင်း သေချာပါစေ-(ဤအဆင့်ကို လုပ်ဆောင်ပြီးပါက နောက်တစ်ဆင့်သို့ ကျော်သွားနိုင်ပါသည်။)
Arduino IDE တွင် ESP32 Add-on ကို ထည့်သွင်းခြင်း။
လိုအပ်သော စာကြည့်တိုက်များကို ထည့်သွင်းပြီးနောက်၊ ကုဒ်ကိုဖွင့်ပါ။
ပရောဂျက်_၉_ESP9_DHT32_Webarduino IDE တွင် _Server.ino
ကုဒ်ကို အပ်လုဒ်မတင်မီ၊ ESP သည် သင့်ပြည်တွင်းကွန်ရက်သို့ ချိတ်ဆက်နိုင်စေရန် သင်၏ကွန်ရက်အထောက်အထားများကို ထည့်သွင်းရန် မမေ့ပါနှင့်။Code ဘယ်လိုအလုပ်လုပ်လဲ။
အောက်ပါစာပိုဒ်များတွင် ကုဒ်အလုပ်လုပ်ပုံကို ရှင်းပြပါမည်။ ပိုမိုလေ့လာလိုပါက ဆက်လက်ဖတ်ရှုပါ သို့မဟုတ် နောက်ဆုံးရလဒ်ကိုကြည့်ရှုရန် ဆန္ဒပြခြင်းကဏ္ဍသို့ ခုန်ပါ။
စာကြည့်တိုက်များ တင်သွင်းခြင်း။
ပထမဦးစွာ လိုအပ်သော စာကြည့်တိုက်များကို တင်သွင်းပါ။ WiFi၊ ESPAsyncWebဆာဗာနှင့် ESPAsyncTCP ကိုတည်ဆောက်ရန် လိုအပ်ပါသည်။ web ဆာဗာ။ DHT11 သို့မဟုတ် DHT22 အာရုံခံကိရိယာများမှ ဖတ်ရန် Adafruit_Sensor နှင့် DHT စာကြည့်တိုက်များ လိုအပ်ပါသည်။ကိန်းရှင်များဟု အဓိပ္ပါယ်ရသည်။
DHT data pin နှင့် ချိတ်ဆက်ထားသည့် GPIO ကို သတ်မှတ်ပါ။ ဤကိစ္စတွင်၊ ၎င်းသည် GPIO 4 နှင့်ချိတ်ဆက်ထားသည်။ထို့နောက် သင်အသုံးပြုနေသည့် DHT အာရုံခံကိရိယာ အမျိုးအစားကို ရွေးချယ်ပါ။ ကျွန်တော်တို့ရဲ့ ex မှာampငါတို့ DHT22 ကိုသုံးနေတယ်။ သင်သည် အခြားအမျိုးအစားကို အသုံးပြုနေပါက၊ သင်သည် သင်၏အာရုံခံကိရိယာကို မှတ်ချက်မပေးဘဲ အခြားအရာအားလုံးကို မှတ်ချက်ပေးရန် လိုအပ်ပါသည်။
အစောပိုင်းတွင် ကျွန်ုပ်တို့သတ်မှတ်ထားသော အမျိုးအစားနှင့် ပင်နံပါတ်ဖြင့် DHT အရာဝတ္တုကို ချက်ချင်းလုပ်ဆောင်ပါ။Async တစ်ခုဖန်တီးပါ။Webဆိပ်ကမ်း 80 ရှိ ဆာဗာအရာဝတ္ထု။
အပူချိန်နှင့် စိုထိုင်းဆ လုပ်ဆောင်ချက်များကို ဖတ်ပါ။
လုပ်ဆောင်ချက်နှစ်ခုကို ဖန်တီးထားပါတယ်- တစ်ခုမှာ အပူချိန်ကိုဖတ်ရန် လုပ်ဆောင်ချက်နှစ်ခုကို ဖန်တီးထားပါတယ်- တစ်ခုမှာ အပူချိန်ကိုဖတ်ရန် (readDHTTemperature()) နှင့် နောက်တစ်ခုက စိုထိုင်းဆကိုဖတ်ရန် (readDHTHumidity())။အာရုံခံစာဖတ်ခြင်းရယူခြင်းသည် dht အရာဝတ္ထုရှိ readTemperature() နှင့် readHumidity() နည်းလမ်းများကို အသုံးပြုခြင်းကဲ့သို့ အာရုံခံစာဖတ်ခြင်းကို ရယူခြင်းကဲ့သို့ ရိုးရှင်းပါသည်။
အာရုံခံစာဖတ်ခြင်းကို မရသောအခါတွင် မျဉ်းနှစ်ခု (–) ကို ပြန်ပေးသည့် အခြေအနေတစ်ခုရှိသည်။
ဖတ်ရှုမှုများကို စာတန်းအမျိုးအစားအဖြစ် ပြန်ပေးသည်။ float တစ်ခုကို string တစ်ခုသို့ ပြောင်းရန် String() လုပ်ဆောင်ချက်ကို အသုံးပြုပါ။
ပုံမှန်အားဖြင့်၊ ကျွန်ုပ်တို့သည် အပူချိန်ကို စင်တီဂရိတ်ဒီဂရီဖြင့် ဖတ်နေပါသည်။ ဖာရင်ဟိုက်ဒီဂရီတွင် အပူချိန်ရရန်၊ စင်တီဂရိတ်ရှိ အပူချိန်ကို မှတ်ချက်ပေးပြီး ဖာရင်ဟိုက်ရှိ အပူချိန်ကို မှတ်ချက်မပေးဘဲ အောက်ပါတို့ရှိစေရန်၊
ကုဒ်ကို တင်ပါ။
ယခု၊ သင်၏ ESP32 သို့ ကုဒ်ကို အပ်လုဒ်လုပ်ပါ။ သင့်တွင် မှန်ကန်သောဘုတ်အဖွဲ့နှင့် COM အပေါက်ကို ရွေးချယ်ထားကြောင်း သေချာပါစေ။ ကုဒ်ကိုးကားချက်အဆင့်များကို အပ်လုဒ်လုပ်ပါ။
အပ်လုဒ်တင်ပြီးနောက်၊ 115200 baud နှုန်းဖြင့် Serial Monitor ကိုဖွင့်ပါ။ ESP32 ပြန်လည်သတ်မှတ်ရန် ခလုတ်ကို နှိပ်ပါ။ ESP32 IP လိပ်စာကို အမှတ်စဉ်တွင် ရိုက်နှိပ်ရပါမည်။ စောင့်ကြည့်။ဆန္ဒပြပွဲ
ဘရောက်ဆာကိုဖွင့်ပြီး ESP32 IP လိပ်စာကို ရိုက်ထည့်ပါ။ မင်းရဲ့ web ဆာဗာသည် နောက်ဆုံးပေါ်အာရုံခံစာဖတ်ခြင်းကို ပြသသင့်သည်။
မှတ်ချက် - သင့်ဘရောက်ဆာနှင့် ESP32 သည် တူညီသော LAN သို့ ချိတ်ဆက်သင့်သည်။
အပူချိန်နှင့် စိုထိုင်းဆ ဖတ်ရှုမှုများကို ပြန်လည်စတင်ရန် မလိုအပ်ဘဲ အလိုအလျောက် အပ်ဒိတ်လုပ်ထားကြောင်း သတိပြုပါ။ web စာမျက်နှာ။
Project_10_ESP32_OLED_Display
ဤပရောဂျက်သည် Arduino IDE ကို အသုံးပြု၍ 0.96 လက်မ SSD1306 OLED မျက်နှာပြင်ကို ESP32 ဖြင့် အသုံးပြုပုံကို ပြသထားသည်။
0.96 လက်မ OLED Display ကို မိတ်ဆက်လိုက်ပါတယ်။
ဟိ OLED မျက်နှာပြင် ဤသင်ခန်းစာတွင်ကျွန်ုပ်တို့အသုံးပြုမည့် SSD1306 မော်ဒယ်ဖြစ်ပါသည်- အောက်ဖော်ပြပါပုံတွင်ပြထားသည့်အတိုင်း 0.96×128 pixels ရှိသော monocolor၊ 64 လက်မ မျက်နှာပြင်။OLED မျက်နှာပြင်သည် နောက်ခံအလင်းမလိုအပ်သောကြောင့် မှောင်မိုက်သောပတ်ဝန်းကျင်တွင် အလွန်ကောင်းသော ခြားနားမှုကို ဖြစ်စေသည်။ ထို့အပြင်၊ ၎င်း၏ pixels များသည် ၎င်းတို့ကိုဖွင့်ထားချိန်တွင်သာ စွမ်းအင်သုံးစွဲသောကြောင့် OLED မျက်နှာပြင်သည် အခြား display များနှင့်နှိုင်းယှဉ်ပါက ပါဝါစားသုံးမှုနည်းပါးသည်။
OLED မျက်နှာပြင်သည် I2C ဆက်သွယ်ရေးပရိုတိုကောကို အသုံးပြုထားသောကြောင့် ကြိုးသွယ်ခြင်းသည် အလွန်ရိုးရှင်းပါသည်။ အောက်ပါဇယားကို အကိုးအကားအဖြစ် သင်သုံးနိုင်သည်။
OLED Pin | ESP32 |
Vin | 3.3V |
GND | GND |
SCL | GPIO ၁၀ |
SDA | GPIO ၁၀ |
သိပ္ပံပညာSSD1306 OLED Library - ESP32 ကို ထည့်သွင်းခြင်း။
ESP32 ဖြင့် OLED မျက်နှာပြင်ကို ထိန်းချုပ်ရန် စာကြည့်တိုက်များစွာရှိသည်။
ဤသင်ခန်းစာတွင် ကျွန်ုပ်တို့သည် Adafruit စာကြည့်တိုက်နှစ်ခုကို အသုံးပြုပါမည်။ Adafruit_SSD1306 စာကြည့်တိုက် နှင့် Adafruit_GFX စာကြည့်တိုက်.
ထိုစာကြည့်တိုက်များကို ထည့်သွင်းရန် နောက်အဆင့်များကို လိုက်နာပါ။
- သင်၏ Arduino IDE ကိုဖွင့်ပြီး Sketch > Include Library > Manage Libraries သို့သွားပါ။ စာကြည့်တိုက်မန်နေဂျာကို ဖွင့်သင့်သည်။
- ရှာဖွေရေးအကွက်တွင် “SSD1306” ဟုရိုက်ထည့်ပြီး Adafruit မှ SSD1306 စာကြည့်တိုက်ကို ထည့်သွင်းပါ။
- Adafruit မှ SSD1306 စာကြည့်တိုက်ကို ထည့်သွင်းပြီးနောက်၊ ရှာဖွေရေးအကွက်တွင် “GFX” ဟုရိုက်ထည့်ပြီး စာကြည့်တိုက်ကို ထည့်သွင်းပါ။
- စာကြည့်တိုက်များကို ထည့်သွင်းပြီးနောက်၊ သင်၏ Arduino IDE ကို ပြန်လည်စတင်ပါ။
ကုတ်
လိုအပ်သောစာကြည့်တိုက်များကို ထည့်သွင်းပြီးနောက်၊ arduino IDE တွင် Project_10_ESP32_OLED_Display.ino ကိုဖွင့်ပါ။ ကုဒ်
Arduino IDE ကို အသုံးပြု၍ ESP32 ကို ကျွန်ုပ်တို့ ပရိုဂရမ်လုပ်မည်ဖြစ်သောကြောင့် ဆက်လက်မလုပ်ဆောင်မီ သင့်တွင် ESP32 အပိုပရိုဂရမ်ကို ထည့်သွင်းထားကြောင်း သေချာပါစေ- (ဤအဆင့်ကို လုပ်ဆောင်ပြီးပါက နောက်တစ်ဆင့်သို့ ကျော်သွားနိုင်ပါသည်။)
Arduino IDE တွင် ESP32 Add-on ကို ထည့်သွင်းခြင်း။Code ဘယ်လိုအလုပ်လုပ်လဲ။
စာကြည့်တိုက်များ တင်သွင်းခြင်း။
ပထမဦးစွာ လိုအပ်သော စာကြည့်တိုက်များကို တင်သွင်းရန် လိုအပ်ပါသည်။ ဖန်သားပြင်သို့ စာရေးရန် I2C နှင့် Adafruit စာကြည့်တိုက်များကို အသုံးပြုရန် Wire စာကြည့်တိုက်- Adafruit_GFX နှင့် Adafruit_SSD1306။OLED မျက်နှာပြင်ကို စတင်လိုက်ပါ။
ထို့နောက် သင်သည် သင်၏ OLED အကျယ်နှင့် အမြင့်ကို သတ်မှတ်သည်။ ဒီ exampငါတို့က 128×64 OLED မျက်နှာပြင်ကို သုံးနေတယ်။ သင်သည် အခြားအရွယ်အစားများကို အသုံးပြုနေပါက၊ ၎င်းကို SCREEN_WIDTH နှင့် SCREEN_HEIGHT ကိန်းရှင်များတွင် ပြောင်းလဲနိုင်သည်။ထို့နောက် I2C ဆက်သွယ်မှုပရိုတိုကော (&Wire) ဖြင့် အစောပိုင်းသတ်မှတ်ထားသော အကျယ်နှင့် အမြင့်ဖြင့် ပြသသည့်အရာဝတ္ထုတစ်ခုကို စတင်ပါ။
(-1) ကန့်သတ်ချက်များသည် သင်၏ OLED မျက်နှာပြင်တွင် RESET ပင်နံပါတ် မရှိခြင်းကို ဆိုလိုသည်။ သင့် OLED မျက်နှာပြင်တွင် RESET ပင်နံပါတ်ပါပါက၊ ၎င်းကို GPIO နှင့် ချိတ်ဆက်သင့်သည်။ ထိုအခြေအနေတွင်၊ သင်သည် GPIO နံပါတ်ကို ကန့်သတ်ချက်တစ်ခုအဖြစ် ကျော်သွားသင့်သည်။
setup() တွင် အမှားရှာခြင်းရည်ရွယ်ချက်အတွက် Serial Monitor ကို 115200 baud raute ဖြင့် စတင်လိုက်ပါ။အောက်ပါအတိုင်း start() နည်းလမ်းဖြင့် OLED မျက်နှာပြင်ကို စတင်လိုက်ပါ။
မျက်နှာပြင်သို့ ချိတ်ဆက်၍မရပါက ဤအတိုအထွာသည် Serial Monitor တွင် မက်ဆေ့ချ်ကို ပရင့်ထုတ်ပါသည်။
သင်သည် မတူညီသော OLED မျက်နှာပြင်ကို အသုံးပြုပါက၊ သင်သည် OLED လိပ်စာကို ပြောင်းလဲရန် လိုအပ်နိုင်သည်။ ကျွန်ုပ်တို့၏အခြေအနေတွင်၊ လိပ်စာသည် 0x3C ဖြစ်သည်။
မျက်နှာပြင်ကို စတင်လုပ်ဆောင်ပြီးနောက်၊ စာသားမရေးမီ OLED တွင် စတင်ရန် အချိန်အလုံအလောက်ရှိစေရန်အတွက် ဒုတိယနှောင့်နှေးမှုကို ပေါင်းထည့်ပါ။
မျက်နှာပြင်ကို ရှင်းလင်းပါ၊ ဖောင့်အရွယ်အစား၊ အရောင်သတ်မှတ်ပြီး စာသားကို ရေးပါ။
မျက်နှာပြင်ကို စတင်လုပ်ဆောင်ပြီးနောက်၊ clearDisplay() နည်းလမ်းဖြင့် မျက်နှာပြင်ကြားခံကို ရှင်းလင်းပါ။
စာသားမရေးမီ၊ သင်သည် OLED တွင် စာသားအရွယ်အစား၊ အရောင်နှင့် စာသားပြသမည့်နေရာကို သတ်မှတ်ရန် လိုအပ်သည်။
setTextSize() နည်းလမ်းကို အသုံးပြု၍ ဖောင့်အရွယ်အစားကို သတ်မှတ်ပါ-setTextColor() နည်းလမ်းဖြင့် ဖောင့်အရောင်ကို သတ်မှတ်ပါ-
WHITE သည် အဖြူရောင်ဖောင့်နှင့် အနက်ရောင်နောက်ခံကို သတ်မှတ်သည်။
setCursor(x,y) နည်းလမ်းကို အသုံးပြု၍ စာသားစတင်သည့် အနေအထားကို သတ်မှတ်ပါ။ ဤကိစ္စတွင်၊ ကျွန်ုပ်တို့သည် ဘယ်ဘက်အပေါ်ထောင့်ရှိ (0,0) သြဒိနိတ်များပေါ်တွင် စတင်ရန် စာသားကို သတ်မှတ်နေပါသည်။နောက်ဆုံးတွင်၊ သင်သည် အောက်ပါအတိုင်း println() နည်းလမ်းကို အသုံးပြု၍ ပြသရန် စာသားကို ပေးပို့နိုင်ပါသည်။
ထို့နောက် မျက်နှာပြင်ပေါ်တွင် စာသားအမှန်တကယ်ပြသရန် display() method ကို ခေါ်ရန် လိုအပ်သည်။
Adafruit OLED စာကြည့်တိုက်သည် စာသားများကို လွယ်ကူစွာ လှိမ့်ရန် အသုံးဝင်သော နည်းလမ်းများကို ပံ့ပိုးပေးပါသည်။
- startscrollright(0x00, 0x0F): စာသားကို ဘယ်မှညာသို့ ရွှေ့ပါ။
- startscrollleft(0x00, 0x0F): စာသားကို ညာဘက်မှ ဘယ်သို့ ရွှေ့ပါ။
- startscrolldiagright(0x00, 0x07)- ဘယ်ဘက်အောက်ခြေထောင့်မှ ညာဘက်အပေါ်ထောင့်မှ စာသားကို လှိမ့်ဆွဲပါ startscrolldiagleft(0x00, 0x07)- ညာဘက်အောက်ခြေထောင့်မှ ဘယ်ဘက်အပေါ်ထောင့်မှ စာသားကို ရွှေ့ပါ။
ကုဒ်ကို တင်ပါ။
ယခု၊ သင်၏ ESP32 သို့ ကုဒ်ကို အပ်လုဒ်လုပ်ပါ။ ကုဒ်ကိုးကားမှု အဆင့်များကို အပ်လုဒ်လုပ်ပါ။
ကုဒ်ကို အပ်လုဒ်တင်ပြီးနောက်၊ OLED သည် ရွေ့လျားနေသော စာသားကို ပြသမည်ဖြစ်သည်။
စာရွက်စာတမ်းများ / အရင်းအမြစ်များ
![]() |
LAFVIN ESP32 အခြေခံ Starter Kit [pdf] ညွှန်ကြားချက်လက်စွဲ ESP32 Basic Starter Kit၊ ESP32၊ Basic Starter Kit၊ Starter Kit |