ESP32 બેઝિક સ્ટાર્ટર
કિટ
પેકિંગ યાદી
ESP32 પરિચય
ESP32 માં નવા છો? અહીંથી શરૂઆત કરો! ESP32 એ Espressif દ્વારા વિકસાવવામાં આવેલ ઓછી કિંમતના અને ઓછી શક્તિવાળા સિસ્ટમ ઓન અ ચિપ (SoC) માઇક્રોકન્ટ્રોલર્સની શ્રેણી છે જેમાં Wi-Fi અને બ્લૂટૂથ વાયરલેસ ક્ષમતાઓ અને ડ્યુઅલ-કોર પ્રોસેસરનો સમાવેશ થાય છે. જો તમે ESP8266 થી પરિચિત છો, તો ESP32 તેનો અનુગામી છે, જે ઘણી બધી નવી સુવિધાઓથી ભરેલો છે.ESP32 સ્પષ્ટીકરણો
જો તમે થોડી વધુ ટેકનિકલ અને ચોક્કસ માહિતી મેળવવા માંગતા હો, તો તમે ESP32 ના નીચેના વિગતવાર સ્પષ્ટીકરણો પર એક નજર નાખી શકો છો (સ્ત્રોત:) http://esp32.net/)—વધુ વિગતો માટે, ડેટાશીટ તપાસો):
- વાયરલેસ કનેક્ટિવિટી વાઇફાઇ: HT150.0 સાથે 40 Mbps ડેટા રેટ
- બ્લૂટૂથ: BLE (બ્લૂટૂથ લો એનર્જી) અને બ્લૂટૂથ ક્લાસિક
- પ્રોસેસર: ટેન્સિલિકા એક્સટેન્સા ડ્યુઅલ-કોર 32-બીટ LX6 માઇક્રોપ્રોસેસર, 160 અથવા 240 MHz પર ચાલે છે
- મેમરી:
- ROM: 448 KB (બૂટિંગ અને કોર ફંક્શન્સ માટે)
- SRAM: 520 KB (ડેટા અને સૂચનાઓ માટે)
- RTC fas SRAM: 8 KB (ડીપ-સ્લીપ મોડમાંથી RTC બુટ દરમિયાન ડેટા સ્ટોરેજ અને મુખ્ય CPU માટે)
- RTC સ્લો SRAM: 8KB (ડીપ-સ્લીપ મોડ દરમિયાન કો-પ્રોસેસર એક્સેસ કરવા માટે) eFuse: 1 Kbit (જેમાંથી 256 બિટ્સ સિસ્ટમ માટે વપરાય છે (MAC સરનામું અને ચિપ ગોઠવણી) અને બાકીના 768 બિટ્સ ગ્રાહક એપ્લિકેશનો માટે આરક્ષિત છે, જેમાં ફ્લેશ-એન્ક્રિપ્શન અને ચિપ-IDનો સમાવેશ થાય છે)
એમ્બેડેડ ફ્લેશ: ફ્લેશ 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 રૂપાંતરણોનો ઉપયોગ કરી શકો છો, ઉદાહરણ તરીકેampલે, ગાઢ ઊંઘ દરમિયાન.
પેરિફેરલ ઇનપુટ/આઉટપુટ:
- DMA સાથે પેરિફેરલ ઇન્ટરફેસ જેમાં કેપેસિટીવ ટચનો સમાવેશ થાય છે
- ADCs (એનાલોગ-ટુ-ડિજિટલ કન્વર્ટર)
- DACs (ડિજિટલ-ટુ-એનાલોગ કન્વર્ટર)
- 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 બોર્ડની સુવિધાઓ અને વિશિષ્ટતાઓનો સારાંશ દર્શાવે છે:
કોરોની સંખ્યા | ૨ (ડ્યુઅલ કોર) |
Wi-Fi | ૨.૪ ગીગાહર્ટ્ઝ ૧૫૦ મેગાબિટ્સ/સેકન્ડ સુધી |
બ્લૂટૂથ | BLE (બ્લુટુથ લો એનર્જી) અને લેગસી બ્લુટુથ |
આર્કિટેક્ચર | 32 બિટ્સ |
ઘડિયાળની આવર્તન | 240 MHz સુધી |
રેમ | 512 KB |
પિન | ૩૦ (મોડેલ પર આધાર રાખીને) |
પેરિફેરલ્સ | કેપેસિટીવ ટચ, ADC (એનાલોગથી ડિજિટલ કન્વર્ટર), DAC (ડિજિટલથી એનાલોગ કન્વર્ટર), 12C (ઇન્ટર-ઇન્ટિગ્રેટેડ સર્કિટ), UART (યુનિવર્સલ એસિંક્રોનસ રીસીવર/ટ્રાન્સમીટર), CAN 2.0 (કંટ્રોલર એરિયા નેટવર્ક), SPI (સીરીયલ પેરિફેરલ ઇન્ટરફેસ), 12S (ઇન્ટિગ્રેટેડ ઇન્ટર-IC) સાઉન્ડ), RMII (ઘટાડેલું મીડિયા-સ્વતંત્ર ઇન્ટરફેસ), PWM (પલ્સ પહોળાઈ મોડ્યુલેશન), અને વધુ. |
બિલ્ટ-ઇન બટનો | રીસેટ અને બુટ બટનો |
બિલ્ટ-ઇન એલઇડી | GPIO2 સાથે જોડાયેલ બિલ્ટ-ઇન વાદળી LED; બિલ્ટ-ઇન લાલ LED જે દર્શાવે છે કે બોર્ડ પાવરથી ચાલે છે. |
યુ.એસ.ટી. થી યુ.આર.ટી. પુલ |
CP2102 |
તે માઇક્રોયુએસબી ઇન્ટરફેસ સાથે આવે છે જેનો ઉપયોગ તમે કોડ અપલોડ કરવા અથવા પાવર લાગુ કરવા માટે બોર્ડને તમારા કમ્પ્યુટર સાથે કનેક્ટ કરવા માટે કરી શકો છો.
તે સીરીયલ ઇન્ટરફેસનો ઉપયોગ કરીને COM પોર્ટ દ્વારા તમારા કમ્પ્યુટર સાથે વાતચીત કરવા માટે CP2102 ચિપ (USB થી UART) નો ઉપયોગ કરે છે. બીજી લોકપ્રિય ચિપ CH340 છે. તમારા બોર્ડ પર USB થી UART ચિપ કન્વર્ટર શું છે તે તપાસો કારણ કે તમારે જરૂરી ડ્રાઇવરો ઇન્સ્ટોલ કરવાની જરૂર પડશે જેથી તમારું કમ્પ્યુટર બોર્ડ સાથે વાતચીત કરી શકે (આ માર્ગદર્શિકામાં આ વિશે વધુ માહિતી પછીથી).
આ બોર્ડમાં બોર્ડને રીસ્ટાર્ટ કરવા માટે RESET બટન (જેને EN તરીકે લેબલ કરી શકાય છે) અને બોર્ડને ફ્લેશિંગ મોડમાં મૂકવા માટે BOOT બટન (કોડ પ્રાપ્ત કરવા માટે ઉપલબ્ધ) પણ આવે છે. નોંધ કરો કે કેટલાક બોર્ડમાં BOOT બટન ન પણ હોય.
તે બિલ્ટ-ઇન બ્લુ LED સાથે પણ આવે છે જે GPIO 2 સાથે આંતરિક રીતે જોડાયેલ છે. આ LED ડિબગીંગ માટે ઉપયોગી છે જેથી કોઈ પ્રકારનું વિઝ્યુઅલ ફિઝિકલ આઉટપુટ મળે. એક લાલ LED પણ છે જે બોર્ડને પાવર પૂરો પાડતી વખતે પ્રકાશિત થાય છે.ESP32 પિનઆઉટ
ESP32 પેરિફેરલ્સમાં શામેલ છે:
- ૧૮ એનાલોગ-ટુ-ડિજિટલ કન્વર્ટર (ADC) ચેનલો
- ૩ SPI ઇન્ટરફેસ
- 3 UART ઇન્ટરફેસ
- 2 I2C ઇન્ટરફેસ
- 16 PWM આઉટપુટ ચેનલો
- 2 ડિજિટલ-ટુ-એનાલોગ કન્વર્ટર (DAC)
- 2 I2S ઇન્ટરફેસ
- ૧૦ કેપેસિટીવ સેન્સિંગ GPIOs
ADC (એનાલોગ ટુ ડિજિટલ કન્વર્ટર) અને DAC (ડિજિટલ ટુ એનાલોગ કન્વર્ટર) સુવિધાઓ ચોક્કસ સ્ટેટિક પિનને સોંપવામાં આવી છે. જો કે, તમે નક્કી કરી શકો છો કે કયા પિન UART, I2C, SPI, PWM, વગેરે છે - તમારે ફક્ત તેમને કોડમાં સોંપવાની જરૂર છે. ESP32 ચિપની મલ્ટિપ્લેક્સિંગ સુવિધાને કારણે આ શક્ય છે.
જો કે તમે સોફ્ટવેર પર પિન ગુણધર્મો વ્યાખ્યાયિત કરી શકો છો, નીચેની આકૃતિમાં બતાવ્યા પ્રમાણે ડિફોલ્ટ રૂપે પિન સોંપેલ છે.વધુમાં, એવી પિન છે જેમાં ચોક્કસ સુવિધાઓ છે જે તેમને ચોક્કસ પ્રોજેક્ટ માટે યોગ્ય બનાવે છે કે નહીં. નીચેનું કોષ્ટક બતાવે છે કે ઇનપુટ, આઉટપુટ તરીકે કયા પિનનો ઉપયોગ કરવો શ્રેષ્ઠ છે અને કયા પિનનો તમારે સાવચેત રહેવાની જરૂર છે.
લીલા રંગમાં પ્રકાશિત પિન વાપરવા માટે યોગ્ય છે. પીળા રંગમાં પ્રકાશિત પિન વાપરવા માટે યોગ્ય છે, પરંતુ તમારે ધ્યાન આપવાની જરૂર છે કારણ કે તેમાં મુખ્યત્વે બુટ સમયે અણધારી વર્તણૂક હોઈ શકે છે. લાલ રંગમાં પ્રકાશિત પિનનો ઇનપુટ અથવા આઉટપુટ તરીકે ઉપયોગ કરવાની ભલામણ કરવામાં આવતી નથી.
જીપી આઇઓ | ઇનપુટ | આઉટપુટ | નોંધો |
0 | ઉપર ખેંચાયું | OK | બુટ સમયે PWM સિગ્નલ આઉટપુટ કરે છે, ફ્લેશિંગ મોડમાં પ્રવેશવા માટે તે ઓછું હોવું આવશ્યક છે |
1 | TX પિન | OK | બુટ સમયે આઉટપુટ ડીબગ કરો |
2 | OK | OK | ઓન-બોર્ડ LED સાથે જોડાયેલ, ફ્લેશિંગ મોડમાં પ્રવેશવા માટે તેને તરતું અથવા નીચું રાખવું આવશ્યક છે |
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 GPIOs અને તેના કાર્યોના વધુ વિગતવાર અને ઊંડાણપૂર્વક વિશ્લેષણ માટે વાંચન ચાલુ રાખો.
ફક્ત પિન ઇનપુટ કરો
GPIOs 34 થી 39 એ GPIs છે - ફક્ત ઇનપુટ પિન. આ પિનમાં આંતરિક પુલ-અપ અથવા પુલ-ડાઉન રેઝિસ્ટર નથી. તેનો ઉપયોગ આઉટપુટ તરીકે થઈ શકતો નથી, તેથી આ પિનનો ઉપયોગ ફક્ત ઇનપુટ તરીકે કરો:
- 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)
- જીપીઆઈઓ ૧૧ (સીએસસી/સીએમડી)
કેપેસિટીવ ટચ GPIOs
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 છે). આ GPIOs છે જેનો ઉપયોગ ADC અને સંબંધિત ચેનલો તરીકે થઈ શકે છે:
- 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 ચેનલો છે.tage સિગ્નલ આઉટપુટ. આ DAC ચેનલો છે:
- DAC1 (GPIO25)
- DAC2 (GPIO26)
RTC GPIOs
ESP32 પર RTC GPIO સપોર્ટ છે. જ્યારે ESP32 ડીપ સ્લીપમાં હોય ત્યારે RTC લો-પાવર સબસિસ્ટમ પર રૂટ કરાયેલા GPIO નો ઉપયોગ કરી શકાય છે. જ્યારે અલ્ટ્રા લો હોય ત્યારે ESP32 ને ડીપ સ્લીપમાંથી જગાડવા માટે આ RTC GPIO નો ઉપયોગ કરી શકાય છે.
પાવર (ULP) કો-પ્રોસેસર ચાલી રહ્યું છે. નીચેના GPIOs નો ઉપયોગ બાહ્ય વેક અપ સ્ત્રોત તરીકે થઈ શકે છે.
- આરટીસી_જીપીઆઈઓ0 (જીપીઆઈઓ36)
- આરટીસી_જીપીઆઈઓ3 (જીપીઆઈઓ39)
- આરટીસી_જીપીઆઈઓ4 (જીપીઆઈઓ34)
- આરટીસી_જીપીઆઈઓ5 (જીપીઆઈઓ35)
- આરટીસી_જીપીઆઈઓ6 (જીપીઆઈઓ25)
- આરટીસી_જીપીઆઈઓ7 (જીપીઆઈઓ26)
- આરટીસી_જીપીઆઈઓ8 (જીપીઆઈઓ33)
- આરટીસી_જીપીઆઈઓ9 (જીપીઆઈઓ32)
- આરટીસી_જીપીઆઈઓ10 (જીપીઆઈઓ4)
- આરટીસી_જીપીઆઈઓ11 (જીપીઆઈઓ0)
- આરટીસી_જીપીઆઈઓ12 (જીપીઆઈઓ2)
- આરટીસી_જીપીઆઈઓ13 (જીપીઆઈઓ15)
- આરટીસી_જીપીઆઈઓ14 (જીપીઆઈઓ13)
- આરટીસી_જીપીઆઈઓ15 (જીપીઆઈઓ12)
- આરટીસી_જીપીઆઈઓ16 (જીપીઆઈઓ14)
- આરટીસી_જીપીઆઈઓ17 (જીપીઆઈઓ27)
PWM
ESP32 LED PWM કંટ્રોલરમાં 16 સ્વતંત્ર ચેનલો છે જે વિવિધ ગુણધર્મો સાથે PWM સિગ્નલ જનરેટ કરવા માટે ગોઠવી શકાય છે. આઉટપુટ તરીકે કાર્ય કરી શકે તેવા બધા પિનનો ઉપયોગ PWM પિન તરીકે થઈ શકે છે (GPIOs 34 થી 39 PWM જનરેટ કરી શકતા નથી).
PWM સિગ્નલ સેટ કરવા માટે, તમારે કોડમાં આ પરિમાણો વ્યાખ્યાયિત કરવાની જરૂર છે:
- સિગ્નલની આવર્તન;
- ફરજ ચક્ર;
- PWM ચેનલ;
- GPIO જ્યાં તમે સિગ્નલ આઉટપુટ કરવા માંગો છો.
I2C
ESP32 માં બે I2C ચેનલો છે અને કોઈપણ પિનને SDA અથવા SCL તરીકે સેટ કરી શકાય છે. Arduino IDE સાથે ESP32 નો ઉપયોગ કરતી વખતે, ડિફોલ્ટ I2C પિન આ પ્રમાણે છે:
- GPIO 21 (SDA)
- GPIO 22 (SCL)
જો તમે વાયર લાઇબ્રેરીનો ઉપયોગ કરતી વખતે અન્ય પિનનો ઉપયોગ કરવા માંગતા હો, તો તમારે ફક્ત કૉલ કરવાની જરૂર છે:
વાયર.બિગિન(એસડીએ, એસસીએલ);
SPI
ડિફૉલ્ટ રૂપે, SPI માટે પિન મેપિંગ આ પ્રમાણે છે:
SPI | મોસી | મીસો | સીએલકે | CS |
વીએસપીઆઈ | GPIO 23 | GPIO 19 | GPIO 18 | GPIO 5 |
HSPI | 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 તેમની સ્થિતિને HIGH માં બદલી નાખે છે અથવા બુટ અથવા રીસેટ પર PWM સિગ્નલ આઉટપુટ કરે છે.
આનો અર્થ એ છે કે જો તમારી પાસે આ GPIOs સાથે આઉટપુટ જોડાયેલા હોય, તો ESP32 રીસેટ અથવા બુટ થાય ત્યારે તમને અણધાર્યા પરિણામો મળી શકે છે.
- GPIO 1
- GPIO 3
- GPIO 5
- GPIO 6 થી GPIO 11 (ESP32 ઇન્ટિગ્રેટેડ SPI ફ્લેશ મેમરી સાથે જોડાયેલ - ઉપયોગ કરવાની ભલામણ કરવામાં આવતી નથી).
- GPIO 14
- GPIO 15
સક્ષમ કરો (EN)
Enable (EN) એ 3.3V રેગ્યુલેટરનો Enable Pin છે. તે ઉપર ખેંચાયેલું છે, તેથી 3.3V રેગ્યુલેટરને અક્ષમ કરવા માટે ગ્રાઉન્ડ સાથે કનેક્ટ કરો. આનો અર્થ એ છે કે તમે તમારા ESP32 ને ફરીથી શરૂ કરવા માટે પુશબટન સાથે જોડાયેલા આ પિનનો ઉપયોગ કરી શકો છો, ઉદાહરણ તરીકેample
GPIO પ્રવાહ દોરવામાં આવ્યો
ESP40 ડેટાશીટમાં "ભલામણ કરેલ ઓપરેટિંગ શરતો" વિભાગ અનુસાર, GPIO દીઠ ખેંચાયેલ સંપૂર્ણ મહત્તમ પ્રવાહ 32mA છે.
ESP32 બિલ્ટ-ઇન હોલ ઇફેક્ટ સેન્સર
ESP32 માં બિલ્ટ-ઇન હોલ ઇફેક્ટ સેન્સર પણ છે જે તેની આસપાસના ચુંબકીય ક્ષેત્રમાં થતા ફેરફારોને શોધી કાઢે છે.
ESP32 Arduino IDE
Arduino IDE માટે એક એડ-ઓન છે જે તમને Arduino IDE અને તેની પ્રોગ્રામિંગ ભાષાનો ઉપયોગ કરીને ESP32 ને પ્રોગ્રામ કરવાની મંજૂરી આપે છે. આ ટ્યુટોરીયલમાં અમે તમને બતાવીશું કે તમે Windows, Mac OS X કે Linux નો ઉપયોગ કરી રહ્યા હોવ તો પણ Arduino IDE માં ESP32 બોર્ડ કેવી રીતે ઇન્સ્ટોલ કરવું.
પૂર્વજરૂરીયાતો: Arduino IDE ઇન્સ્ટોલ કરેલ
આ ઇન્સ્ટોલેશન પ્રક્રિયા શરૂ કરતા પહેલા, તમારે તમારા કમ્પ્યુટર પર Arduino IDE ઇન્સ્ટોલ કરેલું હોવું જરૂરી છે. Arduino IDE ના બે વર્ઝન છે જે તમે ઇન્સ્ટોલ કરી શકો છો: વર્ઝન 1 અને વર્ઝન 2.
તમે નીચેની લિંક પર ક્લિક કરીને Arduino IDE ડાઉનલોડ અને ઇન્સ્ટોલ કરી શકો છો: arduino.cc/en/Main/સોફ્ટવેર
અમે કયા 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 and press install button for the “ESP32 by Espressif Systems“:
બસ, બસ. થોડીક સેકન્ડ પછી તે ઇન્સ્ટોલ થઈ જશે.
ટેસ્ટ કોડ અપલોડ કરો
ESP32 બોર્ડને તમારા કમ્પ્યુટર સાથે પ્લગ કરો. તમારા Arduino IDE ને ખુલ્લું રાખીને, આ પગલાં અનુસરો:
- ટૂલ્સ > બોર્ડ મેનૂમાં તમારું બોર્ડ પસંદ કરો (મારા કિસ્સામાં તે ESP32 DEV મોડ્યુલ છે)
- પોર્ટ પસંદ કરો (જો તમને તમારા Arduino IDE માં COM પોર્ટ દેખાતો નથી, તો તમારે CP210x USB થી UART બ્રિજ VCP ડ્રાઇવર્સ ઇન્સ્ટોલ કરવાની જરૂર છે):
- નીચે આપેલ ભૂતપૂર્વ ખોલોampનીચે File > દા.તampઓછી > વાઇફાઇ
(ESP32) > વાઇફાઇસ્કેન - તમારા Arduino IDE માં એક નવું સ્કેચ ખુલશે:
- Arduino IDE માં "અપલોડ કરો" બટન દબાવો. કોડ કમ્પાઇલ થાય અને તમારા બોર્ડ પર અપલોડ થાય ત્યાં સુધી થોડીવાર રાહ જુઓ.
- જો બધું અપેક્ષા મુજબ થયું, તો તમને "અપલોડ થઈ ગયું" સંદેશ દેખાશે.
- ૧૧૫૨૦૦ ના બોડ રેટ પર 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 તરીકે સેટ કરવાની જરૂર છે. નીચે પ્રમાણે pinMode() ફંક્શનનો ઉપયોગ કરો:
પિનમોડ(GPIO, આઉટપુટ);
ડિજિટલ આઉટપુટને નિયંત્રિત કરવા માટે તમારે ફક્ત digitalWrite() ફંક્શનનો ઉપયોગ કરવાની જરૂર છે, જે દલીલો તરીકે સ્વીકારે છે, તમે જે GPIO (int નંબર) નો ઉલ્લેખ કરી રહ્યા છો, અને સ્થિતિ, ક્યાં તો HIGH અથવા LOW.
ડિજિટલરાઇટ(GPIO, રાજ્ય);
GPIOs 6 થી 11 (સંકલિત SPI ફ્લેશ સાથે જોડાયેલ) અને GPIOs 34, 35, 36 અને 39 (ફક્ત ઇનપુટ GPIOs) સિવાય, બધા GPIOs આઉટપુટ તરીકે વાપરી શકાય છે;
ESP32 GPIOs વિશે વધુ જાણો: ESP32 GPIO સંદર્ભ માર્ગદર્શિકા
ESP32 ડિજિટલ ઇનપુટ્સ વાંચો
સૌપ્રથમ, pinMode() ફંક્શનનો ઉપયોગ કરીને, તમે જે GPIO વાંચવા માંગો છો તેને INPUT તરીકે સેટ કરો:
પિનમોડ(GPIO, ઇનપુટ);
ડિજિટલ ઇનપુટ વાંચવા માટે, જેમ કે બટન, તમે digitalRead() ફંક્શનનો ઉપયોગ કરો છો, જે તમે ઉલ્લેખ કરી રહ્યા છો તે GPIO (int નંબર) ને દલીલ તરીકે સ્વીકારે છે.
ડિજિટલ રીડ(GPIO);
બધા ESP32 GPIOs નો ઉપયોગ ઇનપુટ તરીકે થઈ શકે છે, સિવાય કે GPIOs 6 થી 11 (સંકલિત SPI ફ્લેશ સાથે જોડાયેલા).
ESP32 GPIOs વિશે વધુ જાણો: ESP32 GPIO સંદર્ભ માર્ગદર્શિકા
પ્રોજેક્ટ Example
ડિજિટલ ઇનપુટ્સ અને ડિજિટલ આઉટપુટનો ઉપયોગ કેવી રીતે કરવો તે બતાવવા માટે, અમે એક સરળ પ્રોજેક્ટ બનાવીશું જેમ કેampપુશબટન અને LED સાથે. આપણે પુશબટનની સ્થિતિ વાંચીશું અને નીચેના આકૃતિમાં દર્શાવ્યા મુજબ LED ને પ્રકાશિત કરીશું.
જરૂરી ભાગો
સર્કિટ બનાવવા માટે જરૂરી ભાગોની યાદી અહીં છે:
- ESP32 DEVKIT V1
- 5 મીમી એલઇડી
- 220 ઓહ્મ રેઝિસ્ટર
- પુશબટન
- 10k ઓહ્મ રેઝિસ્ટર
- બ્રેડબોર્ડ
- જમ્પર વાયર
યોજનાકીય ડાયાગ્રામ
આગળ વધતા પહેલા, તમારે LED અને પુશબટન સાથે સર્કિટ એસેમ્બલ કરવાની જરૂર છે.
આપણે LED ને 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 છે (દબાવવામાં આવતું નથી).
પૂર્ણાંક બટનસ્થિતિ = 0;
સેટઅપ() માં, તમે બટનને INPUT તરીકે અને LED ને OUTPUT તરીકે શરૂ કરો છો.
તેના માટે, તમે pinMode() ફંક્શનનો ઉપયોગ કરો છો જે તમે જે પિનનો ઉલ્લેખ કરી રહ્યા છો તેને સ્વીકારે છે, અને મોડ: INPUT અથવા OUTPUT.
પિનમોડ (બટનપિન, ઇનપુટ);
પિનમોડ(લેડપિન, આઉટપુટ);
લૂપ() માં તમે બટનની સ્થિતિ વાંચો છો અને તે મુજબ LED સેટ કરો છો.
આગળની લાઈનમાં, તમે બટન સ્ટેટ વાંચો અને તેને બટનસ્ટેટ વેરીએબલમાં સેવ કરો.
જેમ આપણે પહેલા જોયું તેમ, તમે digitalRead() ફંક્શનનો ઉપયોગ કરો છો.
બટનસ્ટેટ = ડિજિટલ રીડ(બટનપિન);
નીચે આપેલ if સ્ટેટમેન્ટ, બટન સ્ટેટ HIGH છે કે નહીં તે તપાસે છે. જો તે હોય, તો તે digitalWrite() ફંક્શનનો ઉપયોગ કરીને LED ચાલુ કરે છે જે ledPin ને આર્ગ્યુમેન્ટ તરીકે સ્વીકારે છે, અને સ્ટેટ HIGH.
જો (બટનસ્ટેટ == ઉચ્ચ)જો બટનની સ્થિતિ ઊંચી ન હોય, તો તમે LED બંધ કરો. digitalWrite() ફંક્શનમાં બીજા આર્ગ્યુમેન્ટ તરીકે LOW સેટ કરો.
કોડ અપલોડ કરી રહ્યા છીએ
અપલોડ બટન પર ક્લિક કરતા પહેલા, ટૂલ્સ > બોર્ડ પર જાઓ અને બોર્ડ પસંદ કરો :DOIT ESP32 DEVKIT V1 બોર્ડ.
ટૂલ્સ > પોર્ટ પર જાઓ અને ESP32 કનેક્ટ થયેલ COM પોર્ટ પસંદ કરો. પછી, અપલોડ બટન દબાવો અને "અપલોડ થઈ ગયું" સંદેશની રાહ જુઓ.નોંધ: જો તમને ડીબગીંગ વિન્ડો પર ઘણા બધા બિંદુઓ (કનેક્ટિંગ…__…__) દેખાય અને “ESP32 થી કનેક્ટ થવામાં નિષ્ફળ: પેકેટ હેડરની રાહ જોવાનો સમય સમાપ્ત” સંદેશ દેખાય, તો તેનો અર્થ એ કે તમારે બિંદુઓ પછી ESP32 ઓન-બોર્ડ BOOT બટન દબાવવાની જરૂર છે.
દેખાવાનું શરૂ કરો. મુશ્કેલીનિવારણ
પ્રદર્શન
કોડ અપલોડ કર્યા પછી, તમારા સર્કિટનું પરીક્ષણ કરો. જ્યારે તમે પુશબટન દબાવો છો ત્યારે તમારું LED પ્રકાશિત થવું જોઈએ:અને જ્યારે તમે તેને છોડો ત્યારે બંધ કરો:
પ્રોજેક્ટ 2 ESP32 એનાલોગ ઇનપુટ્સ
આ પ્રોજેક્ટ બતાવે છે કે Arduino IDE નો ઉપયોગ કરીને ESP32 સાથે એનાલોગ ઇનપુટ્સ કેવી રીતે વાંચવા.
પોટેન્ટિઓમીટર અથવા એનાલોગ સેન્સર જેવા ચલ રેઝિસ્ટરમાંથી મૂલ્યો વાંચવા માટે એનાલોગ રીડિંગ ઉપયોગી છે.
એનાલોગ ઇનપુટ્સ (ADC)
ESP32 સાથે એનાલોગ મૂલ્ય વાંચવાનો અર્થ એ છે કે તમે વિવિધ વોલ્યુમ માપી શકો છોtage સ્તર 0 V અને 3.3 V વચ્ચે.
ભાગtagપછી માપેલ e ને 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: ૪૦૯૫.
ખૂબ ઓછા વોલ્યુમ માટે પણ આવું જ થાય છેtage મૂલ્યો: 0 V અને 0.1 V માટે તમને સમાન મૂલ્ય મળશે: 0. ESP32 ADC પિનનો ઉપયોગ કરતી વખતે તમારે આ ધ્યાનમાં રાખવાની જરૂર છે.
analogRead() ફંક્શન
Arduino IDE નો ઉપયોગ કરીને ESP32 સાથે એનાલોગ ઇનપુટ વાંચવું એ analogRead() ફંક્શનનો ઉપયોગ કરવા જેટલું જ સરળ છે. તે દલીલ તરીકે સ્વીકારે છે, તમે જે GPIO વાંચવા માંગો છો:
એનાલોગ રીડ(GPIO);
DEVKIT V15board (1 GPIO સાથેનું સંસ્કરણ) માં ફક્ત 30 જ ઉપલબ્ધ છે.
તમારા 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 સાથે જોડાયેલ છે તેને વ્યાખ્યાયિત કરીને શરૂઆત કરો છો. આ ઉદાહરણમાંampલે, જીપીઆઈઓ ૪.સેટઅપ() માં, 115200 ના બોડ રેટ પર સીરીયલ કોમ્યુનિકેશન શરૂ કરો.
લૂપ() માં, potPin માંથી એનાલોગ ઇનપુટ વાંચવા માટે analogRead() ફંક્શનનો ઉપયોગ કરો.
છેલ્લે, સીરીયલ મોનિટરમાં પોટેન્ટિઓમીટરમાંથી વાંચેલા મૂલ્યો છાપો.
તમારા ESP32 પર આપેલો કોડ અપલોડ કરો. ખાતરી કરો કે તમે ટૂલ્સ મેનૂમાં યોગ્ય બોર્ડ અને COM પોર્ટ પસંદ કરેલ છે.
એક્સનું પરીક્ષણample
કોડ અપલોડ કર્યા પછી અને ESP32 રીસેટ બટન દબાવ્યા પછી, 115200 ના બોડ રેટ પર સીરીયલ મોનિટર ખોલો. પોટેન્ટિઓમીટર ફેરવો અને મૂલ્યો બદલાતા જુઓ.તમને મહત્તમ મૂલ્ય 4095 મળશે અને ન્યૂનતમ મૂલ્ય 0 છે.
રેપિંગ અપ
આ લેખમાં તમે Arduino IDE સાથે ESP32 નો ઉપયોગ કરીને એનાલોગ ઇનપુટ્સ કેવી રીતે વાંચવા તે શીખ્યા. સારાંશમાં:
- ESP32 DEVKIT V1 DOIT બોર્ડ (30 પિન સાથેનું સંસ્કરણ) માં 15 ADC પિન છે જેનો ઉપયોગ તમે એનાલોગ ઇનપુટ વાંચવા માટે કરી શકો છો.
- આ પિનનું રિઝોલ્યુશન ૧૨ બિટ્સ છે, જેનો અર્થ છે કે તમે ૦ થી ૪૦૯૫ સુધીના મૂલ્યો મેળવી શકો છો.
- Arduino IDE માં મૂલ્ય વાંચવા માટે, તમારે ફક્ત analogRead() ફંક્શનનો ઉપયોગ કરવો પડશે.
- ESP32 ADC પિન રેખીય વર્તન ધરાવતા નથી. તમે કદાચ 0 અને 0.1V વચ્ચે અથવા 3.2 અને 3.3V વચ્ચે તફાવત કરી શકશો નહીં. ADC પિનનો ઉપયોગ કરતી વખતે તમારે આ ધ્યાનમાં રાખવાની જરૂર છે.
પ્રોજેક્ટ 3 ESP32 PWM(એનાલોગ આઉટપુટ)
આ ટ્યુટોરીયલમાં આપણે તમને બતાવીશું કે Arduino IDE નો ઉપયોગ કરીને ESP32 સાથે PWM સિગ્નલ કેવી રીતે જનરેટ કરવા. ઉદાહરણ તરીકેampઆપણે ESP32 ના LED PWM નિયંત્રકનો ઉપયોગ કરીને LED ને મંદ કરતું એક સરળ સર્કિટ બનાવીશું.ESP32 LED PWM કંટ્રોલર
ESP32 માં 16 સ્વતંત્ર ચેનલો સાથે LED PWM નિયંત્રક છે જેને વિવિધ ગુણધર્મો સાથે PWM સિગ્નલ જનરેટ કરવા માટે ગોઠવી શકાય છે.
Arduino IDE નો ઉપયોગ કરીને PWM વડે LED ને ડિમ કરવા માટે તમારે નીચેના પગલાંઓ અનુસરવા પડશે:
- સૌ પ્રથમ, તમારે PWM ચેનલ પસંદ કરવાની જરૂર છે. 16 થી 0 સુધી 15 ચેનલો છે.
- પછી, તમારે PWM સિગ્નલ ફ્રીક્વન્સી સેટ કરવાની જરૂર છે. LED માટે, 5000 Hz ની ફ્રીક્વન્સી વાપરવા માટે યોગ્ય છે.
- તમારે સિગ્નલનું ડ્યુટી સાયકલ રિઝોલ્યુશન પણ સેટ કરવાની જરૂર છે: તમારી પાસે 1 થી 16 બિટ્સ સુધીનું રિઝોલ્યુશન છે. અમે 8-બીટ રિઝોલ્યુશનનો ઉપયોગ કરીશું, જેનો અર્થ છે કે તમે 0 થી 255 સુધીના મૂલ્યનો ઉપયોગ કરીને LED બ્રાઇટનેસને નિયંત્રિત કરી શકો છો.
- આગળ, તમારે સ્પષ્ટ કરવાની જરૂર છે કે કયા GPIO અથવા GPIO પર સિગ્નલ દેખાશે. તેના માટે તમે નીચેના ફંક્શનનો ઉપયોગ કરશો:
ledcAttachPin(GPIO, ચેનલ)
આ ફંક્શન બે દલીલો સ્વીકારે છે. પહેલું GPIO છે જે સિગ્નલ આઉટપુટ કરશે, અને બીજું ચેનલ છે જે સિગ્નલ જનરેટ કરશે. - છેલ્લે, PWM નો ઉપયોગ કરીને LED બ્રાઇટનેસને નિયંત્રિત કરવા માટે, તમે નીચેના ફંક્શનનો ઉપયોગ કરો છો:
ledcWrite(ચેનલ, ડ્યુટીસાયકલ)
આ ફંક્શન PWM સિગ્નલ જનરેટ કરતી ચેનલ અને ડ્યુટી ચક્રને દલીલો તરીકે સ્વીકારે છે.
જરૂરી ભાગો
આ ટ્યુટોરીયલને અનુસરવા માટે તમારે આ ભાગોની જરૂર પડશે:
- ESP32 DEVKIT V1 બોર્ડ
- 5 મીમી એલઇડી
- 220 ઓહ્મ રેઝિસ્ટર
- બ્રેડબોર્ડ
- જમ્પર વાયર
યોજનાકીય
નીચેના સ્કીમેટિક ડાયાગ્રામ મુજબ તમારા ESP32 માં LED વાયર કરો. LED GPIO સાથે જોડાયેલ હોવું જોઈએ. 4.નોંધ: તમે ઇચ્છો તે કોઈપણ પિનનો ઉપયોગ કરી શકો છો, જ્યાં સુધી તે આઉટપુટ તરીકે કાર્ય કરી શકે. આઉટપુટ તરીકે કાર્ય કરી શકે તેવા બધા પિનનો ઉપયોગ PWM પિન તરીકે થઈ શકે છે. ESP32 GPIOs વિશે વધુ માહિતી માટે, વાંચો: ESP32 પિનઆઉટ સંદર્ભ: તમારે કયા GPIO પિનનો ઉપયોગ કરવો જોઈએ?
કોડ
આપણે Arduino IDE નો ઉપયોગ કરીને ESP32 પ્રોગ્રામ કરીશું, તેથી આગળ વધતા પહેલા ખાતરી કરો કે તમારી પાસે ESP32 એડ-ઓન ઇન્સ્ટોલ કરેલું છે: (જો તમે આ પગલું પહેલાથી જ પૂર્ણ કરી લીધું હોય, તો તમે આગલા પગલા પર જઈ શકો છો.)
Arduino IDE માં ESP32 એડ-ઓન ઇન્સ્ટોલ કરવું
arduino IDE માં Project_3_ESP32_PWM.ino કોડ ખોલો.તમે LED કઈ પિન સાથે જોડાયેલ છે તે વ્યાખ્યાયિત કરીને શરૂઆત કરો. આ કિસ્સામાં LED GPIO 4 સાથે જોડાયેલ છે.
પછી, તમે PWM સિગ્નલ ગુણધર્મો સેટ કરો છો. તમે 5000 Hz ની આવર્તન વ્યાખ્યાયિત કરો છો, સિગ્નલ જનરેટ કરવા માટે ચેનલ 0 પસંદ કરો છો, અને 8 બિટ્સનું રિઝોલ્યુશન સેટ કરો છો. તમે વિવિધ PWM સિગ્નલો જનરેટ કરવા માટે આનાથી અલગ અન્ય ગુણધર્મો પસંદ કરી શકો છો.
સેટઅપ() માં, તમારે LED PWM ને તમે અગાઉ વ્યાખ્યાયિત કરેલા ગુણધર્મો સાથે ગોઠવવાની જરૂર છે, ledcSetup() ફંક્શનનો ઉપયોગ કરીને જે દલીલો તરીકે સ્વીકારે છે, ledChannel, ફ્રીક્વન્સી અને રિઝોલ્યુશન, નીચે મુજબ:
આગળ, તમારે કયા GPIO માંથી સિગ્નલ મળશે તે પસંદ કરવાની જરૂર છે. તે માટે ledcAttachPin() ફંક્શનનો ઉપયોગ કરો જે GPIO ને દલીલો તરીકે સ્વીકારે છે જ્યાં તમે સિગ્નલ મેળવવા માંગો છો, અને તે ચેનલ જે સિગ્નલ જનરેટ કરી રહી છે. આ ઉદાહરણમાંampલે, આપણને ledPin GPIO માં સિગ્નલ મળશે, જે GPIO 4 ને અનુરૂપ છે. જે ચેનલ સિગ્નલ જનરેટ કરે છે તે ledChannel છે, જે ચેનલ 0 ને અનુરૂપ છે.
લૂપમાં, તમે LED ની તેજ વધારવા માટે ડ્યુટી ચક્રને 0 અને 255 ની વચ્ચે બદલશો.
અને પછી, તેજ ઘટાડવા માટે 255 અને 0 ની વચ્ચે.
LED ની બ્રાઇટનેસ સેટ કરવા માટે, તમારે ફક્ત ledcWrite() ફંક્શનનો ઉપયોગ કરવાની જરૂર છે જે સિગ્નલ જનરેટ કરતી ચેનલ અને ડ્યુટી ચક્રને દલીલો તરીકે સ્વીકારે છે.
આપણે 8-બીટ રિઝોલ્યુશનનો ઉપયોગ કરી રહ્યા હોવાથી, ડ્યુટી ચક્ર 0 થી 255 સુધીના મૂલ્યનો ઉપયોગ કરીને નિયંત્રિત કરવામાં આવશે. નોંધ લો કે ledcWrite() ફંક્શનમાં આપણે સિગ્નલ જનરેટ કરતી ચેનલનો ઉપયોગ કરીએ છીએ, GPIOનો નહીં.
એક્સનું પરીક્ષણample
તમારા ESP32 પર કોડ અપલોડ કરો. ખાતરી કરો કે તમે યોગ્ય બોર્ડ અને COM પોર્ટ પસંદ કરેલ છે. તમારા સર્કિટ પર નજર નાખો. તમારી પાસે એક ઝાંખું LED હોવું જોઈએ જે તેજ વધારે અને ઘટાડે છે.
પ્રોજેક્ટ 4 ESP32 PIR મોશન સેન્સર
આ પ્રોજેક્ટ બતાવે છે કે PIR મોશન સેન્સરનો ઉપયોગ કરીને ESP32 વડે ગતિ કેવી રીતે શોધવી. ગતિ શોધાય ત્યારે બઝર એલાર્મ વગાડશે, અને પ્રીસેટ સમય (જેમ કે 4 સેકન્ડ) માટે કોઈ ગતિ ન મળે ત્યારે એલાર્મ બંધ કરશે.
HC-SR501 મોશન સેન્સર કેવી રીતે કામ કરે છે
.HC-SR501 સેન્સરનો કાર્ય સિદ્ધાંત ગતિશીલ પદાર્થ પર ઇન્ફ્રારેડ રેડિયેશનના ફેરફાર પર આધારિત છે. HC-SR501 સેન્સર દ્વારા શોધવા માટે, પદાર્થ બે આવશ્યકતાઓને પૂર્ણ કરે છે:
- આ પદાર્થ ઇન્ફ્રારેડ રીતે ઉત્સર્જિત થઈ રહ્યો છે.
- વસ્તુ હલનચલન કરી રહી છે અથવા ધ્રુજી રહી છે
તેથી:
જો કોઈ વસ્તુ ઇન્ફ્રારેડ કિરણ ઉત્સર્જિત કરતી હોય પણ NoT ગતિમાન હોય (દા.ત., કોઈ વ્યક્તિ ગતિમાન ન હોય તો સ્થિર રહે), તો સેન્સર દ્વારા તે NoT શોધાય છે.
જો કોઈ વસ્તુ ગતિમાં હોય પણ NoT ઇન્ફ્રારેડ કિરણ (દા.ત., રોબોટ અથવા વાહન) ઉત્સર્જિત કરતું હોય, તો તે સેન્સર દ્વારા શોધી શકાતું નથી.
ટાઈમરનો પરિચય
આમાં માજીampઅમે ટાઈમર પણ રજૂ કરીશું. અમે ઇચ્છીએ છીએ કે ગતિ શોધાયા પછી LED ચોક્કસ સેકન્ડ માટે ચાલુ રહે. વિલંબ () ફંક્શનનો ઉપયોગ કરવાને બદલે જે તમારા કોડને અવરોધિત કરે છે અને તમને ચોક્કસ સેકન્ડ માટે બીજું કંઈ કરવાની મંજૂરી આપતું નથી, આપણે ટાઈમરનો ઉપયોગ કરવો જોઈએ.વિલંબ() ફંક્શન
તમારે delay() ફંક્શનથી પરિચિત હોવા જોઈએ કારણ કે તે વ્યાપકપણે ઉપયોગમાં લેવાય છે. આ ફંક્શન વાપરવા માટે ખૂબ જ સરળ છે. તે એક જ int નંબરને દલીલ તરીકે સ્વીકારે છે.
આ સંખ્યા મિલિસેકન્ડમાં તે સમય દર્શાવે છે જે પ્રોગ્રામને કોડની આગલી લાઇન પર જવા માટે રાહ જોવી પડે છે.જ્યારે તમે delay(1000) કરો છો ત્યારે તમારો પ્રોગ્રામ તે લાઇન પર 1 સેકન્ડ માટે અટકી જાય છે.
delay() એ બ્લોકીંગ ફંક્શન છે. બ્લોકીંગ ફંક્શન પ્રોગ્રામને તે ચોક્કસ કાર્ય પૂર્ણ ન થાય ત્યાં સુધી બીજું કંઈપણ કરવાથી અટકાવે છે. જો તમને એક જ સમયે બહુવિધ કાર્યો કરવાની જરૂર હોય, તો તમે delay() નો ઉપયોગ કરી શકતા નથી.
મોટાભાગના પ્રોજેક્ટ્સ માટે તમારે વિલંબ ટાળવો જોઈએ અને તેના બદલે ટાઈમરનો ઉપયોગ કરવો જોઈએ.
મિલિ() ફંક્શન
millis() નામના ફંક્શનનો ઉપયોગ કરીને તમે પ્રોગ્રામ શરૂ થયા પછી પસાર થયેલા મિલિસેકન્ડની સંખ્યા પરત કરી શકો છો.તે ફંક્શન શા માટે ઉપયોગી છે? કારણ કે કેટલાક ગણિતનો ઉપયોગ કરીને, તમે તમારા કોડને બ્લોક કર્યા વિના કેટલો સમય પસાર થયો છે તે સરળતાથી ચકાસી શકો છો.
જરૂરી ભાગો
આ ટ્યુટોરીયલને અનુસરવા માટે તમારે નીચેના ભાગોની જરૂર પડશે
- ESP32 DEVKIT V1 બોર્ડ
- પીઆઈઆર મોશન સેન્સર (HC-SR501)
- સક્રિય બઝર
- જમ્પર વાયર
- બ્રેડબોર્ડ
યોજનાકીયનોંધ: કાર્યકારી વોલ્યુમtagHC-SR501 નું e 5V છે. તેને પાવર આપવા માટે Vin પિનનો ઉપયોગ કરો.
કોડ
આ ટ્યુટોરીયલ સાથે આગળ વધતા પહેલા, તમારે તમારા Arduino IDE માં ESP32 એડ-ઓન ઇન્સ્ટોલ કરેલું હોવું જોઈએ. જો તમે પહેલાથી જ Arduino IDE પર ESP32 ઇન્સ્ટોલ ન કર્યું હોય, તો નીચેના ટ્યુટોરીયલમાંથી એકને અનુસરો. (જો તમે આ પગલું પહેલાથી જ પૂર્ણ કરી લીધું હોય, તો તમે આગલા પગલા પર જઈ શકો છો.)
Arduino IDE માં ESP32 એડ-ઓન ઇન્સ્ટોલ કરવું
arduino IDE માં Project_4_ESP32_PIR_Motion_Sensor.ino કોડ ખોલો.
પ્રદર્શન
તમારા ESP32 બોર્ડ પર કોડ અપલોડ કરો. ખાતરી કરો કે તમે યોગ્ય બોર્ડ અને COM પોર્ટ પસંદ કરેલ છે. કોડ સંદર્ભ પગલાં અપલોડ કરો.
૧૧૫૨૦૦ ના બોડ રેટથી સીરીયલ મોનિટર ખોલો.તમારા હાથને PIR સેન્સરની સામે ખસેડો. બઝર ચાલુ થવું જોઈએ, અને સીરીયલ મોનિટરમાં "મોશન ડિટેક્ટેડ! બઝર એલાર્મ" સંદેશ છાપવામાં આવશે.
4 સેકન્ડ પછી બઝર બંધ થઈ જશે.
પ્રોજેક્ટ 5 ESP32 સ્વિચ Web સર્વર
આ પ્રોજેક્ટમાં તમે એક સ્વતંત્ર બનાવશો web ESP32 ધરાવતું સર્વર જે Arduino IDE પ્રોગ્રામિંગ વાતાવરણનો ઉપયોગ કરીને આઉટપુટ (બે LEDs) ને નિયંત્રિત કરે છે. web સર્વર મોબાઇલ રિસ્પોન્સિવ છે અને તેને સ્થાનિક નેટવર્ક પર બ્રાઉઝર તરીકે કોઈપણ ઉપકરણથી ઍક્સેસ કરી શકાય છે. અમે તમને બતાવીશું કે કેવી રીતે બનાવવું web સર્વર અને કોડ કેવી રીતે કાર્ય કરે છે તે પગલું-દર-પગલાં.
પ્રોજેક્ટ ઓવરview
પ્રોજેક્ટ પર સીધા જતા પહેલા, એ સમજવું મહત્વપૂર્ણ છે કે આપણું શું web સર્વર કરશે, જેથી પછીથી પગલાંઓનું પાલન કરવાનું સરળ બને.
- આ web તમે જે સર્વર બનાવશો તે ESP32 GPIO 26 અને GPIO 27 સાથે જોડાયેલા બે LED ને નિયંત્રિત કરે છે;
- તમે ESP32 ઍક્સેસ કરી શકો છો web સ્થાનિક નેટવર્કમાં બ્રાઉઝર પર ESP32 IP સરનામું લખીને સર્વર;
- તમારા પરના બટનો પર ક્લિક કરીને web સર્વર દ્વારા તમે દરેક LED ની સ્થિતિ તરત જ બદલી શકો છો.
જરૂરી ભાગો
આ ટ્યુટોરીયલ માટે તમારે નીચેના ભાગોની જરૂર પડશે:
- ESP32 DEVKIT V1 બોર્ડ
- 2x 5mm LED
- 2x 200 ઓહ્મ રેઝિસ્ટર
- બ્રેડબોર્ડ
- જમ્પર વાયર
યોજનાકીય
સર્કિટ બનાવીને શરૂઆત કરો. નીચેના સ્કીમેટિક ડાયાગ્રામમાં બતાવ્યા પ્રમાણે બે LED ને ESP32 સાથે જોડો - એક LED GPIO 26 સાથે જોડાયેલ છે, અને બીજો GPIO 27 સાથે.
નોંધ: અમે ૩૬ પિનવાળા ESP32 DEVKIT DOIT બોર્ડનો ઉપયોગ કરી રહ્યા છીએ. સર્કિટ એસેમ્બલ કરતા પહેલા, ખાતરી કરો કે તમે જે બોર્ડનો ઉપયોગ કરી રહ્યા છો તેના પિનઆઉટને તપાસો.કોડ
અહીં અમે ESP32 બનાવતો કોડ પ્રદાન કરીએ છીએ. web સર્વર. Project_5_ESP32_Switch _ કોડ ખોલો.Webarduino IDE માં _Server.ino, પણ હજુ સુધી અપલોડ કરશો નહીં. તેને તમારા માટે કામ કરવા માટે તમારે કેટલાક ફેરફારો કરવાની જરૂર છે.
આપણે Arduino IDE નો ઉપયોગ કરીને ESP32 પ્રોગ્રામ કરીશું, તેથી આગળ વધતા પહેલા ખાતરી કરો કે તમારી પાસે ESP32 એડ-ઓન ઇન્સ્ટોલ કરેલું છે: (જો તમે આ પગલું પહેલાથી જ પૂર્ણ કરી લીધું હોય, તો તમે આગલા પગલા પર જઈ શકો છો.)
Arduino IDE માં ESP32 એડ-ઓન ઇન્સ્ટોલ કરવું
તમારા નેટવર્ક ઓળખપત્રો સેટ કરી રહ્યા છીએ
તમારે તમારા નેટવર્ક ઓળખપત્રો સાથે નીચેની લાઇનોમાં ફેરફાર કરવાની જરૂર છે: SSID અને પાસવર્ડ. તમારે ક્યાં ફેરફારો કરવા જોઈએ તે કોડમાં સારી રીતે ટિપ્પણી કરવામાં આવી છે.કોડ અપલોડ કરી રહ્યા છીએ
હવે, તમે કોડ અપલોડ કરી શકો છો અને web સર્વર તરત જ કામ કરશે.
ESP32 પર કોડ અપલોડ કરવા માટે નીચેના પગલાં અનુસરો:
- તમારા ESP32 બોર્ડને તમારા કમ્પ્યુટરમાં પ્લગ કરો;
- Arduino IDE માં, Tools > Board માં તમારું બોર્ડ પસંદ કરો (અમારા કિસ્સામાં અમે 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 સર્વર યોગ્ય રીતે કામ કરી રહ્યું છે. LEDs ને નિયંત્રિત કરવા માટે બટનો પર ક્લિક કરો.તે જ સમયે, તમે પૃષ્ઠભૂમિમાં શું ચાલી રહ્યું છે તે જોવા માટે સીરીયલ મોનિટર પર એક નજર નાખી શકો છો. ઉદાહરણ તરીકેampઅને, જ્યારે તમે GPIO 26 ચાલુ કરવા માટે બટન પર ક્લિક કરો છો, ત્યારે ESP32 ને /26/on પર વિનંતી મળે છે. URL.
જ્યારે ESP32 ને તે વિનંતી મળે છે, ત્યારે તે GPIO 26 સાથે જોડાયેલ LED ચાલુ કરે છે અને તેની સ્થિતિ અપડેટ કરે છે web પૃષ્ઠ
GPIO 27 માટેનું બટન પણ આવી જ રીતે કામ કરે છે. ચકાસો કે તે યોગ્ય રીતે કામ કરી રહ્યું છે.
કોડ કેવી રીતે કાર્ય કરે છે
આ વિભાગમાં, આપણે કોડ કેવી રીતે કાર્ય કરે છે તે જોવા માટે તેને નજીકથી જોઈશું.
તમારે સૌ પ્રથમ WiFi લાઇબ્રેરી શામેલ કરવાની જરૂર છે.જેમ પહેલા ઉલ્લેખ કર્યો છે તેમ, તમારે ડબલ અવતરણ ચિહ્નોની અંદર નીચેની લીટીઓમાં તમારો ssid અને પાસવર્ડ દાખલ કરવાની જરૂર છે.
પછી, તમે તમારું સેટ કરો web સર્વરને પોર્ટ 80 પર ખસેડો.
નીચેની લાઇન HTTP વિનંતીના હેડરને સંગ્રહિત કરવા માટે એક ચલ બનાવે છે:
આગળ, તમે તમારા આઉટપુટની વર્તમાન સ્થિતિ સંગ્રહિત કરવા માટે સહાયક ચલો બનાવો છો. જો તમે વધુ આઉટપુટ ઉમેરવા અને તેની સ્થિતિ સાચવવા માંગતા હો, તો તમારે વધુ ચલો બનાવવાની જરૂર છે.
તમારે તમારા દરેક આઉટપુટને એક GPIO પણ સોંપવાની જરૂર છે. અહીં આપણે GPIO 26 અને GPIO 27 નો ઉપયોગ કરી રહ્યા છીએ. તમે કોઈપણ અન્ય યોગ્ય GPIO નો ઉપયોગ કરી શકો છો.
સેટઅપ()
હવે, ચાલો સેટઅપ() માં જઈએ. પહેલા, આપણે ડીબગીંગ હેતુ માટે 115200 ના બોડ રેટ પર સીરીયલ કોમ્યુનિકેશન શરૂ કરીએ.તમે તમારા GPIO ને OUTPUT તરીકે પણ વ્યાખ્યાયિત કરો છો અને તેમને LOW પર સેટ કરો છો.
નીચેની લાઇનો WiFi.begin(ssid, પાસવર્ડ) સાથે Wi-Fi કનેક્શન શરૂ કરે છે, સફળ કનેક્શનની રાહ જુઓ અને સીરીયલ મોનિટરમાં ESP IP સરનામું છાપો.
લૂપ()
લૂપ() માં આપણે પ્રોગ્રામ કરીએ છીએ કે જ્યારે નવો ક્લાયંટ લૂપ સાથે જોડાણ સ્થાપિત કરે છે ત્યારે શું થાય છે web સર્વર
ESP32 હંમેશા આવનારા ગ્રાહકોને નીચેની લાઇન સાથે સાંભળે છે:જ્યારે ક્લાયન્ટ તરફથી વિનંતી પ્રાપ્ત થાય છે, ત્યારે અમે ઇનકમિંગ ડેટા સાચવીશું. જ્યાં સુધી ક્લાયન્ટ કનેક્ટેડ રહેશે ત્યાં સુધી આગળનો while લૂપ ચાલુ રહેશે. જ્યાં સુધી તમને બરાબર ખબર ન હોય કે તમે શું કરી રહ્યા છો, ત્યાં સુધી અમે કોડના નીચેના ભાગને બદલવાની ભલામણ કરતા નથી.
if અને else સ્ટેટમેન્ટનો આગળનો વિભાગ તપાસે છે કે તમારામાં કયું બટન દબાવવામાં આવ્યું હતું web પૃષ્ઠ, અને તે મુજબ આઉટપુટને નિયંત્રિત કરે છે. જેમ આપણે પહેલા જોયું તેમ, આપણે અલગ અલગ પર વિનંતી કરીએ છીએ URLદબાયેલા બટન પર આધાર રાખીને.
માજી માટેampઅને, જો તમે GPIO 26 ON બટન દબાવો છો, તો ESP32 ને /26/ON પર વિનંતી પ્રાપ્ત થાય છે. URL (આપણે સીરીયલ મોનિટર પર HTTP હેડર પર તે માહિતી જોઈ શકીએ છીએ). તેથી, આપણે ચકાસી શકીએ છીએ કે હેડરમાં GET /26/on અભિવ્યક્તિ છે કે નહીં. જો તેમાં હોય, તો આપણે output26state ચલને ON માં બદલીએ છીએ, અને ESP32 LED ચાલુ કરે છે.
આ બીજા બટનો માટે પણ એ જ રીતે કામ કરે છે. તેથી, જો તમે વધુ આઉટપુટ ઉમેરવા માંગતા હો, તો તમારે કોડના આ ભાગમાં ફેરફાર કરીને તેમને શામેલ કરવા જોઈએ.
HTML પ્રદર્શિત કરી રહ્યા છીએ web પૃષ્ઠ
તમારે આગળની વસ્તુ બનાવવાની છે, web પાનું. ESP32 તમારા બ્રાઉઝરને કેટલાક HTML કોડ સાથે પ્રતિભાવ મોકલશે જેથી web પૃષ્ઠ
આ web આ એક્સપ્રેસિંગ client.println() નો ઉપયોગ કરીને પેજ ક્લાયંટને મોકલવામાં આવે છે. તમારે ક્લાયંટને જે મોકલવા માંગો છો તે દલીલ તરીકે દાખલ કરવું જોઈએ.
આપણે પહેલી વસ્તુ હંમેશા નીચેની લાઈન મોકલવી જોઈએ, જે દર્શાવે છે કે આપણે HTML મોકલી રહ્યા છીએ.પછી, નીચેની પંક્તિ બનાવે છે web કોઈપણ રીતે રિસ્પોન્સિવ પેજ web બ્રાઉઝર
અને ફેવિકોન પર વિનંતીઓ અટકાવવા માટે નીચે મુજબનો ઉપયોગ થાય છે. – તમારે આ લાઇન વિશે ચિંતા કરવાની જરૂર નથી.
સ્ટાઇલિંગ Web પૃષ્ઠ
આગળ, આપણી પાસે બટનોને સ્ટાઇલ કરવા માટે કેટલાક CSS ટેક્સ્ટ છે અને web પૃષ્ઠ દેખાવ.
આપણે હેલ્વેટિકા ફોન્ટ પસંદ કરીએ છીએ, પ્રદર્શિત કરવા માટેની સામગ્રીને બ્લોક તરીકે વ્યાખ્યાયિત કરીએ છીએ અને કેન્દ્રમાં ગોઠવીએ છીએ.અમે અમારા બટનોને #4CAF50 રંગથી, બોર્ડર વગર, સફેદ રંગમાં ટેક્સ્ટ અને આ પેડિંગ સાથે સ્ટાઇલ કરીએ છીએ: 16px 40px. અમે ટેક્સ્ટ-ડેકોરેશનને none પર પણ સેટ કરીએ છીએ, ફોન્ટનું કદ, માર્જિન અને કર્સરને પોઇન્ટર પર વ્યાખ્યાયિત કરીએ છીએ.
આપણે બીજા બટન માટે પણ શૈલી વ્યાખ્યાયિત કરીએ છીએ, જેમાં આપણે પહેલા વ્યાખ્યાયિત કરેલા બટનના બધા ગુણધર્મો છે, પરંતુ એક અલગ રંગ સાથે. આ ઑફ બટન માટે શૈલી હશે.
સેટ કરી રહ્યું છે Web પેજનું પહેલું મથાળું
આગલી લાઈનમાં તમે તમારા પ્રથમ મથાળાને સેટ કરી શકો છો web પાનું. અહીં આપણી પાસે “ESP32” છે Web "સર્વર", પરંતુ તમે આ ટેક્સ્ટને તમને ગમે તે રીતે બદલી શકો છો.બટનો અને અનુરૂપ સ્થિતિ દર્શાવવી
પછી, તમે GPIO 26 વર્તમાન સ્થિતિ દર્શાવવા માટે એક ફકરો લખો. જેમ તમે જોઈ શકો છો, આપણે output26State ચલનો ઉપયોગ કરીએ છીએ, જેથી જ્યારે આ ચલ બદલાય ત્યારે સ્થિતિ તરત જ અપડેટ થાય.પછી, આપણે GPIO ની વર્તમાન સ્થિતિના આધારે ચાલુ અથવા બંધ બટન પ્રદર્શિત કરીએ છીએ. જો GPIO ની વર્તમાન સ્થિતિ બંધ હોય, તો આપણે ચાલુ બટન બતાવીએ છીએ, જો નહીં, તો આપણે બંધ બટન પ્રદર્શિત કરીએ છીએ.
આપણે GPIO 27 માટે સમાન પ્રક્રિયાનો ઉપયોગ કરીએ છીએ.
કનેક્શન બંધ કરી રહ્યા છીએ
છેલ્લે, જ્યારે પ્રતિભાવ સમાપ્ત થાય છે, ત્યારે આપણે હેડર ચલ સાફ કરીએ છીએ, અને client.stop() સાથે ક્લાયંટ સાથેનું જોડાણ બંધ કરીએ છીએ.
રેપિંગ અપ
આ ટ્યુટોરીયલમાં અમે તમને બતાવ્યું છે કે કેવી રીતે બનાવવું web ESP32 સાથે સર્વર. અમે તમને એક સરળ ઉદાહરણ બતાવ્યું છેampજે બે LED ને નિયંત્રિત કરે છે, પરંતુ વિચાર એ છે કે તે LED ને રિલે અથવા અન્ય કોઈપણ આઉટપુટથી બદલો જેને તમે નિયંત્રિત કરવા માંગો છો.
પ્રોજેક્ટ 6 RGB LED Web સર્વર
આ પ્રોજેક્ટમાં અમે તમને બતાવીશું કે ESP32 બોર્ડનો ઉપયોગ કરીને RGB LED ને રિમોટલી કેવી રીતે નિયંત્રિત કરવું web કલર પીકર સાથેનો સર્વર.
પ્રોજેક્ટ ઓવરview
શરૂ કરતા પહેલા, ચાલો જોઈએ કે આ પ્રોજેક્ટ કેવી રીતે કાર્ય કરે છે:
- ESP32 web સર્વર રંગ પીકર દર્શાવે છે.
- જ્યારે તમે રંગ પસંદ કરો છો, ત્યારે તમારું બ્રાઉઝર a પર વિનંતી કરે છે URL જેમાં પસંદ કરેલા રંગના R, G, અને B પરિમાણો હોય છે.
- તમારા ESP32 ને વિનંતી મળે છે અને દરેક રંગ પરિમાણ માટે મૂલ્ય વિભાજિત થાય છે.
- પછી, તે RGB LED ને નિયંત્રિત કરતા GPIO ને અનુરૂપ મૂલ્ય સાથે PWM સિગ્નલ મોકલે છે.
RGB LEDs કેવી રીતે કામ કરે છે?
એક સામાન્ય કેથોડ RGB LED માં, ત્રણેય LED એક નકારાત્મક જોડાણ (કેથોડ) શેર કરે છે. કીટમાં સમાવિષ્ટ બધા કોમન-કેથોડ RGB છે.વિવિધ રંગો કેવી રીતે બનાવવા?
RGB LED વડે તમે લાલ, લીલો અને વાદળી પ્રકાશ ઉત્પન્ન કરી શકો છો, અને દરેક LED ની તીવ્રતાને ગોઠવીને, તમે અન્ય રંગો પણ ઉત્પન્ન કરી શકો છો.
માજી માટેampહા, સંપૂર્ણ વાદળી પ્રકાશ ઉત્પન્ન કરવા માટે, તમારે વાદળી LED ને સૌથી વધુ તીવ્રતા પર અને લીલા અને લાલ LED ને સૌથી ઓછી તીવ્રતા પર સેટ કરવું પડશે. સફેદ પ્રકાશ માટે, તમારે ત્રણેય LED ને સૌથી વધુ તીવ્રતા પર સેટ કરવું પડશે.
રંગોનું મિશ્રણ
અન્ય રંગો ઉત્પન્ન કરવા માટે, તમે ત્રણેય રંગોને અલગ અલગ તીવ્રતામાં જોડી શકો છો. દરેક LED ની તીવ્રતાને સમાયોજિત કરવા માટે તમે PWM સિગ્નલનો ઉપયોગ કરી શકો છો.
એલઈડી એકબીજાની ખૂબ નજીક હોવાથી, આપણી આંખો ત્રણ રંગોને વ્યક્તિગત રીતે જોવાને બદલે રંગોના મિશ્રણનું પરિણામ જુએ છે.
રંગોને કેવી રીતે જોડવા તે અંગે ખ્યાલ મેળવવા માટે, નીચેના ચાર્ટ પર એક નજર નાખો.
આ સૌથી સરળ રંગ મિશ્રણ ચાર્ટ છે, પરંતુ તે તમને તે કેવી રીતે કાર્ય કરે છે અને વિવિધ રંગો કેવી રીતે ઉત્પન્ન કરવા તેનો ખ્યાલ આપે છે.જરૂરી ભાગો
આ પ્રોજેક્ટ માટે તમારે નીચેના ભાગોની જરૂર પડશે:
- ESP32 DEVKIT V1 બોર્ડ
- આરજીબી એલઇડી
- 3x 220 ઓહ્મ રેઝિસ્ટર
- જમ્પર વાયર
- બ્રેડબોર્ડ
યોજનાકીયકોડ
આપણે Arduino IDE નો ઉપયોગ કરીને ESP32 પ્રોગ્રામ કરીશું, તેથી આગળ વધતા પહેલા ખાતરી કરો કે તમારી પાસે ESP32 એડ-ઓન ઇન્સ્ટોલ કરેલું છે: (જો તમે આ પગલું પહેલાથી જ પૂર્ણ કરી લીધું હોય, તો તમે આગલા પગલા પર જઈ શકો છો.)
- Arduino IDE માં ESP32 એડ-ઓન ઇન્સ્ટોલ કરવું
સર્કિટ એસેમ્બલ કર્યા પછી, કોડ ખોલો
પ્રોજેક્ટ_6_RGB_LED_Webarduino IDE માં _Server.ino.
કોડ અપલોડ કરતા પહેલા, તમારા નેટવર્ક ઓળખપત્રો દાખલ કરવાનું ભૂલશો નહીં જેથી ESP તમારા સ્થાનિક નેટવર્ક સાથે કનેક્ટ થઈ શકે.કોડ કેવી રીતે કામ કરે છે
ESP32 સ્કેચ WiFi.h લાઇબ્રેરીનો ઉપયોગ કરે છે.નીચેની લીટીઓ વિનંતીમાંથી R, G, અને B પરિમાણોને પકડી રાખવા માટે સ્ટ્રિંગ ચલોને વ્યાખ્યાયિત કરે છે.
આગામી ચાર ચલોનો ઉપયોગ HTTP વિનંતીને પછીથી ડીકોડ કરવા માટે થાય છે.
GPIO માટે ત્રણ ચલો બનાવો જે સ્ટ્રીપ R, G, અને B પરિમાણોને નિયંત્રિત કરશે. આ કિસ્સામાં આપણે GPIO 13, GPIO 12, અને GPIO 14 નો ઉપયોગ કરી રહ્યા છીએ.
આ GPIO ને PWM સિગ્નલો આઉટપુટ કરવાની જરૂર છે, તેથી આપણે પહેલા PWM ગુણધર્મોને ગોઠવવાની જરૂર છે. PWM સિગ્નલ ફ્રીક્વન્સી 5000 Hz પર સેટ કરો. પછી, દરેક રંગ માટે PWM ચેનલ જોડો.
અને અંતે, PWM ચેનલોનું રિઝોલ્યુશન 8-બીટ પર સેટ કરો
સેટઅપ() માં, PWM ચેનલોને PWM ગુણધર્મો સોંપો.
PWM ચેનલોને અનુરૂપ GPIOs સાથે જોડો.
નીચેનો કોડ વિભાગ તમારામાં રંગ પીકર દર્શાવે છે web પેજ પર ક્લિક કરો અને તમે પસંદ કરેલા રંગના આધારે વિનંતી કરો.
જ્યારે તમે રંગ પસંદ કરો છો, ત્યારે તમને નીચેના ફોર્મેટ સાથે વિનંતી પ્રાપ્ત થાય છે.
તો, R, G, અને B પરિમાણો મેળવવા માટે આપણે આ સ્ટ્રિંગને વિભાજીત કરવાની જરૂર છે. પરિમાણો redString, greenString, અને blueString ચલોમાં સાચવવામાં આવે છે અને તેમની કિંમતો 0 અને 255 ની વચ્ચે હોઈ શકે છે.ESP32 વડે સ્ટ્રીપને નિયંત્રિત કરવા માટે, HTTP માંથી ડીકોડ કરેલા મૂલ્યો સાથે PWM સિગ્નલ જનરેટ કરવા માટે ledcWrite() ફંક્શનનો ઉપયોગ કરો. વિનંતી
નોંધ: ESP32 સાથે PWM વિશે વધુ જાણો: પ્રોજેક્ટ 3 ESP32 PWM(એનાલોગ આઉટપુટ)
ESP8266 વડે સ્ટ્રીપને નિયંત્રિત કરવા માટે, આપણે ફક્ત ઉપયોગ કરવાની જરૂર છે
HTPP વિનંતીમાંથી ડીકોડ કરેલા મૂલ્યો સાથે PWM સિગ્નલો જનરેટ કરવા માટે analogWrite() ફંક્શન.
એનાલોગરાઇટ(રેડપિન, રેડસ્ટ્રિંગ.ટુઇન્ટ());
એનાલોગરાઇટ(ગ્રીનપિન, ગ્રીનસ્ટ્રિંગ.ટુઇન્ટ());
એનાલોગરાઇટ(બ્લુપિન, બ્લુસ્ટ્રિંગ.ટુઇન્ટ())
કારણ કે આપણને સ્ટ્રિંગ વેરીએબલમાં મૂલ્યો મળે છે, આપણે toInt() પદ્ધતિનો ઉપયોગ કરીને તેમને પૂર્ણાંકોમાં રૂપાંતરિત કરવાની જરૂર છે.
પ્રદર્શન
તમારા નેટવર્ક ઓળખપત્રો દાખલ કર્યા પછી, યોગ્ય બોર્ડ અને COM પોર્ટ પસંદ કરો અને કોડને તમારા ESP32 પર અપલોડ કરો. કોડ સંદર્ભ પગલાં અપલોડ કરો.
અપલોડ કર્યા પછી, 115200 ના બોડ રેટ પર સીરીયલ મોનિટર ખોલો અને ESP સક્ષમ/રીસેટ બટન દબાવો. તમને બોર્ડ IP સરનામું મળશે.તમારું બ્રાઉઝર ખોલો અને ESP IP સરનામું દાખલ કરો. હવે, RGB LED માટે રંગ પસંદ કરવા માટે રંગ પીકરનો ઉપયોગ કરો.
પછી, રંગ પ્રભાવમાં આવે તે માટે તમારે "રંગ બદલો" બટન દબાવવાની જરૂર છે.RGB LED બંધ કરવા માટે, કાળો રંગ પસંદ કરો.
સૌથી મજબૂત રંગો (રંગ પીકરની ટોચ પર) એ છે જે વધુ સારા પરિણામો આપશે.
પ્રોજેક્ટ 7 ESP32 રિલે Web સર્વર
ESP32 સાથે રિલેનો ઉપયોગ એસી ઘરગથ્થુ ઉપકરણોને દૂરથી નિયંત્રિત કરવાની એક શ્રેષ્ઠ રીત છે. આ ટ્યુટોરીયલ સમજાવે છે કે ESP32 સાથે રિલે મોડ્યુલને કેવી રીતે નિયંત્રિત કરવું.
આપણે રિલે મોડ્યુલ કેવી રીતે કાર્ય કરે છે, રિલેને ESP32 સાથે કેવી રીતે કનેક્ટ કરવું અને એક કેવી રીતે બનાવવું તેના પર એક નજર નાખીશું. web રિલેને દૂરસ્થ રીતે નિયંત્રિત કરવા માટે સર્વર.
રિલેનો પરિચય
રિલે એક ઇલેક્ટ્રિકલી સંચાલિત સ્વીચ છે અને અન્ય કોઈપણ સ્વીચની જેમ, તેને ચાલુ કે બંધ કરી શકાય છે, કરંટ પસાર થવા દે છે કે નહીં. તેને ઓછા વોલ્યુમથી નિયંત્રિત કરી શકાય છે.tages, ESP3.3 GPIO દ્વારા પૂરા પાડવામાં આવેલ 32V ની જેમ અને અમને ઉચ્ચ વોલ્યુમ નિયંત્રિત કરવાની મંજૂરી આપે છેtagજેમ કે ૧૨V, ૨૪V અથવા મુખ્ય વોલ્યુમtage (યુરોપમાં 230V અને યુએસમાં 120V).ડાબી બાજુ, ઉચ્ચ વોલ્યુમને જોડવા માટે ત્રણ સોકેટના બે સેટ છેtages, અને જમણી બાજુના પિન (લો-વોલ્યુમtage) ESP32 GPIOs સાથે કનેક્ટ કરો.
મેઇન્સ ભાગtage જોડાણોપાછલા ફોટામાં બતાવેલ રિલે મોડ્યુલમાં બે કનેક્ટર્સ છે, દરેકમાં ત્રણ સોકેટ્સ છે: કોમન (COM), નોર્મલી ક્લોઝ્ડ (NC), અને નોર્મલી ઓપન (NO).
- COM: તમે જે કરંટને નિયંત્રિત કરવા માંગો છો તેને કનેક્ટ કરો (મુખ્ય વોલ્યુમtagઇ).
- NC (સામાન્ય રીતે બંધ): જ્યારે તમે રિલેને ડિફોલ્ટ રૂપે બંધ કરવા માંગતા હો ત્યારે સામાન્ય રીતે બંધ ગોઠવણીનો ઉપયોગ થાય છે. NC એ COM પિન જોડાયેલા હોય છે, જેનો અર્થ એ થાય કે જ્યાં સુધી તમે ESP32 થી રિલે મોડ્યુલને સર્કિટ ખોલવા અને વર્તમાન પ્રવાહને રોકવા માટે સિગ્નલ ન મોકલો ત્યાં સુધી પ્રવાહ વહેતો રહે છે.
- NO (સામાન્ય રીતે ખુલ્લું): સામાન્ય રીતે ખુલ્લું રૂપરેખાંકન તેનાથી વિપરીત કાર્ય કરે છે: NO અને COM પિન વચ્ચે કોઈ જોડાણ નથી, તેથી જ્યાં સુધી તમે સર્કિટ બંધ કરવા માટે ESP32 માંથી સિગ્નલ મોકલો નહીં ત્યાં સુધી સર્કિટ તૂટી જાય છે.
નિયંત્રણ પિનલો-વોલ્યુલtage બાજુ ચાર પિનનો સેટ અને ત્રણ પિનનો સેટ છે. પહેલા સેટમાં મોડ્યુલને પાવર આપવા માટે VCC અને GND અને નીચે અને ઉપરના રિલેને નિયંત્રિત કરવા માટે અનુક્રમે ઇનપુટ 1 (IN1) અને ઇનપુટ 2 (IN2) હોય છે.
જો તમારા રિલે મોડ્યુલમાં ફક્ત એક જ ચેનલ હશે, તો તમારી પાસે ફક્ત એક જ IN પિન હશે. જો તમારી પાસે ચાર ચેનલો હશે, તો તમારી પાસે ચાર IN પિન હશે, વગેરે.
તમે IN પિનને જે સિગ્નલ મોકલો છો તે નક્કી કરે છે કે રિલે સક્રિય છે કે નહીં. જ્યારે ઇનપુટ લગભગ 2V થી નીચે જાય છે ત્યારે રિલે ટ્રિગર થાય છે. આનો અર્થ એ છે કે તમારી પાસે નીચેના દૃશ્યો હશે:
- સામાન્ય રીતે બંધ રૂપરેખાંકન (NC):
- ઉચ્ચ સંકેત - પ્રવાહ વહે છે
- ઓછો સિગ્નલ - કરંટ વહેતો નથી
- સામાન્ય રીતે ઓપન કન્ફિગરેશન (NO):
- ઉચ્ચ સંકેત - પ્રવાહ વહેતો નથી
- નીચો સંકેત - પ્રવાહ વહેતો હોય છે
જ્યારે મોટાભાગે પ્રવાહ વહેતો હોવો જોઈએ ત્યારે તમારે સામાન્ય રીતે બંધ ગોઠવણીનો ઉપયોગ કરવો જોઈએ, અને તમે તેને ક્યારેક ક્યારેક જ રોકવા માંગો છો.
જ્યારે તમે ઇચ્છો છો કે પ્રવાહ ક્યારેક ક્યારેક વહેતો હોય ત્યારે સામાન્ય રીતે ખુલ્લા રૂપરેખાંકનનો ઉપયોગ કરો (દા.ત.ampલે, અલ ચાલુ કરોamp ક્યારેક ક્યારેક).
પાવર સપ્લાય પસંદગીપિનના બીજા સેટમાં GND, VCC અને JD-VCC પિનનો સમાવેશ થાય છે.
JD-VCC પિન રિલેના ઇલેક્ટ્રોમેગ્નેટને પાવર આપે છે. નોંધ લો કે મોડ્યુલમાં VCC અને JD-VCC પિનને જોડતી જમ્પર કેપ છે; અહીં બતાવેલ પીળો છે, પરંતુ તમારો અલગ રંગનો હોઈ શકે છે.
જમ્પર કેપ ચાલુ હોવાથી, VCC અને JD-VCC પિન જોડાયેલા હોય છે. તેનો અર્થ એ કે રિલે ઇલેક્ટ્રોમેગ્નેટ સીધા ESP32 પાવર પિનથી સંચાલિત થાય છે, તેથી રિલે મોડ્યુલ અને ESP32 સર્કિટ ભૌતિક રીતે એકબીજાથી અલગ નથી.
જમ્પર કેપ વિના, તમારે JD-VCC પિન દ્વારા રિલેના ઇલેક્ટ્રોમેગ્નેટને પાવર અપ કરવા માટે એક સ્વતંત્ર પાવર સ્ત્રોત પ્રદાન કરવાની જરૂર છે. તે રૂપરેખાંકન મોડ્યુલના બિલ્ટ-ઇન ઓપ્ટોકપ્લર સાથે ESP32 થી રિલેને ભૌતિક રીતે અલગ કરે છે, જે ઇલેક્ટ્રિકલ સ્પાઇક્સના કિસ્સામાં ESP32 ને નુકસાન અટકાવે છે.
યોજનાકીયચેતવણી: ઉચ્ચ વોલ્યુમનો ઉપયોગtage પાવર સપ્લાય ગંભીર ઈજા પહોંચાડી શકે છે.
તેથી, ઉચ્ચ સપ્લાય વોલ્યુમને બદલે 5mm LED નો ઉપયોગ કરવામાં આવે છેtagપ્રયોગમાં e બલ્બ. જો તમે મુખ્ય વોલ્યુમથી પરિચિત નથીtagકોઈ એવી વ્યક્તિને કહો જે તમને મદદ કરે. ESP પ્રોગ્રામ કરતી વખતે અથવા તમારા સર્કિટને વાયર કરતી વખતે ખાતરી કરો કે બધું મેઈન વોલ્યુમથી ડિસ્કનેક્ટ થયેલ છે.tage.ESP32 માટે લાઇબ્રેરી ઇન્સ્ટોલ કરી રહ્યા છીએ
આ બનાવવા માટે web સર્વર પર, અમે ESPAsync નો ઉપયોગ કરીએ છીએWebસર્વર લાઇબ્રેરી અને એસિંકટીસીપી લાઇબ્રેરી.
ESPAsync ઇન્સ્ટોલ કરી રહ્યું છેWebસર્વર લાઇબ્રેરી
ઇન્સ્ટોલ કરવા માટે આગળના પગલાં અનુસરો ESPAસિંકWebસર્વર પુસ્તકાલય:
- ESPAsync ડાઉનલોડ કરવા માટે અહીં ક્લિક કરો.Webસર્વર લાઇબ્રેરી. તમારી પાસે હોવું જોઈએ
તમારા ડાઉનલોડ્સ ફોલ્ડરમાં .zip ફોલ્ડર - .zip ફોલ્ડરને અનઝિપ કરો અને તમને ESPAsync મળશે.Webસર્વર-માસ્ટર ફોલ્ડર
- ESPAsync માંથી તમારા ફોલ્ડરનું નામ બદલોWebસર્વર-માસ્ટર થી ESPAsyncWebસર્વર
- ESPAsync ખસેડોWebસર્વર ફોલ્ડરને તમારા Arduino IDE ઇન્સ્ટોલેશન લાઇબ્રેરી ફોલ્ડરમાં દાખલ કરો.
વૈકલ્પિક રીતે, તમારા Arduino IDE માં, તમે Sketch > Include પર જઈ શકો છો.
લાઇબ્રેરી > .ZIP લાઇબ્રેરી ઉમેરો… અને તમે હમણાં જ ડાઉનલોડ કરેલી લાઇબ્રેરી પસંદ કરો.
ESP32 માટે AsyncTCP લાઇબ્રેરી ઇન્સ્ટોલ કરી રહ્યા છીએ
આ ESPAસિંકWebસર્વર પુસ્તકાલય માટે જરૂરી છે એસિંકટીસીપી કામ કરવા માટે લાઇબ્રેરી. અનુસરો
તે લાઇબ્રેરી ઇન્સ્ટોલ કરવા માટેના આગળના પગલાં:
- AsyncTCP લાઇબ્રેરી ડાઉનલોડ કરવા માટે અહીં ક્લિક કરો. તમારા ડાઉનલોડ્સ ફોલ્ડરમાં .zip ફોલ્ડર હોવું જોઈએ.
- .zip ફોલ્ડરને અનઝિપ કરો અને તમને AsyncTCP-master ફોલ્ડર મળશે.
1. તમારા ફોલ્ડરનું નામ AsyncTCP-master થી AsyncTCP કરો.
૩. AsyncTCP ફોલ્ડરને તમારા Arduino IDE ઇન્સ્ટોલેશન લાઇબ્રેરી ફોલ્ડરમાં ખસેડો.
૪. છેલ્લે, તમારા Arduino IDE ને ફરીથી ખોલો.
વૈકલ્પિક રીતે, તમારા Arduino IDE માં, તમે Sketch > Include પર જઈ શકો છો.
લાઇબ્રેરી > .ZIP લાઇબ્રેરી ઉમેરો… અને તમે હમણાં જ ડાઉનલોડ કરેલી લાઇબ્રેરી પસંદ કરો.
કોડ
આપણે Arduino IDE નો ઉપયોગ કરીને ESP32 પ્રોગ્રામ કરીશું, તેથી આગળ વધતા પહેલા ખાતરી કરો કે તમારી પાસે ESP32 એડ-ઓન ઇન્સ્ટોલ કરેલું છે: (જો તમે આ પગલું પહેલાથી જ પૂર્ણ કરી લીધું હોય, તો તમે આગલા પગલા પર જઈ શકો છો.)
Arduino IDE માં ESP32 એડ-ઓન ઇન્સ્ટોલ કરવું
જરૂરી લાઇબ્રેરીઓ ઇન્સ્ટોલ કર્યા પછી, Project_7_ESP32_Relay_ કોડ ખોલો.Webarduino IDE માં _Server.ino.
કોડ અપલોડ કરતા પહેલા, તમારા નેટવર્ક ઓળખપત્રો દાખલ કરવાનું ભૂલશો નહીં જેથી ESP તમારા સ્થાનિક નેટવર્ક સાથે કનેક્ટ થઈ શકે.પ્રદર્શન
જરૂરી ફેરફારો કર્યા પછી, કોડને તમારા ESP32 પર અપલોડ કરો. કોડ સંદર્ભ પગલાં અપલોડ કરો.
સીરીયલ મોનિટરને 115200 ના બોડ રેટ પર ખોલો અને તેનું IP સરનામું મેળવવા માટે ESP32 EN બટન દબાવો. પછી, તમારા સ્થાનિક નેટવર્કમાં બ્રાઉઝર ખોલો અને ઍક્સેસ મેળવવા માટે ESP32 IP સરનામું લખો. web સર્વર
સીરીયલ મોનિટરને 115200 ના બોડ રેટ પર ખોલો અને તેનું IP સરનામું મેળવવા માટે ESP32 EN બટન દબાવો. પછી, તમારા સ્થાનિક નેટવર્કમાં બ્રાઉઝર ખોલો અને ઍક્સેસ મેળવવા માટે ESP32 IP સરનામું લખો. web સર્વરનોંધ: તમારું બ્રાઉઝર અને ESP32 એક જ LAN સાથે જોડાયેલા હોવા જોઈએ.
તમારા કોડમાં વ્યાખ્યાયિત કરેલા રિલેની સંખ્યા જેટલા બે બટનો સાથે તમને નીચે મુજબ કંઈક મળવું જોઈએ.હવે, તમે તમારા સ્માર્ટફોનનો ઉપયોગ કરીને તમારા રિલેને નિયંત્રિત કરવા માટે બટનોનો ઉપયોગ કરી શકો છો.
પ્રોજેક્ટ_8_આઉટપુટ_સ્ટેટ_સિંક્રોનાઇઝેશન_ Web_સર્વર
આ પ્રોજેક્ટ બતાવે છે કે ESP32 અથવા ESP8266 આઉટપુટને a નો ઉપયોગ કરીને કેવી રીતે નિયંત્રિત કરવું web સર્વર અને ભૌતિક બટન એકસાથે. આઉટપુટ સ્થિતિ અપડેટ થાય છે web પૃષ્ઠ ભલે તે ભૌતિક બટન દ્વારા બદલાય અથવા web સર્વર
પ્રોજેક્ટ ઓવરview
ચાલો આ પ્રોજેક્ટ કેવી રીતે કાર્ય કરે છે તેના પર એક નજર કરીએ.ESP32 અથવા ESP8266 એ હોસ્ટ કરે છે web સર્વર જે તમને આઉટપુટની સ્થિતિને નિયંત્રિત કરવાની મંજૂરી આપે છે;
- વર્તમાન આઉટપુટ સ્થિતિ પર પ્રદર્શિત થાય છે web સર્વર
- ESP એક ભૌતિક પુશબટન સાથે પણ જોડાયેલ છે જે સમાન આઉટપુટને નિયંત્રિત કરે છે;
- જો તમે ભૌતિક puhsbutton નો ઉપયોગ કરીને આઉટપુટ સ્થિતિ બદલો છો, તો તેની વર્તમાન સ્થિતિ પણ અપડેટ થાય છે web સર્વર
સારાંશમાં, આ પ્રોજેક્ટ તમને a નો ઉપયોગ કરીને સમાન આઉટપુટને નિયંત્રિત કરવાની મંજૂરી આપે છે web સર્વર અને પુશ બટન એકસાથે. જ્યારે પણ આઉટપુટ સ્થિતિ બદલાય છે, ત્યારે web સર્વર અપડેટ થયેલ છે.
જરૂરી ભાગો
સર્કિટ બનાવવા માટે જરૂરી ભાગોની યાદી અહીં છે:
- ESP32 DEVKIT V1 બોર્ડ
- 5 મીમી એલઇડી
- 220 ઓહ્મ રેઝિસ્ટર
- પુશબટન
- 10k ઓહ્મ રેઝિસ્ટર
- બ્રેડબોર્ડ
- જમ્પર વાયર
યોજનાકીયESP32 માટે લાઇબ્રેરી ઇન્સ્ટોલ કરી રહ્યા છીએ
આ બનાવવા માટે web સર્વર પર, અમે ESPAsync નો ઉપયોગ કરીએ છીએWebસર્વર લાઇબ્રેરી અને એસિંકટીસીપી લાઇબ્રેરી. (જો તમે આ પગલું પહેલાથી જ પૂર્ણ કરી લીધું હોય, તો તમે આગલા પગલા પર જઈ શકો છો.)
ESPAsync ઇન્સ્ટોલ કરી રહ્યું છેWebસર્વર લાઇબ્રેરી
ESPAsync ઇન્સ્ટોલ કરવા માટે આગળના પગલાં અનુસરો.Webસર્વર લાઇબ્રેરી:
- ESPAsync ડાઉનલોડ કરવા માટે અહીં ક્લિક કરો.Webસર્વર લાઇબ્રેરી. તમારી પાસે હોવું જોઈએ
તમારા ડાઉનલોડ્સ ફોલ્ડરમાં .zip ફોલ્ડર - .zip ફોલ્ડરને અનઝિપ કરો અને તમને ESPAsync મળશે.Webસર્વર-માસ્ટર ફોલ્ડર
- ESPAsync માંથી તમારા ફોલ્ડરનું નામ બદલોWebસર્વર-માસ્ટર થી ESPAsyncWebસર્વર
- ESPAsync ખસેડોWebસર્વર ફોલ્ડરને તમારા Arduino IDE ઇન્સ્ટોલેશન લાઇબ્રેરી ફોલ્ડરમાં દાખલ કરો.
વૈકલ્પિક રીતે, તમારા Arduino IDE માં, તમે Sketch > Include પર જઈ શકો છો.
લાઇબ્રેરી > .ZIP લાઇબ્રેરી ઉમેરો… અને તમે હમણાં જ ડાઉનલોડ કરેલી લાઇબ્રેરી પસંદ કરો.
ESP32 માટે AsyncTCP લાઇબ્રેરી ઇન્સ્ટોલ કરી રહ્યા છીએ
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 એડ-ઓન ઇન્સ્ટોલ કરવું
જરૂરી લાઇબ્રેરીઓ ઇન્સ્ટોલ કર્યા પછી, કોડ ખોલો
પ્રોજેક્ટ_8_આઉટપુટ_સ્ટેટ_સિંક્રોનાઇઝેશન_Webarduino IDE માં _Server.ino.
કોડ અપલોડ કરતા પહેલા, તમારા નેટવર્ક ઓળખપત્રો દાખલ કરવાનું ભૂલશો નહીં જેથી ESP તમારા સ્થાનિક નેટવર્ક સાથે કનેક્ટ થઈ શકે.
કોડ કેવી રીતે કાર્ય કરે છે
બટન સ્થિતિ અને આઉટપુટ સ્થિતિ
ledState ચલ LED આઉટપુટ સ્થિતિ ધરાવે છે. ડિફૉલ્ટ માટે, જ્યારે web સર્વર શરૂ થાય છે, તે ઓછું છે.
પુશબટન દબાવવામાં આવ્યું હતું કે નહીં તે શોધવા માટે buttonState અને lastButtonState નો ઉપયોગ થાય છે.બટન (web સર્વર)
અમે index_html ચલ પર બટન બનાવવા માટે HTML નો સમાવેશ કર્યો નથી.
કારણ કે આપણે વર્તમાન LED સ્થિતિના આધારે તેને બદલવા માંગીએ છીએ, જેને પુશબટનથી પણ બદલી શકાય છે.
તો, આપણે %BUTTONPLACEHOLDER% બટન માટે એક પ્લેસહોલ્ડર બનાવ્યું છે જેને HTML ટેક્સ્ટથી બદલવામાં આવશે જેથી કોડ પર પછીથી બટન બનાવવામાં આવે (આ પ્રોસેસર() ફંક્શનમાં થાય છે).પ્રોસેસર()
પ્રોસેસર() ફંક્શન HTML ટેક્સ્ટ પરના કોઈપણ પ્લેસહોલ્ડરને વાસ્તવિક મૂલ્યો સાથે બદલે છે. પ્રથમ, તે તપાસે છે કે HTML ટેક્સ્ટમાં કોઈ છે કે નહીં
પ્લેસહોલ્ડર %BUTTONPLACEHOLDER%.પછી, theoutputState() ફંક્શનને કોલ કરો જે વર્તમાન આઉટપુટ સ્થિતિ પરત કરે છે. આપણે તેને outputStateValue વેરીએબલમાં સેવ કરીએ છીએ.
તે પછી, યોગ્ય સ્થિતિ સાથે બટન પ્રદર્શિત કરવા માટે HTML ટેક્સ્ટ બનાવવા માટે તે મૂલ્યનો ઉપયોગ કરો:
આઉટપુટ સ્થિતિ બદલવા માટે HTTP GET વિનંતી (જાવાસ્ક્રિપ્ટ)
જ્યારે તમે બટન દબાવો છો, ત્યારે thetoggleCheckbox() ફંક્શન કોલ થાય છે. આ ફંક્શન અલગ અલગ પર વિનંતી કરશે URLLED ચાલુ કે બંધ કરવા માટે.LED ચાલુ કરવા માટે, તે /update?state=1 પર વિનંતી કરે છે. URL:
નહિંતર, તે /update?state=0 પર વિનંતી કરે છે URL.
સ્થિતિ અપડેટ કરવા માટે HTTP GET વિનંતી (જાવાસ્ક્રિપ્ટ)
આઉટપુટ સ્ટેટ અપડેટ રાખવા માટે web સર્વર પર, આપણે નીચેના ફંક્શનને કૉલ કરીએ છીએ જે /state પર નવી વિનંતી કરે છે URL દરેક સેકન્ડ.વિનંતીઓ સંભાળો
પછી, આપણે એ સંભાળવાની જરૂર છે કે જ્યારે ESP32 અથવા ESP8266 ને વિનંતીઓ મળે છે ત્યારે શું થાય છે URLs.
જ્યારે રૂટ પર વિનંતી પ્રાપ્ત થાય છે /URL, અમે પ્રોસેસરની સાથે HTML પેજ પણ મોકલીએ છીએ.નીચેની લીટીઓ તપાસે છે કે તમને /update?state=1 અથવા /update?state=0 પર વિનંતી મળી છે કે નહીં. URL અને તે મુજબ ledState બદલે છે.
જ્યારે /state પર વિનંતી પ્રાપ્ત થાય છે URL, આપણે વર્તમાન આઉટપુટ સ્થિતિ મોકલીએ છીએ:
લૂપ()
લૂપ() માં, આપણે પુશબટનને ડિબાઉન્સ કરીએ છીએ અને ledState ની કિંમતના આધારે LED ચાલુ અથવા બંધ કરીએ છીએ. ચલપ્રદર્શન
તમારા ESP32 બોર્ડ પર કોડ અપલોડ કરો. કોડ સંદર્ભ પગલાં અપલોડ કરો.
પછી, 115200 ના બોડ રેટ પર સીરીયલ મોનિટર ખોલો. IP સરનામું મેળવવા માટે ઓન-બોર્ડ EN/RST બટન દબાવો.તમારા સ્થાનિક નેટવર્ક પર બ્રાઉઝર ખોલો, અને ESP IP સરનામું લખો. તમારી પાસે ઍક્સેસ હોવી જોઈએ web નીચે બતાવ્યા પ્રમાણે સર્વર.
નોંધ: તમારું બ્રાઉઝર અને ESP32 એક જ LAN સાથે જોડાયેલા હોવા જોઈએ.તમે પરના બટનને ટૉગલ કરી શકો છો web LED ચાલુ કરવા માટે સર્વર.
તમે ભૌતિક પુશબટન વડે પણ તે જ LED ને નિયંત્રિત કરી શકો છો. તેની સ્થિતિ હંમેશા આપમેળે અપડેટ થશે web સર્વર
પ્રોજેક્ટ 9 ESP32 DHT11 Web સર્વર
આ પ્રોજેક્ટમાં, તમે શીખી શકશો કે અસુમેળ ESP32 કેવી રીતે બનાવવું. web DHT11 ધરાવતું સર્વર જે Arduino IDE નો ઉપયોગ કરીને તાપમાન અને ભેજ દર્શાવે છે.
પૂર્વજરૂરીયાતો
આ web અમે જે સર્વર બનાવીશું તે રીડિંગ્સને આપમેળે અપડેટ કરશે, તેને રિફ્રેશ કરવાની જરૂર વગર web પૃષ્ઠ
આ પ્રોજેક્ટ સાથે તમે શીખી શકશો:
- DHT સેન્સરથી તાપમાન અને ભેજ કેવી રીતે વાંચવું;
- એક અસુમેળ બનાવો web સર્વરનો ઉપયોગ કરીને ESPAસિંકWebસર્વર લાઇબ્રેરી;
- રિફ્રેશ કર્યા વિના સેન્સર રીડિંગ્સ આપમેળે અપડેટ કરો web પૃષ્ઠ
અસુમેળ Web સર્વર
બનાવવા માટે web સર્વર જેનો આપણે ઉપયોગ કરીશું ESPAસિંકWebસર્વર લાઇબ્રેરી જે અસુમેળ બનાવવાની સરળ રીત પૂરી પાડે છે web સર્વર. અસુમેળ સર્વર બનાવવું web સર્વરમાં ઘણા બધા ફાયદા છેtagલાઇબ્રેરી GitHub પેજમાં ઉલ્લેખિત છે, જેમ કે:
- "એક જ સમયે એક કરતાં વધુ કનેક્શન હેન્ડલ કરો";
- "જ્યારે તમે પ્રતિભાવ મોકલો છો, ત્યારે સર્વર પૃષ્ઠભૂમિમાં પ્રતિભાવ મોકલવાનું કામ કરી રહ્યું હોય ત્યારે તમે તરત જ અન્ય જોડાણોને હેન્ડલ કરવા માટે તૈયાર છો";
- "ટેમ્પ્લેટ્સને હેન્ડલ કરવા માટે સરળ ટેમ્પ્લેટ પ્રોસેસિંગ એન્જિન";
જરૂરી ભાગો
આ ટ્યુટોરીયલ પૂર્ણ કરવા માટે તમારે નીચેના ભાગોની જરૂર પડશે:
- ESP32 ડેવલપમેન્ટ બોર્ડ
- DHT11 મોડ્યુલ
- બ્રેડબોર્ડ
- જમ્પર વાયર
યોજનાકીયપુસ્તકાલયો સ્થાપિત કરી રહ્યા છીએ
આ પ્રોજેક્ટ માટે તમારે બે લાઇબ્રેરીઓ ઇન્સ્ટોલ કરવાની જરૂર છે:
- આ ડીએચટી અને એડાફ્રૂટ યુનિફાઇડ સેન્સર DHT સેન્સરમાંથી વાંચવા માટે ડ્રાઇવર લાઇબ્રેરીઓ.
- ESPAસિંકWebસર્વર અને અસુમેળ TCP અસુમેળ બનાવવા માટે લાઇબ્રેરીઓ 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 સેન્સર સાથે કામ કરવા માટે. લાઇબ્રેરી ઇન્સ્ટોલ કરવા માટે આગળના પગલાં અનુસરો.
- એડફ્રૂટ યુનિફાઇડ સેન્સર લાઇબ્રેરી ડાઉનલોડ કરવા માટે અહીં ક્લિક કરો. તમારા ડાઉનલોડ્સ ફોલ્ડરમાં .zip ફોલ્ડર હોવું જોઈએ.
- .zip ફોલ્ડરને અનઝિપ કરો અને તમને Adafruit_sensor-master ફોલ્ડર મળશે.
- તમારા ફોલ્ડરનું નામ Adafruit_sensor-master થી Adafruit_sensor કરો.
- Adafruit_sensor ફોલ્ડરને તમારા Arduino IDE ઇન્સ્ટોલેશન લાઇબ્રેરી ફોલ્ડરમાં ખસેડો.
- છેલ્લે, તમારા Arduino IDE ને ફરીથી ખોલો.
ESPAsync ઇન્સ્ટોલ કરી રહ્યું છેWebસર્વર લાઇબ્રેરી
ઇન્સ્ટોલ કરવા માટે આગળના પગલાં અનુસરો ESPAસિંકWebસર્વર પુસ્તકાલય:
- ESPAsync ડાઉનલોડ કરવા માટે અહીં ક્લિક કરો.Webસર્વર લાઇબ્રેરી. તમારી પાસે હોવું જોઈએ
તમારા ડાઉનલોડ્સ ફોલ્ડરમાં .zip ફોલ્ડર - .zip ફોલ્ડરને અનઝિપ કરો અને તમારે
ESPAsync મેળવોWebસર્વર-માસ્ટર ફોલ્ડર - ESPAsync માંથી તમારા ફોલ્ડરનું નામ બદલોWebસર્વર-માસ્ટર થી ESPAsyncWebસર્વર
- ESPAsync ખસેડોWebસર્વર ફોલ્ડરને તમારા Arduino IDE ઇન્સ્ટોલેશન લાઇબ્રેરી ફોલ્ડરમાં દાખલ કરો.
ESP32 માટે Async TCP લાઇબ્રેરી ઇન્સ્ટોલ કરી રહ્યા છીએ
આ ESPAસિંકWebસર્વર પુસ્તકાલય માટે જરૂરી છે એસિંકટીસીપી કામ કરવા માટે લાઇબ્રેરી. તે લાઇબ્રેરી ઇન્સ્ટોલ કરવા માટે આગળના પગલાં અનુસરો:
- AsyncTCP લાઇબ્રેરી ડાઉનલોડ કરવા માટે અહીં ક્લિક કરો. તમારા ડાઉનલોડ્સ ફોલ્ડરમાં .zip ફોલ્ડર હોવું જોઈએ.
- .zip ફોલ્ડરને અનઝિપ કરો અને તમને AsyncTCP-master ફોલ્ડર મળશે.
- તમારા ફોલ્ડરનું નામ AsyncTCP-master થી AsyncTCP કરો.
- AsyncTCP ફોલ્ડરને તમારા Arduino IDE ઇન્સ્ટોલેશન લાઇબ્રેરી ફોલ્ડરમાં ખસેડો.
- છેલ્લે, તમારા Arduino IDE ને ફરીથી ખોલો.
કોડ
આપણે Arduino IDE નો ઉપયોગ કરીને ESP32 પ્રોગ્રામ કરીશું, તેથી આગળ વધતા પહેલા ખાતરી કરો કે તમારી પાસે ESP32 એડ-ઓન ઇન્સ્ટોલ કરેલું છે: (જો તમે આ પગલું પહેલાથી જ પૂર્ણ કરી લીધું હોય, તો તમે આગલા પગલા પર જઈ શકો છો.)
Arduino IDE માં ESP32 એડ-ઓન ઇન્સ્ટોલ કરવું
જરૂરી લાઇબ્રેરીઓ ઇન્સ્ટોલ કર્યા પછી, કોડ ખોલો
પ્રોજેક્ટ_9_ESP32_DHT11_Webarduino IDE માં _Server.ino.
કોડ અપલોડ કરતા પહેલા, તમારા નેટવર્ક ઓળખપત્રો દાખલ કરવાનું ભૂલશો નહીં જેથી ESP તમારા સ્થાનિક નેટવર્ક સાથે કનેક્ટ થઈ શકે.કોડ કેવી રીતે કાર્ય કરે છે
નીચેના ફકરાઓમાં આપણે કોડ કેવી રીતે કાર્ય કરે છે તે સમજાવીશું. જો તમે વધુ જાણવા માંગતા હો, તો વાંચતા રહો અથવા અંતિમ પરિણામ જોવા માટે ડેમોન્સ્ટ્રેશન વિભાગ પર જાઓ.
પુસ્તકાલયો આયાત કરી રહ્યા છીએ
પ્રથમ, જરૂરી લાઇબ્રેરીઓ આયાત કરો. WiFi, ESPAsyncWebસર્વર અને ESPAsyncTCP બનાવવા માટે જરૂરી છે web સર્વર. DHT11 અથવા DHT22 સેન્સરમાંથી વાંચવા માટે Adafruit_Sensor અને DHT લાઇબ્રેરીઓની જરૂર છે.ચલોની વ્યાખ્યા
DHT ડેટા પિન કયા GPIO સાથે જોડાયેલ છે તે વ્યાખ્યાયિત કરો. આ કિસ્સામાં, તે GPIO 4 સાથે જોડાયેલ છે.પછી, તમે જે DHT સેન્સરનો ઉપયોગ કરી રહ્યા છો તે પ્રકાર પસંદ કરો. અમારા ભૂતપૂર્વમાંampહા, અમે DHT22 વાપરી રહ્યા છીએ. જો તમે બીજા પ્રકારનો ઉપયોગ કરી રહ્યા છો, તો તમારે ફક્ત તમારા સેન્સરને અનકોમેન્ટ કરવાની અને બાકીના બધા પર ટિપ્પણી કરવાની જરૂર છે.
આપણે પહેલા વ્યાખ્યાયિત કરેલા પ્રકાર અને પિન સાથે DHT ઑબ્જેક્ટને ઇન્સ્ટન્ટિયેટ કરો.એસિંક્રોનસ બનાવોWebપોર્ટ 80 પર સર્વર ઑબ્જેક્ટ.
તાપમાન અને ભેજ કાર્યો વાંચો
આપણે બે ફંક્શન બનાવ્યા છે: એક તાપમાન વાંચવા માટે. આપણે બે ફંક્શન બનાવ્યા છે: એક તાપમાન વાંચવા માટે (readDHTTemperature()) અને બીજું ભેજ વાંચવા માટે (readDHTHumidity()).સેન્સર રીડિંગ્સ મેળવવી એ dht ઑબ્જેક્ટ પર readTemperature() અને readHumidity() પદ્ધતિઓનો ઉપયોગ કરવા જેટલું જ સરળ છે.
આપણી પાસે એવી શરત પણ છે કે જો સેન્સર રીડિંગ્સ મેળવવામાં નિષ્ફળ જાય તો બે ડેશ (–) પરત કરે છે.
રીડિંગ્સ સ્ટ્રિંગ પ્રકાર તરીકે પરત કરવામાં આવે છે. ફ્લોટને સ્ટ્રિંગમાં રૂપાંતરિત કરવા માટે, સ્ટ્રિંગ() ફંક્શનનો ઉપયોગ કરો.
મૂળભૂત રીતે, આપણે તાપમાન સેલ્સિયસ ડિગ્રીમાં વાંચી રહ્યા છીએ. ફેરનહીટ ડિગ્રીમાં તાપમાન મેળવવા માટે, તાપમાન સેલ્સિયસમાં ટિપ્પણી કરો અને તાપમાન ફેરનહીટમાં અનકોમેન્ટ કરો, જેથી તમારી પાસે નીચે મુજબ હોય:
કોડ અપલોડ કરો
હવે, તમારા ESP32 પર કોડ અપલોડ કરો. ખાતરી કરો કે તમે યોગ્ય બોર્ડ અને COM પોર્ટ પસંદ કરેલ છે. કોડ સંદર્ભ પગલાં અપલોડ કરો.
અપલોડ કર્યા પછી, 115200 ના બોડ રેટ પર સીરીયલ મોનિટર ખોલો. ESP32 રીસેટ બટન દબાવો. ESP32 IP સરનામું સીરીયલમાં છાપેલું હોવું જોઈએ. મોનિટરપ્રદર્શન
બ્રાઉઝર ખોલો અને ESP32 IP સરનામું લખો. તમારું web સર્વરે નવીનતમ સેન્સર રીડિંગ્સ પ્રદર્શિત કરવા જોઈએ.
નોંધ: તમારું બ્રાઉઝર અને ESP32 એક જ LAN સાથે જોડાયેલા હોવા જોઈએ.
નોંધ લો કે તાપમાન અને ભેજ રીડિંગ્સ રિફ્રેશ કર્યા વિના આપમેળે અપડેટ થાય છે web પૃષ્ઠ
પ્રોજેક્ટ_૧૦_ESP૩૨_OLED_ડિસ્પ્લે
આ પ્રોજેક્ટ બતાવે છે કે Arduino IDE નો ઉપયોગ કરીને ESP0.96 સાથે 1306 ઇંચના SSD32 OLED ડિસ્પ્લેનો ઉપયોગ કેવી રીતે કરવો.
0.96 ઇંચ OLED ડિસ્પ્લે રજૂ કરી રહ્યા છીએ
આ OLED ડિસ્પ્લે આ ટ્યુટોરીયલમાં આપણે SSD1306 મોડેલનો ઉપયોગ કરીશું: નીચેની આકૃતિમાં બતાવ્યા પ્રમાણે 0.96×128 પિક્સેલ સાથે મોનોકલર, 64 ઇંચ ડિસ્પ્લે.OLED ડિસ્પ્લેને બેકલાઇટની જરૂર નથી, જેના પરિણામે અંધારાવાળા વાતાવરણમાં ખૂબ જ સારો કોન્ટ્રાસ્ટ મળે છે. વધુમાં, તેના પિક્સેલ ફક્ત ત્યારે જ ઉર્જા વાપરે છે જ્યારે તે ચાલુ હોય છે, તેથી OLED ડિસ્પ્લે અન્ય ડિસ્પ્લેની તુલનામાં ઓછી શક્તિ વાપરે છે.
OLED ડિસ્પ્લે I2C કોમ્યુનિકેશન પ્રોટોકોલનો ઉપયોગ કરે છે, તેથી વાયરિંગ ખૂબ જ સરળ છે. તમે નીચેના કોષ્ટકનો સંદર્ભ તરીકે ઉપયોગ કરી શકો છો.
OLED પિન | ESP32 |
વિન | 3.3 વી |
જીએનડી | જીએનડી |
SCL | GPIO 22 |
એસડીએ | GPIO 21 |
યોજનાકીયSSD1306 OLED લાઇબ્રેરી ઇન્સ્ટોલ કરી રહ્યું છે - ESP32
ESP32 સાથે OLED ડિસ્પ્લેને નિયંત્રિત કરવા માટે ઘણી લાઇબ્રેરીઓ ઉપલબ્ધ છે.
આ ટ્યુટોરીયલમાં આપણે બે એડફ્રુટ લાઇબ્રેરીઓનો ઉપયોગ કરીશું: Adafruit_SSD1306 લાઇબ્રેરી અને Adafruit_GFX લાઇબ્રેરી.
તે લાઇબ્રેરીઓ ઇન્સ્ટોલ કરવા માટે આગળના પગલાં અનુસરો.
- તમારો Arduino IDE ખોલો અને Sketch > Include Library > Manage Libraries પર જાઓ. Library Manager ખુલવું જોઈએ.
- સર્ચ બોક્સમાં “SSD1306” લખો અને Adafruit માંથી SSD1306 લાઇબ્રેરી ઇન્સ્ટોલ કરો.
- Adafruit માંથી SSD1306 લાઇબ્રેરી ઇન્સ્ટોલ કર્યા પછી, સર્ચ બોક્સમાં “GFX” લખો અને લાઇબ્રેરી ઇન્સ્ટોલ કરો.
- લાઇબ્રેરીઓ ઇન્સ્ટોલ કર્યા પછી, તમારા Arduino IDE ને ફરીથી શરૂ કરો.
કોડ
જરૂરી લાઇબ્રેરીઓ ઇન્સ્ટોલ કર્યા પછી, arduino IDE. કોડમાં Project_10_ESP32_OLED_Display.ino ખોલો.
આપણે ESP32 ને Arduino IDE નો ઉપયોગ કરીને પ્રોગ્રામ કરીશું, તેથી આગળ વધતા પહેલા ખાતરી કરો કે તમારી પાસે ESP32 એડ-ઓન ઇન્સ્ટોલ કરેલું છે: (જો તમે આ પગલું પહેલાથી જ પૂર્ણ કરી લીધું હોય, તો તમે આગલા પગલા પર જઈ શકો છો.)
Arduino IDE માં ESP32 એડ-ઓન ઇન્સ્ટોલ કરવુંકોડ કેવી રીતે કાર્ય કરે છે
પુસ્તકાલયો આયાત કરી રહ્યા છીએ
સૌપ્રથમ, તમારે જરૂરી લાઇબ્રેરીઓ આયાત કરવાની જરૂર છે. I2C નો ઉપયોગ કરવા માટે વાયર લાઇબ્રેરી અને ડિસ્પ્લે પર લખવા માટે એડફ્રૂટ લાઇબ્રેરીઓ: એડફ્રૂટ_જીએફએક્સ અને એડફ્રૂટ_એસએસડી1306.OLED ડિસ્પ્લે શરૂ કરો
પછી, તમે તમારી OLED પહોળાઈ અને ઊંચાઈ વ્યાખ્યાયિત કરો. આ ઉદાહરણમાંampહા, અમે ૧૨૮×૬૪ OLED ડિસ્પ્લેનો ઉપયોગ કરી રહ્યા છીએ. જો તમે અન્ય કદનો ઉપયોગ કરી રહ્યા છો, તો તમે તેને SCREEN_WIDTH અને SCREEN_HEIGHT ચલોમાં બદલી શકો છો.પછી, I2C કોમ્યુનિકેશન પ્રોટોકોલ (&Wire) સાથે અગાઉ વ્યાખ્યાયિત પહોળાઈ અને ઊંચાઈ સાથે ડિસ્પ્લે ઑબ્જેક્ટને ઇનિશિયલાઇઝ કરો.
(-1) પેરામીટરનો અર્થ એ છે કે તમારા OLED ડિસ્પ્લેમાં RESET પિન નથી. જો તમારા OLED ડિસ્પ્લેમાં RESET પિન હોય, તો તે GPIO સાથે જોડાયેલ હોવો જોઈએ. તે કિસ્સામાં, તમારે GPIO નંબરને પેરામીટર તરીકે પાસ કરવો જોઈએ.
સેટઅપ() માં, ડીબગીંગ હેતુઓ માટે સીરીયલ મોનિટરને 115200 ના બાઉડ રાઉટ પર પ્રારંભ કરો.નીચે પ્રમાણે begin() પદ્ધતિનો ઉપયોગ કરીને OLED ડિસ્પ્લે શરૂ કરો:
જો આપણે ડિસ્પ્લે સાથે કનેક્ટ ન થઈ શકીએ તો, આ સ્નિપેટ સીરીયલ મોનિટર પર એક સંદેશ પણ છાપે છે.
જો તમે અલગ OLED ડિસ્પ્લેનો ઉપયોગ કરી રહ્યા છો, તો તમારે OLED સરનામું બદલવાની જરૂર પડી શકે છે. અમારા કિસ્સામાં, સરનામું 0x3C છે.
ડિસ્પ્લે શરૂ કર્યા પછી, બે સેકન્ડનો વિલંબ ઉમેરો, જેથી OLED ને ટેક્સ્ટ લખતા પહેલા શરૂ કરવા માટે પૂરતો સમય મળે:
ડિસ્પ્લે સાફ કરો, ફોન્ટનું કદ, રંગ સેટ કરો અને ટેક્સ્ટ લખો
ડિસ્પ્લે શરૂ કર્યા પછી, clearDisplay() પદ્ધતિનો ઉપયોગ કરીને ડિસ્પ્લે બફર સાફ કરો:
ટેક્સ્ટ લખતા પહેલા, તમારે ટેક્સ્ટનું કદ, રંગ અને OLED માં ટેક્સ્ટ ક્યાં પ્રદર્શિત થશે તે સેટ કરવાની જરૂર છે.
setTextSize() પદ્ધતિનો ઉપયોગ કરીને ફોન્ટનું કદ સેટ કરો:setTextColor() પદ્ધતિનો ઉપયોગ કરીને ફોન્ટ રંગ સેટ કરો:
WHITE સફેદ ફોન્ટ અને કાળી પૃષ્ઠભૂમિ સેટ કરે છે.
setCursor(x,y) પદ્ધતિનો ઉપયોગ કરીને ટેક્સ્ટ ક્યાંથી શરૂ થાય છે તે સ્થાન વ્યાખ્યાયિત કરો. આ કિસ્સામાં, આપણે ટેક્સ્ટને (0,0) કોઓર્ડિનેટ્સથી શરૂ કરવા માટે સેટ કરી રહ્યા છીએ - ઉપર ડાબા ખૂણામાં.છેલ્લે, તમે નીચે મુજબ println() પદ્ધતિનો ઉપયોગ કરીને ડિસ્પ્લે પર ટેક્સ્ટ મોકલી શકો છો.
પછી, સ્ક્રીન પર ટેક્સ્ટ પ્રદર્શિત કરવા માટે તમારે display() પદ્ધતિને કૉલ કરવાની જરૂર છે.
એડફ્રૂટ OLED લાઇબ્રેરી ટેક્સ્ટને સરળતાથી સ્ક્રોલ કરવા માટે ઉપયોગી પદ્ધતિઓ પ્રદાન કરે છે.
- startscrollright(0x00, 0x0F): ટેક્સ્ટને ડાબેથી જમણે સ્ક્રોલ કરો
- startscrollleft(0x00, 0x0F): ટેક્સ્ટને જમણેથી ડાબે સ્ક્રોલ કરો
- startscrolldiagright(0x00, 0x07): ડાબા તળિયે ખૂણાથી જમણા ઉપરના ખૂણા સુધી ટેક્સ્ટ સ્ક્રોલ કરો startscrolldiagleft(0x00, 0x07): જમણા તળિયે ખૂણાથી ડાબા ઉપરના ખૂણા સુધી ટેક્સ્ટ સ્ક્રોલ કરો
કોડ અપલોડ કરો
હવે, તમારા ESP32 પર કોડ અપલોડ કરો. કોડ સંદર્ભ પગલાં અપલોડ કરો.
કોડ અપલોડ કર્યા પછી, OLED સ્ક્રોલિંગ ટેક્સ્ટ પ્રદર્શિત કરશે.
દસ્તાવેજો / સંસાધનો
![]() |
LAFVIN ESP32 બેઝિક સ્ટાર્ટર કિટ [પીડીએફ] સૂચના માર્ગદર્શિકા ESP32 બેઝિક સ્ટાર્ટર કિટ, ESP32, બેઝિક સ્ટાર્ટર કિટ, સ્ટાર્ટર કિટ |