ESP32 അടിസ്ഥാന സ്റ്റാർട്ടർ
കിറ്റ്
പായ്ക്കിംഗ് ലിസ്റ്റ്
ESP32 ആമുഖം
ESP32-ലേക്ക് പുതിയത്? ഇവിടെ തുടങ്ങൂ! വൈ-ഫൈ, ബ്ലൂടൂത്ത് വയർലെസ് കഴിവുകളും ഡ്യുവൽ കോർ പ്രൊസസറും ഉൾപ്പെടുന്ന എസ്പ്രെസിഫ് വികസിപ്പിച്ചെടുത്ത ചിപ്പ് (SoC) മൈക്രോകൺട്രോളറുകളിൽ കുറഞ്ഞ ചെലവും കുറഞ്ഞ പവർ സിസ്റ്റവുമാണ് ESP32. നിങ്ങൾക്ക് ESP8266 പരിചിതമാണെങ്കിൽ, ESP32 അതിൻ്റെ പിൻഗാമിയാണ്, ധാരാളം പുതിയ സവിശേഷതകൾ നിറഞ്ഞതാണ്.ESP32 സ്പെസിഫിക്കേഷനുകൾ
നിങ്ങൾക്ക് കുറച്ചുകൂടി സാങ്കേതികവും വ്യക്തവും ലഭിക്കണമെങ്കിൽ, ESP32-ൻ്റെ ഇനിപ്പറയുന്ന വിശദമായ സ്പെസിഫിക്കേഷനുകൾ നിങ്ങൾക്ക് പരിശോധിക്കാം (ഉറവിടം: http://esp32.net/)-കൂടുതൽ വിവരങ്ങൾക്ക്, ഡാറ്റ ഷീറ്റ് പരിശോധിക്കുക):
- വയർലെസ് കണക്റ്റിവിറ്റി വൈഫൈ: HT150.0 ഉള്ള 40 Mbps ഡാറ്റ നിരക്ക്
- ബ്ലൂടൂത്ത്: BLE (ബ്ലൂടൂത്ത് ലോ എനർജി), ബ്ലൂടൂത്ത് ക്ലാസിക്
- പ്രോസസ്സർ: Tensilica Xtensa Dual-Core 32-bit LX6 മൈക്രോപ്രൊസസർ, 160 അല്ലെങ്കിൽ 240 MHz ൽ പ്രവർത്തിക്കുന്നു
- മെമ്മറി:
- റോം: 448 KB (ബൂട്ടിംഗിനും പ്രധാന പ്രവർത്തനങ്ങൾക്കും)
- SRAM: 520 KB (ഡാറ്റയ്ക്കും നിർദ്ദേശങ്ങൾക്കും)
- RTC ഫാസ് SRAM: 8 KB (ഡീപ്-സ്ലീപ്പ് മോഡിൽ നിന്ന് RTC ബൂട്ട് ചെയ്യുമ്പോൾ ഡാറ്റ സംഭരണത്തിനും പ്രധാന സിപിയുവിനും)
- RTC സ്ലോ SRAM: 8KB (ഡീപ്-സ്ലീപ്പ് മോഡിൽ കോ-പ്രോസസർ ആക്സസ് ചെയ്യുന്നതിന്) eFuse: 1 Kbit (ഇതിൽ 256 ബിറ്റുകൾ സിസ്റ്റത്തിനായി ഉപയോഗിക്കുന്നു (MAC വിലാസവും ചിപ്പ് കോൺഫിഗറേഷനും) ബാക്കിയുള്ള 768 ബിറ്റുകൾ ഉപഭോക്തൃ ആപ്ലിക്കേഷനുകൾക്കായി നീക്കിവച്ചിരിക്കുന്നു. ഫ്ലാഷ്-എൻക്രിപ്ഷനും ചിപ്പ്-ഐഡിയും)
ഉൾച്ചേർത്ത ഫ്ലാഷ്: 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, ഗാഢനിദ്രയിൽ.
പെരിഫറൽ ഇൻപുട്ട്/ഔട്ട്പുട്ട്:
- കപ്പാസിറ്റീവ് ടച്ച് ഉൾപ്പെടുന്ന ഡിഎംഎയുമായുള്ള പെരിഫറൽ ഇൻ്റർഫേസ്
- ADC-കൾ (അനലോഗ്-ടു-ഡിജിറ്റൽ കൺവെർട്ടർ)
- DAC-കൾ (ഡിജിറ്റൽ-ടു-അനലോഗ് കൺവെർട്ടർ)
- I²C (ഇൻ്റർ-ഇൻ്റഗ്രേറ്റഡ് സർക്യൂട്ട്)
- UART (യൂണിവേഴ്സൽ അസിൻക്രണസ് റിസീവർ/ട്രാൻസ്മിറ്റർ)
- SPI (സീരിയൽ പെരിഫറൽ ഇൻ്റർഫേസ്)
- I²S (ഇൻ്റഗ്രേറ്റഡ് ഇൻ്റർചിപ്പ് സൗണ്ട്)
- RMII (കുറച്ച മീഡിയ-ഇൻഡിപെൻഡൻ്റ് ഇൻ്റർഫേസ്)
- PWM (പൾസ്-വിഡ്ത്ത് മോഡുലേഷൻ)
സുരക്ഷ: AES, SSL/TLS എന്നിവയ്ക്കായുള്ള ഹാർഡ്വെയർ ആക്സിലറേറ്ററുകൾ
ESP32 വികസന ബോർഡുകൾ
ESP32 എന്നത് വെറും ESP32 ചിപ്പിനെ സൂചിപ്പിക്കുന്നു. എന്നിരുന്നാലും, "ESP32" എന്ന പദം ESP32 വികസന ബോർഡുകളെ സൂചിപ്പിക്കാനും ഉപയോഗിക്കുന്നു. ESP32 ബെയർ ചിപ്പുകൾ ഉപയോഗിക്കുന്നത് എളുപ്പമോ പ്രായോഗികമോ അല്ല, പ്രത്യേകിച്ചും പഠിക്കുമ്പോഴും പരിശോധിക്കുമ്പോഴും പ്രോട്ടോടൈപ്പുചെയ്യുമ്പോഴും. മിക്കപ്പോഴും, നിങ്ങൾ ഒരു ESP32 വികസന ബോർഡ് ഉപയോഗിക്കാൻ ആഗ്രഹിക്കുന്നു.
ഞങ്ങൾ ഒരു റഫറൻസായി ESP32 DEVKIT V1 ബോർഡ് ഉപയോഗിക്കും. താഴെയുള്ള ചിത്രം ESP32 DEVKIT V1 ബോർഡ് കാണിക്കുന്നു, 30 GPIO പിന്നുകളുള്ള പതിപ്പ്.സ്പെസിഫിക്കേഷനുകൾ – ESP32 DEVKIT V1
ഇനിപ്പറയുന്ന പട്ടിക ESP32 DEVKIT V1 DOIT ബോർഡിൻ്റെ സവിശേഷതകളും സവിശേഷതകളും സംഗ്രഹം കാണിക്കുന്നു:
കോറുകളുടെ എണ്ണം | 2 (ഡ്യുവൽ കോർ) |
വൈഫൈ | 2.4 GHz 150 Mbits/s വരെ |
ബ്ലൂടൂത്ത് | BLE (ബ്ലൂടൂത്ത് ലോ എനർജി), ലെഗസി ബ്ലൂടൂത്ത് |
വാസ്തുവിദ്യ | 32 ബിറ്റുകൾ |
ക്ലോക്ക് ഫ്രീക്വൻസി | 240 MHz വരെ |
റാം | 512 കെ.ബി |
പിന്നുകൾ | 30 (മോഡലിനെ ആശ്രയിച്ച്) |
പെരിഫറലുകൾ | കപ്പാസിറ്റീവ് ടച്ച്, ADC (അനലോഗ് ടു ഡിജിറ്റൽ കൺവെർട്ടർ), DAC (ഡിജിറ്റൽ ടു അനലോഗ് കൺവെർട്ടർ), 12C (ഇൻ്റർ-ഇൻ്റഗ്രേറ്റഡ് സർക്യൂട്ട്), UART (യൂണിവേഴ്സൽ അസിൻക്രണസ് റിസീവർ/ട്രാൻസ്മിറ്റർ), CAN 2.0 (കൺട്രോളർ ഏരിയ നെറ്റ്വോക്ർ), SPI (സീരിയൽ പെരിഫറൽ ഇൻ്റർഫേസ്) , 12S (ഇൻ്റഗ്രേറ്റഡ് ഇൻ്റർ-ഐസി ശബ്ദം), RMII (കുറച്ച മീഡിയ-ഇൻഡിപെൻഡൻ്റ് ഇൻ്റർഫേസ്), PWM (പൾസ് വീതി മോഡുലേഷൻ), കൂടാതെ മറ്റു പലതും. |
അന്തർനിർമ്മിത ബട്ടണുകൾ | റീസെറ്റ്, ബൂട്ട് ബട്ടണുകൾ |
അന്തർനിർമ്മിത എൽ.ഇ.ഡി | GPIO2-ലേക്ക് ബന്ധിപ്പിച്ചിട്ടുള്ള അന്തർനിർമ്മിത നീല LED; ബോർഡ് പവർ ചെയ്യുന്നതായി കാണിക്കുന്ന അന്തർനിർമ്മിത ചുവന്ന LED |
യുഎസ്ബി മുതൽ യുഎആർടി വരെ പാലം |
CP2102 |
കോഡ് അപ്ലോഡ് ചെയ്യുന്നതിനോ പവർ പ്രയോഗിക്കുന്നതിനോ നിങ്ങളുടെ കമ്പ്യൂട്ടറിലേക്ക് ബോർഡ് കണക്റ്റുചെയ്യാൻ ഉപയോഗിക്കാവുന്ന മൈക്രോ യുഎസ്ബി ഇൻ്റർഫേസുമായി ഇത് വരുന്നു.
ഒരു സീരിയൽ ഇൻ്റർഫേസ് ഉപയോഗിച്ച് ഒരു COM പോർട്ട് വഴി നിങ്ങളുടെ കമ്പ്യൂട്ടറുമായി ആശയവിനിമയം നടത്താൻ ഇത് CP2102 ചിപ്പ് (USB മുതൽ UART വരെ) ഉപയോഗിക്കുന്നു. മറ്റൊരു ജനപ്രിയ ചിപ്പ് CH340 ആണ്. നിങ്ങളുടെ ബോർഡിൽ USB മുതൽ UART ചിപ്പ് കൺവെർട്ടർ എന്താണെന്ന് പരിശോധിക്കുക, കാരണം നിങ്ങളുടെ കമ്പ്യൂട്ടറിന് ബോർഡുമായി ആശയവിനിമയം നടത്താൻ ആവശ്യമായ ഡ്രൈവറുകൾ ഇൻസ്റ്റാൾ ചെയ്യേണ്ടി വരും (ഇതിനെക്കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾ പിന്നീട് ഈ ഗൈഡിൽ).
ബോർഡ് പുനരാരംഭിക്കുന്നതിന് ഒരു റീസെറ്റ് ബട്ടണും (EN എന്ന് ലേബൽ ചെയ്തിരിക്കാം) ഈ ബോർഡും ബോർഡ് ഫ്ലാഷിംഗ് മോഡിൽ ഇടുന്നതിനുള്ള ഒരു ബൂട്ട് ബട്ടണും (കോഡ് സ്വീകരിക്കുന്നതിന് ലഭ്യമാണ്) എന്നിവയ്ക്കൊപ്പമുണ്ട്. ചില ബോർഡുകളിൽ ബൂട്ട് ബട്ടൺ ഉണ്ടാകണമെന്നില്ല എന്നത് ശ്രദ്ധിക്കുക.
GPIO 2 ലേക്ക് ആന്തരികമായി ബന്ധിപ്പിച്ചിരിക്കുന്ന ഒരു അന്തർനിർമ്മിത നീല എൽഇഡിയും ഇതിലുണ്ട്. ഏതെങ്കിലും തരത്തിലുള്ള വിഷ്വൽ ഫിസിക്കൽ ഔട്ട്പുട്ട് നൽകുന്നതിന് ഈ LED ഡീബഗ്ഗിംഗിന് ഉപയോഗപ്രദമാണ്. നിങ്ങൾ ബോർഡിന് പവർ നൽകുമ്പോൾ പ്രകാശിക്കുന്ന ഒരു ചുവന്ന എൽഇഡിയും ഉണ്ട്.ESP32 പിൻഔട്ട്
ESP32 പെരിഫറലുകളിൽ ഇവ ഉൾപ്പെടുന്നു:
- 18 അനലോഗ്-ടു-ഡിജിറ്റൽ കൺവെർട്ടർ (ADC) ചാനലുകൾ
- 3 SPI ഇൻ്റർഫേസുകൾ
- 3 UART ഇന്റർഫേസുകൾ
- 2 I2C ഇൻ്റർഫേസുകൾ
- 16 PWM ഔട്ട്പുട്ട് ചാനലുകൾ
- 2 ഡിജിറ്റൽ-ടു-അനലോഗ് കൺവെർട്ടറുകൾ (DAC)
- 2 I2S ഇൻ്റർഫേസുകൾ
- 10 കപ്പാസിറ്റീവ് സെൻസിംഗ് GPIO-കൾ
എഡിസി (അനലോഗ് ടു ഡിജിറ്റൽ കൺവെർട്ടർ), ഡിഎസി (ഡിജിറ്റൽ ടു അനലോഗ് കൺവെർട്ടർ) എന്നീ ഫീച്ചറുകൾ നിർദ്ദിഷ്ട സ്റ്റാറ്റിക് പിന്നുകൾക്ക് നൽകിയിട്ടുണ്ട്. എന്നിരുന്നാലും, UART, I2C, SPI, PWM മുതലായവ ഏതൊക്കെയാണെന്ന് നിങ്ങൾക്ക് തീരുമാനിക്കാം - നിങ്ങൾ അവ കോഡിൽ നൽകേണ്ടതുണ്ട്. ESP32 ചിപ്പിൻ്റെ മൾട്ടിപ്ലക്സിംഗ് സവിശേഷത കാരണം ഇത് സാധ്യമാണ്.
നിങ്ങൾക്ക് സോഫ്റ്റ്വെയറിലെ പിൻ പ്രോപ്പർട്ടികൾ നിർവചിക്കാൻ കഴിയുമെങ്കിലും, ഇനിപ്പറയുന്ന ചിത്രത്തിൽ കാണിച്ചിരിക്കുന്നതുപോലെ ഡിഫോൾട്ടായി അസൈൻ ചെയ്ത പിൻസ് ഉണ്ട്കൂടാതെ, ഒരു പ്രത്യേക പ്രോജക്റ്റിന് അനുയോജ്യമോ അല്ലാത്തതോ ആക്കുന്ന നിർദ്ദിഷ്ട സവിശേഷതകളുള്ള പിന്നുകൾ ഉണ്ട്. ഇൻപുട്ടുകൾ, ഔട്ട്പുട്ടുകൾ എന്നിവയായി ഉപയോഗിക്കാൻ ഏറ്റവും നല്ല പിൻസ് ഏതൊക്കെയാണെന്നും നിങ്ങൾ ശ്രദ്ധിക്കേണ്ടവ ഏതൊക്കെയാണെന്നും ഇനിപ്പറയുന്ന പട്ടിക കാണിക്കുന്നു.
പച്ച നിറത്തിൽ ഹൈലൈറ്റ് ചെയ്തിരിക്കുന്ന പിന്നുകൾ ഉപയോഗിക്കുന്നത് ശരിയാണ്. മഞ്ഞ നിറത്തിൽ ഹൈലൈറ്റ് ചെയ്തിരിക്കുന്നവ ഉപയോഗിക്കുന്നത് ശരിയാണ്, പക്ഷേ നിങ്ങൾ ശ്രദ്ധിക്കേണ്ടതുണ്ട്, കാരണം അവയ്ക്ക് പ്രധാനമായും ബൂട്ടിൽ അപ്രതീക്ഷിതമായ പെരുമാറ്റം ഉണ്ടാകാം. ചുവപ്പ് നിറത്തിൽ ഹൈലൈറ്റ് ചെയ്തിരിക്കുന്ന പിന്നുകൾ ഇൻപുട്ടുകളോ ഔട്ട്പുട്ടുകളോ ആയി ഉപയോഗിക്കാൻ ശുപാർശ ചെയ്യുന്നില്ല.
ജിപി ഐഒ | ഇൻപുട്ട് | ഔട്ട്പുട്ട് | കുറിപ്പുകൾ |
0 | മുകളിലേക്ക് വലിച്ചു | OK | ബൂട്ട് ചെയ്യുമ്പോൾ PWM സിഗ്നൽ ഔട്ട്പുട്ട് ചെയ്യുന്നു, ഫ്ലാഷിംഗ് മോഡിൽ പ്രവേശിക്കുന്നതിന് കുറവായിരിക്കണം |
1 | TX പിൻ | OK | ബൂട്ടിലെ ഡീബഗ് ഔട്ട്പുട്ട് |
2 | OK | OK | ഫ്ലാഷിംഗ് മോഡിൽ പ്രവേശിക്കുന്നതിന് ഓൺ-ബോർഡ് എൽഇഡിയിലേക്ക് കണക്റ്റ് ചെയ്തിരിക്കുന്നു, ഫ്ലോട്ടിംഗ് അല്ലെങ്കിൽ താഴ്ന്ന നിലയിലായിരിക്കണം |
3 | OK | RX പിൻ | ബൂട്ടിൽ ഉയർന്നത് |
4 | OK | OK | |
5 | OK | OK | ബൂട്ട്, സ്ട്രാപ്പിംഗ് പിൻ എന്നിവയിൽ PWM സിഗ്നൽ ഔട്ട്പുട്ട് ചെയ്യുന്നു |
12 | OK | OK | സ്ട്രാപ്പിംഗ് പിൻ ഉയരത്തിൽ വലിച്ചാൽ ബൂട്ട് പരാജയപ്പെടും |
13 | OK | OK | |
14 | OK | OK | ബൂട്ട് ചെയ്യുമ്പോൾ PWM സിഗ്നൽ ഔട്ട്പുട്ട് ചെയ്യുന്നു |
15 | OK | OK | ബൂട്ട്, സ്ട്രാപ്പിംഗ് പിൻ എന്നിവയിൽ PWM സിഗ്നൽ ഔട്ട്പുട്ട് ചെയ്യുന്നു |
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 GPIO-കളെയും അതിൻ്റെ പ്രവർത്തനങ്ങളെയും കുറിച്ച് കൂടുതൽ വിശദമായും ആഴത്തിലുള്ള വിശകലനത്തിനും വായന തുടരുക.
ഇൻപുട്ട് പിന്നുകൾ മാത്രം
GPIOകൾ 34 മുതൽ 39 വരെയുള്ള GPI-കൾ - ഇൻപുട്ട് മാത്രം പിൻ. ഈ പിന്നുകൾക്ക് ആന്തരിക പുൾ-അപ്പ് അല്ലെങ്കിൽ പുൾ-ഡൗൺ റെസിസ്റ്ററുകൾ ഇല്ല. അവ ഔട്ട്പുട്ടുകളായി ഉപയോഗിക്കാൻ കഴിയില്ല, അതിനാൽ ഈ പിന്നുകൾ ഇൻപുട്ടുകളായി മാത്രം ഉപയോഗിക്കുക:
- GPIO 34
- GPIO 35
- GPIO 36
- GPIO 39
ESP-WROOM-32-ൽ SPI ഫ്ലാഷ് സംയോജിപ്പിച്ചിരിക്കുന്നു
ചില ESP6 വികസന ബോർഡുകളിൽ GPIO 11 മുതൽ GPIO 32 വരെ തുറന്നിരിക്കുന്നു. എന്നിരുന്നാലും, ഈ പിന്നുകൾ ESP-WROOM-32 ചിപ്പിലെ സംയോജിത SPI ഫ്ലാഷുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു, മറ്റ് ഉപയോഗങ്ങൾക്ക് ശുപാർശ ചെയ്യുന്നില്ല. അതിനാൽ, നിങ്ങളുടെ പ്രോജക്റ്റുകളിൽ ഈ പിന്നുകൾ ഉപയോഗിക്കരുത്:
- GPIO 6 (SCK/CLK)
- GPIO 7 (SDO/SD0)
- GPIO 8 (SDI/SD1)
- GPIO 9 (SHD/SD2)
- GPIO 10 (SWP/SD3)
- GPIO 11 (CSC/CMD)
കപ്പാസിറ്റീവ് ടച്ച് GPIO-കൾ
ESP32 ന് 10 ആന്തരിക കപ്പാസിറ്റീവ് ടച്ച് സെൻസറുകൾ ഉണ്ട്. മനുഷ്യ ത്വക്ക് പോലെ വൈദ്യുത ചാർജ് ഉള്ള ഏതൊരു കാര്യത്തിലും ഇവയ്ക്ക് വ്യത്യാസങ്ങൾ മനസ്സിലാക്കാൻ കഴിയും. അതിനാൽ ഒരു വിരൽ കൊണ്ട് GPIO-കളിൽ സ്പർശിക്കുമ്പോൾ ഉണ്ടാകുന്ന വ്യതിയാനങ്ങൾ അവർക്ക് കണ്ടെത്താനാകും. ഈ പിന്നുകൾ കപ്പാസിറ്റീവ് പാഡുകളിലേക്ക് എളുപ്പത്തിൽ സംയോജിപ്പിക്കാനും മെക്കാനിക്കൽ ബട്ടണുകൾ മാറ്റിസ്ഥാപിക്കാനും കഴിയും. ഗാഢനിദ്രയിൽ നിന്ന് ESP32 ഉണർത്താനും കപ്പാസിറ്റീവ് ടച്ച് പിന്നുകൾ ഉപയോഗിക്കാം. ആ ആന്തരിക ടച്ച് സെൻസറുകൾ ഈ 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)
അനലോഗ് ടു ഡിജിറ്റൽ കൺവെർട്ടർ (ADC)
ESP32 ന് 18 x 12 ബിറ്റ് ADC ഇൻപുട്ട് ചാനലുകൾ ഉണ്ട് (ഇപ്പോൾ ESP8266 ന് 1x 10 ബിറ്റ് 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 ഇൻപുട്ട് ചാനലുകൾക്ക് 12-ബിറ്റ് റെസലൂഷൻ ഉണ്ട്. 0 മുതൽ 4095 വരെയുള്ള അനലോഗ് റീഡിംഗുകൾ നിങ്ങൾക്ക് ലഭിക്കുമെന്നാണ് ഇതിനർത്ഥം, അതിൽ 0 എന്നത് 0V നും 4095 മുതൽ 3.3V വരെയുമാണ്. കോഡിലും ADC ശ്രേണിയിലും നിങ്ങളുടെ ചാനലുകളുടെ റെസല്യൂഷൻ നിങ്ങൾക്ക് സജ്ജമാക്കാനും കഴിയും.
ESP32 ADC പിന്നുകൾക്ക് ഒരു രേഖീയ സ്വഭാവമില്ല. നിങ്ങൾക്ക് ഒരുപക്ഷേ 0-നും 0.1V-നും ഇടയിൽ അല്ലെങ്കിൽ 3.2-നും 3.3V-നും ഇടയിൽ വേർതിരിക്കാൻ കഴിഞ്ഞേക്കില്ല. ADC പിൻസ് ഉപയോഗിക്കുമ്പോൾ നിങ്ങൾ അത് മനസ്സിൽ സൂക്ഷിക്കേണ്ടതുണ്ട്. ഇനിപ്പറയുന്ന ചിത്രത്തിൽ കാണിച്ചിരിക്കുന്നതിന് സമാനമായ ഒരു പെരുമാറ്റം നിങ്ങൾക്ക് ലഭിക്കും.ഡിജിറ്റൽ ടു അനലോഗ് കൺവെർട്ടർ (DAC)
ഡിജിറ്റൽ സിഗ്നലുകളെ അനലോഗ് വോള്യത്തിലേക്ക് പരിവർത്തനം ചെയ്യാൻ ESP2-ൽ 8 x 32 ബിറ്റ് DAC ചാനലുകളുണ്ട്.tagഇ സിഗ്നൽ ഔട്ട്പുട്ടുകൾ. ഇവയാണ് DAC ചാനലുകൾ:
- DAC1 (GPIO25)
- DAC2 (GPIO26)
ആർടിസി ജിപിഐഒകൾ
ESP32-ൽ RTC GPIO പിന്തുണയുണ്ട്. ESP32 ഗാഢനിദ്രയിലായിരിക്കുമ്പോൾ RTC ലോ-പവർ സബ്സിസ്റ്റത്തിലേക്ക് റൂട്ട് ചെയ്ത GPIO-കൾ ഉപയോഗിക്കാം. അൾട്രാ ലോ ആയിരിക്കുമ്പോൾ ഗാഢനിദ്രയിൽ നിന്ന് ESP32 ഉണർത്താൻ ഈ RTC GPIO-കൾ ഉപയോഗിക്കാം
പവർ (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)
പി.ഡബ്ല്യു.എം
ESP32 LED PWM കൺട്രോളറിന് 16 സ്വതന്ത്ര ചാനലുകളുണ്ട്, അവ വ്യത്യസ്ത ഗുണങ്ങളുള്ള PWM സിഗ്നലുകൾ സൃഷ്ടിക്കുന്നതിന് ക്രമീകരിക്കാൻ കഴിയും. ഔട്ട്പുട്ടുകളായി പ്രവർത്തിക്കാൻ കഴിയുന്ന എല്ലാ പിന്നുകളും PWM പിൻ ആയി ഉപയോഗിക്കാം (GPIO 34 മുതൽ 39 വരെ PWM സൃഷ്ടിക്കാൻ കഴിയില്ല).
ഒരു PWM സിഗ്നൽ സജ്ജീകരിക്കുന്നതിന്, നിങ്ങൾ കോഡിൽ ഈ പാരാമീറ്ററുകൾ നിർവചിക്കേണ്ടതുണ്ട്:
- സിഗ്നലിൻ്റെ ആവൃത്തി;
- ഡ്യൂട്ടി സൈക്കിൾ;
- PWM ചാനൽ;
- നിങ്ങൾ സിഗ്നൽ ഔട്ട്പുട്ട് ചെയ്യാൻ ആഗ്രഹിക്കുന്ന GPIO.
I2C
ESP32 ന് രണ്ട് I2C ചാനലുകളുണ്ട്, ഏത് പിൻ SDA അല്ലെങ്കിൽ SCL ആയി സജ്ജീകരിക്കാം. Arduino IDE ഉപയോഗിച്ച് ESP32 ഉപയോഗിക്കുമ്പോൾ, സ്ഥിരസ്ഥിതി I2C പിൻസ് ഇവയാണ്:
- GPIO 21 (SDA)
- GPIO 22 (SCL)
വയർ ലൈബ്രറി ഉപയോഗിക്കുമ്പോൾ നിങ്ങൾക്ക് മറ്റ് പിന്നുകൾ ഉപയോഗിക്കണമെങ്കിൽ, നിങ്ങൾ വിളിക്കേണ്ടതുണ്ട്:
Wire.begin(SDA, SCL);
എസ്.പി.ഐ
സ്ഥിരസ്ഥിതിയായി, SPI-യുടെ പിൻ മാപ്പിംഗ് ഇതാണ്:
എസ്.പി.ഐ | മോസി | മിസോ | CLK | CS |
വി.എസ്.പി.ഐ | GPIO 23 | GPIO 19 | GPIO 18 | GPIO 5 |
എച്ച്.എസ്.പി.ഐ | GPIO 13 | GPIO 12 | GPIO 14 | GPIO 15 |
തടസ്സപ്പെടുത്തുന്നു
എല്ലാ GPIO-കളും ഇൻ്ററപ്റ്റുകളായി കോൺഫിഗർ ചെയ്യാവുന്നതാണ്.
സ്ട്രാപ്പിംഗ് പിന്നുകൾ
ESP32 ചിപ്പിന് ഇനിപ്പറയുന്ന സ്ട്രാപ്പിംഗ് പിന്നുകൾ ഉണ്ട്:
- GPIO 0 (ബൂട്ട് മോഡിൽ പ്രവേശിക്കാൻ കുറഞ്ഞതായിരിക്കണം)
- GPIO 2 (ബൂട്ട് സമയത്ത് ഫ്ലോട്ടിംഗ് അല്ലെങ്കിൽ താഴ്ന്നതായിരിക്കണം)
- GPIO 4
- GPIO 5 (ബൂട്ട് സമയത്ത് ഉയർന്നതായിരിക്കണം)
- GPIO 12 (ബൂട്ട് സമയത്ത് കുറവായിരിക്കണം)
- GPIO 15 (ബൂട്ട് സമയത്ത് ഉയർന്നതായിരിക്കണം)
ESP32 ബൂട്ട്ലോഡർ അല്ലെങ്കിൽ ഫ്ലാഷിംഗ് മോഡിൽ ഉൾപ്പെടുത്താൻ ഇവ ഉപയോഗിക്കുന്നു. അന്തർനിർമ്മിത USB/സീരിയൽ ഉള്ള മിക്ക ഡെവലപ്മെൻ്റ് ബോർഡുകളിലും, ഈ പിന്നുകളുടെ അവസ്ഥയെക്കുറിച്ച് നിങ്ങൾ വിഷമിക്കേണ്ടതില്ല. ഫ്ലാഷിംഗ് അല്ലെങ്കിൽ ബൂട്ട് മോഡിനായി ബോർഡ് പിൻസ് ശരിയായ അവസ്ഥയിൽ ഇടുന്നു. ESP32 ബൂട്ട് മോഡ് തിരഞ്ഞെടുക്കലിനെക്കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾ ഇവിടെ കാണാം.
എന്നിരുന്നാലും, നിങ്ങൾക്ക് ആ പിൻകളുമായി ബന്ധിപ്പിച്ചിട്ടുള്ള പെരിഫറലുകൾ ഉണ്ടെങ്കിൽ, പുതിയ കോഡ് അപ്ലോഡ് ചെയ്യാൻ ശ്രമിക്കുന്നതിൽ നിങ്ങൾക്ക് പ്രശ്നമുണ്ടാകാം, പുതിയ ഫേംവെയർ ഉപയോഗിച്ച് ESP32 ഫ്ലാഷ് ചെയ്യുക, അല്ലെങ്കിൽ ബോർഡ് പുനഃസജ്ജമാക്കുക. നിങ്ങൾക്ക് സ്ട്രാപ്പിംഗ് പിന്നുകളുമായി ബന്ധിപ്പിച്ചിട്ടുള്ള ചില പെരിഫെറലുകൾ ഉണ്ടെങ്കിൽ കോഡ് അപ്ലോഡ് ചെയ്യുന്നതിനോ ESP32 ഫ്ലാഷ് ചെയ്യുന്നതിനോ നിങ്ങൾക്ക് പ്രശ്നമുണ്ടെങ്കിൽ, ശരിയായ മോഡിലേക്ക് പ്രവേശിക്കുന്നതിൽ നിന്ന് ആ പെരിഫറലുകൾ ESP32 നെ തടയുന്നതിനാലാകാം. ശരിയായ ദിശയിലേക്ക് നിങ്ങളെ നയിക്കാൻ ബൂട്ട് മോഡ് തിരഞ്ഞെടുക്കൽ ഡോക്യുമെൻ്റേഷൻ വായിക്കുക. റീസെറ്റ് ചെയ്തതിനോ മിന്നുന്നതിനോ ബൂട്ട് ചെയ്യുന്നതിനോ ശേഷം, ആ പിന്നുകൾ പ്രതീക്ഷിച്ചതുപോലെ പ്രവർത്തിക്കുന്നു.
ബൂട്ടിൽ ഉയർന്ന പിൻസ്
ചില GPIO-കൾ ബൂട്ട് ചെയ്യുമ്പോഴോ പുനഃസജ്ജമാക്കുമ്പോഴോ അവരുടെ അവസ്ഥയെ ഉയർന്നതോ ഔട്ട്പുട്ട് PWM സിഗ്നലുകളിലേക്കോ മാറ്റുന്നു.
ഇതിനർത്ഥം നിങ്ങൾക്ക് ഈ GPIO-കളിലേക്ക് ബന്ധിപ്പിച്ചിട്ടുള്ള ഔട്ട്പുട്ടുകൾ ഉണ്ടെങ്കിൽ, ESP32 റീസെറ്റ് ചെയ്യുമ്പോഴോ ബൂട്ട് ചെയ്യുമ്പോഴോ നിങ്ങൾക്ക് അപ്രതീക്ഷിത ഫലങ്ങൾ ലഭിച്ചേക്കാം.
- GPIO 1
- GPIO 3
- GPIO 5
- GPIO 6 മുതൽ GPIO 11 വരെ (ESP32 ഇൻ്റഗ്രേറ്റഡ് SPI ഫ്ലാഷ് മെമ്മറിയുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു - ഉപയോഗിക്കാൻ ശുപാർശ ചെയ്യുന്നില്ല).
- GPIO 14
- GPIO 15
പ്രവർത്തനക്ഷമമാക്കുക (EN)
പ്രവർത്തനക്ഷമമാക്കുക (EN) എന്നത് 3.3V റെഗുലേറ്ററിൻ്റെ പ്രവർത്തനക്ഷമമായ പിൻ ആണ്. ഇത് മുകളിലേക്ക് വലിച്ചു, അതിനാൽ 3.3V റെഗുലേറ്റർ പ്രവർത്തനരഹിതമാക്കാൻ ഗ്രൗണ്ടുമായി ബന്ധിപ്പിക്കുക. നിങ്ങളുടെ ESP32 പുനരാരംഭിക്കുന്നതിന് ഒരു പുഷ്ബട്ടണുമായി ബന്ധിപ്പിച്ചിരിക്കുന്ന ഈ പിൻ നിങ്ങൾക്ക് ഉപയോഗിക്കാമെന്നാണ് ഇതിനർത്ഥം, ഉദാഹരണത്തിന്ample.
GPIO കറൻ്റ് വരച്ചു
ESP40 ഡാറ്റാഷീറ്റിലെ "ശുപാർശ ചെയ്ത പ്രവർത്തന വ്യവസ്ഥകൾ" വിഭാഗം അനുസരിച്ച് ഒരു GPIO-യ്ക്ക് പരമാവധി പരമാവധി കറൻ്റ് 32mA ആണ്.
ESP32 ബിൽറ്റ്-ഇൻ ഹാൾ ഇഫക്റ്റ് സെൻസർ
ESP32-ൽ ഒരു ബിൽറ്റ്-ഇൻ ഹാൾ ഇഫക്റ്റ് സെൻസറും അതിൻ്റെ ചുറ്റുപാടിലെ കാന്തികക്ഷേത്രത്തിലെ മാറ്റങ്ങൾ കണ്ടെത്തുന്നു.
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 പോലെ Fileസിസ്റ്റം അപ്ലോഡർ പ്ലഗിൻ) Arduino 2-ൽ ഇതുവരെ പിന്തുണയ്ക്കാത്തത്. അതിനാൽ, ഭാവിയിൽ SPIFFS പ്ലഗിൻ ഉപയോഗിക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ, ലെഗസി പതിപ്പ് 1.8.X ഇൻസ്റ്റാൾ ചെയ്യാൻ ഞങ്ങൾ ശുപാർശ ചെയ്യുന്നു. അത് കണ്ടെത്തുന്നതിന് നിങ്ങൾ Arduino സോഫ്റ്റ്വെയർ പേജിൽ താഴേക്ക് സ്ക്രോൾ ചെയ്യേണ്ടതുണ്ട്.
Arduino IDE-യിൽ ESP32 ആഡ്-ഓൺ ഇൻസ്റ്റാൾ ചെയ്യുന്നു
നിങ്ങളുടെ Arduino IDE-യിൽ ESP32 ബോർഡ് ഇൻസ്റ്റാൾ ചെയ്യാൻ, ഇനിപ്പറയുന്ന നിർദ്ദേശങ്ങൾ പാലിക്കുക:
- നിങ്ങളുടെ Arduino IDE-ൽ പോകുക File> മുൻഗണനകൾ
- "അഡീഷണൽ ബോർഡ് മാനേജറിൽ ഇനിപ്പറയുന്നവ നൽകുക URLs" ഫീൽഡ്:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
തുടർന്ന്, "ശരി" ബട്ടൺ ക്ലിക്ക് ചെയ്യുക:കുറിപ്പ്: നിങ്ങൾക്ക് ഇതിനകം ESP8266 ബോർഡുകൾ ഉണ്ടെങ്കിൽ URL, നിങ്ങൾക്ക് വേർതിരിക്കാം URLഇനിപ്പറയുന്ന രീതിയിൽ കോമ ഉപയോഗിച്ച് s:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
ബോർഡ് മാനേജർ തുറക്കുക. ടൂളുകൾ > ബോർഡ് > ബോർഡ് മാനേജർ എന്നതിലേക്ക് പോകുക...ഇതിനായി തിരയുക “ESP32 by Espressif Systems” നായി ESP32 ഇൻസ്റ്റാൾ ബട്ടൺ അമർത്തുക:
അത്രയേയുള്ളൂ. കുറച്ച് നിമിഷങ്ങൾക്ക് ശേഷം ഇത് ഇൻസ്റ്റാൾ ചെയ്യണം.
ടെസ്റ്റ് കോഡ് അപ്ലോഡ് ചെയ്യുക
ESP32 ബോർഡ് നിങ്ങളുടെ കമ്പ്യൂട്ടറിലേക്ക് പ്ലഗ് ചെയ്യുക. നിങ്ങളുടെ Arduino IDE തുറക്കുമ്പോൾ, ഈ ഘട്ടങ്ങൾ പാലിക്കുക:
- ടൂൾസ് > ബോർഡ് മെനുവിൽ നിങ്ങളുടെ ബോർഡ് തിരഞ്ഞെടുക്കുക (എൻ്റെ കാര്യത്തിൽ ഇത് ESP32 DEV മൊഡ്യൂൾ ആണ്)
- പോർട്ട് തിരഞ്ഞെടുക്കുക (നിങ്ങളുടെ Arduino IDE-യിൽ COM പോർട്ട് കാണുന്നില്ലെങ്കിൽ, നിങ്ങൾ CP210x USB to UART Bridge VCP ഡ്രൈവറുകൾ ഇൻസ്റ്റാൾ ചെയ്യണം):
- ഇനിപ്പറയുന്ന മുൻ തുറക്കുകample കീഴിൽ File > ഉദാampലെസ് > വൈഫൈ
(ESP32) > WiFiScan - നിങ്ങളുടെ Arduino IDE-യിൽ ഒരു പുതിയ സ്കെച്ച് തുറക്കുന്നു:
- Arduino IDE-യിലെ അപ്ലോഡ് ബട്ടൺ അമർത്തുക. കോഡ് കംപൈൽ ചെയ്ത് നിങ്ങളുടെ ബോർഡിലേക്ക് അപ്ലോഡ് ചെയ്യുമ്പോൾ കുറച്ച് നിമിഷങ്ങൾ കാത്തിരിക്കുക.
- എല്ലാം പ്രതീക്ഷിച്ചതുപോലെ നടന്നെങ്കിൽ, "അപ്ലോഡിംഗ് പൂർത്തിയായി" നിങ്ങൾ കാണും. സന്ദേശം.
- 115200 എന്ന ബാഡ് നിരക്കിൽ Arduino IDE സീരിയൽ മോണിറ്റർ തുറക്കുക:
- ESP32 ഓൺ-ബോർഡ് പ്രവർത്തനക്ഷമമാക്കുക ബട്ടൺ അമർത്തുക, നിങ്ങളുടെ ESP32 ന് സമീപം ലഭ്യമായ നെറ്റ്വർക്കുകൾ നിങ്ങൾ കാണും:
ട്രബിൾഷൂട്ടിംഗ്
നിങ്ങളുടെ ESP32-ലേക്ക് ഒരു പുതിയ സ്കെച്ച് അപ്ലോഡ് ചെയ്യാൻ ശ്രമിക്കുകയാണെങ്കിൽ, നിങ്ങൾക്ക് ഈ പിശക് സന്ദേശം ലഭിക്കുകയാണെങ്കിൽ "ഒരു മാരകമായ പിശക് സംഭവിച്ചു: ESP32-ലേക്ക് കണക്റ്റുചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു: സമയം കഴിഞ്ഞു... കണക്റ്റുചെയ്യുന്നു...". നിങ്ങളുടെ ESP32 ഫ്ലാഷിംഗ്/അപ്ലോഡിംഗ് മോഡിൽ ഇല്ല എന്നാണ് ഇതിനർത്ഥം.
ശരിയായ ബോർഡ് നാമവും COM പോർ തിരഞ്ഞെടുത്തുകഴിഞ്ഞാൽ, ഈ ഘട്ടങ്ങൾ പാലിക്കുക:
നിങ്ങളുടെ ESP32 ബോർഡിലെ "BOOT" ബട്ടൺ അമർത്തിപ്പിടിക്കുക
- നിങ്ങളുടെ സ്കെച്ച് അപ്ലോഡ് ചെയ്യാൻ Arduino IDE-യിലെ "അപ്ലോഡ്" ബട്ടൺ അമർത്തുക:
- നിങ്ങൾ "കണക്റ്റുചെയ്യുന്നു..." കണ്ടതിനുശേഷം. നിങ്ങളുടെ Arduino IDE-യിലെ സന്ദേശം, "BOOT" ബട്ടണിൽ നിന്ന് വിരൽ വിടുക:
- അതിനുശേഷം, "അപ്ലോഡിംഗ് പൂർത്തിയായി" എന്ന സന്ദേശം നിങ്ങൾ കാണും
അത്രയേയുള്ളൂ. നിങ്ങളുടെ ESP32-ന് പുതിയ സ്കെച്ച് പ്രവർത്തിക്കണം. ESP32 പുനരാരംഭിക്കുന്നതിനും അപ്ലോഡ് ചെയ്ത പുതിയ സ്കെച്ച് പ്രവർത്തിപ്പിക്കുന്നതിനും "ENABLE" ബട്ടൺ അമർത്തുക.
നിങ്ങൾ ഒരു പുതിയ സ്കെച്ച് അപ്ലോഡ് ചെയ്യാൻ ആഗ്രഹിക്കുന്ന ഓരോ തവണയും ആ ബട്ടൺ ക്രമം ആവർത്തിക്കേണ്ടി വരും.
പ്രോജക്റ്റ് 1 ESP32 ഇൻപുട്ട് ഔട്ട്പുട്ടുകൾ
ഈ ആരംഭിക്കുന്ന ഗൈഡിൽ, ഒരു ബട്ടൺ സ്വിച്ച് പോലെയുള്ള ഡിജിറ്റൽ ഇൻപുട്ടുകൾ എങ്ങനെ വായിക്കാമെന്നും Arduino IDE ഉപയോഗിച്ച് ESP32 ഉപയോഗിച്ച് LED പോലുള്ള ഡിജിറ്റൽ ഔട്ട്പുട്ടുകൾ എങ്ങനെ നിയന്ത്രിക്കാമെന്നും നിങ്ങൾ പഠിക്കും.
മുൻവ്യവസ്ഥകൾ
Arduino IDE ഉപയോഗിച്ച് ഞങ്ങൾ ESP32 പ്രോഗ്രാം ചെയ്യും. അതിനാൽ, തുടരുന്നതിന് മുമ്പ് നിങ്ങൾ ESP32 ബോർഡുകളുടെ ആഡ്-ഓൺ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക:
- Arduino IDE-യിൽ ESP32 ആഡ്-ഓൺ ഇൻസ്റ്റാൾ ചെയ്യുന്നു
ESP32 ഡിജിറ്റൽ ഔട്ട്പുട്ടുകൾ നിയന്ത്രിക്കുക
ആദ്യം, നിങ്ങൾ നിയന്ത്രിക്കാൻ ആഗ്രഹിക്കുന്ന GPIO ഒരു OUTPUT ആയി സജ്ജീകരിക്കേണ്ടതുണ്ട്. പിൻ മോഡ്() ഫംഗ്ഷൻ ഇനിപ്പറയുന്ന രീതിയിൽ ഉപയോഗിക്കുക:
പിൻമോഡ് (ജിപിഐഒ, ഔട്ട്പുട്ട്);
ഒരു ഡിജിറ്റൽ ഔട്ട്പുട്ട് നിയന്ത്രിക്കുന്നതിന് നിങ്ങൾ ഡിജിറ്റൽ റൈറ്റ്() ഫംഗ്ഷൻ, ആർഗ്യുമെൻ്റുകളായി സ്വീകരിക്കുന്ന, നിങ്ങൾ പരാമർശിക്കുന്ന GPIO (int നമ്പർ), ഉയർന്നതോ താഴ്ന്നതോ ആയ അവസ്ഥ എന്നിവ ഉപയോഗിക്കേണ്ടതുണ്ട്.
ഡിജിറ്റൽ റൈറ്റ് (ജിപിഐഒ, സ്റ്റേറ്റ്);
GPIO കൾ 6 മുതൽ 11 വരെ (ഇൻ്റഗ്രേറ്റഡ് SPI ഫ്ലാഷുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു), GPIOs 34, 35, 36, 39 എന്നിവ ഒഴികെ എല്ലാ GPIO-കളും ഔട്ട്പുട്ടുകളായി ഉപയോഗിക്കാം (ഇൻപുട്ട് GPIOകൾ മാത്രം);
ESP32 GPIO-കളെ കുറിച്ച് കൂടുതലറിയുക: ESP32 GPIO റഫറൻസ് ഗൈഡ്
ESP32 ഡിജിറ്റൽ ഇൻപുട്ടുകൾ വായിക്കുക
ആദ്യം, പിൻ മോഡ്() ഫംഗ്ഷൻ ഉപയോഗിച്ച് ഇനിപ്പറയുന്ന രീതിയിൽ നിങ്ങൾ വായിക്കാൻ ആഗ്രഹിക്കുന്ന GPIO INPUT ആയി സജ്ജമാക്കുക:
പിൻ മോഡ് (GPIO, INPUT);
ഒരു ഡിജിറ്റൽ ഇൻപുട്ട് വായിക്കാൻ, ഒരു ബട്ടൺ പോലെ, നിങ്ങൾ ഡിജിറ്റൽ റീഡ്() ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നു, അത് ആർഗ്യുമെൻ്റായി അംഗീകരിക്കുന്നു, നിങ്ങൾ പരാമർശിക്കുന്ന GPIO (int നമ്പർ).
ഡിജിറ്റൽ റീഡ് (ജിപിഐഒ);
എല്ലാ ESP32 GPIO-കളും ഇൻപുട്ടുകളായി ഉപയോഗിക്കാം, GPIO കൾ 6 മുതൽ 11 വരെ (സംയോജിത SPI ഫ്ലാഷുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു).
ESP32 GPIO-കളെ കുറിച്ച് കൂടുതലറിയുക: ESP32 GPIO റഫറൻസ് ഗൈഡ്
പ്രോജക്റ്റ് എക്സിample
ഡിജിറ്റൽ ഇൻപുട്ടുകളും ഡിജിറ്റൽ ഔട്ട്പുട്ടുകളും എങ്ങനെ ഉപയോഗിക്കാമെന്ന് നിങ്ങളെ കാണിക്കാൻ, ഞങ്ങൾ ഒരു ലളിതമായ പ്രോജക്റ്റ് നിർമ്മിക്കുംampഒരു പുഷ്ബട്ടണും എൽഇഡിയും ഉള്ള ലെ. ഇനിപ്പറയുന്ന ചിത്രത്തിൽ കാണിച്ചിരിക്കുന്നതുപോലെ ഞങ്ങൾ പുഷ്ബട്ടണിൻ്റെ അവസ്ഥ വായിക്കുകയും അതിനനുസരിച്ച് LED പ്രകാശിപ്പിക്കുകയും ചെയ്യും.
ആവശ്യമായ ഭാഗങ്ങൾ
സർക്യൂട്ട് നിർമ്മിക്കാൻ ആവശ്യമായ ഭാഗങ്ങളുടെ ഒരു ലിസ്റ്റ് ഇതാ:
- ESP32 DEVKIT V1
- 5 എംഎം എൽഇഡി
- 220 ഓം റെസിസ്റ്റർ
- ഞെക്കാനുള്ള ബട്ടണ്
- 10k ഓം റെസിസ്റ്റർ
- ബ്രെഡ്ബോർഡ്
- ജമ്പർ വയറുകൾ
സ്കീമാറ്റിക് ഡയഗ്രം
തുടരുന്നതിന് മുമ്പ്, നിങ്ങൾ ഒരു എൽഇഡിയും പുഷ്ബട്ടണും ഉപയോഗിച്ച് ഒരു സർക്യൂട്ട് കൂട്ടിച്ചേർക്കേണ്ടതുണ്ട്.
ഞങ്ങൾ എൽഇഡിയെ GPIO 5 ലേക്ക് ബന്ധിപ്പിക്കും, പുഷ്ബട്ടൺ GPIO ലേക്ക് ബന്ധിപ്പിക്കും 4.കോഡ്
arduino IDE-യിൽ Project_1_ESP32_Inputs_Outputs.ino എന്ന കോഡ് തുറക്കുകകോഡ് എങ്ങനെ പ്രവർത്തിക്കുന്നു
ഇനിപ്പറയുന്ന രണ്ട് വരികളിൽ, പിന്നുകൾ നൽകുന്നതിന് നിങ്ങൾ വേരിയബിളുകൾ സൃഷ്ടിക്കുന്നു:
ബട്ടൺ GPIO 4-ലേക്ക് ബന്ധിപ്പിച്ചിരിക്കുന്നു, LED GPIO 5-ലേക്ക് കണക്റ്റ് ചെയ്തിരിക്കുന്നു. ESP32-നൊപ്പം Arduino IDE ഉപയോഗിക്കുമ്പോൾ, 4 GPIO 4-നും 5 GPIO 5-നും യോജിക്കുന്നു.
അടുത്തതായി, ബട്ടൺ നില പിടിക്കാൻ നിങ്ങൾ ഒരു വേരിയബിൾ സൃഷ്ടിക്കുന്നു. സ്ഥിരസ്ഥിതിയായി, ഇത് 0 ആണ് (അമർത്തിയില്ല).
int buttonState = 0;
സജ്ജീകരണത്തിൽ(), നിങ്ങൾ ബട്ടൺ ഒരു INPUT ആയും LED ഒരു OUTPUT ആയും ആരംഭിക്കുന്നു.
അതിനായി, നിങ്ങൾ പരാമർശിക്കുന്ന പിൻ സ്വീകരിക്കുന്ന പിൻ മോഡ്() ഫംഗ്ഷനും മോഡ്: INPUT അല്ലെങ്കിൽ OUTPUT എന്നിവയും ഉപയോഗിക്കുന്നു.
പിൻ മോഡ് (ബട്ടൺപിൻ, ഇൻപുട്ട്);
പിൻ മോഡ് (ലെഡ്പിൻ, ഔട്ട്പുട്ട്);
ലൂപ്പിൽ() നിങ്ങൾ ബട്ടണിൻ്റെ അവസ്ഥ വായിക്കുകയും അതിനനുസരിച്ച് LED സജ്ജമാക്കുകയും ചെയ്യുന്നു.
അടുത്ത വരിയിൽ, നിങ്ങൾ ബട്ടൺ സ്റ്റേറ്റ് വായിച്ച് ബട്ടൺസ്റ്റേറ്റ് വേരിയബിളിൽ സംരക്ഷിക്കുക.
ഞങ്ങൾ മുമ്പ് കണ്ടതുപോലെ, നിങ്ങൾ ഡിജിറ്റൽ റീഡ്() ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നു.
ബട്ടൺസ്റ്റേറ്റ് = ഡിജിറ്റൽ റീഡ് (ബട്ടൺപിൻ);
ഇനിപ്പറയുന്ന if സ്റ്റേറ്റ്മെൻ്റ്, ബട്ടൺ നില ഉയർന്നതാണോ എന്ന് പരിശോധിക്കുന്നു. അങ്ങനെയാണെങ്കിൽ, അത് ledPin, സംസ്ഥാന HIGH എന്നിവയെ ആർഗ്യുമെൻ്റായി സ്വീകരിക്കുന്ന ഡിജിറ്റൽ റൈറ്റ്() ഫംഗ്ഷൻ ഉപയോഗിച്ച് LED ഓണാക്കുന്നു.
എങ്കിൽ (ബട്ടൺസ്റ്റേറ്റ് == ഉയർന്നത്)ബട്ടൺ നില ഉയർന്നതല്ലെങ്കിൽ, നിങ്ങൾ LED ഓഫാക്കി. ഡിജിറ്റൽ റൈറ്റ്() ഫംഗ്ഷനിലെ രണ്ടാമത്തെ ആർഗ്യുമെൻ്റായി LOW എന്നത് സജ്ജമാക്കുക.
കോഡ് അപ്ലോഡ് ചെയ്യുന്നു
അപ്ലോഡ് ബട്ടൺ ക്ലിക്കുചെയ്യുന്നതിന് മുമ്പ്, ടൂളുകൾ > ബോർഡിലേക്ക് പോയി ബോർഡ് തിരഞ്ഞെടുക്കുക :DOIT ESP32 DEVKIT V1 ബോർഡ്.
ടൂളുകൾ > പോർട്ട് എന്നതിലേക്ക് പോയി ESP32 കണക്റ്റുചെയ്തിരിക്കുന്ന COM പോർട്ട് തിരഞ്ഞെടുക്കുക. തുടർന്ന്, അപ്ലോഡ് ബട്ടൺ അമർത്തി "അപ്ലോഡിംഗ് പൂർത്തിയായി" എന്ന സന്ദേശത്തിനായി കാത്തിരിക്കുക.കുറിപ്പ്: ഡീബഗ്ഗിംഗ് വിൻഡോയിൽ നിങ്ങൾ ധാരാളം ഡോട്ടുകളും (കണക്റ്റുചെയ്യുന്നു..._____) "ESP32-ലേക്ക് കണക്റ്റുചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു: പാക്കറ്റ് ഹെഡറിനായി കാത്തിരിക്കുന്ന സമയം കഴിഞ്ഞു" എന്ന സന്ദേശവും കാണുകയാണെങ്കിൽ, നിങ്ങൾ ESP32 ഓൺ-ബോർഡ് ബൂട്ട് അമർത്തേണ്ടതുണ്ട് എന്നാണ് അർത്ഥമാക്കുന്നത്. ഡോട്ടുകൾക്ക് ശേഷം ബട്ടൺ
പ്രത്യക്ഷപ്പെടാൻ തുടങ്ങുക.ട്രബിൾഷൂട്ടിംഗ്
പ്രകടനം
കോഡ് അപ്ലോഡ് ചെയ്ത ശേഷം, നിങ്ങളുടെ സർക്യൂട്ട് പരിശോധിക്കുക. നിങ്ങൾ പുഷ്ബട്ടൺ അമർത്തുമ്പോൾ നിങ്ങളുടെ LED പ്രകാശിക്കും:നിങ്ങൾ അത് റിലീസ് ചെയ്യുമ്പോൾ ഓഫ് ചെയ്യുക:
പ്രോജക്റ്റ് 2 ESP32 അനലോഗ് ഇൻപുട്ടുകൾ
Arduino IDE ഉപയോഗിച്ച് ESP32 ഉപയോഗിച്ച് അനലോഗ് ഇൻപുട്ടുകൾ എങ്ങനെ വായിക്കാമെന്ന് ഈ പ്രോജക്റ്റ് കാണിക്കുന്നു.
പൊട്ടൻഷിയോമീറ്ററുകൾ അല്ലെങ്കിൽ അനലോഗ് സെൻസറുകൾ പോലുള്ള വേരിയബിൾ റെസിസ്റ്ററുകളിൽ നിന്നുള്ള മൂല്യങ്ങൾ വായിക്കാൻ അനലോഗ് റീഡിംഗ് ഉപയോഗപ്രദമാണ്.
അനലോഗ് ഇൻപുട്ടുകൾ (ADC)
ESP32 ഉപയോഗിച്ച് ഒരു അനലോഗ് മൂല്യം വായിക്കുന്നത് അർത്ഥമാക്കുന്നത് നിങ്ങൾക്ക് വ്യത്യസ്ത വോള്യം അളക്കാൻ കഴിയും എന്നാണ്tag0 V നും 3.3 V നും ഇടയിലുള്ള e ലെവലുകൾ.
വോളിയംtage അളന്നത് 0-നും 4095-നും ഇടയിലുള്ള ഒരു മൂല്യത്തിലേക്ക് അസൈൻ ചെയ്യപ്പെടുന്നു, അതിൽ 0 V 0-നും 3.3 V 4095-നും തുല്യമാണ്. ഏത് വോള്യവുംtag0 V നും 3.3 V നും ഇടയിലുള്ള e ന് അതിനിടയിലുള്ള അനുബന്ധ മൂല്യം നൽകും.ADC നോൺ-ലീനിയർ ആണ്
ESP32 ADC പിന്നുകൾ ഉപയോഗിക്കുമ്പോൾ നിങ്ങൾ ഒരു രേഖീയ സ്വഭാവം പ്രതീക്ഷിക്കുന്നതാണ് നല്ലത്.
എന്നിരുന്നാലും, അത് സംഭവിക്കുന്നില്ല. ഇനിപ്പറയുന്ന ചാർട്ടിൽ കാണിച്ചിരിക്കുന്നതുപോലെ നിങ്ങൾക്ക് ലഭിക്കുന്നത് ഒരു പെരുമാറ്റമാണ്:ഈ സ്വഭാവം അർത്ഥമാക്കുന്നത് നിങ്ങളുടെ ESP32-ന് 3.3 V-യെ 3.2 V-ൽ നിന്ന് വേർതിരിച്ചറിയാൻ കഴിയില്ല എന്നാണ്.
രണ്ട് വോള്യങ്ങൾക്കും നിങ്ങൾക്ക് ഒരേ മൂല്യം ലഭിക്കുംtages: 4095.
വളരെ കുറഞ്ഞ വോള്യത്തിനും ഇതുതന്നെ സംഭവിക്കുന്നുtage മൂല്യങ്ങൾ: 0 V, 0.1 V എന്നിവയ്ക്ക് നിങ്ങൾക്ക് ഒരേ മൂല്യം ലഭിക്കും: 0. ESP32 ADC പിൻസ് ഉപയോഗിക്കുമ്പോൾ നിങ്ങൾ ഇത് മനസ്സിൽ പിടിക്കേണ്ടതുണ്ട്.
അനലോഗ് റീഡ്() പ്രവർത്തനം
Arduino IDE ഉപയോഗിച്ച് ESP32 ഉപയോഗിച്ച് ഒരു അനലോഗ് ഇൻപുട്ട് വായിക്കുന്നത് അനലോഗ് റീഡ്() ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നത് പോലെ ലളിതമാണ്. നിങ്ങൾ വായിക്കാൻ ആഗ്രഹിക്കുന്ന GPIO എന്ന വാദമായി ഇത് അംഗീകരിക്കുന്നു:
അനലോഗ് റീഡ് (ജിപിഐഒ);
DEVKIT V15board-ൽ 1 എണ്ണം മാത്രമേ ലഭ്യമാകൂ (30 GPIO-കളുള്ള പതിപ്പ്).
നിങ്ങളുടെ ESP32 ബോർഡ് പിൻഔട്ട് പിടിച്ച് ADC പിന്നുകൾ കണ്ടെത്തുക. ചുവടെയുള്ള ചിത്രത്തിൽ ചുവന്ന ബോർഡർ ഉപയോഗിച്ച് ഇവ ഹൈലൈറ്റ് ചെയ്തിരിക്കുന്നു.ഈ അനലോഗ് ഇൻപുട്ട് പിന്നുകൾക്ക് 12-ബിറ്റ് റെസലൂഷൻ ഉണ്ട്. ഇതിനർത്ഥം നിങ്ങൾ ഒരു അനലോഗ് ഇൻപുട്ട് വായിക്കുമ്പോൾ, അതിൻ്റെ ശ്രേണി 0 മുതൽ 4095 വരെ വ്യത്യാസപ്പെടാം.
ശ്രദ്ധിക്കുക: Wi-Fi ഉപയോഗിക്കുമ്പോൾ ADC2 പിന്നുകൾ ഉപയോഗിക്കാൻ കഴിയില്ല. അതിനാൽ, നിങ്ങൾ Wi-Fi ഉപയോഗിക്കുകയും ഒരു ADC2 GPIO-ൽ നിന്ന് മൂല്യം നേടുന്നതിൽ നിങ്ങൾക്ക് പ്രശ്നമുണ്ടെങ്കിൽ, പകരം ഒരു ADC1 GPIO ഉപയോഗിക്കുന്നത് നിങ്ങൾക്ക് പരിഗണിക്കാം, അത് നിങ്ങളുടെ പ്രശ്നം പരിഹരിക്കും.
എല്ലാം എങ്ങനെ ഒത്തുചേരുന്നുവെന്ന് കാണാൻ, ഞങ്ങൾ ഒരു ലളിതമായ മുൻ ഉണ്ടാക്കുംampഒരു പൊട്ടൻഷിയോമീറ്ററിൽ നിന്ന് ഒരു അനലോഗ് മൂല്യം വായിക്കാൻ le.
ആവശ്യമായ ഭാഗങ്ങൾ
ഇതിനായി മുൻampലെ, നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന ഭാഗങ്ങൾ ആവശ്യമാണ്:
- ESP32 DEVKIT V1 ബോർഡ്
- പൊട്ടൻറ്റോമീറ്റർ
- ബ്രെഡ്ബോർഡ്
- ജമ്പർ വയറുകൾ
സ്കീമാറ്റിക്
നിങ്ങളുടെ ESP32-ലേക്ക് ഒരു പൊട്ടൻഷിയോമീറ്റർ വയർ ചെയ്യുക. പൊട്ടൻഷിയോമീറ്റർ മിഡിൽ പിൻ GPIO 4-ലേക്ക് ബന്ധിപ്പിച്ചിരിക്കണം. നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന സ്കീമാറ്റിക് ഡയഗ്രം ഒരു റഫറൻസായി ഉപയോഗിക്കാം.കോഡ്
Arduino IDE ഉപയോഗിച്ച് ഞങ്ങൾ ESP32 പ്രോഗ്രാം ചെയ്യും, അതിനാൽ തുടരുന്നതിന് മുമ്പ് ESP32 ആഡ്-ഓൺ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക:(നിങ്ങൾ ഇതിനകം ഈ ഘട്ടം ചെയ്തിട്ടുണ്ടെങ്കിൽ, നിങ്ങൾക്ക് അടുത്ത ഘട്ടത്തിലേക്ക് പോകാം.)
Arduino IDE-യിൽ ESP32 ആഡ്-ഓൺ ഇൻസ്റ്റാൾ ചെയ്യുന്നു
arduino IDE-യിൽ Project_2_ESP32_Inputs_Outputs.ino എന്ന കോഡ് തുറക്കുകഈ കോഡ് പൊട്ടൻഷിയോമീറ്ററിൽ നിന്നുള്ള മൂല്യങ്ങൾ വായിക്കുകയും സീരിയൽ മോണിറ്ററിൽ ആ മൂല്യങ്ങൾ പ്രിൻ്റ് ചെയ്യുകയും ചെയ്യുന്നു.
കോഡിൽ, പൊട്ടൻഷിയോമീറ്റർ കണക്റ്റുചെയ്തിരിക്കുന്ന GPIO നിർവ്വചിച്ചുകൊണ്ടാണ് നിങ്ങൾ ആരംഭിക്കുന്നത്. ഇതിൽ മുൻample, GPIO 4.സജ്ജീകരണത്തിൽ(), 115200 എന്ന ബാഡ് നിരക്കിൽ ഒരു സീരിയൽ ആശയവിനിമയം ആരംഭിക്കുക.
ലൂപ്പിൽ(), potPin-ൽ നിന്നുള്ള അനലോഗ് ഇൻപുട്ട് വായിക്കാൻ അനലോഗ് റീഡ്() ഫംഗ്ഷൻ ഉപയോഗിക്കുക.
അവസാനമായി, സീരിയൽ മോണിറ്ററിലെ പൊട്ടൻഷിയോമീറ്ററിൽ നിന്ന് വായിച്ച മൂല്യങ്ങൾ പ്രിൻ്റ് ചെയ്യുക.
നൽകിയിരിക്കുന്ന കോഡ് നിങ്ങളുടെ ESP32-ലേക്ക് അപ്ലോഡ് ചെയ്യുക. ടൂൾസ് മെനുവിൽ നിങ്ങൾക്ക് ശരിയായ ബോർഡും COM പോർട്ടും തിരഞ്ഞെടുത്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക.
എക്സിയെ പരീക്ഷിക്കുന്നുample
കോഡ് അപ്ലോഡ് ചെയ്ത് ESP32 റീസെറ്റ് ബട്ടൺ അമർത്തിയാൽ, 115200 എന്ന ബോഡ് നിരക്കിൽ സീരിയൽ മോണിറ്റർ തുറക്കുക. പൊട്ടൻഷിയോമീറ്റർ തിരിക്കുക, മൂല്യങ്ങൾ മാറുന്നത് കാണുക.നിങ്ങൾക്ക് ലഭിക്കുന്ന പരമാവധി മൂല്യം 4095 ഉം കുറഞ്ഞ മൂല്യം 0 ഉം ആണ്.
പൊതിയുന്നു
Arduino IDE ഉപയോഗിച്ച് ESP32 ഉപയോഗിച്ച് അനലോഗ് ഇൻപുട്ടുകൾ എങ്ങനെ വായിക്കാമെന്ന് ഈ ലേഖനത്തിൽ നിങ്ങൾ പഠിച്ചു. ചുരുക്കത്തിൽ:
- ESP32 DEVKIT V1 DOIT ബോർഡിൽ (30 പിന്നുകളുള്ള പതിപ്പ്) നിങ്ങൾക്ക് അനലോഗ് ഇൻപുട്ടുകൾ വായിക്കാൻ ഉപയോഗിക്കാവുന്ന 15 ADC പിന്നുകൾ ഉണ്ട്.
- ഈ പിന്നുകൾക്ക് 12 ബിറ്റുകളുടെ റെസലൂഷൻ ഉണ്ട്, അതായത് നിങ്ങൾക്ക് 0 മുതൽ 4095 വരെയുള്ള മൂല്യങ്ങൾ ലഭിക്കും.
- Arduino IDE-യിൽ ഒരു മൂല്യം വായിക്കാൻ, നിങ്ങൾ അനലോഗ് റീഡ്() ഫംഗ്ഷൻ ഉപയോഗിക്കുക.
- ESP32 ADC പിന്നുകൾക്ക് ഒരു രേഖീയ സ്വഭാവമില്ല. നിങ്ങൾക്ക് ഒരുപക്ഷേ 0-നും 0.1V-നും ഇടയിൽ അല്ലെങ്കിൽ 3.2-നും 3.3V-നും ഇടയിൽ വേർതിരിക്കാൻ കഴിഞ്ഞേക്കില്ല. ADC പിൻസ് ഉപയോഗിക്കുമ്പോൾ നിങ്ങൾ അത് മനസ്സിൽ സൂക്ഷിക്കേണ്ടതുണ്ട്.
പ്രോജക്റ്റ് 3 ESP32 PWM(അനലോഗ് ഔട്ട്പുട്ട്)
Arduino IDE ഉപയോഗിച്ച് ESP32 ഉപയോഗിച്ച് PWM സിഗ്നലുകൾ സൃഷ്ടിക്കുന്നത് എങ്ങനെയെന്ന് ഈ ട്യൂട്ടോറിയലിൽ ഞങ്ങൾ കാണിച്ചുതരാം. ഒരു മുൻ എന്ന നിലയിൽampESP32 ൻ്റെ LED PWM കൺട്രോളർ ഉപയോഗിച്ച് എൽഇഡിയെ മങ്ങിക്കുന്ന ഒരു ലളിതമായ സർക്യൂട്ട് ഞങ്ങൾ നിർമ്മിക്കും.ESP32 LED PWM കൺട്രോളർ
ESP32 ന് 16 സ്വതന്ത്ര ചാനലുകളുള്ള ഒരു LED PWM കൺട്രോളർ ഉണ്ട്, അത് വ്യത്യസ്ത ഗുണങ്ങളുള്ള PWM സിഗ്നലുകൾ സൃഷ്ടിക്കുന്നതിന് ക്രമീകരിക്കാൻ കഴിയും.
Arduino IDE ഉപയോഗിച്ച് PWM ഉപയോഗിച്ച് ഒരു LED മങ്ങിക്കാൻ നിങ്ങൾ പിന്തുടരേണ്ട ഘട്ടങ്ങൾ ഇതാ:
- ആദ്യം, നിങ്ങൾ ഒരു PWM ചാനൽ തിരഞ്ഞെടുക്കേണ്ടതുണ്ട്. 16 മുതൽ 0 വരെ 15 ചാനലുകളുണ്ട്.
- അതിനുശേഷം, നിങ്ങൾ PWM സിഗ്നൽ ഫ്രീക്വൻസി സജ്ജമാക്കേണ്ടതുണ്ട്. എൽഇഡിക്ക്, 5000 ഹെർട്സ് ആവൃത്തി ഉപയോഗിക്കുന്നത് നല്ലതാണ്.
- നിങ്ങൾ സിഗ്നലിൻ്റെ ഡ്യൂട്ടി സൈക്കിൾ റെസല്യൂഷനും സജ്ജീകരിക്കേണ്ടതുണ്ട്: നിങ്ങൾക്ക് 1 മുതൽ 16 ബിറ്റുകൾ വരെയുള്ള റെസല്യൂഷനുകൾ ഉണ്ട്. ഞങ്ങൾ 8-ബിറ്റ് റെസല്യൂഷൻ ഉപയോഗിക്കും, അതായത് 0 മുതൽ 255 വരെയുള്ള മൂല്യം ഉപയോഗിച്ച് നിങ്ങൾക്ക് LED തെളിച്ചം നിയന്ത്രിക്കാനാകും.
- അടുത്തതായി, ഏത് GPIO അല്ലെങ്കിൽ GPIO-കളിൽ സിഗ്നൽ ദൃശ്യമാകുമെന്ന് നിങ്ങൾ വ്യക്തമാക്കേണ്ടതുണ്ട്. അതിനായി നിങ്ങൾ ഇനിപ്പറയുന്ന ഫംഗ്ഷൻ ഉപയോഗിക്കും:
ledcAttachPin (GPIO, ചാനൽ)
ഈ ഫംഗ്ഷൻ രണ്ട് ആർഗ്യുമെൻ്റുകൾ അംഗീകരിക്കുന്നു. ആദ്യത്തേത് സിഗ്നൽ ഔട്ട്പുട്ട് ചെയ്യുന്ന GPIO ആണ്, രണ്ടാമത്തേത് സിഗ്നൽ സൃഷ്ടിക്കുന്ന ചാനലാണ്. - അവസാനമായി, PWM ഉപയോഗിച്ച് LED തെളിച്ചം നിയന്ത്രിക്കുന്നതിന്, നിങ്ങൾ ഇനിപ്പറയുന്ന പ്രവർത്തനം ഉപയോഗിക്കുന്നു:
ledcWrite (ചാനൽ, ഡ്യൂട്ടിസൈക്കിൾ)
PWM സിഗ്നൽ സൃഷ്ടിക്കുന്ന ചാനലിനെയും ഡ്യൂട്ടി സൈക്കിളിനെയും ഈ ഫംഗ്ഷൻ ആർഗ്യുമെൻ്റുകളായി സ്വീകരിക്കുന്നു.
ആവശ്യമായ ഭാഗങ്ങൾ
ഈ ട്യൂട്ടോറിയൽ പിന്തുടരുന്നതിന് നിങ്ങൾക്ക് ഈ ഭാഗങ്ങൾ ആവശ്യമാണ്:
- ESP32 DEVKIT V1 ബോർഡ്
- 5 എംഎം എൽഇഡി
- 220 ഓം റെസിസ്റ്റർ
- ബ്രെഡ്ബോർഡ്
- ജമ്പർ വയറുകൾ
സ്കീമാറ്റിക്
ഇനിപ്പറയുന്ന സ്കീമാറ്റിക് ഡയഗ്രാമിലെ പോലെ നിങ്ങളുടെ ESP32-ലേക്ക് ഒരു LED വയർ ചെയ്യുക. എൽഇഡി ജിപിഐഒയുമായി ബന്ധിപ്പിച്ചിരിക്കണം 4.കുറിപ്പ്: ഒരു ഔട്ട്പുട്ടായി പ്രവർത്തിക്കാൻ കഴിയുന്നിടത്തോളം, നിങ്ങൾക്ക് ആവശ്യമുള്ള ഏത് പിൻ ഉപയോഗിക്കാം. ഔട്ട്പുട്ടുകളായി പ്രവർത്തിക്കാൻ കഴിയുന്ന എല്ലാ പിന്നുകളും PWM പിൻ ആയി ഉപയോഗിക്കാം. ESP32 GPIO-കളെ കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾക്ക്, വായിക്കുക: ESP32 പിൻഔട്ട് റഫറൻസ്: ഏത് GPIO പിന്നുകളാണ് നിങ്ങൾ ഉപയോഗിക്കേണ്ടത്?
കോഡ്
Arduino IDE ഉപയോഗിച്ച് ഞങ്ങൾ ESP32 പ്രോഗ്രാം ചെയ്യും, അതിനാൽ തുടരുന്നതിന് മുമ്പ് ESP32 ആഡ്-ഓൺ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക:(നിങ്ങൾ ഇതിനകം ഈ ഘട്ടം ചെയ്തിട്ടുണ്ടെങ്കിൽ, നിങ്ങൾക്ക് അടുത്ത ഘട്ടത്തിലേക്ക് പോകാം.)
Arduino IDE-യിൽ ESP32 ആഡ്-ഓൺ ഇൻസ്റ്റാൾ ചെയ്യുന്നു
arduino IDE-യിൽ Project_3_ESP32_PWM.ino എന്ന കോഡ് തുറക്കുകഎൽഇഡി ഘടിപ്പിച്ചിരിക്കുന്ന പിൻ നിർവ്വചിച്ചുകൊണ്ട് നിങ്ങൾ ആരംഭിക്കുക. ഈ സാഹചര്യത്തിൽ, LED GPIO 4-ൽ ഘടിപ്പിച്ചിരിക്കുന്നു.
തുടർന്ന്, നിങ്ങൾ PWM സിഗ്നൽ പ്രോപ്പർട്ടികൾ സജ്ജമാക്കുക. നിങ്ങൾ 5000 Hz ആവൃത്തി നിർവചിക്കുക, സിഗ്നൽ സൃഷ്ടിക്കാൻ ചാനൽ 0 തിരഞ്ഞെടുക്കുക, കൂടാതെ 8 ബിറ്റുകളുടെ റെസലൂഷൻ സജ്ജമാക്കുക. വ്യത്യസ്ത PWM സിഗ്നലുകൾ സൃഷ്ടിക്കാൻ ഇവയിൽ നിന്ന് വ്യത്യസ്തമായ മറ്റ് പ്രോപ്പർട്ടികൾ നിങ്ങൾക്ക് തിരഞ്ഞെടുക്കാം.
സജ്ജീകരണത്തിൽ(), ഇനിപ്പറയുന്ന രീതിയിൽ ആർഗ്യുമെൻ്റുകളായി അംഗീകരിക്കുന്ന ledcSetup() ഫംഗ്ഷൻ ഉപയോഗിച്ച് നിങ്ങൾ നേരത്തെ നിർവചിച്ച പ്രോപ്പർട്ടികൾ ഉപയോഗിച്ച് LED PWM കോൺഫിഗർ ചെയ്യേണ്ടതുണ്ട്:
അടുത്തതായി, നിങ്ങൾക്ക് സിഗ്നൽ ലഭിക്കുന്ന GPIO തിരഞ്ഞെടുക്കേണ്ടതുണ്ട്. അതിനായി ledcAttachPin() ഫംഗ്ഷൻ ഉപയോഗിക്കുക, അത് നിങ്ങൾക്ക് സിഗ്നൽ ലഭിക്കാൻ ആഗ്രഹിക്കുന്ന GPIO യും സിഗ്നൽ സൃഷ്ടിക്കുന്ന ചാനലും ആർഗ്യുമെൻ്റായി സ്വീകരിക്കുന്നു. ഇതിൽ മുൻampലെ, നമുക്ക് ledPin GPIO-ൽ സിഗ്നൽ ലഭിക്കും, അത് GPIO 4-ന് സമാനമാണ്. സിഗ്നൽ സൃഷ്ടിക്കുന്ന ചാനൽ ledChannel ആണ്, അത് ചാനൽ 0-ന് സമാനമാണ്.
ലൂപ്പിൽ, LED തെളിച്ചം വർദ്ധിപ്പിക്കുന്നതിന് നിങ്ങൾ ഡ്യൂട്ടി സൈക്കിൾ 0 നും 255 നും ഇടയിൽ വ്യത്യാസപ്പെടുത്തും.
തുടർന്ന്, തെളിച്ചം കുറയ്ക്കുന്നതിന് 255 നും 0 നും ഇടയിൽ.
എൽഇഡിയുടെ തെളിച്ചം സജ്ജീകരിക്കാൻ, സിഗ്നൽ സൃഷ്ടിക്കുന്ന ചാനലിനെയും ഡ്യൂട്ടി സൈക്കിളിനെയും ആർഗ്യുമെൻ്റായി സ്വീകരിക്കുന്ന ledcWrite() ഫംഗ്ഷൻ നിങ്ങൾ ഉപയോഗിക്കേണ്ടതുണ്ട്.
ഞങ്ങൾ 8-ബിറ്റ് റെസലൂഷൻ ഉപയോഗിക്കുന്നതിനാൽ, ഡ്യൂട്ടി സൈക്കിൾ നിയന്ത്രിക്കുന്നത് 0 മുതൽ 255 വരെയുള്ള മൂല്യം ഉപയോഗിച്ചാണ്. ledcWrite() ഫംഗ്ഷനിൽ നമ്മൾ സിഗ്നൽ സൃഷ്ടിക്കുന്ന ചാനലാണ് ഉപയോഗിക്കുന്നത്, GPIO അല്ല.
എക്സിയെ പരീക്ഷിക്കുന്നുample
നിങ്ങളുടെ ESP32-ലേക്ക് കോഡ് അപ്ലോഡ് ചെയ്യുക. നിങ്ങൾക്ക് ശരിയായ ബോർഡും COM പോർട്ടും തിരഞ്ഞെടുത്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക. നിങ്ങളുടെ സർക്യൂട്ട് നോക്കൂ. നിങ്ങൾക്ക് തെളിച്ചം കൂട്ടുകയും കുറയ്ക്കുകയും ചെയ്യുന്ന മങ്ങിയ LED ഉണ്ടായിരിക്കണം.
പ്രോജക്റ്റ് 4 ESP32 PIR മോഷൻ സെൻസർ
PIR മോഷൻ സെൻസർ ഉപയോഗിച്ച് ESP32 ഉപയോഗിച്ച് ചലനം കണ്ടെത്തുന്നത് എങ്ങനെയെന്ന് ഈ പ്രോജക്റ്റ് കാണിക്കുന്നു. ചലനം കണ്ടെത്തുമ്പോൾ ബസർ ഒരു അലാറം മുഴക്കും, കൂടാതെ മുൻകൂട്ടി നിശ്ചയിച്ച സമയത്തേക്ക് (4 സെക്കൻഡ് പോലെ) ചലനമൊന്നും കണ്ടെത്താനാകാത്തപ്പോൾ അലാറം നിർത്തും.
HC-SR501 മോഷൻ സെൻസർ എങ്ങനെ പ്രവർത്തിക്കുന്നു
.HC-SR501 സെൻസറിൻ്റെ പ്രവർത്തന തത്വം ചലിക്കുന്ന വസ്തുവിലെ ഇൻഫ്രാറെഡ് വികിരണത്തിൻ്റെ മാറ്റത്തെ അടിസ്ഥാനമാക്കിയുള്ളതാണ്. HC-SR501 സെൻസർ കണ്ടുപിടിക്കാൻ, ഒബ്ജക്റ്റ് രണ്ട് ആവശ്യകതകൾ പാലിക്കണം:
- വസ്തു ഇൻഫ്രാറെഡ് വഴി പുറപ്പെടുവിക്കുന്നു.
- വസ്തു ചലിക്കുകയോ കുലുങ്ങുകയോ ചെയ്യുന്നു
അതിനാൽ:
ഒരു വസ്തു ഇൻഫ്രാറെഡ് കിരണങ്ങൾ പുറപ്പെടുവിക്കുന്നുണ്ടെങ്കിലും ചലിക്കുന്നില്ലെങ്കിൽ (ഉദാ, ഒരു വ്യക്തി ചലിക്കാതെ നിശ്ചലമായി നിൽക്കുന്നു), സെൻസർ അത് കണ്ടെത്തുന്നില്ല.
ഒരു വസ്തു ചലിക്കുന്നുണ്ടെങ്കിലും ഇൻഫ്രാറെഡ് കിരണങ്ങൾ പുറപ്പെടുവിക്കുന്നില്ലെങ്കിൽ (ഉദാ, റോബോട്ട് അല്ലെങ്കിൽ വാഹനം), സെൻസർ അത് കണ്ടെത്തുകയില്ല.
ടൈമറുകൾ അവതരിപ്പിക്കുന്നു
ഇതിൽ മുൻampഞങ്ങൾ ടൈമറുകളും അവതരിപ്പിക്കും. ചലനം കണ്ടെത്തിയതിന് ശേഷവും മുൻകൂട്ടി നിശ്ചയിച്ചിട്ടുള്ള ഒരു സെക്കൻഡ് നേരത്തേക്ക് LED നിലനിൽക്കണമെന്ന് ഞങ്ങൾ ആഗ്രഹിക്കുന്നു. നിങ്ങളുടെ കോഡ് തടയുന്ന ഒരു കാലതാമസം() ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നതിനുപകരം, നിർണ്ണയിച്ച സെക്കൻഡുകൾക്കുള്ളിൽ മറ്റെന്തെങ്കിലും ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കില്ല, ഞങ്ങൾ ഒരു ടൈമർ ഉപയോഗിക്കണം.കാലതാമസം() ഫംഗ്ഷൻ
വ്യാപകമായി ഉപയോഗിക്കപ്പെടുന്ന കാലതാമസം() ഫംഗ്ഷൻ നിങ്ങൾക്ക് പരിചിതമായിരിക്കണം. ഈ പ്രവർത്തനം ഉപയോഗിക്കാൻ വളരെ ലളിതമാണ്. ഇത് ഒരു സംഖ്യാ സംഖ്യയെ ഒരു ആർഗ്യുമെൻ്റായി സ്വീകരിക്കുന്നു.
കോഡിൻ്റെ അടുത്ത വരിയിലേക്ക് പോകുന്നതുവരെ പ്രോഗ്രാം കാത്തിരിക്കേണ്ട മില്ലിസെക്കൻഡിലെ സമയത്തെ ഈ നമ്പർ പ്രതിനിധീകരിക്കുന്നു.നിങ്ങൾ കാലതാമസം വരുത്തുമ്പോൾ (1000) നിങ്ങളുടെ പ്രോഗ്രാം ആ ലൈനിൽ 1 സെക്കൻഡ് നിർത്തുന്നു.
delay() എന്നത് ഒരു തടയൽ പ്രവർത്തനമാണ്. തടയൽ ഫംഗ്ഷനുകൾ ഒരു പ്രോഗ്രാമിനെ ആ പ്രത്യേക ടാസ്ക് പൂർത്തിയാകുന്നതുവരെ മറ്റെന്തെങ്കിലും ചെയ്യുന്നതിൽ നിന്ന് തടയുന്നു. നിങ്ങൾക്ക് ഒരേ സമയം ഒന്നിലധികം ടാസ്ക്കുകൾ ആവശ്യമുണ്ടെങ്കിൽ, നിങ്ങൾക്ക് കാലതാമസം () ഉപയോഗിക്കാൻ കഴിയില്ല.
മിക്ക പ്രോജക്റ്റുകൾക്കും നിങ്ങൾ കാലതാമസം ഒഴിവാക്കുകയും പകരം ടൈമറുകൾ ഉപയോഗിക്കുകയും വേണം.
മില്ലിസ്() പ്രവർത്തനം
millis() എന്ന ഫംഗ്ഷൻ ഉപയോഗിച്ച്, പ്രോഗ്രാം ആദ്യം ആരംഭിച്ചതിന് ശേഷം കടന്നുപോയ മില്ലിസെക്കൻഡുകളുടെ എണ്ണം നിങ്ങൾക്ക് തിരികെ നൽകാം.എന്തുകൊണ്ടാണ് ആ പ്രവർത്തനം ഉപയോഗപ്രദമാകുന്നത്? കാരണം ചില കണക്കുകൾ ഉപയോഗിച്ച്, നിങ്ങളുടെ കോഡ് തടയാതെ തന്നെ എത്ര സമയം കടന്നുപോയി എന്ന് നിങ്ങൾക്ക് എളുപ്പത്തിൽ പരിശോധിക്കാനാകും.
ആവശ്യമായ ഭാഗങ്ങൾ
ഈ ട്യൂട്ടോറിയൽ പിന്തുടരുന്നതിന് നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന ഭാഗങ്ങൾ ആവശ്യമാണ്
- ESP32 DEVKIT V1 ബോർഡ്
- PIR മോഷൻ സെൻസർ (HC-SR501)
- സജീവ ബസർ
- ജമ്പർ വയറുകൾ
- ബ്രെഡ്ബോർഡ്
സ്കീമാറ്റിക്കുറിപ്പ്: പ്രവർത്തിക്കുന്ന വോള്യംtagHC-SR501 ൻ്റെ e 5V ആണ്. ഇത് പവർ ചെയ്യാൻ വിൻ പിൻ ഉപയോഗിക്കുക.
കോഡ്
ഈ ട്യൂട്ടോറിയലുമായി മുന്നോട്ട് പോകുന്നതിന് മുമ്പ് നിങ്ങളുടെ Arduino IDE-യിൽ ESP32 ആഡ്-ഓൺ ഇൻസ്റ്റാൾ ചെയ്തിരിക്കണം. Arduino IDE-യിൽ ESP32 ഇൻസ്റ്റാൾ ചെയ്യാൻ ഇനിപ്പറയുന്ന ട്യൂട്ടോറിയലുകളിൽ ഒന്ന് പിന്തുടരുക, നിങ്ങൾ ഇതിനകം ചെയ്തിട്ടില്ലെങ്കിൽ. (നിങ്ങൾ ഇതിനകം ഈ ഘട്ടം ചെയ്തിട്ടുണ്ടെങ്കിൽ, നിങ്ങൾക്ക് അടുത്ത ഘട്ടത്തിലേക്ക് പോകാം.)
Arduino IDE-യിൽ ESP32 ആഡ്-ഓൺ ഇൻസ്റ്റാൾ ചെയ്യുന്നു
arduino IDE-യിൽ Project_4_ESP32_PIR_Motion_Sensor.ino എന്ന കോഡ് തുറക്കുക.
പ്രകടനം
നിങ്ങളുടെ ESP32 ബോർഡിലേക്ക് കോഡ് അപ്ലോഡ് ചെയ്യുക. നിങ്ങൾക്ക് ശരിയായ ബോർഡും COM പോർട്ടും തിരഞ്ഞെടുത്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക. കോഡ് റഫറൻസ് ഘട്ടങ്ങൾ അപ്ലോഡ് ചെയ്യുക.
115200 എന്ന ബാഡ് നിരക്കിൽ സീരിയൽ മോണിറ്റർ തുറക്കുക.PIR സെൻസറിന് മുന്നിൽ നിങ്ങളുടെ കൈ നീക്കുക. ബസർ ഓണാക്കണം, "മോഷൻ കണ്ടെത്തി! ബസർ അലാറം" എന്ന് സീരിയൽ മോണിറ്ററിൽ സന്ദേശം പ്രിൻ്റ് ചെയ്യുന്നു.
4 സെക്കൻഡിന് ശേഷം ബസർ ഓഫ് ചെയ്യണം.
പ്രോജക്റ്റ് 5 ESP32 സ്വിച്ച് Web സെർവർ
ഈ പ്രോജക്റ്റിൽ നിങ്ങൾ ഒരു ഒറ്റയ്ക്ക് സൃഷ്ടിക്കും web Arduino IDE പ്രോഗ്രാമിംഗ് എൻവയോൺമെൻ്റ് ഉപയോഗിച്ച് ഔട്ട്പുട്ടുകൾ (രണ്ട് LED-കൾ) നിയന്ത്രിക്കുന്ന ESP32 ഉള്ള സെർവർ. ദി web സെർവർ മൊബൈൽ റെസ്പോൺസീവ് ആണ് കൂടാതെ ലോക്കൽ നെറ്റ്വർക്കിലെ ബ്രൗസറായി ഏത് ഉപകരണത്തിലൂടെയും ആക്സസ് ചെയ്യാൻ കഴിയും. എങ്ങനെ സൃഷ്ടിക്കാമെന്ന് ഞങ്ങൾ കാണിച്ചുതരാം web സെർവറും കോഡ് എങ്ങനെ പടിപടിയായി പ്രവർത്തിക്കുന്നു.
പ്രൊജക്റ്റ് ഓവർview
പ്രോജക്റ്റിലേക്ക് നേരിട്ട് പോകുന്നതിന് മുമ്പ്, നമ്മുടേത് എന്താണെന്ന് രൂപരേഖ തയ്യാറാക്കേണ്ടത് പ്രധാനമാണ് web സെർവർ ചെയ്യും, അതിനാൽ പിന്നീട് ഘട്ടങ്ങൾ പിന്തുടരുന്നത് എളുപ്പമാകും.
- ദി web ESP32 GPIO 26, GPIO 27 എന്നിവയുമായി ബന്ധിപ്പിച്ചിട്ടുള്ള രണ്ട് LED-കൾ നിങ്ങൾ നിർമ്മിക്കുന്ന സെർവർ നിയന്ത്രണങ്ങൾ;
- നിങ്ങൾക്ക് ESP32 ആക്സസ് ചെയ്യാൻ കഴിയും web ലോക്കൽ നെറ്റ്വർക്കിലെ ബ്രൗസറിൽ ESP32 IP വിലാസം ടൈപ്പ് ചെയ്തുകൊണ്ട് സെർവർ;
- നിങ്ങളുടെ ബട്ടണുകളിൽ ക്ലിക്കുചെയ്യുന്നതിലൂടെ web സെർവർ നിങ്ങൾക്ക് ഓരോ എൽഇഡിയുടെയും അവസ്ഥ തൽക്ഷണം മാറ്റാൻ കഴിയും.
ആവശ്യമായ ഭാഗങ്ങൾ
ഈ ട്യൂട്ടോറിയലിനായി നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന ഭാഗങ്ങൾ ആവശ്യമാണ്:
- ESP32 DEVKIT V1 ബോർഡ്
- 2x 5mm LED
- 2x 200 ഓം റെസിസ്റ്റർ
- ബ്രെഡ്ബോർഡ്
- ജമ്പർ വയറുകൾ
സ്കീമാറ്റിക്
സർക്യൂട്ട് നിർമ്മിക്കുന്നതിലൂടെ ആരംഭിക്കുക. ഇനിപ്പറയുന്ന സ്കീമാറ്റിക് ഡയഗ്രാമിൽ കാണിച്ചിരിക്കുന്നതുപോലെ ESP32-ലേക്ക് രണ്ട് LED-കൾ ബന്ധിപ്പിക്കുക - ഒരു LED GPIO 26-ലേക്ക് കണക്റ്റ് ചെയ്തിരിക്കുന്നു, മറ്റൊന്ന് GPIO 27-ലേക്ക്.
കുറിപ്പ്: ഞങ്ങൾ 32 പിന്നുകളുള്ള ESP36 DEVKIT DOIT ബോർഡ് ഉപയോഗിക്കുന്നു. സർക്യൂട്ട് കൂട്ടിച്ചേർക്കുന്നതിന് മുമ്പ്, നിങ്ങൾ ഉപയോഗിക്കുന്ന ബോർഡിൻ്റെ പിൻഔട്ട് പരിശോധിച്ചുവെന്ന് ഉറപ്പാക്കുക.കോഡ്
ESP32 സൃഷ്ടിക്കുന്ന കോഡ് ഞങ്ങൾ ഇവിടെ നൽകുന്നു web സെർവർ. Project_5_ESP32_Switch_ എന്ന കോഡ് തുറക്കുകWeb_Server.ino arduino IDE-ൽ, പക്ഷേ ഇതുവരെ അപ്ലോഡ് ചെയ്യരുത്. ഇത് നിങ്ങൾക്കായി പ്രവർത്തിക്കുന്നതിന് നിങ്ങൾ ചില മാറ്റങ്ങൾ വരുത്തേണ്ടതുണ്ട്.
Arduino IDE ഉപയോഗിച്ച് ഞങ്ങൾ ESP32 പ്രോഗ്രാം ചെയ്യും, അതിനാൽ തുടരുന്നതിന് മുമ്പ് ESP32 ആഡ്-ഓൺ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക:(നിങ്ങൾ ഇതിനകം ഈ ഘട്ടം ചെയ്തിട്ടുണ്ടെങ്കിൽ, നിങ്ങൾക്ക് അടുത്ത ഘട്ടത്തിലേക്ക് പോകാം.)
Arduino IDE-യിൽ ESP32 ആഡ്-ഓൺ ഇൻസ്റ്റാൾ ചെയ്യുന്നു
നിങ്ങളുടെ നെറ്റ്വർക്ക് ക്രെഡൻഷ്യലുകൾ ക്രമീകരിക്കുന്നു
നിങ്ങളുടെ നെറ്റ്വർക്ക് ക്രെഡൻഷ്യലുകൾ ഉപയോഗിച്ച് ഇനിപ്പറയുന്ന വരികൾ പരിഷ്ക്കരിക്കേണ്ടതുണ്ട്: SSID, പാസ്വേഡ്. നിങ്ങൾ എവിടെയാണ് മാറ്റങ്ങൾ വരുത്തേണ്ടതെന്ന് കോഡ് നന്നായി അഭിപ്രായപ്പെടുന്നു.കോഡ് അപ്ലോഡ് ചെയ്യുന്നു
ഇപ്പോൾ, നിങ്ങൾക്ക് കോഡ് അപ്ലോഡ് ചെയ്യാം web സെർവർ ഉടൻ പ്രവർത്തിക്കും.
ESP32-ലേക്ക് കോഡ് അപ്ലോഡ് ചെയ്യുന്നതിന് അടുത്ത ഘട്ടങ്ങൾ പാലിക്കുക:
- നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ ESP32 ബോർഡ് പ്ലഗ് ചെയ്യുക;
- Arduino IDE-ൽ ടൂൾസ് > ബോർഡിൽ നിങ്ങളുടെ ബോർഡ് തിരഞ്ഞെടുക്കുക (ഞങ്ങളുടെ കാര്യത്തിൽ ഞങ്ങൾ ESP32 DEVKIT DOIT ബോർഡാണ് ഉപയോഗിക്കുന്നത്);
- ടൂളുകൾ > പോർട്ട് എന്നതിൽ COM പോർട്ട് തിരഞ്ഞെടുക്കുക.
- Arduino IDE-യിലെ അപ്ലോഡ് ബട്ടൺ അമർത്തി, കോഡ് കംപൈൽ ചെയ്ത് നിങ്ങളുടെ ബോർഡിലേക്ക് അപ്ലോഡ് ചെയ്യുമ്പോൾ കുറച്ച് നിമിഷങ്ങൾ കാത്തിരിക്കുക.
- "അപ്ലോഡിംഗ് പൂർത്തിയായി" എന്ന സന്ദേശത്തിനായി കാത്തിരിക്കുക.
ESP IP വിലാസം കണ്ടെത്തുന്നു
കോഡ് അപ്ലോഡ് ചെയ്ത ശേഷം, 115200 എന്ന ബാഡ് നിരക്കിൽ സീരിയൽ മോണിറ്റർ തുറക്കുക.ESP32 EN ബട്ടൺ അമർത്തുക (പുനഃസജ്ജമാക്കുക). ESP32 Wi-Fi-ലേക്ക് കണക്റ്റുചെയ്യുന്നു, സീരിയൽ മോണിറ്ററിൽ ESP IP വിലാസം ഔട്ട്പുട്ട് ചെയ്യുന്നു. ആ IP വിലാസം പകർത്തുക, കാരണം നിങ്ങൾക്ക് ESP32 ആക്സസ് ചെയ്യാൻ അത് ആവശ്യമാണ് web സെർവർ.
ആക്സസ് ചെയ്യുന്നു Web സെർവർ
ആക്സസ് ചെയ്യാൻ web സെർവർ, നിങ്ങളുടെ ബ്രൗസർ തുറക്കുക, ESP32 IP വിലാസം ഒട്ടിക്കുക, നിങ്ങൾ ഇനിപ്പറയുന്ന പേജ് കാണും.
കുറിപ്പ്: നിങ്ങളുടെ ബ്രൗസറും ESP32 ഉം ഒരേ LAN-ലേക്ക് കണക്റ്റ് ചെയ്യണം.നിങ്ങൾ സീരിയൽ മോണിറ്ററിലേക്ക് നോക്കിയാൽ, പശ്ചാത്തലത്തിൽ എന്താണ് സംഭവിക്കുന്നതെന്ന് നിങ്ങൾക്ക് കാണാൻ കഴിയും. ESP-ന് ഒരു പുതിയ ക്ലയൻ്റിൽ നിന്ന് ഒരു HTTP അഭ്യർത്ഥന ലഭിക്കുന്നു (ഈ സാഹചര്യത്തിൽ, നിങ്ങളുടെ ബ്രൗസർ).
HTTP അഭ്യർത്ഥനയെക്കുറിച്ചുള്ള മറ്റ് വിവരങ്ങളും നിങ്ങൾക്ക് കാണാൻ കഴിയും.
പ്രകടനം
നിങ്ങളുടേതാണോ എന്ന് ഇപ്പോൾ നിങ്ങൾക്ക് പരിശോധിക്കാം web സെർവർ ശരിയായി പ്രവർത്തിക്കുന്നു. LED-കൾ നിയന്ത്രിക്കാൻ ബട്ടണുകളിൽ ക്ലിക്ക് ചെയ്യുക.അതേ സമയം, പശ്ചാത്തലത്തിൽ എന്താണ് സംഭവിക്കുന്നതെന്ന് കാണാൻ നിങ്ങൾക്ക് സീരിയൽ മോണിറ്ററിലേക്ക് നോക്കാം. ഉദാample, GPIO 26 ഓണാക്കാൻ നിങ്ങൾ ബട്ടണിൽ ക്ലിക്ക് ചെയ്യുമ്പോൾ, ESP32-ന് /26/on എന്നതിൽ ഒരു അഭ്യർത്ഥന ലഭിക്കും. URL.
ESP32-ന് ആ അഭ്യർത്ഥന ലഭിക്കുമ്പോൾ, അത് GPIO 26-ൽ ഘടിപ്പിച്ചിരിക്കുന്ന LED-നെ ഓണാക്കി അതിൻ്റെ അവസ്ഥ അപ്ഡേറ്റ് ചെയ്യുന്നു web പേജ്.
GPIO 27-നുള്ള ബട്ടൺ സമാനമായ രീതിയിൽ പ്രവർത്തിക്കുന്നു. ഇത് ശരിയായി പ്രവർത്തിക്കുന്നുണ്ടോയെന്ന് പരിശോധിക്കുക.
കോഡ് എങ്ങനെ പ്രവർത്തിക്കുന്നു
ഈ വിഭാഗത്തിൽ കോഡ് എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്ന് കാണുന്നതിന് അത് സൂക്ഷ്മമായി പരിശോധിക്കും.
നിങ്ങൾ ആദ്യം ചെയ്യേണ്ടത് വൈഫൈ ലൈബ്രറി ഉൾപ്പെടുത്തുക എന്നതാണ്.മുമ്പ് സൂചിപ്പിച്ചതുപോലെ, ഇരട്ട ഉദ്ധരണികൾക്കുള്ളിൽ ഇനിപ്പറയുന്ന വരികളിൽ നിങ്ങളുടെ ssid ഉം പാസ്വേഡും ചേർക്കേണ്ടതുണ്ട്.
തുടർന്ന്, നിങ്ങളുടെ സെറ്റ് web പോർട്ട് 80-ലേക്ക് സെർവർ.
HTTP അഭ്യർത്ഥനയുടെ തലക്കെട്ട് സംഭരിക്കുന്നതിന് ഇനിപ്പറയുന്ന വരി ഒരു വേരിയബിൾ സൃഷ്ടിക്കുന്നു:
അടുത്തതായി, നിങ്ങളുടെ ഔട്ട്പുട്ടുകളുടെ നിലവിലെ അവസ്ഥ സംഭരിക്കുന്നതിന് നിങ്ങൾ സഹായ വേരിയബിളുകൾ സൃഷ്ടിക്കുന്നു. നിങ്ങൾക്ക് കൂടുതൽ ഔട്ട്പുട്ടുകൾ ചേർക്കുകയും അതിൻ്റെ അവസ്ഥ സംരക്ഷിക്കുകയും ചെയ്യണമെങ്കിൽ, നിങ്ങൾ കൂടുതൽ വേരിയബിളുകൾ സൃഷ്ടിക്കേണ്ടതുണ്ട്.
നിങ്ങളുടെ ഓരോ ഔട്ട്പുട്ടുകൾക്കും നിങ്ങൾ ഒരു GPIO നൽകേണ്ടതുണ്ട്. ഇവിടെ ഞങ്ങൾ GPIO 26, GPIO 27 എന്നിവ ഉപയോഗിക്കുന്നു. നിങ്ങൾക്ക് അനുയോജ്യമായ മറ്റേതെങ്കിലും GPIO-കൾ ഉപയോഗിക്കാം.
സജ്ജമാക്കുക()
ഇപ്പോൾ, നമുക്ക് സജ്ജീകരണത്തിലേക്ക് പോകാം (). ആദ്യം, ഡീബഗ്ഗിംഗ് ആവശ്യങ്ങൾക്കായി ഞങ്ങൾ 115200 എന്ന ബാഡ് നിരക്കിൽ ഒരു സീരിയൽ ആശയവിനിമയം ആരംഭിക്കുന്നു.നിങ്ങളുടെ GPIO-കൾ OUTPUT-കൾ ആയി നിർവ്വചിക്കുകയും അവയെ LOW ആയി സജ്ജമാക്കുകയും ചെയ്യുക.
ഇനിപ്പറയുന്ന വരികൾ WiFi.begin (ssid, പാസ്വേഡ്) ഉപയോഗിച്ച് Wi-Fi കണക്ഷൻ ആരംഭിക്കുന്നു, വിജയകരമായ ഒരു കണക്ഷനായി കാത്തിരിക്കുക, സീരിയൽ മോണിറ്ററിൽ ESP IP വിലാസം പ്രിൻ്റ് ചെയ്യുക.
ലൂപ്പ്()
ലൂപ്പിൽ () ഒരു പുതിയ ക്ലയൻ്റ് എന്നതുമായി ഒരു കണക്ഷൻ സ്ഥാപിക്കുമ്പോൾ എന്താണ് സംഭവിക്കുന്നതെന്ന് ഞങ്ങൾ പ്രോഗ്രാം ചെയ്യുന്നു web സെർവർ.
ESP32 ഇനിപ്പറയുന്ന വരി ഉപയോഗിച്ച് ഇൻകമിംഗ് ക്ലയൻ്റുകൾക്കായി എപ്പോഴും ശ്രദ്ധിക്കുന്നു:ഒരു ക്ലയൻ്റിൽ നിന്ന് ഒരു അഭ്യർത്ഥന ലഭിക്കുമ്പോൾ, ഞങ്ങൾ ഇൻകമിംഗ് ഡാറ്റ സംരക്ഷിക്കും. ക്ലയൻ്റ് കണക്റ്റുചെയ്തിരിക്കുന്നിടത്തോളം കാലം പിന്തുടരുന്ന സമയത്ത് ലൂപ്പ് പ്രവർത്തിക്കും. നിങ്ങൾ എന്താണ് ചെയ്യുന്നതെന്ന് കൃത്യമായി അറിയില്ലെങ്കിൽ കോഡിൻ്റെ ഇനിപ്പറയുന്ന ഭാഗം മാറ്റാൻ ഞങ്ങൾ ശുപാർശ ചെയ്യുന്നില്ല.
if, else എന്നീ പ്രസ്താവനകളുടെ അടുത്ത വിഭാഗം നിങ്ങളിലെ ഏത് ബട്ടൺ അമർത്തിയെന്ന് പരിശോധിക്കുന്നു web പേജ്, അതനുസരിച്ച് ഔട്ട്പുട്ടുകൾ നിയന്ത്രിക്കുന്നു. ഞങ്ങൾ മുമ്പ് കണ്ടതുപോലെ, ഞങ്ങൾ വ്യത്യസ്തമായ ഒരു അഭ്യർത്ഥന നടത്തുന്നു URLഅമർത്തിയ ബട്ടണിനെ ആശ്രയിച്ച് s.
ഉദാampനിങ്ങൾ GPIO 26 ON ബട്ടൺ അമർത്തിയാൽ, ESP32-ന് /26/ON എന്നതിൽ ഒരു അഭ്യർത്ഥന ലഭിക്കും. URL (സീരിയൽ മോണിറ്ററിലെ HTTP തലക്കെട്ടിൽ ആ വിവരം നമുക്ക് കാണാൻ കഴിയും). അതിനാൽ, ഹെഡറിൽ GET /26/on എന്ന പദപ്രയോഗം ഉണ്ടോ എന്ന് പരിശോധിക്കാം. അതിൽ അടങ്ങിയിട്ടുണ്ടെങ്കിൽ, ഞങ്ങൾ output26state വേരിയബിൾ ഓണാക്കി മാറ്റും, ESP32 LED ഓണാക്കുന്നു.
ഇത് മറ്റ് ബട്ടണുകൾക്കും സമാനമായി പ്രവർത്തിക്കുന്നു. അതിനാൽ, നിങ്ങൾക്ക് കൂടുതൽ ഔട്ട്പുട്ടുകൾ ചേർക്കണമെങ്കിൽ, അവ ഉൾപ്പെടുത്തുന്നതിന് കോഡിൻ്റെ ഈ ഭാഗം നിങ്ങൾ പരിഷ്കരിക്കണം.
HTML പ്രദർശിപ്പിക്കുന്നു web പേജ്
നിങ്ങൾ ചെയ്യേണ്ട അടുത്ത കാര്യം, സൃഷ്ടിക്കുക എന്നതാണ് web പേജ്. ESP32 നിങ്ങളുടെ ബ്രൗസറിന് ചില HTML കോഡ് ഉപയോഗിച്ച് ഒരു പ്രതികരണം അയയ്ക്കും web പേജ്.
ദി web ഈ പ്രകടിപ്പിക്കുന്ന client.println() ഉപയോഗിച്ച് പേജ് ക്ലയൻ്റിലേക്ക് അയയ്ക്കുന്നു. നിങ്ങൾ ക്ലയൻ്റിലേക്ക് അയയ്ക്കാൻ ആഗ്രഹിക്കുന്നത് ഒരു ആർഗ്യുമെൻ്റായി നൽകണം.
ഞങ്ങൾ ആദ്യം അയയ്ക്കേണ്ടത് എല്ലായ്പ്പോഴും ഇനിപ്പറയുന്ന വരിയാണ്, അത് ഞങ്ങൾ HTML അയയ്ക്കുന്നുവെന്ന് സൂചിപ്പിക്കുന്നു.തുടർന്ന്, ഇനിപ്പറയുന്ന വരി ഉണ്ടാക്കുന്നു web ഏത് പേജിലും പ്രതികരിക്കും web ബ്രൗസർ.
ഫാവിക്കോണിലെ അഭ്യർത്ഥനകൾ തടയാൻ ഇനിപ്പറയുന്നവ ഉപയോഗിക്കുന്നു. – ഈ ലൈനിനെക്കുറിച്ച് നിങ്ങൾ വിഷമിക്കേണ്ടതില്ല.
സ്റ്റൈലിംഗ് Web പേജ്
അടുത്തതായി, ബട്ടണുകൾ സ്റ്റൈൽ ചെയ്യുന്നതിനായി ഞങ്ങൾക്ക് കുറച്ച് CSS ടെക്സ്റ്റ് ഉണ്ട് web പേജ് രൂപം.
ഞങ്ങൾ ഹെൽവെറ്റിക്ക ഫോണ്ട് തിരഞ്ഞെടുക്കുന്നു, ഒരു ബ്ലോക്കായി പ്രദർശിപ്പിക്കേണ്ട ഉള്ളടക്കം നിർവ്വചിക്കുകയും മധ്യഭാഗത്ത് വിന്യസിക്കുകയും ചെയ്യുന്നു.#4CAF50 കളർ, ബോർഡർ ഇല്ലാതെ, വെള്ള നിറത്തിലുള്ള ടെക്സ്റ്റ്, കൂടാതെ ഈ പാഡിംഗ്: 16px 40px ഉപയോഗിച്ച് ഞങ്ങൾ ഞങ്ങളുടെ ബട്ടണുകൾ സ്റ്റൈൽ ചെയ്യുന്നു. ഞങ്ങൾ ടെക്സ്റ്റ് ഡെക്കറേഷൻ ഒന്നുമല്ല എന്നാക്കി, ഫോണ്ട് സൈസ്, മാർജിൻ, കഴ്സർ എന്നിവ ഒരു പോയിൻ്ററിലേക്ക് നിർവ്വചിക്കുന്നു.
ഞങ്ങൾ നേരത്തെ നിർവചിച്ച ബട്ടണിൻ്റെ എല്ലാ ഗുണങ്ങളോടും കൂടി, എന്നാൽ മറ്റൊരു വർണ്ണത്തോടുകൂടിയ രണ്ടാമത്തെ ബട്ടണിനുള്ള ശൈലിയും ഞങ്ങൾ നിർവ്വചിക്കുന്നു. ഓഫ് ബട്ടണിനുള്ള ശൈലി ഇതായിരിക്കും.
സജ്ജമാക്കുന്നു Web പേജ് ആദ്യ തലക്കെട്ട്
അടുത്ത വരിയിൽ നിങ്ങളുടെ ആദ്യ തലക്കെട്ട് നിങ്ങൾക്ക് സജ്ജമാക്കാം web പേജ്. ഇവിടെ നമുക്ക് “ESP32 ഉണ്ട് Web സെർവർ”, എന്നാൽ ഈ വാചകം നിങ്ങൾക്ക് ഇഷ്ടമുള്ളതിലേക്ക് മാറ്റാം.ബട്ടണുകളും അനുബന്ധ അവസ്ഥയും പ്രദർശിപ്പിക്കുന്നു
തുടർന്ന്, GPIO 26 നിലവിലെ അവസ്ഥ പ്രദർശിപ്പിക്കുന്നതിന് നിങ്ങൾ ഒരു ഖണ്ഡിക എഴുതുക. നിങ്ങൾക്ക് കാണാനാകുന്നതുപോലെ, ഞങ്ങൾ output26State വേരിയബിൾ ഉപയോഗിക്കുന്നു, അതിനാൽ ഈ വേരിയബിൾ മാറുമ്പോൾ സംസ്ഥാനം തൽക്ഷണം അപ്ഡേറ്റ് ചെയ്യുന്നു.തുടർന്ന്, GPIO യുടെ നിലവിലെ അവസ്ഥയെ ആശ്രയിച്ച് ഞങ്ങൾ ഓൺ അല്ലെങ്കിൽ ഓഫ് ബട്ടൺ പ്രദർശിപ്പിക്കുന്നു. GPIO-യുടെ നിലവിലെ അവസ്ഥ ഓഫാണെങ്കിൽ, ഞങ്ങൾ ഓൺ ബട്ടൺ കാണിക്കും, ഇല്ലെങ്കിൽ, ഞങ്ങൾ ഓഫ് ബട്ടൺ പ്രദർശിപ്പിക്കും.
GPIO 27 നും ഞങ്ങൾ ഇതേ നടപടിക്രമം ഉപയോഗിക്കുന്നു.
കണക്ഷൻ ക്ലോസ് ചെയ്യുന്നു
അവസാനമായി, പ്രതികരണം അവസാനിക്കുമ്പോൾ, ഞങ്ങൾ ഹെഡർ വേരിയബിൾ മായ്ക്കുകയും ക്ലയൻ്റുമായുള്ള ക്ലയൻ്റുമായുള്ള കണക്ഷൻ നിർത്തുകയും ചെയ്യുന്നു.
പൊതിയുന്നു
ഈ ട്യൂട്ടോറിയലിൽ ഒരു എങ്ങനെ നിർമ്മിക്കാമെന്ന് ഞങ്ങൾ കാണിച്ചുതന്നിട്ടുണ്ട് web ESP32 ഉള്ള സെർവർ. ഞങ്ങൾ നിങ്ങൾക്ക് ഒരു ലളിതമായ മുൻ കാണിച്ചിരിക്കുന്നുample അത് രണ്ട് LED-കളെ നിയന്ത്രിക്കുന്നു, എന്നാൽ ആ LED-കൾ ഒരു റിലേ അല്ലെങ്കിൽ നിങ്ങൾ നിയന്ത്രിക്കാൻ ആഗ്രഹിക്കുന്ന മറ്റേതെങ്കിലും ഔട്ട്പുട്ട് ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുക എന്നതാണ് ആശയം.
പ്രോജക്റ്റ് 6 RGB LED Web സെർവർ
ഒരു ESP32 ബോർഡ് ഉപയോഗിച്ച് RGB LED എങ്ങനെ വിദൂരമായി നിയന്ത്രിക്കാമെന്ന് ഈ പ്രോജക്റ്റിൽ ഞങ്ങൾ കാണിച്ചുതരാം. web കളർ പിക്കർ ഉള്ള സെർവർ.
പ്രൊജക്റ്റ് ഓവർview
ആരംഭിക്കുന്നതിന് മുമ്പ്, ഈ പ്രോജക്റ്റ് എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്ന് നോക്കാം:
- ESP32 web സെർവർ ഒരു കളർ പിക്കർ പ്രദർശിപ്പിക്കുന്നു.
- നിങ്ങൾ ഒരു നിറം തിരഞ്ഞെടുക്കുമ്പോൾ, നിങ്ങളുടെ ബ്രൗസർ ഒരു അഭ്യർത്ഥന നടത്തുന്നു URL അതിൽ തിരഞ്ഞെടുത്ത നിറത്തിൻ്റെ R, G, B പാരാമീറ്ററുകൾ അടങ്ങിയിരിക്കുന്നു.
- നിങ്ങളുടെ ESP32 അഭ്യർത്ഥന സ്വീകരിക്കുകയും ഓരോ വർണ്ണ പാരാമീറ്ററിനുമുള്ള മൂല്യം വിഭജിക്കുകയും ചെയ്യുന്നു.
- തുടർന്ന്, അത് RGB LED നിയന്ത്രിക്കുന്ന GPIO-കളിലേക്ക് അനുബന്ധ മൂല്യമുള്ള ഒരു PWM സിഗ്നൽ അയയ്ക്കുന്നു.
RGB LED-കൾ എങ്ങനെയാണ് പ്രവർത്തിക്കുന്നത്?
ഒരു സാധാരണ കാഥോഡ് ആർജിബി എൽഇഡിയിൽ, മൂന്ന് എൽഇഡികളും ഒരു നെഗറ്റീവ് കണക്ഷൻ (കാഥോഡ്) പങ്കിടുന്നു. കിറ്റിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്നതെല്ലാം കോമൺ-കാഥോഡ് ആർജിബിയാണ്.വ്യത്യസ്ത നിറങ്ങൾ എങ്ങനെ സൃഷ്ടിക്കാം?
ഒരു RGB LED ഉപയോഗിച്ച് നിങ്ങൾക്ക് തീർച്ചയായും ചുവപ്പ്, പച്ച, നീല വെളിച്ചം ഉത്പാദിപ്പിക്കാൻ കഴിയും, കൂടാതെ ഓരോ LED-യുടെയും തീവ്രത ക്രമീകരിക്കുന്നതിലൂടെ നിങ്ങൾക്ക് മറ്റ് നിറങ്ങളും നിർമ്മിക്കാൻ കഴിയും.
ഉദാample, പൂർണ്ണമായും നീല വെളിച്ചം ഉൽപ്പാദിപ്പിക്കുന്നതിന്, നിങ്ങൾ നീല LED-നെ ഉയർന്ന തീവ്രതയിലും പച്ച, ചുവപ്പ് LED- കൾ ഏറ്റവും കുറഞ്ഞ തീവ്രതയിലും സജ്ജമാക്കും. ഒരു വെളുത്ത വെളിച്ചത്തിന്, നിങ്ങൾ മൂന്ന് LED-കളും ഏറ്റവും ഉയർന്ന തീവ്രതയിലേക്ക് സജ്ജീകരിക്കും.
നിറങ്ങൾ കലർത്തുന്നു
മറ്റ് നിറങ്ങൾ നിർമ്മിക്കാൻ, നിങ്ങൾക്ക് വ്യത്യസ്ത തീവ്രതയിൽ മൂന്ന് നിറങ്ങൾ സംയോജിപ്പിക്കാൻ കഴിയും. ഓരോ എൽഇഡിയുടെയും തീവ്രത ക്രമീകരിക്കുന്നതിന് നിങ്ങൾക്ക് ഒരു PWM സിഗ്നൽ ഉപയോഗിക്കാം.
LED- കൾ പരസ്പരം വളരെ അടുത്തായതിനാൽ, മൂന്ന് നിറങ്ങൾ വ്യക്തിഗതമായി കാണുന്നതിന് പകരം നിറങ്ങളുടെ സംയോജനത്തിൻ്റെ ഫലം നമ്മുടെ കണ്ണുകൾ കാണുന്നു.
നിറങ്ങൾ എങ്ങനെ സംയോജിപ്പിക്കാം എന്നതിനെക്കുറിച്ച് ഒരു ആശയം ലഭിക്കുന്നതിന്, ഇനിപ്പറയുന്ന ചാർട്ട് നോക്കുക.
ഇതാണ് ഏറ്റവും ലളിതമായ കളർ മിക്സിംഗ് ചാർട്ട്, എന്നാൽ ഇത് എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്നും വ്യത്യസ്ത നിറങ്ങൾ എങ്ങനെ നിർമ്മിക്കാമെന്നും നിങ്ങൾക്ക് ഒരു ആശയം നൽകുന്നു.ആവശ്യമായ ഭാഗങ്ങൾ
ഈ പ്രോജക്റ്റിനായി നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന ഭാഗങ്ങൾ ആവശ്യമാണ്:
- ESP32 DEVKIT V1 ബോർഡ്
- RGB LED
- 3x 220 ഓം റെസിസ്റ്ററുകൾ
- ജമ്പർ വയറുകൾ
- ബ്രെഡ്ബോർഡ്
സ്കീമാറ്റിക്കോഡ്
Arduino IDE ഉപയോഗിച്ച് ഞങ്ങൾ ESP32 പ്രോഗ്രാം ചെയ്യും, അതിനാൽ തുടരുന്നതിന് മുമ്പ് ESP32 ആഡ്-ഓൺ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക:(നിങ്ങൾ ഇതിനകം ഈ ഘട്ടം ചെയ്തിട്ടുണ്ടെങ്കിൽ, നിങ്ങൾക്ക് അടുത്ത ഘട്ടത്തിലേക്ക് പോകാം.)
- Arduino IDE-യിൽ ESP32 ആഡ്-ഓൺ ഇൻസ്റ്റാൾ ചെയ്യുന്നു
സർക്യൂട്ട് കൂട്ടിച്ചേർത്ത ശേഷം, കോഡ് തുറക്കുക
Project_6_RGB_LED_Web_Server.ino arduino IDE-ൽ.
കോഡ് അപ്ലോഡ് ചെയ്യുന്നതിനുമുമ്പ്, നിങ്ങളുടെ നെറ്റ്വർക്ക് ക്രെഡൻഷ്യലുകൾ ചേർക്കാൻ മറക്കരുത്, അതുവഴി ESP-ന് നിങ്ങളുടെ പ്രാദേശിക നെറ്റ്വർക്കിലേക്ക് കണക്റ്റുചെയ്യാനാകും.കോഡ് എങ്ങനെ പ്രവർത്തിക്കുന്നു
ESP32 സ്കെച്ച് WiFi.h ലൈബ്രറി ഉപയോഗിക്കുന്നു.അഭ്യർത്ഥനയിൽ നിന്ന് R, G, B പാരാമീറ്ററുകൾ ഹോൾഡ് ചെയ്യുന്നതിനുള്ള സ്ട്രിംഗ് വേരിയബിളുകൾ ഇനിപ്പറയുന്ന വരികൾ നിർവ്വചിക്കുന്നു.
HTTP അഭ്യർത്ഥന പിന്നീട് ഡീകോഡ് ചെയ്യാൻ അടുത്ത നാല് വേരിയബിളുകൾ ഉപയോഗിക്കുന്നു.
സ്ട്രിപ്പ് R, G, B പാരാമീറ്ററുകൾ നിയന്ത്രിക്കുന്ന GPIO-കൾക്കായി മൂന്ന് വേരിയബിളുകൾ സൃഷ്ടിക്കുക. ഈ സാഹചര്യത്തിൽ ഞങ്ങൾ GPIO 13, GPIO 12, GPIO 14 എന്നിവ ഉപയോഗിക്കുന്നു.
ഈ GPIO-കൾക്ക് PWM സിഗ്നലുകൾ ഔട്ട്പുട്ട് ചെയ്യേണ്ടതുണ്ട്, അതിനാൽ നമ്മൾ ആദ്യം PWM പ്രോപ്പർട്ടികൾ കോൺഫിഗർ ചെയ്യേണ്ടതുണ്ട്. PWM സിഗ്നൽ ഫ്രീക്വൻസി 5000 Hz ആയി സജ്ജമാക്കുക. തുടർന്ന്, ഓരോ നിറത്തിനും ഒരു PWM ചാനൽ ബന്ധപ്പെടുത്തുക
അവസാനമായി, PWM ചാനലുകളുടെ റെസല്യൂഷൻ 8-ബിറ്റായി സജ്ജമാക്കുക
സജ്ജീകരണത്തിൽ(), PWM ചാനലുകൾക്ക് PWM പ്രോപ്പർട്ടികൾ അസൈൻ ചെയ്യുക
അനുബന്ധ GPIO-കളിലേക്ക് PWM ചാനലുകൾ അറ്റാച്ചുചെയ്യുക
ഇനിപ്പറയുന്ന കോഡ് വിഭാഗം നിങ്ങളിലെ കളർ പിക്കർ പ്രദർശിപ്പിക്കുന്നു web പേജ് നിങ്ങൾ തിരഞ്ഞെടുത്ത നിറത്തെ അടിസ്ഥാനമാക്കി ഒരു അഭ്യർത്ഥന നടത്തുന്നു.
നിങ്ങൾ ഒരു നിറം തിരഞ്ഞെടുക്കുമ്പോൾ, ഇനിപ്പറയുന്ന ഫോർമാറ്റിലുള്ള ഒരു അഭ്യർത്ഥന നിങ്ങൾക്ക് ലഭിക്കും.
അതിനാൽ, R, G, B പാരാമീറ്ററുകൾ ലഭിക്കുന്നതിന് ഈ സ്ട്രിംഗ് വിഭജിക്കേണ്ടതുണ്ട്. പരാമീറ്ററുകൾ redString, greenString, blueString വേരിയബിളുകളിൽ സംരക്ഷിച്ചിരിക്കുന്നു കൂടാതെ 0 നും 255 നും ഇടയിൽ മൂല്യങ്ങൾ ഉണ്ടായിരിക്കാം.ESP32 ഉപയോഗിച്ച് സ്ട്രിപ്പ് നിയന്ത്രിക്കുന്നതിന്, HTTP-യിൽ നിന്ന് ഡീകോഡ് ചെയ്ത മൂല്യങ്ങൾ ഉപയോഗിച്ച് PWM സിഗ്നലുകൾ സൃഷ്ടിക്കാൻ ledcWrite() ഫംഗ്ഷൻ ഉപയോഗിക്കുക. അഭ്യർത്ഥന.
കുറിപ്പ്: ESP32 ഉപയോഗിച്ച് PWM-നെ കുറിച്ച് കൂടുതലറിയുക: പദ്ധതി 3 ESP32 PWM(അനലോഗ് ഔട്ട്പുട്ട്)
ESP8266 ഉപയോഗിച്ച് സ്ട്രിപ്പ് നിയന്ത്രിക്കാൻ, ഞങ്ങൾ ഉപയോഗിക്കേണ്ടതുണ്ട്
HTPP അഭ്യർത്ഥനയിൽ നിന്ന് ഡീകോഡ് ചെയ്ത മൂല്യങ്ങൾ ഉപയോഗിച്ച് PWM സിഗ്നലുകൾ സൃഷ്ടിക്കുന്നതിനുള്ള അനലോഗ് റൈറ്റ്() ഫംഗ്ഷൻ.
അനലോഗ് റൈറ്റ്(redPin, redString.toInt());
അനലോഗ് റൈറ്റ്(greenPin, greenString.toInt());
അനലോഗ് റൈറ്റ്(bluePin, blueString.toInt())
ഒരു സ്ട്രിംഗ് വേരിയബിളിൽ നമുക്ക് മൂല്യങ്ങൾ ലഭിക്കുന്നതിനാൽ, toInt() രീതി ഉപയോഗിച്ച് അവയെ പൂർണ്ണസംഖ്യകളാക്കി മാറ്റേണ്ടതുണ്ട്.
പ്രകടനം
നിങ്ങളുടെ നെറ്റ്വർക്ക് ക്രെഡൻഷ്യലുകൾ ചേർത്ത ശേഷം, ശരിയായ ബോർഡും COM പോർട്ടും തിരഞ്ഞെടുത്ത് കോഡ് നിങ്ങളുടെ ESP32-ലേക്ക് അപ്ലോഡ് ചെയ്യുക. കോഡ് റഫറൻസ് ഘട്ടങ്ങൾ അപ്ലോഡ് ചെയ്യുക.
അപ്ലോഡ് ചെയ്ത ശേഷം, 115200 എന്ന ബാഡ് നിരക്കിൽ സീരിയൽ മോണിറ്റർ തുറന്ന് ESP പ്രവർത്തനക്ഷമമാക്കുക/പുനഃസജ്ജമാക്കുക ബട്ടൺ അമർത്തുക. നിങ്ങൾക്ക് ബോർഡ് ഐപി വിലാസം ലഭിക്കണം.നിങ്ങളുടെ ബ്രൗസർ തുറന്ന് ESP IP വിലാസം ചേർക്കുക. ഇപ്പോൾ, RGB LED-യ്ക്കായി ഒരു നിറം തിരഞ്ഞെടുക്കാൻ കളർ പിക്കർ ഉപയോഗിക്കുക.
അതിനുശേഷം, നിറം പ്രാബല്യത്തിൽ വരുന്നതിന് നിങ്ങൾ "നിറം മാറ്റുക" ബട്ടൺ അമർത്തേണ്ടതുണ്ട്.RGB LED ഓഫാക്കാൻ, കറുപ്പ് നിറം തിരഞ്ഞെടുക്കുക.
ഏറ്റവും ശക്തമായ നിറങ്ങൾ (കളർ പിക്കറിൻ്റെ മുകളിൽ), മികച്ച ഫലം നൽകുന്നവയാണ്.
പ്രോജക്റ്റ് 7 ESP32 റിലേ Web സെർവർ
ESP32 ഉപയോഗിച്ച് ഒരു റിലേ ഉപയോഗിക്കുന്നത് എസി വീട്ടുപകരണങ്ങൾ വിദൂരമായി നിയന്ത്രിക്കാനുള്ള മികച്ച മാർഗമാണ്. ESP32 ഉപയോഗിച്ച് ഒരു റിലേ മൊഡ്യൂൾ എങ്ങനെ നിയന്ത്രിക്കാമെന്ന് ഈ ട്യൂട്ടോറിയൽ വിശദീകരിക്കുന്നു.
ഒരു റിലേ മൊഡ്യൂൾ എങ്ങനെ പ്രവർത്തിക്കുന്നു, ESP32-ലേക്ക് റിലേ എങ്ങനെ കണക്ട് ചെയ്യാം, എങ്ങനെ നിർമ്മിക്കാം എന്ന് നോക്കാം. web റിമോട്ടായി ഒരു റിലേ നിയന്ത്രിക്കാൻ സെർവർ.
റിലേകൾ അവതരിപ്പിക്കുന്നു
ഒരു റിലേ എന്നത് വൈദ്യുതമായി പ്രവർത്തിക്കുന്ന ഒരു സ്വിച്ചാണ്, മറ്റേതൊരു സ്വിച്ചിനെയും പോലെ, അത് ഓണാക്കാനോ ഓഫാക്കാനോ കഴിയും, അത് കറൻ്റ് കടന്നുപോകാനോ അല്ലാതെയോ അനുവദിക്കുന്നു. കുറഞ്ഞ വോള്യം ഉപയോഗിച്ച് ഇത് നിയന്ത്രിക്കാനാകുംtages, ESP3.3 GPIO-കൾ നൽകുന്ന 32V പോലെ ഉയർന്ന വോള്യം നിയന്ത്രിക്കാൻ ഞങ്ങളെ അനുവദിക്കുന്നുtag12V, 24V അല്ലെങ്കിൽ മെയിൻ വോളിയം പോലെtage (യൂറോപ്പിൽ 230V, യുഎസിൽ 120V).ഇടതുവശത്ത്, ഉയർന്ന വോള്യം ബന്ധിപ്പിക്കുന്നതിന് മൂന്ന് സോക്കറ്റുകളുടെ രണ്ട് സെറ്റുകൾ ഉണ്ട്tages, വലതുവശത്തുള്ള പിന്നുകൾ (കുറഞ്ഞ വോളിയംtage) ESP32 GPIO-കളിലേക്ക് ബന്ധിപ്പിക്കുക.
മെയിൻസ് വോളിയംtagഇ കണക്ഷനുകൾമുമ്പത്തെ ഫോട്ടോയിൽ കാണിച്ചിരിക്കുന്ന റിലേ മൊഡ്യൂളിന് രണ്ട് കണക്റ്ററുകൾ ഉണ്ട്, ഓരോന്നിനും മൂന്ന് സോക്കറ്റുകൾ ഉണ്ട്: പൊതുവായ (COM), സാധാരണയായി അടച്ചത് (NC), സാധാരണയായി തുറന്നത് (NO).
- COM: നിങ്ങൾ നിയന്ത്രിക്കാൻ ആഗ്രഹിക്കുന്ന കറൻ്റ് ബന്ധിപ്പിക്കുക (മെയിൻ വോള്യംtagഒപ്പം).
- NC (സാധാരണയായി ക്ലോസ്ഡ്): സ്ഥിരസ്ഥിതിയായി റിലേ അടയ്ക്കണമെന്ന് നിങ്ങൾ ആഗ്രഹിക്കുമ്പോൾ സാധാരണയായി അടച്ച കോൺഫിഗറേഷൻ ഉപയോഗിക്കുന്നു. NC COM പിന്നുകൾ ബന്ധിപ്പിച്ചിരിക്കുന്നു, അതായത് സർക്യൂട്ട് തുറന്ന് കറൻ്റ് ഫ്ലോ നിർത്തുന്നതിന് ESP32 ൽ നിന്ന് റിലേ മൊഡ്യൂളിലേക്ക് ഒരു സിഗ്നൽ അയച്ചില്ലെങ്കിൽ കറൻ്റ് ഒഴുകുന്നു.
- ഇല്ല (സാധാരണയായി തുറന്നത്): സാധാരണ ഓപ്പൺ കോൺഫിഗറേഷൻ മറ്റൊരു രീതിയിൽ പ്രവർത്തിക്കുന്നു: NO, COM പിന്നുകൾ തമ്മിൽ യാതൊരു ബന്ധവുമില്ല, അതിനാൽ നിങ്ങൾ സർക്യൂട്ട് അടയ്ക്കുന്നതിന് ESP32 ൽ നിന്ന് ഒരു സിഗ്നൽ അയച്ചില്ലെങ്കിൽ സർക്യൂട്ട് തകരാറിലാകും.
നിയന്ത്രണ പിൻസ്ലോ-വോളിയംtagഇ വശത്ത് നാല് പിന്നുകളുടെ ഒരു സെറ്റും മൂന്ന് പിന്നുകളുടെ ഒരു സെറ്റും ഉണ്ട്. ആദ്യ സെറ്റിൽ മൊഡ്യൂൾ പവർ അപ്പ് ചെയ്യുന്നതിനായി VCC, GND എന്നിവയും താഴെയുള്ളതും മുകളിലുള്ളതുമായ റിലേകൾ യഥാക്രമം നിയന്ത്രിക്കുന്നതിന് ഇൻപുട്ട് 1 (IN1), ഇൻപുട്ട് 2 (IN2) എന്നിവ ഉൾപ്പെടുന്നു.
നിങ്ങളുടെ റിലേ മൊഡ്യൂളിന് ഒരു ചാനൽ മാത്രമേ ഉള്ളൂ എങ്കിൽ, നിങ്ങൾക്ക് ഒരു IN പിൻ മാത്രമേ ഉണ്ടാകൂ. നിങ്ങൾക്ക് നാല് ചാനലുകൾ ഉണ്ടെങ്കിൽ, നിങ്ങൾക്ക് നാല് IN പിന്നുകളും മറ്റും ഉണ്ടാകും.
നിങ്ങൾ IN പിന്നുകളിലേക്ക് അയയ്ക്കുന്ന സിഗ്നൽ, റിലേ സജീവമാണോ അല്ലയോ എന്ന് നിർണ്ണയിക്കുന്നു. ഇൻപുട്ട് ഏകദേശം 2V-ന് താഴെയാകുമ്പോൾ റിലേ പ്രവർത്തനക്ഷമമാകുന്നു. ഇതിനർത്ഥം നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന സാഹചര്യങ്ങൾ ഉണ്ടാകുമെന്നാണ്:
- സാധാരണയായി അടച്ച കോൺഫിഗറേഷൻ (NC):
- ഉയർന്ന സിഗ്നൽ - കറൻ്റ് ഒഴുകുന്നു
- കുറഞ്ഞ സിഗ്നൽ - കറൻ്റ് ഒഴുകുന്നില്ല
- സാധാരണയായി ഓപ്പൺ കോൺഫിഗറേഷൻ (NO):
- ഉയർന്ന സിഗ്നൽ - കറൻ്റ് ഒഴുകുന്നില്ല
- കുറഞ്ഞ സിഗ്നൽ - ഒഴുകുന്ന കറൻ്റ്
കറൻ്റ് മിക്ക സമയത്തും ഒഴുകുമ്പോൾ നിങ്ങൾ സാധാരണയായി അടച്ച കോൺഫിഗറേഷൻ ഉപയോഗിക്കണം, കൂടാതെ നിങ്ങൾ അത് ഇടയ്ക്കിടെ നിർത്താൻ ആഗ്രഹിക്കുന്നു.
കറൻ്റ് ഇടയ്ക്കിടെ ഒഴുകാൻ നിങ്ങൾ ആഗ്രഹിക്കുമ്പോൾ സാധാരണയായി തുറന്ന കോൺഫിഗറേഷൻ ഉപയോഗിക്കുക (ഉദാample, al ഓൺ ചെയ്യുകamp ഇടയ്ക്കിടെ).
പവർ സപ്ലൈ സെലക്ഷൻരണ്ടാമത്തെ സെറ്റ് പിന്നുകളിൽ GND, VCC, JD-VCC പിന്നുകൾ എന്നിവ അടങ്ങിയിരിക്കുന്നു.
JD-VCC പിൻ റിലേയുടെ വൈദ്യുതകാന്തികത്തെ ശക്തിപ്പെടുത്തുന്നു. VCC, JD-VCC പിന്നുകളെ ബന്ധിപ്പിക്കുന്ന ഒരു ജമ്പർ തൊപ്പി മൊഡ്യൂളിനുണ്ടെന്ന് ശ്രദ്ധിക്കുക; ഇവിടെ കാണിച്ചിരിക്കുന്നത് മഞ്ഞയാണ്, എന്നാൽ നിങ്ങളുടേത് മറ്റൊരു നിറമായിരിക്കാം.
ജമ്പർ ക്യാപ് ഓണാക്കി, VCC, JD-VCC പിന്നുകൾ ബന്ധിപ്പിച്ചിരിക്കുന്നു. അതായത് റിലേ ഇലക്ട്രോമാഗ്നറ്റ് നേരിട്ട് ESP32 പവർ പിന്നിൽ നിന്നാണ് പവർ ചെയ്യുന്നത്, അതിനാൽ റിലേ മൊഡ്യൂളും ESP32 സർക്യൂട്ടുകളും പരസ്പരം ശാരീരികമായി ഒറ്റപ്പെട്ടിട്ടില്ല.
ജമ്പർ ക്യാപ് ഇല്ലാതെ, JD-VCC പിൻ വഴി റിലേയുടെ വൈദ്യുതകാന്തിക ശക്തി വർദ്ധിപ്പിക്കുന്നതിന് നിങ്ങൾ ഒരു സ്വതന്ത്ര പവർ സ്രോതസ്സ് നൽകേണ്ടതുണ്ട്. ആ കോൺഫിഗറേഷൻ മൊഡ്യൂളിൻ്റെ ബിൽറ്റ്-ഇൻ ഒപ്റ്റോകപ്ലർ ഉപയോഗിച്ച് ESP32-ൽ നിന്നുള്ള റിലേകളെ ശാരീരികമായി വേർതിരിക്കുന്നു, ഇത് ഇലക്ട്രിക്കൽ സ്പൈക്കുകളുടെ കാര്യത്തിൽ ESP32-ന് കേടുപാടുകൾ സംഭവിക്കുന്നത് തടയുന്നു.
സ്കീമാറ്റിക്മുന്നറിയിപ്പ്: ഉയർന്ന വോള്യത്തിൻ്റെ ഉപയോഗംtagഇ പവർ സപ്ലൈസ് ഗുരുതരമായ പരിക്കിന് കാരണമായേക്കാം.
അതിനാൽ, ഉയർന്ന വിതരണ വോള്യത്തിന് പകരം 5 എംഎം എൽഇഡികൾ ഉപയോഗിക്കുന്നുtagപരീക്ഷണത്തിൽ ഇ ബൾബുകൾ. മെയിൻ വോള്യം നിങ്ങൾക്ക് പരിചിതമല്ലെങ്കിൽtagനിങ്ങളെ സഹായിക്കാൻ ആരോടെങ്കിലും ആവശ്യപ്പെടുക. ESP പ്രോഗ്രാം ചെയ്യുമ്പോൾ അല്ലെങ്കിൽ നിങ്ങളുടെ സർക്യൂട്ട് വയറിംഗ് ചെയ്യുമ്പോൾ, മെയിൻ വോള്യത്തിൽ നിന്ന് എല്ലാം വിച്ഛേദിക്കപ്പെട്ടിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുകtage.ESP32-നായി ലൈബ്രറി ഇൻസ്റ്റാൾ ചെയ്യുന്നു
ഇത് നിർമ്മിക്കാൻ web സെർവർ, ഞങ്ങൾ ESPAsync ഉപയോഗിക്കുന്നുWebസെർവർ ലൈബ്രറിയും AsyncTCP ലൈബ്രറിയും.
ESPAsync ഇൻസ്റ്റാൾ ചെയ്യുന്നുWebസെർവർ ലൈബ്രറി
ഇൻസ്റ്റാൾ ചെയ്യാൻ അടുത്ത ഘട്ടങ്ങൾ പാലിക്കുക ESPAsyncWebസെർവർ ലൈബ്രറി:
- ESPAsync ഡൗൺലോഡ് ചെയ്യാൻ ഇവിടെ ക്ലിക്ക് ചെയ്യുകWebസെർവർ ലൈബ്രറി. നിങ്ങൾക്ക് ഉണ്ടായിരിക്കണം
നിങ്ങളുടെ ഡൗൺലോഡ് ഫോൾഡറിലെ ഒരു .zip ഫോൾഡർ - .zip ഫോൾഡർ അൺസിപ്പ് ചെയ്യുക, നിങ്ങൾക്ക് ESPAsync ലഭിക്കുംWebസെർവർ-മാസ്റ്റർ ഫോൾഡർ
- ESPAsync-ൽ നിന്ന് നിങ്ങളുടെ ഫോൾഡറിൻ്റെ പേര് മാറ്റുകWebESPAsync-ലേക്ക് സെർവർ-മാസ്റ്റർWebസെർവർ
- ESPAsync നീക്കുകWebനിങ്ങളുടെ Arduino IDE ഇൻസ്റ്റലേഷൻ ലൈബ്രറികളുടെ ഫോൾഡറിലേക്കുള്ള സെർവർ ഫോൾഡർ
പകരമായി, നിങ്ങളുടെ Arduino IDE-ൽ, നിങ്ങൾക്ക് സ്കെച്ച് > ഉൾപ്പെടുത്തുക എന്നതിലേക്ക് പോകാം
ലൈബ്രറി > .ZIP ലൈബ്രറി ചേർക്കുക... നിങ്ങൾ ഇപ്പോൾ ഡൗൺലോഡ് ചെയ്ത ലൈബ്രറി തിരഞ്ഞെടുക്കുക.
ESP32-നായി AsyncTCP ലൈബ്രറി ഇൻസ്റ്റാൾ ചെയ്യുന്നു
ദി ESPAsyncWebസെർവർ ലൈബ്രറി ആവശ്യമാണ് AsyncTCP പ്രവർത്തിക്കാൻ ലൈബ്രറി. പിന്തുടരുക
ആ ലൈബ്രറി ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനുള്ള അടുത്ത ഘട്ടങ്ങൾ:
- AsyncTCP ലൈബ്രറി ഡൗൺലോഡ് ചെയ്യാൻ ഇവിടെ ക്ലിക്ക് ചെയ്യുക. നിങ്ങളുടെ ഡൗൺലോഡ് ഫോൾഡറിൽ ഒരു .zip ഫോൾഡർ ഉണ്ടായിരിക്കണം
- .zip ഫോൾഡർ അൺസിപ്പ് ചെയ്യുക, നിങ്ങൾക്ക് AsyncTCP-master ഫോൾഡർ ലഭിക്കും
1. AsyncTCP-master-ൽ നിന്ന് AsyncTCP എന്നതിലേക്ക് നിങ്ങളുടെ ഫോൾഡറിൻ്റെ പേര് മാറ്റുക
3. AsyncTCP ഫോൾഡർ നിങ്ങളുടെ Arduino IDE ഇൻസ്റ്റലേഷൻ ലൈബ്രറികളുടെ ഫോൾഡറിലേക്ക് നീക്കുക
4. അവസാനമായി, നിങ്ങളുടെ Arduino IDE വീണ്ടും തുറക്കുക
പകരമായി, നിങ്ങളുടെ Arduino IDE-ൽ, നിങ്ങൾക്ക് സ്കെച്ച് > ഉൾപ്പെടുത്തുക എന്നതിലേക്ക് പോകാം
ലൈബ്രറി > .ZIP ലൈബ്രറി ചേർക്കുക... നിങ്ങൾ ഇപ്പോൾ ഡൗൺലോഡ് ചെയ്ത ലൈബ്രറി തിരഞ്ഞെടുക്കുക.
കോഡ്
Arduino IDE ഉപയോഗിച്ച് ഞങ്ങൾ ESP32 പ്രോഗ്രാം ചെയ്യും, അതിനാൽ തുടരുന്നതിന് മുമ്പ് ESP32 ആഡ്-ഓൺ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക:(നിങ്ങൾ ഇതിനകം ഈ ഘട്ടം ചെയ്തിട്ടുണ്ടെങ്കിൽ, നിങ്ങൾക്ക് അടുത്ത ഘട്ടത്തിലേക്ക് പോകാം.)
Arduino IDE-യിൽ ESP32 ആഡ്-ഓൺ ഇൻസ്റ്റാൾ ചെയ്യുന്നു
ആവശ്യമായ ലൈബ്രറികൾ ഇൻസ്റ്റാൾ ചെയ്ത ശേഷം, Project_7_ESP32_Relay_ എന്ന കോഡ് തുറക്കുകWeb_Server.ino arduino IDE-ൽ.
കോഡ് അപ്ലോഡ് ചെയ്യുന്നതിനുമുമ്പ്, നിങ്ങളുടെ നെറ്റ്വർക്ക് ക്രെഡൻഷ്യലുകൾ ചേർക്കാൻ മറക്കരുത്, അതുവഴി ESP-ന് നിങ്ങളുടെ പ്രാദേശിക നെറ്റ്വർക്കിലേക്ക് കണക്റ്റുചെയ്യാനാകും.പ്രകടനം
ആവശ്യമായ മാറ്റങ്ങൾ വരുത്തിയ ശേഷം, നിങ്ങളുടെ ESP32-ലേക്ക് കോഡ് അപ്ലോഡ് ചെയ്യുക. കോഡ് റഫറൻസ് ഘട്ടങ്ങൾ അപ്ലോഡ് ചെയ്യുക.
115200 എന്ന ബാഡ് നിരക്കിൽ സീരിയൽ മോണിറ്റർ തുറന്ന് അതിൻ്റെ IP വിലാസം ലഭിക്കുന്നതിന് ESP32 EN ബട്ടൺ അമർത്തുക. തുടർന്ന്, നിങ്ങളുടെ പ്രാദേശിക നെറ്റ്വർക്കിൽ ഒരു ബ്രൗസർ തുറന്ന് ESP32 IP വിലാസം ടൈപ്പ് ചെയ്യുക web സെർവർ.
115200 എന്ന ബാഡ് നിരക്കിൽ സീരിയൽ മോണിറ്റർ തുറന്ന് അതിൻ്റെ IP വിലാസം ലഭിക്കുന്നതിന് ESP32 EN ബട്ടൺ അമർത്തുക. തുടർന്ന്, നിങ്ങളുടെ പ്രാദേശിക നെറ്റ്വർക്കിൽ ഒരു ബ്രൗസർ തുറന്ന് ESP32 IP വിലാസം ടൈപ്പ് ചെയ്യുക web സെർവർ.കുറിപ്പ്: നിങ്ങളുടെ ബ്രൗസറും ESP32 ഉം ഒരേ LAN-ലേക്ക് കണക്റ്റ് ചെയ്യണം.
നിങ്ങളുടെ കോഡിൽ നിങ്ങൾ നിർവചിച്ചിരിക്കുന്ന റിലേകളുടെ എണ്ണം പോലെ രണ്ട് ബട്ടണുകൾ ഉള്ളത് പോലെ എന്തെങ്കിലും നിങ്ങൾക്ക് ലഭിക്കും.ഇപ്പോൾ, നിങ്ങളുടെ സ്മാർട്ട്ഫോൺ ഉപയോഗിച്ച് നിങ്ങളുടെ റിലേകൾ നിയന്ത്രിക്കാൻ ബട്ടണുകൾ ഉപയോഗിക്കാം.
Project_8_Output_State_Synchronization_ Web_സെർവർ
എ ഉപയോഗിച്ച് ESP32 അല്ലെങ്കിൽ ESP8266 ഔട്ട്പുട്ടുകൾ എങ്ങനെ നിയന്ത്രിക്കാമെന്ന് ഈ പ്രോജക്റ്റ് കാണിക്കുന്നു web സെർവറും ഫിസിക്കൽ ബട്ടണും ഒരേസമയം. ഔട്ട്പുട്ട് നില അപ്ഡേറ്റ് ചെയ്തിരിക്കുന്നു web പേജ് ഫിസിക്കൽ ബട്ടൺ വഴി മാറ്റിയിട്ടുണ്ടോ അല്ലെങ്കിൽ web സെർവർ.
പ്രൊജക്റ്റ് ഓവർview
പദ്ധതി എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്ന് നമുക്ക് പെട്ടെന്ന് നോക്കാം.ESP32 അല്ലെങ്കിൽ ESP8266 ഹോസ്റ്റുകൾ a web ഒരു ഔട്ട്പുട്ടിൻ്റെ അവസ്ഥ നിയന്ത്രിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്ന സെർവർ;
- നിലവിലെ ഔട്ട്പുട്ട് നില പ്രദർശിപ്പിക്കുന്നു web സെർവർ;
- ESP ഒരേ ഔട്ട്പുട്ട് നിയന്ത്രിക്കുന്ന ഒരു ഫിസിക്കൽ പുഷ്ബട്ടണുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു;
- നിങ്ങൾ ഫിസിക്കൽ puhsbutton ഉപയോഗിച്ച് ഔട്ട്പുട്ട് അവസ്ഥ മാറ്റുകയാണെങ്കിൽ, അതിൻ്റെ നിലവിലെ അവസ്ഥയും അപ്ഡേറ്റ് ചെയ്യപ്പെടും web സെർവർ.
ചുരുക്കത്തിൽ, a ഉപയോഗിച്ച് ഒരേ ഔട്ട്പുട്ട് നിയന്ത്രിക്കാൻ ഈ പ്രോജക്റ്റ് നിങ്ങളെ അനുവദിക്കുന്നു web സെർവറും ഒരു പുഷ് ബട്ടണും ഒരേസമയം. ഔട്ട്പുട്ട് അവസ്ഥ മാറുമ്പോഴെല്ലാം, ദി web സെർവർ അപ്ഡേറ്റ് ചെയ്തു.
ആവശ്യമായ ഭാഗങ്ങൾ
സർക്യൂട്ട് നിർമ്മിക്കാൻ ആവശ്യമായ ഭാഗങ്ങളുടെ ഒരു ലിസ്റ്റ് ഇതാ:
- ESP32 DEVKIT V1 ബോർഡ്
- 5 എംഎം എൽഇഡി
- 220 ഓം റെസിസ്റ്റർ
- ഞെക്കാനുള്ള ബട്ടണ്
- 10k ഓം റെസിസ്റ്റർ
- ബ്രെഡ്ബോർഡ്
- ജമ്പർ വയറുകൾ
സ്കീമാറ്റിക്ESP32-നായി ലൈബ്രറി ഇൻസ്റ്റാൾ ചെയ്യുന്നു
ഇത് നിർമ്മിക്കാൻ web സെർവർ, ഞങ്ങൾ ESPAsync ഉപയോഗിക്കുന്നുWebസെർവർ ലൈബ്രറിയും AsyncTCP ലൈബ്രറിയും.(നിങ്ങൾ ഇതിനകം ഈ ഘട്ടം ചെയ്തിട്ടുണ്ടെങ്കിൽ, നിങ്ങൾക്ക് അടുത്ത ഘട്ടത്തിലേക്ക് പോകാം.)
ESPAsync ഇൻസ്റ്റാൾ ചെയ്യുന്നുWebസെർവർ ലൈബ്രറി
ESPAsync ഇൻസ്റ്റാൾ ചെയ്യാൻ അടുത്ത ഘട്ടങ്ങൾ പിന്തുടരുകWebസെർവർ ലൈബ്രറി:
- ESPAsync ഡൗൺലോഡ് ചെയ്യാൻ ഇവിടെ ക്ലിക്ക് ചെയ്യുകWebസെർവർ ലൈബ്രറി. നിങ്ങൾക്ക് ഉണ്ടായിരിക്കണം
നിങ്ങളുടെ ഡൗൺലോഡ് ഫോൾഡറിലെ ഒരു .zip ഫോൾഡർ - .zip ഫോൾഡർ അൺസിപ്പ് ചെയ്യുക, നിങ്ങൾക്ക് ESPAsync ലഭിക്കുംWebസെർവർ-മാസ്റ്റർ ഫോൾഡർ
- ESPAsync-ൽ നിന്ന് നിങ്ങളുടെ ഫോൾഡറിൻ്റെ പേര് മാറ്റുകWebESPAsync-ലേക്ക് സെർവർ-മാസ്റ്റർWebസെർവർ
- ESPAsync നീക്കുകWebനിങ്ങളുടെ Arduino IDE ഇൻസ്റ്റലേഷൻ ലൈബ്രറികളുടെ ഫോൾഡറിലേക്കുള്ള സെർവർ ഫോൾഡർ
പകരമായി, നിങ്ങളുടെ Arduino IDE-ൽ, നിങ്ങൾക്ക് സ്കെച്ച് > ഉൾപ്പെടുത്തുക എന്നതിലേക്ക് പോകാം
ലൈബ്രറി > .ZIP ലൈബ്രറി ചേർക്കുക... നിങ്ങൾ ഇപ്പോൾ ഡൗൺലോഡ് ചെയ്ത ലൈബ്രറി തിരഞ്ഞെടുക്കുക.
ESP32-നായി AsyncTCP ലൈബ്രറി ഇൻസ്റ്റാൾ ചെയ്യുന്നു
ESPAsyncWebസെർവർ ലൈബ്രറിക്ക് പ്രവർത്തിക്കാൻ AsyncTCP ലൈബ്രറി ആവശ്യമാണ്. ആ ലൈബ്രറി ഇൻസ്റ്റാൾ ചെയ്യാൻ ഇനിപ്പറയുന്ന ഘട്ടങ്ങൾ പാലിക്കുക:
- AsyncTCP ലൈബ്രറി ഡൗൺലോഡ് ചെയ്യാൻ ഇവിടെ ക്ലിക്ക് ചെയ്യുക. നിങ്ങളുടെ ഡൗൺലോഡ് ഫോൾഡറിൽ ഒരു .zip ഫോൾഡർ ഉണ്ടായിരിക്കണം
- .zip ഫോൾഡർ അൺസിപ്പ് ചെയ്യുക, നിങ്ങൾക്ക് AsyncTCP-master ഫോൾഡർ ലഭിക്കും
- AsyncTCP-master-ൽ നിന്ന് AsyncTCP എന്നതിലേക്ക് നിങ്ങളുടെ ഫോൾഡറിൻ്റെ പേര് മാറ്റുക
- AsyncTCP ഫോൾഡർ നിങ്ങളുടെ Arduino IDE ഇൻസ്റ്റലേഷൻ ലൈബ്രറികളുടെ ഫോൾഡറിലേക്ക് നീക്കുക
- അവസാനമായി, നിങ്ങളുടെ Arduino IDE വീണ്ടും തുറക്കുക
പകരമായി, നിങ്ങളുടെ Arduino IDE-ൽ, നിങ്ങൾക്ക് സ്കെച്ച് > ഉൾപ്പെടുത്തുക എന്നതിലേക്ക് പോകാം
ലൈബ്രറി > .ZIP ലൈബ്രറി ചേർക്കുക... നിങ്ങൾ ഇപ്പോൾ ഡൗൺലോഡ് ചെയ്ത ലൈബ്രറി തിരഞ്ഞെടുക്കുക.
കോഡ്
Arduino IDE ഉപയോഗിച്ച് ഞങ്ങൾ ESP32 പ്രോഗ്രാം ചെയ്യും, അതിനാൽ തുടരുന്നതിന് മുമ്പ് ESP32 ആഡ്-ഓൺ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക:(നിങ്ങൾ ഇതിനകം ഈ ഘട്ടം ചെയ്തിട്ടുണ്ടെങ്കിൽ, നിങ്ങൾക്ക് അടുത്ത ഘട്ടത്തിലേക്ക് പോകാം.)
Arduino IDE-യിൽ ESP32 ആഡ്-ഓൺ ഇൻസ്റ്റാൾ ചെയ്യുന്നു
ആവശ്യമായ ലൈബ്രറികൾ ഇൻസ്റ്റാൾ ചെയ്ത ശേഷം, കോഡ് തുറക്കുക
Project_8_Output_State_Synchronization_Web_Server.ino arduino IDE-ൽ.
കോഡ് അപ്ലോഡ് ചെയ്യുന്നതിനുമുമ്പ്, നിങ്ങളുടെ നെറ്റ്വർക്ക് ക്രെഡൻഷ്യലുകൾ ചേർക്കാൻ മറക്കരുത്, അതുവഴി ESP-ന് നിങ്ങളുടെ പ്രാദേശിക നെറ്റ്വർക്കിലേക്ക് കണക്റ്റുചെയ്യാനാകും.
കോഡ് എങ്ങനെ പ്രവർത്തിക്കുന്നു
ബട്ടൺ നിലയും ഔട്ട്പുട്ട് അവസ്ഥയും
ledState വേരിയബിൾ LED ഔട്ട്പുട്ട് നില നിലനിർത്തുന്നു. സ്ഥിരസ്ഥിതിയായി, എപ്പോൾ web സെർവർ ആരംഭിക്കുന്നു, ഇത് കുറവാണ്.
ബട്ടൺസ്റ്റേറ്റ്, ലാസ്റ്റ് ബട്ടൺസ്റ്റേറ്റ് എന്നിവ പുഷ്ബട്ടൺ അമർത്തിയോ ഇല്ലയോ എന്ന് കണ്ടെത്താൻ ഉപയോഗിക്കുന്നു.ബട്ടൺ (web സെർവർ)
index_html വേരിയബിളിൽ ബട്ടൺ സൃഷ്ടിക്കാൻ ഞങ്ങൾ HTML ഉൾപ്പെടുത്തിയിട്ടില്ല.
പുഷ്ബട്ടൺ ഉപയോഗിച്ച് മാറ്റാവുന്ന നിലവിലെ എൽഇഡി അവസ്ഥയെ ആശ്രയിച്ച് ഇത് മാറ്റാൻ ഞങ്ങൾ ആഗ്രഹിക്കുന്നു എന്നതാണ് ഇതിന് കാരണം.
അതിനാൽ, %BUTTONPLACEHOLDER% ബട്ടണിനായി ഞങ്ങൾ ഒരു പ്ലെയ്സ്ഹോൾഡർ സൃഷ്ടിച്ചിട്ടുണ്ട്, അത് പിന്നീട് കോഡിൽ ബട്ടൺ സൃഷ്ടിക്കാൻ HTML ടെക്സ്റ്റ് ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കും (ഇത് പ്രോസസ്സർ() ഫംഗ്ഷനിലാണ് ചെയ്യുന്നത്).പ്രോസസ്സർ()
പ്രോസസ്സർ() ഫംഗ്ഷൻ HTML ടെക്സ്റ്റിലെ ഏതെങ്കിലും പ്ലെയ്സ്ഹോൾഡറുകളെ യഥാർത്ഥ മൂല്യങ്ങൾ ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുന്നു. ആദ്യം, HTML ടെക്സ്റ്റുകളിൽ എന്തെങ്കിലും ഉണ്ടോ എന്ന് ഇത് പരിശോധിക്കുന്നു
പ്ലെയ്സ്ഹോൾഡറുകൾ %BUTTONPLACEHOLDER%.തുടർന്ന്, നിലവിലെ ഔട്ട്പുട്ട് അവസ്ഥ നൽകുന്ന outputState() ഫംഗ്ഷനെ വിളിക്കുക. നമ്മൾ അത് outputStateValue വേരിയബിളിൽ സേവ് ചെയ്യുന്നു.
അതിനുശേഷം, ശരിയായ അവസ്ഥയിൽ ബട്ടൺ പ്രദർശിപ്പിക്കുന്നതിന് HTML ടെക്സ്റ്റ് സൃഷ്ടിക്കാൻ ആ മൂല്യം ഉപയോഗിക്കുക:
HTTP ഔട്ട്പുട്ട് അവസ്ഥ മാറ്റാനുള്ള അഭ്യർത്ഥന (ജാവാസ്ക്രിപ്റ്റ്)
നിങ്ങൾ ബട്ടൺ അമർത്തുമ്പോൾ, thetoggleCheckbox() ഫംഗ്ഷൻ വിളിക്കപ്പെടുന്നു. ഈ ഫംഗ്ഷൻ വ്യത്യസ്തമായ ഒരു അഭ്യർത്ഥന നടത്തും URLLED ഓണാക്കാനോ ഓഫാക്കാനോ s.LED ഓണാക്കാൻ, അത് /update?state=1-ൽ ഒരു അഭ്യർത്ഥന നടത്തുന്നു URL:
അല്ലെങ്കിൽ, അത് /update?state=0-ൽ ഒരു അഭ്യർത്ഥന നടത്തുന്നു URL.
അവസ്ഥ അപ്ഡേറ്റ് ചെയ്യാനുള്ള HTTP അഭ്യർത്ഥന (JavaScript)
ഔട്ട്പുട്ട് നില അപ്ഡേറ്റ് ആയി നിലനിർത്താൻ web സെർവർ, /സ്റ്റേറ്റിൽ ഒരു പുതിയ അഭ്യർത്ഥന നടത്തുന്ന ഇനിപ്പറയുന്ന ഫംഗ്ഷനെ ഞങ്ങൾ വിളിക്കുന്നു URL ഓരോ സെക്കൻഡിലും.അഭ്യർത്ഥനകൾ കൈകാര്യം ചെയ്യുക
തുടർന്ന്, ESP32 അല്ലെങ്കിൽ ESP8266 എന്നിവയിൽ അഭ്യർത്ഥനകൾ ലഭിക്കുമ്പോൾ എന്താണ് സംഭവിക്കുന്നതെന്ന് ഞങ്ങൾ കൈകാര്യം ചെയ്യേണ്ടതുണ്ട് URLs.
റൂട്ടിൽ ഒരു അഭ്യർത്ഥന ലഭിക്കുമ്പോൾ /URL, ഞങ്ങൾ HTML പേജും പ്രോസസറും അയയ്ക്കുന്നു./update?state=1 അല്ലെങ്കിൽ /update?state=0 എന്നതിൽ നിങ്ങൾക്ക് ഒരു അഭ്യർത്ഥന ലഭിച്ചോ എന്ന് ഇനിപ്പറയുന്ന വരികൾ പരിശോധിക്കുന്നു URL അതനുസരിച്ച് ledState മാറ്റുകയും ചെയ്യുന്നു.
/സംസ്ഥാനത്ത് ഒരു അഭ്യർത്ഥന ലഭിക്കുമ്പോൾ URL, ഞങ്ങൾ നിലവിലെ ഔട്ട്പുട്ട് അവസ്ഥ അയയ്ക്കുന്നു:
ലൂപ്പ്()
ലൂപ്പിൽ(), ഞങ്ങൾ പുഷ്ബട്ടൺ ഡീബൗൺസ് ചെയ്യുകയും ledState-ൻ്റെ മൂല്യം അനുസരിച്ച് LED ഓണാക്കുകയോ ഓഫാക്കുകയോ ചെയ്യുന്നു. വേരിയബിൾ.പ്രകടനം
നിങ്ങളുടെ ESP32 ബോർഡിലേക്ക് കോഡ് അപ്ലോഡ് ചെയ്യുക. കോഡ് റഫറൻസ് ഘട്ടങ്ങൾ അപ്ലോഡ് ചെയ്യുക.
തുടർന്ന്, 115200 എന്ന ബാഡ് നിരക്കിൽ സീരിയൽ മോണിറ്റർ തുറക്കുക. IP വിലാസം ലഭിക്കാൻ ഓൺ-ബോർഡ് EN/RST ബട്ടൺ അമർത്തുക.നിങ്ങളുടെ പ്രാദേശിക നെറ്റ്വർക്കിൽ ഒരു ബ്രൗസർ തുറന്ന് ESP IP വിലാസം ടൈപ്പ് ചെയ്യുക. നിങ്ങൾക്ക് ആക്സസ് ഉണ്ടായിരിക്കണം web താഴെ കാണിച്ചിരിക്കുന്നതുപോലെ സെർവർ.
കുറിപ്പ്: നിങ്ങളുടെ ബ്രൗസറും ESP32 ഉം ഒരേ LAN-ലേക്ക് കണക്റ്റ് ചെയ്യണം.നിങ്ങൾക്ക് ബട്ടൺ ടോഗിൾ ചെയ്യാം web LED ഓണാക്കാൻ സെർവർ.
ഫിസിക്കൽ പുഷ്ബട്ടൺ ഉപയോഗിച്ച് നിങ്ങൾക്ക് അതേ LED നിയന്ത്രിക്കാനും കഴിയും. അതിൻ്റെ അവസ്ഥ എപ്പോഴും യാന്ത്രികമായി അപ്ഡേറ്റ് ചെയ്യപ്പെടും web സെർവർ.
പദ്ധതി 9 ESP32 DHT11 Web സെർവർ
ഈ പ്രോജക്റ്റിൽ, ഒരു അസിൻക്രണസ് ESP32 എങ്ങനെ നിർമ്മിക്കാമെന്ന് നിങ്ങൾ പഠിക്കും web Arduino IDE ഉപയോഗിച്ച് താപനിലയും ഈർപ്പവും പ്രദർശിപ്പിക്കുന്ന DHT11 ഉള്ള സെർവർ.
മുൻവ്യവസ്ഥകൾ
ദി web സെർവർ പുതുക്കേണ്ട ആവശ്യമില്ലാതെ തന്നെ ഞങ്ങൾ റീഡിംഗുകൾ യാന്ത്രികമായി അപ്ഡേറ്റുകൾ നിർമ്മിക്കും web പേജ്.
ഈ പ്രോജക്റ്റ് ഉപയോഗിച്ച് നിങ്ങൾ പഠിക്കും:
- ഡിഎച്ച്ടി സെൻസറുകളിൽ നിന്ന് താപനിലയും ഈർപ്പവും എങ്ങനെ വായിക്കാം;
- ഒരു അസിൻക്രണസ് നിർമ്മിക്കുക web ഉപയോഗിക്കുന്ന സെർവർ ESPAsyncWebസെർവർ ലൈബ്രറി;
- പുതുക്കേണ്ട ആവശ്യമില്ലാതെ സെൻസർ റീഡിംഗുകൾ സ്വയമേവ അപ്ഡേറ്റ് ചെയ്യുക web പേജ്.
അസിൻക്രണസ് Web സെർവർ
നിർമ്മിക്കാൻ web സെർവർ ഞങ്ങൾ ഉപയോഗിക്കും ESPAsyncWebസെർവർ ലൈബ്രറി അത് ഒരു അസിൻക്രണസ് നിർമ്മിക്കാനുള്ള എളുപ്പവഴി നൽകുന്നു web സെർവർ. ഒരു അസിൻക്രണസ് നിർമ്മിക്കുന്നു web സെർവറിന് നിരവധി അഡ്വാൻസ് ഉണ്ട്tages ലൈബ്രറി GitHub പേജിൽ സൂചിപ്പിച്ചിരിക്കുന്നത് പോലെ:
- "ഒരേ സമയം ഒന്നിലധികം കണക്ഷനുകൾ കൈകാര്യം ചെയ്യുക";
- “നിങ്ങൾ പ്രതികരണം അയയ്ക്കുമ്പോൾ, പശ്ചാത്തലത്തിൽ പ്രതികരണം അയയ്ക്കുന്നത് സെർവർ ശ്രദ്ധിക്കുമ്പോൾ മറ്റ് കണക്ഷനുകൾ കൈകാര്യം ചെയ്യാൻ നിങ്ങൾ ഉടൻ തയ്യാറാണ്”;
- "ടെംപ്ലേറ്റുകൾ കൈകാര്യം ചെയ്യുന്നതിനുള്ള ലളിതമായ ടെംപ്ലേറ്റ് പ്രോസസ്സിംഗ് എഞ്ചിൻ";
ആവശ്യമായ ഭാഗങ്ങൾ
ഈ ട്യൂട്ടോറിയൽ പൂർത്തിയാക്കാൻ നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന ഭാഗങ്ങൾ ആവശ്യമാണ്:
- ESP32 വികസന ബോർഡ്
- DHT11 മൊഡ്യൂൾ
- ബ്രെഡ്ബോർഡ്
- ജമ്പർ വയറുകൾ
സ്കീമാറ്റിക്ലൈബ്രറികൾ ഇൻസ്റ്റാൾ ചെയ്യുന്നു
ഈ പ്രോജക്റ്റിനായി നിങ്ങൾ രണ്ട് ലൈബ്രറികൾ ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട്:
- ദി DHT കൂടാതെ അഡാഫ്രൂട്ട് ഏകീകൃത സെൻസർ DHT സെൻസറിൽ നിന്ന് വായിക്കാൻ ഡ്രൈവർ ലൈബ്രറികൾ.
- ESPAsyncWebസെർവർ ഒപ്പം അസിൻക് ടിസിപി അസിൻക്രണസ് നിർമ്മിക്കാൻ ലൈബ്രറികൾ web സെർവർ.
ആ ലൈബ്രറികൾ ഇൻസ്റ്റാൾ ചെയ്യാൻ ഇനിപ്പറയുന്ന നിർദ്ദേശങ്ങൾ പാലിക്കുക:
DHT സെൻസർ ലൈബ്രറി ഇൻസ്റ്റാൾ ചെയ്യുന്നു
Arduino IDE ഉപയോഗിച്ച് DHT സെൻസറിൽ നിന്ന് വായിക്കാൻ, നിങ്ങൾ ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട് DHT സെൻസർ ലൈബ്രറി. ലൈബ്രറി ഇൻസ്റ്റാൾ ചെയ്യാൻ അടുത്ത ഘട്ടങ്ങൾ പാലിക്കുക.
- DHT സെൻസർ ലൈബ്രറി ഡൗൺലോഡ് ചെയ്യാൻ ഇവിടെ ക്ലിക്ക് ചെയ്യുക. നിങ്ങളുടെ ഡൗൺലോഡ് ഫോൾഡറിൽ ഒരു .zip ഫോൾഡർ ഉണ്ടായിരിക്കണം
- .zip ഫോൾഡർ അൺസിപ്പ് ചെയ്യുക, നിങ്ങൾക്ക് DHT-sensor-library-master ഫോൾഡർ ലഭിക്കും
- DHT-sensor-library-master-ൽ നിന്ന് DHT_sensor എന്നതിലേക്ക് നിങ്ങളുടെ ഫോൾഡറിൻ്റെ പേര് മാറ്റുക
- DHT_sensor ഫോൾഡർ നിങ്ങളുടെ Arduino IDE ഇൻസ്റ്റലേഷൻ ലൈബ്രറികളുടെ ഫോൾഡറിലേക്ക് നീക്കുക
- അവസാനമായി, നിങ്ങളുടെ Arduino IDE വീണ്ടും തുറക്കുക
അഡാഫ്രൂട്ട് യൂണിഫൈഡ് സെൻസർ ഡ്രൈവർ ഇൻസ്റ്റാൾ ചെയ്യുന്നു
നിങ്ങൾ ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട് അഡാഫ്രൂട്ട് യൂണിഫൈഡ് സെൻസർ ഡ്രൈവർ ലൈബ്രറി 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 ലൈബ്രറി ഇൻസ്റ്റാൾ ചെയ്യുന്നു
ദി ESPAsyncWebസെർവർ ലൈബ്രറി ആവശ്യമാണ് AsyncTCP പ്രവർത്തിക്കാൻ ലൈബ്രറി. ആ ലൈബ്രറി ഇൻസ്റ്റാൾ ചെയ്യാൻ ഇനിപ്പറയുന്ന ഘട്ടങ്ങൾ പാലിക്കുക:
- AsyncTCP ലൈബ്രറി ഡൗൺലോഡ് ചെയ്യാൻ ഇവിടെ ക്ലിക്ക് ചെയ്യുക. നിങ്ങളുടെ ഡൗൺലോഡ് ഫോൾഡറിൽ ഒരു .zip ഫോൾഡർ ഉണ്ടായിരിക്കണം
- .zip ഫോൾഡർ അൺസിപ്പ് ചെയ്യുക, നിങ്ങൾക്ക് AsyncTCP-master ഫോൾഡർ ലഭിക്കും
- AsyncTCP-master-ൽ നിന്ന് AsyncTCP എന്നതിലേക്ക് നിങ്ങളുടെ ഫോൾഡറിൻ്റെ പേര് മാറ്റുക
- AsyncTCP ഫോൾഡർ നിങ്ങളുടെ Arduino IDE ഇൻസ്റ്റലേഷൻ ലൈബ്രറികളുടെ ഫോൾഡറിലേക്ക് നീക്കുക
- അവസാനമായി, നിങ്ങളുടെ Arduino IDE വീണ്ടും തുറക്കുക
കോഡ്
Arduino IDE ഉപയോഗിച്ച് ഞങ്ങൾ ESP32 പ്രോഗ്രാം ചെയ്യും, അതിനാൽ തുടരുന്നതിന് മുമ്പ് ESP32 ആഡ്-ഓൺ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക:(നിങ്ങൾ ഇതിനകം ഈ ഘട്ടം ചെയ്തിട്ടുണ്ടെങ്കിൽ, നിങ്ങൾക്ക് അടുത്ത ഘട്ടത്തിലേക്ക് പോകാം.)
Arduino IDE-യിൽ ESP32 ആഡ്-ഓൺ ഇൻസ്റ്റാൾ ചെയ്യുന്നു
ആവശ്യമായ ലൈബ്രറികൾ ഇൻസ്റ്റാൾ ചെയ്ത ശേഷം, കോഡ് തുറക്കുക
Project_9_ESP32_DHT11_Web_Server.ino arduino IDE-ൽ.
കോഡ് അപ്ലോഡ് ചെയ്യുന്നതിനുമുമ്പ്, നിങ്ങളുടെ നെറ്റ്വർക്ക് ക്രെഡൻഷ്യലുകൾ ചേർക്കാൻ മറക്കരുത്, അതുവഴി ESP-ന് നിങ്ങളുടെ പ്രാദേശിക നെറ്റ്വർക്കിലേക്ക് കണക്റ്റുചെയ്യാനാകും.കോഡ് എങ്ങനെ പ്രവർത്തിക്കുന്നു
കോഡ് എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്ന് ഇനിപ്പറയുന്ന ഖണ്ഡികകളിൽ ഞങ്ങൾ വിശദീകരിക്കും. നിങ്ങൾക്ക് കൂടുതലറിയണമെങ്കിൽ വായന തുടരുക അല്ലെങ്കിൽ അന്തിമ ഫലം കാണുന്നതിന് ഡെമോൺസ്ട്രേഷൻ വിഭാഗത്തിലേക്ക് പോകുക.
ലൈബ്രറികൾ ഇറക്കുമതി ചെയ്യുന്നു
ആദ്യം, ആവശ്യമായ ലൈബ്രറികൾ ഇറക്കുമതി ചെയ്യുക. വൈഫൈ, ESPAsyncWebനിർമ്മിക്കാൻ സെർവറും ESPAsyncTCP-യും ആവശ്യമാണ് web സെർവർ. DHT11 അല്ലെങ്കിൽ DHT22 സെൻസറുകളിൽ നിന്ന് വായിക്കാൻ Adafruit_Sensor, DHT ലൈബ്രറികൾ എന്നിവ ആവശ്യമാണ്.വേരിയബിളുകളുടെ നിർവചനം
DHT ഡാറ്റ പിൻ ബന്ധിപ്പിച്ചിരിക്കുന്ന GPIO നിർവചിക്കുക. ഈ സാഹചര്യത്തിൽ, ഇത് GPIO 4-ലേക്ക് ബന്ധിപ്പിച്ചിരിക്കുന്നു.തുടർന്ന്, നിങ്ങൾ ഉപയോഗിക്കുന്ന DHT സെൻസർ തരം തിരഞ്ഞെടുക്കുക. ഞങ്ങളുടെ മുൻample, ഞങ്ങൾ DHT22 ഉപയോഗിക്കുന്നു. നിങ്ങൾ മറ്റൊരു തരമാണ് ഉപയോഗിക്കുന്നതെങ്കിൽ, നിങ്ങളുടെ സെൻസർ അൺകമൻ്റ് ചെയ്യുകയും മറ്റുള്ളവയെല്ലാം കമൻ്റ് ചെയ്യുകയും വേണം.
ഞങ്ങൾ നേരത്തെ നിർവചിച്ച തരവും പിൻ ഉപയോഗിച്ച് ഒരു DHT ഒബ്ജക്റ്റ് ഉടനടി സ്ഥാപിക്കുക.ഒരു അസിൻക് സൃഷ്ടിക്കുകWebപോർട്ട് 80-ലെ സെർവർ ഒബ്ജക്റ്റ്.
താപനില, ഈർപ്പം പ്രവർത്തനങ്ങൾ വായിക്കുക
ഞങ്ങൾ രണ്ട് ഫംഗ്ഷനുകൾ സൃഷ്ടിച്ചു: ഒന്ന് താപനില വായിക്കാൻ ഞങ്ങൾ രണ്ട് ഫംഗ്ഷനുകൾ സൃഷ്ടിച്ചു: ഒന്ന് താപനില വായിക്കാൻ (readDHTTtemperature()) മറ്റൊന്ന് ഈർപ്പം വായിക്കാൻ (readDHTHumidity()).സെൻസർ റീഡിംഗുകൾ ലഭിക്കുന്നത് പോലെ തന്നെ ലളിതമാണ് സെൻസർ റീഡിംഗുകൾ നേടുന്നത് ഡിഎച്ച്ടി ഒബ്ജക്റ്റിലെ റീഡ് ടെമ്പറേച്ചർ(), റീഡ് ഹ്യൂമിഡിറ്റി() രീതികൾ ഉപയോഗിക്കുന്നത് പോലെ ലളിതമാണ്.
സെൻസർ റീഡിംഗുകൾ നേടുന്നതിൽ പരാജയപ്പെട്ടാൽ രണ്ട് ഡാഷുകൾ (–) നൽകുന്ന ഒരു വ്യവസ്ഥയും ഞങ്ങൾക്കുണ്ട്.
റീഡിംഗുകൾ സ്ട്രിംഗ് തരമായി തിരികെ നൽകുന്നു. ഒരു ഫ്ലോട്ട് ഒരു സ്ട്രിംഗ് ആയി പരിവർത്തനം ചെയ്യാൻ, String() ഫംഗ്ഷൻ ഉപയോഗിക്കുക
സ്ഥിരസ്ഥിതിയായി, ഞങ്ങൾ താപനില സെൽഷ്യസ് ഡിഗ്രിയിൽ വായിക്കുന്നു. ഫാരൻഹീറ്റ് ഡിഗ്രിയിൽ താപനില ലഭിക്കാൻ, സെൽഷ്യസിൽ താപനില കമൻ്റ് ചെയ്യുക, ഫാരൻഹീറ്റിൽ താപനില അൺകമെൻ്റ് ചെയ്യുക, അതുവഴി നിങ്ങൾക്ക് ഇനിപ്പറയുന്നവ ലഭിക്കും:
കോഡ് അപ്ലോഡ് ചെയ്യുക
ഇപ്പോൾ, നിങ്ങളുടെ ESP32-ലേക്ക് കോഡ് അപ്ലോഡ് ചെയ്യുക. നിങ്ങൾക്ക് ശരിയായ ബോർഡും COM പോർട്ടും തിരഞ്ഞെടുത്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക. കോഡ് റഫറൻസ് ഘട്ടങ്ങൾ അപ്ലോഡ് ചെയ്യുക.
അപ്ലോഡ് ചെയ്ത ശേഷം, 115200 എന്ന ബാഡ് നിരക്കിൽ സീരിയൽ മോണിറ്റർ തുറക്കുക. ESP32 റീസെറ്റ് ബട്ടൺ അമർത്തുക. ESP32 IP വിലാസം സീരിയലിൽ പ്രിൻ്റ് ചെയ്യണം മോണിറ്റർ.പ്രകടനം
ഒരു ബ്രൗസർ തുറന്ന് ESP32 IP വിലാസം ടൈപ്പ് ചെയ്യുക. നിങ്ങളുടെ web സെർവർ ഏറ്റവും പുതിയ സെൻസർ റീഡിംഗുകൾ പ്രദർശിപ്പിക്കണം.
കുറിപ്പ്: നിങ്ങളുടെ ബ്രൗസറും ESP32 ഉം ഒരേ LAN-ലേക്ക് കണക്റ്റ് ചെയ്യണം.
റിഫ്രഷ് ചെയ്യാതെ തന്നെ താപനിലയും ഈർപ്പവും സ്വയമേവ അപ്ഡേറ്റ് ചെയ്യപ്പെടുന്നത് ശ്രദ്ധിക്കുക web പേജ്.
Project_10_ESP32_OLED_Display
Arduino IDE ഉപയോഗിച്ച് ESP0.96 ഉപയോഗിച്ച് 1306 ഇഞ്ച് SSD32 OLED ഡിസ്പ്ലേ എങ്ങനെ ഉപയോഗിക്കാമെന്ന് ഈ പ്രോജക്റ്റ് കാണിക്കുന്നു.
0.96 ഇഞ്ച് OLED ഡിസ്പ്ലേ അവതരിപ്പിക്കുന്നു
ദി OLED ഡിസ്പ്ലേ ഈ ട്യൂട്ടോറിയലിൽ ഞങ്ങൾ ഉപയോഗിക്കുന്നത് SSD1306 മോഡലാണ്: ഒരു മോണോകോളർ, ഇനിപ്പറയുന്ന ചിത്രത്തിൽ കാണിച്ചിരിക്കുന്നതുപോലെ 0.96×128 പിക്സലുകളുള്ള 64 ഇഞ്ച് ഡിസ്പ്ലേ.OLED ഡിസ്പ്ലേയ്ക്ക് ബാക്ക്ലൈറ്റ് ആവശ്യമില്ല, ഇത് ഇരുണ്ട പരിതസ്ഥിതികളിൽ വളരെ മികച്ച ദൃശ്യതീവ്രത നൽകുന്നു. കൂടാതെ, അതിൻ്റെ പിക്സലുകൾ അവ ഓണായിരിക്കുമ്പോൾ മാത്രം ഊർജ്ജം ഉപയോഗിക്കുന്നു, അതിനാൽ മറ്റ് ഡിസ്പ്ലേകളുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ OLED ഡിസ്പ്ലേ കുറച്ച് വൈദ്യുതി ഉപയോഗിക്കുന്നു.
OLED ഡിസ്പ്ലേ I2C കമ്മ്യൂണിക്കേഷൻ പ്രോട്ടോക്കോൾ ഉപയോഗിക്കുന്നതിനാൽ, വയറിംഗ് വളരെ ലളിതമാണ്. നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന പട്ടിക ഒരു റഫറൻസായി ഉപയോഗിക്കാം.
OLED പിൻ | ESP32 |
വിൻ | 3.3V |
ജിഎൻഡി | ജിഎൻഡി |
SCL | GPIO 22 |
എസ്.ഡി.എ | GPIO 21 |
സ്കീമാറ്റിക്SSD1306 OLED ലൈബ്രറി ഇൻസ്റ്റാൾ ചെയ്യുന്നു - ESP32
ESP32 ഉപയോഗിച്ച് OLED ഡിസ്പ്ലേ നിയന്ത്രിക്കാൻ നിരവധി ലൈബ്രറികൾ ലഭ്യമാണ്.
ഈ ട്യൂട്ടോറിയലിൽ ഞങ്ങൾ രണ്ട് അഡാഫ്രൂട്ട് ലൈബ്രറികൾ ഉപയോഗിക്കും: Adafruit_SSD1306 ലൈബ്രറി ഒപ്പം Adafruit_GFX ലൈബ്രറി.
ആ ലൈബ്രറികൾ ഇൻസ്റ്റാൾ ചെയ്യാൻ അടുത്ത ഘട്ടങ്ങൾ പിന്തുടരുക.
- നിങ്ങളുടെ Arduino IDE തുറന്ന് സ്കെച്ച് > ലൈബ്രറി ഉൾപ്പെടുത്തുക > ലൈബ്രറികൾ നിയന്ത്രിക്കുക എന്നതിലേക്ക് പോകുക. ലൈബ്രറി മാനേജർ തുറക്കണം.
- തിരയൽ ബോക്സിൽ "SSD1306" എന്ന് ടൈപ്പ് ചെയ്ത് Adafruit-ൽ നിന്ന് SSD1306 ലൈബ്രറി ഇൻസ്റ്റാൾ ചെയ്യുക.
- Adafruit-ൽ നിന്ന് SSD1306 ലൈബ്രറി ഇൻസ്റ്റാൾ ചെയ്ത ശേഷം, തിരയൽ ബോക്സിൽ "GFX" എന്ന് ടൈപ്പ് ചെയ്ത് ലൈബ്രറി ഇൻസ്റ്റാൾ ചെയ്യുക.
- ലൈബ്രറികൾ ഇൻസ്റ്റാൾ ചെയ്ത ശേഷം, നിങ്ങളുടെ Arduino IDE പുനരാരംഭിക്കുക.
കോഡ്
ആവശ്യമായ ലൈബ്രറികൾ ഇൻസ്റ്റാൾ ചെയ്ത ശേഷം, arduino IDE-യിൽ Project_10_ESP32_OLED_Display.ino തുറക്കുക. കോഡ്
Arduino IDE ഉപയോഗിച്ച് ഞങ്ങൾ ESP32 പ്രോഗ്രാം ചെയ്യും, അതിനാൽ തുടരുന്നതിന് മുമ്പ് ESP32 ആഡ്-ഓൺ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക: (നിങ്ങൾ ഇതിനകം ഈ ഘട്ടം ചെയ്തിട്ടുണ്ടെങ്കിൽ, നിങ്ങൾക്ക് അടുത്ത ഘട്ടത്തിലേക്ക് പോകാം.)
Arduino IDE-യിൽ ESP32 ആഡ്-ഓൺ ഇൻസ്റ്റാൾ ചെയ്യുന്നുകോഡ് എങ്ങനെ പ്രവർത്തിക്കുന്നു
ലൈബ്രറികൾ ഇറക്കുമതി ചെയ്യുന്നു
ആദ്യം, നിങ്ങൾ ആവശ്യമായ ലൈബ്രറികൾ ഇറക്കുമതി ചെയ്യേണ്ടതുണ്ട്. I2C ഉപയോഗിക്കുന്നതിനുള്ള വയർ ലൈബ്രറിയും ഡിസ്പ്ലേയിൽ എഴുതാൻ Adafruit ലൈബ്രറികളും: Adafruit_GFX, Adafruit_SSD1306.OLED ഡിസ്പ്ലേ ആരംഭിക്കുക
തുടർന്ന്, നിങ്ങളുടെ OLED വീതിയും ഉയരവും നിങ്ങൾ നിർവ്വചിക്കുന്നു. ഇതിൽ മുൻample, ഞങ്ങൾ ഒരു 128×64 OLED ഡിസ്പ്ലേ ഉപയോഗിക്കുന്നു. നിങ്ങൾ മറ്റ് വലുപ്പങ്ങളാണ് ഉപയോഗിക്കുന്നതെങ്കിൽ, നിങ്ങൾക്ക് അത് SCREEN_WIDTH, SCREEN_HEIGHT വേരിയബിളുകളിൽ മാറ്റാനാകും.തുടർന്ന്, I2C കമ്മ്യൂണിക്കേഷൻ പ്രോട്ടോക്കോൾ (&Wire) ഉപയോഗിച്ച് നേരത്തെ നിർവചിച്ച വീതിയും ഉയരവും ഉള്ള ഒരു ഡിസ്പ്ലേ ഒബ്ജക്റ്റ് സമാരംഭിക്കുക.
(-1) പാരാമീറ്റർ അർത്ഥമാക്കുന്നത് നിങ്ങളുടെ OLED ഡിസ്പ്ലേയ്ക്ക് ഒരു റീസെറ്റ് പിൻ ഇല്ല എന്നാണ്. നിങ്ങളുടെ OLED ഡിസ്പ്ലേയ്ക്ക് ഒരു റീസെറ്റ് പിൻ ഉണ്ടെങ്കിൽ, അത് ഒരു GPIO-യുമായി ബന്ധിപ്പിച്ചിരിക്കണം. അങ്ങനെയെങ്കിൽ, നിങ്ങൾ GPIO നമ്പർ ഒരു പാരാമീറ്ററായി നൽകണം.
സജ്ജീകരണത്തിൽ(), ഡീബഗ്ഗിംഗ് ആവശ്യങ്ങൾക്കായി സീരിയൽ മോണിറ്റർ 115200 എന്ന ബാഡ് റൂട്ടിൽ സമാരംഭിക്കുക.ഇനിപ്പറയുന്ന രീതിയിൽ ആരംഭ() രീതി ഉപയോഗിച്ച് OLED ഡിസ്പ്ലേ ആരംഭിക്കുക:
ഞങ്ങൾക്ക് ഡിസ്പ്ലേയിലേക്ക് കണക്റ്റ് ചെയ്യാൻ കഴിയുന്നില്ലെങ്കിൽ സീരിയൽ മോണിറ്ററിൽ ഒരു സന്ദേശവും ഈ സ്നിപ്പറ്റ് പ്രിൻ്റ് ചെയ്യുന്നു.
നിങ്ങൾ മറ്റൊരു OLED ഡിസ്പ്ലേയാണ് ഉപയോഗിക്കുന്നതെങ്കിൽ, നിങ്ങൾ OLED വിലാസം മാറ്റേണ്ടതായി വന്നേക്കാം. ഞങ്ങളുടെ കാര്യത്തിൽ, വിലാസം 0x3C ആണ്.
ഡിസ്പ്ലേ സമാരംഭിച്ചതിന് ശേഷം, രണ്ട് സെക്കൻഡ് കാലതാമസം ചേർക്കുക, അതുവഴി വാചകം എഴുതുന്നതിന് മുമ്പ് OLED ആരംഭിക്കുന്നതിന് മതിയായ സമയം ലഭിക്കും:
ഡിസ്പ്ലേ മായ്ക്കുക, ഫോണ്ട് വലുപ്പം, നിറം, ടെക്സ്റ്റ് എഴുതുക
ഡിസ്പ്ലേ ആരംഭിച്ച ശേഷം, clearDisplay() രീതി ഉപയോഗിച്ച് ഡിസ്പ്ലേ ബഫർ മായ്ക്കുക:
ടെക്സ്റ്റ് എഴുതുന്നതിന് മുമ്പ്, ടെക്സ്റ്റ് സൈസ്, കളർ, ടെക്സ്റ്റ് എവിടെയാണ് OLED-ൽ പ്രദർശിപ്പിക്കേണ്ടത് എന്നിവ നിങ്ങൾ സജ്ജീകരിക്കേണ്ടതുണ്ട്.
setTextSize() രീതി ഉപയോഗിച്ച് ഫോണ്ട് വലുപ്പം സജ്ജമാക്കുക:setTextColor() രീതി ഉപയോഗിച്ച് ഫോണ്ട് നിറം സജ്ജമാക്കുക:
വൈറ്റ് വൈറ്റ് ഫോണ്ടും കറുപ്പ് പശ്ചാത്തലവും സജ്ജമാക്കുന്നു.
setCursor(x,y) രീതി ഉപയോഗിച്ച് ടെക്സ്റ്റ് ആരംഭിക്കുന്ന സ്ഥാനം നിർവചിക്കുക. ഈ സാഹചര്യത്തിൽ, മുകളിൽ ഇടത് കോണിലുള്ള (0,0) കോർഡിനേറ്റുകളിൽ നിന്ന് ആരംഭിക്കാൻ ഞങ്ങൾ വാചകം സജ്ജമാക്കുകയാണ്.അവസാനമായി, നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന രീതിയിൽ println() രീതി ഉപയോഗിച്ച് ഡിസ്പ്ലേയിലേക്ക് ടെക്സ്റ്റ് അയയ്ക്കാം
തുടർന്ന്, സ്ക്രീനിൽ ടെക്സ്റ്റ് യഥാർത്ഥത്തിൽ പ്രദർശിപ്പിക്കുന്നതിന് നിങ്ങൾ ഡിസ്പ്ലേ() രീതിയിലേക്ക് വിളിക്കേണ്ടതുണ്ട്.
ടെക്സ്റ്റ് എളുപ്പത്തിൽ സ്ക്രോൾ ചെയ്യുന്നതിനുള്ള ഉപയോഗപ്രദമായ രീതികൾ Adafruit OLED ലൈബ്രറി നൽകുന്നു.
- startscrollright(0x00, 0x0F): ടെക്സ്റ്റ് ഇടത്തുനിന്ന് വലത്തോട്ട് സ്ക്രോൾ ചെയ്യുക
- സ്റ്റാർട്ട്സ്ക്രോൾലെഫ്റ്റ്(0x00, 0x0F): ടെക്സ്റ്റ് വലത്തുനിന്ന് ഇടത്തേക്ക് സ്ക്രോൾ ചെയ്യുക
- startscrolldiagright(0x00, 0x07): വാചകം ഇടത് താഴെ മൂലയിൽ നിന്ന് വലത് മുകൾ മൂലയിലേക്ക് സ്ക്രോൾ ചെയ്യുക startscrolldiagleft(0x00, 0x07): ടെക്സ്റ്റ് വലത് താഴെ മൂലയിൽ നിന്ന് ഇടത് മുകൾ മൂലയിലേക്ക് സ്ക്രോൾ ചെയ്യുക
കോഡ് അപ്ലോഡ് ചെയ്യുക
ഇപ്പോൾ, നിങ്ങളുടെ ESP32-ലേക്ക് കോഡ് അപ്ലോഡ് ചെയ്യുക. കോഡ് റഫറൻസ് ഘട്ടങ്ങൾ അപ്ലോഡ് ചെയ്യുക.
കോഡ് അപ്ലോഡ് ചെയ്ത ശേഷം, OLED സ്ക്രോളിംഗ് ടെക്സ്റ്റ് പ്രദർശിപ്പിക്കും.
പ്രമാണങ്ങൾ / വിഭവങ്ങൾ
![]() |
LAFVIN ESP32 അടിസ്ഥാന സ്റ്റാർട്ടർ കിറ്റ് [pdf] നിർദ്ദേശ മാനുവൽ ESP32 അടിസ്ഥാന സ്റ്റാർട്ടർ കിറ്റ്, ESP32, അടിസ്ഥാന സ്റ്റാർട്ടർ കിറ്റ്, സ്റ്റാർട്ടർ കിറ്റ് |