ESP32 ప్రాథమిక స్టార్టర్
కిట్
ప్యాకింగ్ జాబితా
ESP32 పరిచయం
ESP32కి కొత్తదా? ఇక్కడ ప్రారంభించండి! ESP32 అనేది Wi-Fi మరియు బ్లూటూత్ వైర్లెస్ సామర్థ్యాలు మరియు డ్యూయల్-కోర్ ప్రాసెసర్ను కలిగి ఉన్న Espressif చే అభివృద్ధి చేయబడిన చిప్ (SoC) మైక్రోకంట్రోలర్లపై తక్కువ-ధర మరియు తక్కువ-పవర్ సిస్టమ్. మీకు ESP8266 గురించి తెలిసి ఉంటే, ESP32 దాని వారసుడు, చాలా కొత్త ఫీచర్లతో లోడ్ చేయబడింది.ESP32 స్పెసిఫికేషన్లు
మీరు కొంచెం సాంకేతికంగా మరియు నిర్దిష్టంగా పొందాలనుకుంటే, మీరు ESP32 యొక్క క్రింది వివరణాత్మక స్పెసిఫికేషన్లను పరిశీలించవచ్చు (మూలం: http://esp32.net/)-మరిన్ని వివరాల కోసం, డేటాషీట్ని తనిఖీ చేయండి):
- వైర్లెస్ కనెక్టివిటీ WiFi: HT150.0తో 40 Mbps డేటా రేట్
- బ్లూటూత్: BLE (బ్లూటూత్ తక్కువ శక్తి) మరియు బ్లూటూత్ క్లాసిక్
- ప్రాసెసర్: Tensilica Xtensa Dual-Core 32-bit LX6 మైక్రోప్రాసెసర్, 160 లేదా 240 MHz వద్ద నడుస్తుంది
- మెమరీ:
- ROM: 448 KB (బూటింగ్ మరియు కోర్ ఫంక్షన్ల కోసం)
- SRAM: 520 KB (డేటా మరియు సూచనల కోసం)
- RTC ఫాస్ 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 మార్పిడులను ఉపయోగించవచ్చని నిర్ధారిస్తుంది, ఉదాహరణకుample, గాఢ నిద్ర సమయంలో.
పరిధీయ ఇన్పుట్/అవుట్పుట్:
- కెపాసిటివ్ టచ్తో కూడిన DMAతో పరిధీయ ఇంటర్ఫేస్
- 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 (డ్యూయల్ కోర్) |
Wi-Fi | 2.4 GHz నుండి 150 Mbits/s వరకు |
బ్లూటూత్ | BLE (బ్లూటూత్ తక్కువ శక్తి) మరియు లెగసీ బ్లూటూత్ |
ఆర్కిటెక్చర్ | 32 బిట్స్ |
గడియారం ఫ్రీక్వెన్సీ | 240 MHz వరకు |
RAM | 512 KB |
పిన్స్ | 30 (మోడల్ ఆధారంగా) |
పెరిఫెరల్స్ | కెపాసిటివ్ టచ్, ADC (అనలాగ్ టు డిజిటల్ కన్వర్టర్), DAC (డిజిటల్ నుండి అనలాగ్ కన్వర్టర్), 12C (ఇంటర్-ఇంటిగ్రేటెడ్ సర్క్యూట్), UART (యూనివర్సల్ అసమకాలిక రిసీవర్/ట్రాన్స్మిటర్), CAN 2.0 (కంట్రోలర్ ఏరియా నెట్వోకర్), SPI (సీరియల్ పెరిఫెరల్ ఇంటర్ఫేస్) , 12S (ఇంటిగ్రేటెడ్ ఇంటర్-ఐసి సౌండ్), RMII (రిడ్యూస్డ్ మీడియా-ఇండిపెండెంట్ ఇంటర్ఫేస్), PWM (పల్స్ వెడల్పు మాడ్యులేషన్) మరియు మరిన్ని. |
అంతర్నిర్మిత బటన్లు | రీసెట్ మరియు బూట్ బటన్లు |
అంతర్నిర్మిత LED లు | GPIO2 కి కనెక్ట్ చేయబడిన అంతర్నిర్మిత నీలి LED; బోర్డు పవర్ చేయబడుతుందని చూపించే అంతర్నిర్మిత ఎరుపు LED |
USB నుండి UART వంతెన |
CP2102 |
ఇది మైక్రోయూఎస్బి ఇంటర్ఫేస్తో వస్తుంది, దీనిని ఉపయోగించి మీరు కోడ్ను అప్లోడ్ చేయడానికి లేదా పవర్ను వర్తింపజేయడానికి బోర్డును మీ కంప్యూటర్కు కనెక్ట్ చేయవచ్చు.
ఇది సీరియల్ ఇంటర్ఫేస్ని ఉపయోగించి COM పోర్ట్ ద్వారా మీ కంప్యూటర్తో కమ్యూనికేట్ చేయడానికి CP2102 చిప్ (USB నుండి UART)ని ఉపయోగిస్తుంది. మరొక ప్రసిద్ధ చిప్ CH340. మీ బోర్డులో USB నుండి UART చిప్ కన్వర్టర్ ఏమిటో తనిఖీ చేయండి ఎందుకంటే మీ కంప్యూటర్ బోర్డుతో కమ్యూనికేట్ చేయడానికి మీరు అవసరమైన డ్రైవర్లను ఇన్స్టాల్ చేయాలి (దీని గురించి మరింత సమాచారం తరువాత ఈ గైడ్లో).
ఈ బోర్డు బోర్డును పునఃప్రారంభించడానికి RESET బటన్ (EN అని లేబుల్ చేయబడవచ్చు) మరియు బోర్డును ఫ్లాషింగ్ మోడ్లో ఉంచడానికి BOOT బటన్ (కోడ్ను స్వీకరించడానికి అందుబాటులో ఉంది) కూడా వస్తుంది. కొన్ని బోర్డులలో BOOT బటన్ ఉండకపోవచ్చు.
ఇది GPIO 2 కి అంతర్గతంగా అనుసంధానించబడిన అంతర్నిర్మిత నీలిరంగు LED తో కూడా వస్తుంది. ఈ LED డీబగ్గింగ్ కోసం ఒక విధమైన దృశ్య భౌతిక అవుట్పుట్ను అందించడానికి ఉపయోగపడుతుంది. మీరు బోర్డుకు శక్తిని అందించినప్పుడు వెలిగే ఎరుపు LED కూడా ఉంది.ESP32 పిన్అవుట్
ESP32 పెరిఫెరల్స్లో ఇవి ఉన్నాయి:
- 18 అనలాగ్-టు-డిజిటల్ కన్వర్టర్ (ADC) ఛానెల్లు
- 3 SPI ఇంటర్ఫేస్లు
- 3 UART ఇంటర్ఫేస్లు
- 2 I2C ఇంటర్ఫేస్లు
- 16 PWM అవుట్పుట్ ఛానెల్లు
- 2 డిజిటల్-టు-అనలాగ్ కన్వర్టర్లు (DAC)
- 2 I2S ఇంటర్ఫేస్లు
- 10 కెపాసిటివ్ సెన్సింగ్ GPIOలు
ADC (అనలాగ్ టు డిజిటల్ కన్వర్టర్) మరియు DAC (డిజిటల్ నుండి అనలాగ్ కన్వర్టర్) లక్షణాలు నిర్దిష్ట స్టాటిక్ పిన్లకు కేటాయించబడతాయి. అయితే, మీరు UART, I2C, SPI, PWM మొదలైన పిన్లను నిర్ణయించవచ్చు - మీరు వాటిని కోడ్లో కేటాయించాలి. ESP32 చిప్ యొక్క మల్టీప్లెక్సింగ్ ఫీచర్ కారణంగా ఇది సాధ్యమవుతుంది.
మీరు సాఫ్ట్వేర్లో పిన్స్ లక్షణాలను నిర్వచించగలిగినప్పటికీ, కింది చిత్రంలో చూపిన విధంగా డిఫాల్ట్గా కేటాయించిన పిన్లు ఉన్నాయిఅదనంగా, నిర్దిష్ట ప్రాజెక్ట్కి తగినవి లేదా కానటువంటి నిర్దిష్ట లక్షణాలతో పిన్లు ఉన్నాయి. ఇన్పుట్లు, అవుట్పుట్లుగా ఏ పిన్లను ఉపయోగించడం ఉత్తమమో మరియు మీరు ఏవి జాగ్రత్తగా ఉండాలో క్రింది పట్టిక చూపుతుంది.
ఆకుపచ్చ రంగులో హైలైట్ చేయబడిన పిన్లు ఉపయోగించడానికి సరే. పసుపు రంగులో హైలైట్ చేయబడినవి ఉపయోగించడానికి సరే, కానీ మీరు శ్రద్ద వహించాలి ఎందుకంటే అవి ప్రధానంగా బూట్లో ఊహించని ప్రవర్తనను కలిగి ఉండవచ్చు. ఎరుపు రంగులో హైలైట్ చేయబడిన పిన్లు ఇన్పుట్లు లేదా అవుట్పుట్లుగా ఉపయోగించడానికి సిఫార్సు చేయబడవు.
GP IO | ఇన్పుట్ | అవుట్పుట్ | గమనికలు |
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 GPIOలు మరియు దాని విధుల గురించి మరింత వివరంగా మరియు లోతైన విశ్లేషణ కోసం చదవడం కొనసాగించండి.
పిన్లను మాత్రమే ఇన్పుట్ చేయండి
GPIOలు 34 నుండి 39 వరకు GPIలు - ఇన్పుట్ మాత్రమే పిన్లు. ఈ పిన్లకు అంతర్గత పుల్-అప్ లేదా పుల్-డౌన్ రెసిస్టర్లు లేవు. వాటిని అవుట్పుట్లుగా ఉపయోగించలేరు, కాబట్టి ఈ పిన్లను ఇన్పుట్లుగా మాత్రమే ఉపయోగించండి:
- GPIO 34
- GPIO 35
- GPIO 36
- GPIO 39
SPI ఫ్లాష్ ESP-WROOM-32లో విలీనం చేయబడింది
GPIO 6 నుండి GPIO 11 వరకు కొన్ని ESP32 డెవలప్మెంట్ బోర్డులలో బహిర్గతం చేయబడ్డాయి. అయినప్పటికీ, ఈ పిన్లు 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)
RTC GPIOలు
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)
PWM
ESP32 LED PWM కంట్రోలర్ వివిధ లక్షణాలతో PWM సిగ్నల్లను రూపొందించడానికి కాన్ఫిగర్ చేయగల 16 స్వతంత్ర ఛానెల్లను కలిగి ఉంది. అవుట్పుట్లుగా పని చేసే అన్ని పిన్లను 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
డిఫాల్ట్గా, SPI కోసం పిన్ మ్యాపింగ్:
SPI | మోసి | MISO | CLK | CS |
VSPI | 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లు బూట్ లేదా రీసెట్ వద్ద తమ స్థితిని HIGH లేదా అవుట్పుట్ 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 లాగా Filesystem Uploader Plugin) ఇంకా 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, మీరు వేరు చేయవచ్చు URLs ను కామాతో ఈ క్రింది విధంగా వ్రాయండి:
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 > ఉదాamples > WiFi
(ESP32) > వైఫైస్కాన్ - మీ Arduino IDEలో కొత్త స్కెచ్ తెరవబడుతుంది:
- Arduino IDEలో అప్లోడ్ బటన్ను నొక్కండి. కోడ్ కంపైల్ చేయబడి, మీ బోర్డుకి అప్లోడ్ అయ్యే వరకు కొన్ని సెకన్లు వేచి ఉండండి.
- అంతా అనుకున్నట్లుగా జరిగితే, మీరు “అప్లోడ్ చేయడం పూర్తయింది” అని చూడాలి. సందేశం.
- Arduino IDE సీరియల్ మానిటర్ను 115200 బాడ్ రేటుతో తెరవండి:
- 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ని అవుట్పుట్గా సెట్ చేయాలి. పిన్మోడ్() ఫంక్షన్ని క్రింది విధంగా ఉపయోగించండి:
పిన్మోడ్ (GPIO, అవుట్పుట్);
డిజిటల్ అవుట్పుట్ను నియంత్రించడానికి మీరు ఆర్గ్యుమెంట్లుగా అంగీకరించే డిజిటల్ రైట్() ఫంక్షన్ను, మీరు సూచించే GPIO (పూర్ణాంక సంఖ్య) మరియు స్థితిని, ఎక్కువ లేదా తక్కువ ఉపయోగించాలి.
డిజిటల్ రైట్ (GPIO, స్టేట్);
GPIOలు 6 నుండి 11 వరకు (ఇంటిగ్రేటెడ్ SPI ఫ్లాష్కి కనెక్ట్ చేయబడింది) మరియు GPIOలు 34, 35, 36 మరియు 39 (ఇన్పుట్ మాత్రమే GPIOలు) మినహా అన్ని GPIOలను అవుట్పుట్లుగా ఉపయోగించవచ్చు;
ESP32 GPIOల గురించి మరింత తెలుసుకోండి: ESP32 GPIO రిఫరెన్స్ గైడ్
ESP32 డిజిటల్ ఇన్పుట్లను చదవండి
ముందుగా, కింది విధంగా పిన్మోడ్() ఫంక్షన్ని ఉపయోగించి మీరు చదవాలనుకుంటున్న GPIOని INPUTగా సెట్ చేయండి:
పిన్మోడ్ (GPIO, INPUT);
బటన్ వంటి డిజిటల్ ఇన్పుట్ను చదవడానికి, మీరు ఆర్గ్యుమెంట్గా అంగీకరించే డిజిటల్ రీడ్() ఫంక్షన్ను ఉపయోగిస్తారు, మీరు సూచిస్తున్న GPIO (int నంబర్).
డిజిటల్ రీడ్ (GPIO);
GPIOలు 32 నుండి 6 వరకు (ఇంటిగ్రేటెడ్ SPI ఫ్లాష్కి కనెక్ట్ చేయబడింది) మినహా అన్ని ESP11 GPIOలను ఇన్పుట్లుగా ఉపయోగించవచ్చు.
ESP32 GPIOల గురించి మరింత తెలుసుకోండి: ESP32 GPIO రిఫరెన్స్ గైడ్
ప్రాజెక్ట్ Example
డిజిటల్ ఇన్పుట్లు మరియు డిజిటల్ అవుట్పుట్లను ఎలా ఉపయోగించాలో మీకు చూపించడానికి, మేము ఒక సాధారణ ప్రాజెక్ట్ను రూపొందిస్తాముampపుష్బటన్ మరియు LED తో le. మేము పుష్బటన్ స్థితిని చదివి, కింది చిత్రంలో చూపిన విధంగా LEDని వెలిగిస్తాము.
భాగాలు అవసరం
సర్క్యూట్ను నిర్మించడానికి మీకు అవసరమైన భాగాల జాబితా ఇక్కడ ఉంది:
- ESP32 DEVKIT V1
- 5 mm LED
- 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 (నొక్కబడలేదు).
int బటన్ స్టేట్ = 0;
సెటప్(), మీరు బటన్ను ఇన్పుట్గా మరియు LEDని అవుట్పుట్గా ప్రారంభించండి.
దాని కోసం, మీరు సూచించే పిన్ను అంగీకరించే పిన్మోడ్() ఫంక్షన్ను మరియు మోడ్ను ఉపయోగించండి: ఇన్పుట్ లేదా అవుట్పుట్.
పిన్మోడ్(బటన్పిన్, ఇన్పుట్);
పిన్మోడ్ (లెడ్పిన్, అవుట్పుట్);
లూప్()లో మీరు బటన్ స్థితిని చదివి, తదనుగుణంగా 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 మధ్య ఇ స్థాయిలు.
వాల్యూమ్tage కొలవబడినది 0 మరియు 4095 మధ్య విలువకు కేటాయించబడుతుంది, దీనిలో 0 V 0కి అనుగుణంగా ఉంటుంది మరియు 3.3 V 4095కి అనుగుణంగా ఉంటుంది. ఏదైనా వాల్యూమ్tage మధ్య 0 V మరియు 3.3 V మధ్య సంబంధిత విలువ ఇవ్వబడుతుంది.ADC నాన్-లీనియర్
ఆదర్శవంతంగా, ESP32 ADC పిన్లను ఉపయోగిస్తున్నప్పుడు మీరు సరళ ప్రవర్తనను ఆశించవచ్చు.
అయితే, అది జరగదు. కింది చార్ట్లో చూపిన విధంగా మీరు ప్రవర్తనను పొందుతారు:ఈ ప్రవర్తన అంటే మీ ESP32 3.3 V నుండి 3.2 Vని వేరు చేయలేకపోయింది.
మీరు రెండు వాల్యూమ్లకు ఒకే విలువను పొందుతారుtagఎస్: 4095.
చాలా తక్కువ వాల్యూమ్కి కూడా అదే జరుగుతుందిtage విలువలు: 0 V మరియు 0.1 V కోసం మీరు ఒకే విలువను పొందుతారు: 0. ESP32 ADC పిన్లను ఉపయోగిస్తున్నప్పుడు మీరు దీన్ని గుర్తుంచుకోవాలి.
అనలాగ్ రీడ్() ఫంక్షన్
Arduino IDEని ఉపయోగించి ESP32తో అనలాగ్ ఇన్పుట్ను చదవడం అనలాగ్రీడ్() ఫంక్షన్ని ఉపయోగించినంత సులభం. ఇది మీరు చదవాలనుకుంటున్న GPIO వాదనగా అంగీకరిస్తుంది:
అనలాగ్ రీడ్ (GPIO);
DEVKIT V15board (1 GPIOలతో వెర్షన్)లో 30 మాత్రమే అందుబాటులో ఉన్నాయి.
మీ ESP32 బోర్డు పిన్అవుట్ని పట్టుకోండి మరియు ADC పిన్లను గుర్తించండి. దిగువ చిత్రంలో ఎరుపు అంచుతో ఇవి హైలైట్ చేయబడ్డాయి.ఈ అనలాగ్ ఇన్పుట్ పిన్లు 12-బిట్ రిజల్యూషన్ను కలిగి ఉంటాయి. అంటే మీరు అనలాగ్ ఇన్పుట్ను చదివినప్పుడు, దాని పరిధి 0 నుండి 4095 వరకు మారవచ్చు.
గమనిక: Wi-Fiని ఉపయోగించినప్పుడు ADC2 పిన్లను ఉపయోగించలేరు. కాబట్టి, మీరు Wi-Fiని ఉపయోగిస్తుంటే మరియు ADC2 GPIO నుండి విలువను పొందడంలో మీకు సమస్య ఉన్నట్లయితే, మీరు బదులుగా ADC1 GPIOని ఉపయోగించడాన్ని పరిగణించవచ్చు, అది మీ సమస్యను పరిష్కరిస్తుంది.
ప్రతిదీ ఎలా కలిసిపోతుందో చూడటానికి, మేము ఒక సాధారణ మాజీని చేస్తాముampపొటెన్షియోమీటర్ నుండి అనలాగ్ విలువను చదవడానికి le.
భాగాలు అవసరం
దీని కోసం మాజీample, మీకు ఈ క్రింది భాగాలు అవసరం:
- ESP32 DEVKIT V1 బోర్డ్
- potentiometer
- బ్రెడ్బోర్డ్
- జంపర్ వైర్లు
స్కీమాటిక్
మీ ESP32కి పొటెన్షియోమీటర్ను వైర్ చేయండి. పొటెన్షియోమీటర్ మిడిల్ పిన్ GPIO 4కి కనెక్ట్ చేయబడాలి. మీరు క్రింది స్కీమాటిక్ రేఖాచిత్రాన్ని సూచనగా ఉపయోగించవచ్చు.కోడ్
మేము Arduino IDEని ఉపయోగించి ESP32ని ప్రోగ్రామ్ చేస్తాము, కాబట్టి మీరు కొనసాగడానికి ముందు ESP32 యాడ్-ఆన్ని ఇన్స్టాల్ చేశారని నిర్ధారించుకోండి:(మీరు ఇప్పటికే ఈ దశను పూర్తి చేసి ఉంటే, మీరు తదుపరి దశకు దాటవేయవచ్చు.)
Arduino IDEలో ESP32 యాడ్-ఆన్ను ఇన్స్టాల్ చేస్తోంది
arduino IDEలో Project_2_ESP32_Inputs_Outputs.ino కోడ్ని తెరవండిఈ కోడ్ కేవలం పొటెన్షియోమీటర్ నుండి విలువలను చదివి, ఆ విలువలను సీరియల్ మానిటర్లో ముద్రిస్తుంది.
కోడ్లో, మీరు పొటెన్షియోమీటర్ కనెక్ట్ చేయబడిన GPIOని నిర్వచించడం ద్వారా ప్రారంభించండి. ఇందులో మాజీample, GPIO 4.సెటప్(), 115200 బాడ్ రేటుతో సీరియల్ కమ్యూనికేషన్ను ప్రారంభించండి.
లూప్(), పాట్పిన్ నుండి అనలాగ్ ఇన్పుట్ను చదవడానికి అనలాగ్రీడ్() ఫంక్షన్ను ఉపయోగించండి.
చివరగా, సీరియల్ మానిటర్లోని పొటెన్షియోమీటర్ నుండి చదివిన విలువలను ప్రింట్ చేయండి.
మీ 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 సిగ్నల్లను ఎలా రూపొందించాలో మేము మీకు చూపుతాము. మాజీగాample మేము ESP32 యొక్క LED PWM కంట్రోలర్ని ఉపయోగించి LEDని మసకబారే సాధారణ సర్క్యూట్ను నిర్మిస్తాము.ESP32 LED PWM కంట్రోలర్
ESP32 వివిధ లక్షణాలతో PWM సిగ్నల్లను రూపొందించడానికి కాన్ఫిగర్ చేయగల 16 స్వతంత్ర ఛానెల్లతో LED 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 బోర్డ్
- 5mm LED
- 220 ఓం రెసిస్టర్
- బ్రెడ్బోర్డ్
- జంపర్ వైర్లు
స్కీమాటిక్
కింది స్కీమాటిక్ రేఖాచిత్రంలో ఉన్నట్లుగా మీ ESP32కి LEDని వైర్ చేయండి. LED GPIOకి కనెక్ట్ చేయబడాలి 4.గమనిక: మీరు మీకు కావలసిన ఏదైనా పిన్ని ఉపయోగించవచ్చు, అది అవుట్పుట్గా పని చేయగలిగినంత కాలం. అవుట్పుట్లుగా పని చేసే అన్ని పిన్లను PWM పిన్లుగా ఉపయోగించవచ్చు. ESP32 GPIOల గురించి మరింత సమాచారం కోసం, చదవండి: ESP32 Pinout సూచన: మీరు ఏ 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 సిగ్నల్లను రూపొందించడానికి మీరు వీటి కంటే భిన్నమైన ఇతర లక్షణాలను ఎంచుకోవచ్చు.
సెటప్()లో, మీరు ఈ క్రింది విధంగా ఆర్గ్యుమెంట్లు, ledChannel, ఫ్రీక్వెన్సీ మరియు రిజల్యూషన్గా అంగీకరించే ledcSetup() ఫంక్షన్ని ఉపయోగించి మీరు ఇంతకు ముందు నిర్వచించిన లక్షణాలతో LED PWMని కాన్ఫిగర్ చేయాలి:
తర్వాత, మీరు సిగ్నల్ను పొందే GPIOని ఎంచుకోవాలి. దాని కోసం మీరు సిగ్నల్ను పొందాలనుకుంటున్న GPIO మరియు సిగ్నల్ను ఉత్పత్తి చేసే ఛానెల్ని వాదనలుగా అంగీకరించే ledcAttachPin() ఫంక్షన్ను ఉపయోగించండి. ఇందులో మాజీample, మేము 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 సెన్సార్ ద్వారా గుర్తించబడాలంటే, వస్తువు తప్పనిసరిగా రెండు అవసరాలను తీర్చాలి:
- వస్తువు పరారుణ మార్గాన్ని విడుదల చేస్తోంది.
- వస్తువు కదులుతోంది లేదా వణుకుతోంది
కాబట్టి:
ఒక వస్తువు ఇన్ఫ్రారెడ్ కిరణాన్ని విడుదల చేస్తున్నప్పటికీ కదలకుండా ఉంటే (ఉదా., ఒక వ్యక్తి కదలకుండా నిశ్చలంగా నిలబడి ఉంటే), అది సెన్సార్ ద్వారా గుర్తించబడదు.
ఒక వస్తువు కదులుతున్నప్పటికీ పరారుణ కిరణాన్ని (ఉదా, రోబోట్ లేదా వాహనం) విడుదల చేయనట్లయితే, అది సెన్సార్ ద్వారా గుర్తించబడదు.
టైమర్లను పరిచయం చేస్తున్నాము
ఇందులో మాజీampమేము టైమర్లను కూడా పరిచయం చేస్తాము. చలనం గుర్తించబడిన తర్వాత ముందుగా నిర్ణయించిన సెకన్ల వరకు LED ఆన్లో ఉండాలని మేము కోరుకుంటున్నాము. మీ కోడ్ను బ్లాక్ చేసే మరియు నిర్ణీత సెకన్ల వరకు వేరే ఏదైనా చేయడానికి మిమ్మల్ని అనుమతించని డిలే() ఫంక్షన్ని ఉపయోగించే బదులు, మేము టైమర్ని ఉపయోగించాలి.ఆలస్యం() ఫంక్షన్
ఆలస్యం() ఫంక్షన్ విస్తృతంగా ఉపయోగించబడుతున్నందున మీరు దాని గురించి తెలిసి ఉండాలి. ఈ ఫంక్షన్ ఉపయోగించడానికి చాలా సరళంగా ఉంటుంది. ఇది ఒక పూర్ణాంక సంఖ్యను వాదనగా అంగీకరిస్తుంది.
ఈ సంఖ్య ప్రోగ్రామ్ తదుపరి కోడ్ లైన్కు వెళ్లే వరకు వేచి ఉండాల్సిన సమయాన్ని మిల్లీసెకన్లలో సూచిస్తుంది.మీరు ఆలస్యం చేసినప్పుడు (1000) మీ ప్రోగ్రామ్ ఆ లైన్లో 1 సెకను పాటు ఆగిపోతుంది.
ఆలస్యం() అనేది నిరోధించే ఫంక్షన్. నిరోధించే విధులు నిర్దిష్ట పని పూర్తయ్యే వరకు ప్రోగ్రామ్ను మరేదైనా చేయకుండా నిరోధిస్తుంది. మీకు ఒకే సమయంలో అనేక పనులు జరగాలంటే, మీరు ఆలస్యం()ని ఉపయోగించలేరు.
చాలా ప్రాజెక్ట్ల కోసం మీరు ఆలస్యాలను ఉపయోగించకుండా ఉండాలి మరియు బదులుగా టైమర్లను ఉపయోగించాలి.
మిల్లీస్() ఫంక్షన్
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 సర్వర్ మీరు ప్రతి LED యొక్క స్థితిని తక్షణమే మార్చవచ్చు.
భాగాలు అవసరం
ఈ ట్యుటోరియల్ కోసం మీకు ఈ క్రింది భాగాలు అవసరం:
- ESP32 DEVKIT V1 బోర్డ్
- 2x 5mm LED
- 2x 200 ఓం రెసిస్టర్
- బ్రెడ్బోర్డ్
- జంపర్ వైర్లు
స్కీమాటిక్
సర్క్యూట్ నిర్మించడం ద్వారా ప్రారంభించండి. కింది స్కీమాటిక్ రేఖాచిత్రంలో చూపిన విధంగా రెండు LED లను ESP32కి కనెక్ట్ చేయండి - ఒకటి GPIO 26కి మరియు మరొకటి GPIO 27కి కనెక్ట్ చేయబడింది.
గమనిక: మేము 32 పిన్లతో ESP36 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లో మీ బోర్డ్ను టూల్స్ > బోర్డ్లో ఎంచుకోండి (మా విషయంలో మేము 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 లను నియంత్రించడానికి బటన్లను క్లిక్ చేయండి.అదే సమయంలో, నేపథ్యంలో ఏమి జరుగుతుందో చూడటానికి మీరు సీరియల్ మానిటర్ని పరిశీలించవచ్చు. ఉదాహరణకు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లను అవుట్పుట్లుగా కూడా నిర్వచించండి మరియు వాటిని తక్కువకు సెట్ చేయండి.
కింది పంక్తులు WiFi.begin(ssid, పాస్వర్డ్)తో Wi-Fi కనెక్షన్ను ప్రారంభిస్తాయి, విజయవంతమైన కనెక్షన్ కోసం వేచి ఉండండి మరియు సీరియల్ మానిటర్లో ESP IP చిరునామాను ముద్రించండి.
లూప్ ()
లూప్()లో మేము కొత్త క్లయింట్తో కనెక్షన్ని ఏర్పరుచుకున్నప్పుడు ఏమి జరుగుతుందో ప్రోగ్రామ్ చేస్తాము web సర్వర్.
ESP32 కింది లైన్తో ఇన్కమింగ్ క్లయింట్ల కోసం ఎల్లప్పుడూ వింటుంది:క్లయింట్ నుండి అభ్యర్థన స్వీకరించబడినప్పుడు, మేము ఇన్కమింగ్ డేటాను సేవ్ చేస్తాము. క్లయింట్ కనెక్ట్ అయినంత వరకు అనుసరించే లూప్ అమలులో ఉంటుంది. మీరు ఏమి చేస్తున్నారో మీకు ఖచ్చితంగా తెలియకపోతే కోడ్లోని క్రింది భాగాన్ని మార్చమని మేము సిఫార్సు చేయము.
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. మేము టెక్స్ట్-డెకరేషన్ను ఏదీ లేనిదిగా సెట్ చేసాము, ఫాంట్ పరిమాణం, మార్జిన్ మరియు కర్సర్ను పాయింటర్కి నిర్వచించాము.
మేము ఇంతకు ముందు నిర్వచించిన బటన్ యొక్క అన్ని లక్షణాలతో, కానీ వేరే రంగుతో రెండవ బటన్ కోసం శైలిని కూడా నిర్వచించాము. ఆఫ్ బటన్ కోసం ఇది శైలిగా ఉంటుంది.
సెట్ చేస్తోంది Web పేజీ మొదటి శీర్షిక
తదుపరి పంక్తిలో మీరు మీ మొదటి శీర్షికను సెట్ చేయవచ్చు web పేజీ. ఇక్కడ మనకు “ESP32 Web "సర్వర్", కానీ మీరు ఈ టెక్స్ట్ను మీకు నచ్చిన దానికి మార్చుకోవచ్చు.బటన్లు మరియు సంబంధిత స్థితిని ప్రదర్శిస్తోంది
అప్పుడు, మీరు GPIO 26 ప్రస్తుత స్థితిని ప్రదర్శించడానికి ఒక పేరా వ్రాస్తారు. మీరు చూడగలిగినట్లుగా, మేము output26State వేరియబుల్ని ఉపయోగిస్తాము, తద్వారా ఈ వేరియబుల్ మారినప్పుడు స్థితి తక్షణమే నవీకరించబడుతుంది.అప్పుడు, GPIO యొక్క ప్రస్తుత స్థితిని బట్టి మేము ఆన్ లేదా ఆఫ్ బటన్ను ప్రదర్శిస్తాము. GPIO యొక్క ప్రస్తుత స్థితి ఆఫ్లో ఉంటే, మేము ఆన్ బటన్ను చూపుతాము, లేకపోతే, మేము ఆఫ్ బటన్ను ప్రదర్శిస్తాము.
మేము GPIO 27 కోసం అదే విధానాన్ని ఉపయోగిస్తాము.
కనెక్షన్ను మూసివేస్తోంది
చివరగా, ప్రతిస్పందన ముగిసినప్పుడు, మేము హెడర్ వేరియబుల్ను క్లియర్ చేస్తాము మరియు Client.stop()తో క్లయింట్తో కనెక్షన్ని ఆపివేస్తాము.
చుట్టడం
ఈ ట్యుటోరియల్లో a ఎలా నిర్మించాలో మేము మీకు చూపించాము web ESP32తో సర్వర్. మేము మీకు సాధారణ మాజీని చూపించాముample ఇది రెండు LEDలను నియంత్రిస్తుంది, అయితే ఆ LED లను రిలేతో లేదా మీరు నియంత్రించాలనుకునే ఏదైనా ఇతర అవుట్పుట్తో భర్తీ చేయాలనే ఆలోచన ఉంది.
ప్రాజెక్ట్ 6 RGB LED Web సర్వర్
ఈ ప్రాజెక్ట్లో RGB LEDని ESP32 బోర్డ్తో రిమోట్గా ఎలా నియంత్రించాలో మేము మీకు చూపుతాము web కలర్ పికర్తో సర్వర్.
ప్రాజెక్ట్ ఓవర్view
ప్రారంభించడానికి ముందు, ఈ ప్రాజెక్ట్ ఎలా పనిచేస్తుందో చూద్దాం:
- ESP32 web సర్వర్ రంగు ఎంపికను ప్రదర్శిస్తుంది.
- మీరు రంగును ఎంచుకున్నప్పుడు, మీ బ్రౌజర్ ఒక అభ్యర్థనను చేస్తుంది URL అది ఎంచుకున్న రంగు యొక్క R, G మరియు B పారామితులను కలిగి ఉంటుంది.
- మీ ESP32 అభ్యర్థనను స్వీకరిస్తుంది మరియు ప్రతి రంగు పరామితి కోసం విలువను విభజిస్తుంది.
- అప్పుడు, ఇది RGB LEDని నియంత్రిస్తున్న GPIOలకు సంబంధిత విలువతో PWM సిగ్నల్ను పంపుతుంది.
RGB LED లు ఎలా పని చేస్తాయి?
సాధారణ కాథోడ్ RGB LEDలో, మూడు LED లు ప్రతికూల కనెక్షన్ను (క్యాథోడ్) పంచుకుంటాయి. కిట్లో చేర్చబడినవన్నీ సాధారణ-కాథోడ్ RGB.వివిధ రంగులను ఎలా సృష్టించాలి?
RGB LEDతో మీరు ఎరుపు, ఆకుపచ్చ మరియు నీలం కాంతిని ఉత్పత్తి చేయవచ్చు మరియు ప్రతి LED యొక్క తీవ్రతను కాన్ఫిగర్ చేయడం ద్వారా, మీరు ఇతర రంగులను కూడా ఉత్పత్తి చేయవచ్చు.
ఉదాహరణకుampఅలాగే, పూర్తిగా నీలిరంగు కాంతిని ఉత్పత్తి చేయడానికి, మీరు నీలం LEDని అత్యధిక తీవ్రతకు మరియు ఆకుపచ్చ మరియు ఎరుపు LED లను తక్కువ తీవ్రతకు సెట్ చేయాలి. తెల్లటి కాంతి కోసం, మీరు మూడు LED లను అత్యధిక తీవ్రతకు సెట్ చేయాలి.
రంగులను కలపడం
ఇతర రంగులను ఉత్పత్తి చేయడానికి, మీరు మూడు రంగులను వేర్వేరు తీవ్రతలలో కలపవచ్చు. ప్రతి LED యొక్క తీవ్రతను సర్దుబాటు చేయడానికి మీరు PWM సిగ్నల్ని ఉపయోగించవచ్చు.
LED లు ఒకదానికొకటి చాలా దగ్గరగా ఉన్నందున, మన కళ్ళు వ్యక్తిగతంగా మూడు రంగుల కంటే రంగుల కలయిక యొక్క ఫలితాన్ని చూస్తాయి.
రంగులను ఎలా కలపాలి అనే దానిపై ఒక ఆలోచనను కలిగి ఉండటానికి, క్రింది చార్ట్ను చూడండి.
ఇది సరళమైన కలర్ మిక్సింగ్ చార్ట్, అయితే ఇది ఎలా పని చేస్తుందో మరియు వివిధ రంగులను ఎలా ఉత్పత్తి చేయాలో మీకు ఒక ఆలోచన ఇస్తుంది.భాగాలు అవసరం
ఈ ప్రాజెక్ట్ కోసం మీకు ఈ క్రింది భాగాలు అవసరం:
- ESP32 DEVKIT V1 బోర్డ్
- RGB LED
- 3x 220 ఓం రెసిస్టర్లు
- జంపర్ వైర్లు
- బ్రెడ్బోర్డ్
స్కీమాటిక్కోడ్
మేము Arduino IDEని ఉపయోగించి ESP32ని ప్రోగ్రామ్ చేస్తాము, కాబట్టి మీరు కొనసాగడానికి ముందు ESP32 యాడ్-ఆన్ని ఇన్స్టాల్ చేశారని నిర్ధారించుకోండి:(మీరు ఇప్పటికే ఈ దశను పూర్తి చేసి ఉంటే, మీరు తదుపరి దశకు దాటవేయవచ్చు.)
- Arduino IDEలో ESP32 యాడ్-ఆన్ను ఇన్స్టాల్ చేస్తోంది
సర్క్యూట్ను సమీకరించిన తర్వాత, కోడ్ను తెరవండి
ప్రాజెక్ట్_6_RGB_LED_Webarduino IDE లో _Server.ino.
కోడ్ను అప్లోడ్ చేయడానికి ముందు, మీ నెట్వర్క్ ఆధారాలను ఇన్సర్ట్ చేయడం మర్చిపోవద్దు, తద్వారా 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());
అనలాగ్ రైట్(బ్లూపిన్, బ్లూస్ట్రింగ్.టోఇంట్())
మేము స్ట్రింగ్ వేరియబుల్లో విలువలను పొందుతాము కాబట్టి, వాటిని toInt() పద్ధతిని ఉపయోగించి పూర్ణాంకాలకు మార్చాలి.
ప్రదర్శన
మీ నెట్వర్క్ ఆధారాలను చొప్పించిన తర్వాత, కుడి బోర్డ్ మరియు COM పోర్ట్ని ఎంచుకుని, కోడ్ను మీ ESP32. అప్లోడ్ కోడ్ సూచన దశలకు అప్లోడ్ చేయండి.
అప్లోడ్ చేసిన తర్వాత, 115200 బాడ్ రేటుతో సీరియల్ మానిటర్ను తెరిచి, ESP ఎనేబుల్/రీసెట్ బటన్ను నొక్కండి. మీరు బోర్డు IP చిరునామాను పొందాలి.మీ బ్రౌజర్ను తెరిచి, ESP IP చిరునామాను చొప్పించండి. ఇప్పుడు, RGB LED కోసం రంగును ఎంచుకోవడానికి రంగు ఎంపికను ఉపయోగించండి.
అప్పుడు, రంగు ప్రభావం చూపడానికి మీరు "రంగు మార్చు" బటన్ను నొక్కాలి.RGB LEDని ఆఫ్ చేయడానికి, నలుపు రంగును ఎంచుకోండి.
బలమైన రంగులు (రంగు పికర్ ఎగువన), మెరుగైన ఫలితాలను అందించేవి.
ప్రాజెక్ట్ 7 ESP32 రిలే Web సర్వర్
ESP32తో రిలేను ఉపయోగించడం అనేది AC గృహోపకరణాలను రిమోట్గా నియంత్రించడానికి ఒక గొప్ప మార్గం. ESP32తో రిలే మాడ్యూల్ను ఎలా నియంత్రించాలో ఈ ట్యుటోరియల్ వివరిస్తుంది.
మేము రిలే మాడ్యూల్ ఎలా పనిచేస్తుందో, ESP32కి రిలేని ఎలా కనెక్ట్ చేయాలి మరియు ఎలా నిర్మించాలో చూద్దాం web రిలేను రిమోట్గా నియంత్రించడానికి సర్వర్.
రిలేలను పరిచయం చేస్తున్నాము
రిలే అనేది ఎలక్ట్రికల్గా పనిచేసే స్విచ్ మరియు ఏదైనా ఇతర స్విచ్ లాగా, ఇది ఆన్ లేదా ఆఫ్ చేయవచ్చు, కరెంట్ని వెళ్లనివ్వడం లేదా చేయనివ్వడం. ఇది తక్కువ వాల్యూమ్తో నియంత్రించబడుతుందిtages, ESP3.3 GPIOలు అందించిన 32V లాగా మరియు అధిక వాల్యూమ్ని నియంత్రించడానికి మమ్మల్ని అనుమతిస్తుందిtag12V, 24V లేదా మెయిన్స్ వాల్యూమ్ వంటివిtage (యూరోప్లో 230V మరియు USలో 120V).ఎడమ వైపున, అధిక వాల్యూమ్ను కనెక్ట్ చేయడానికి మూడు సాకెట్ల రెండు సెట్లు ఉన్నాయిtages, మరియు కుడి వైపున ఉన్న పిన్స్ (తక్కువ వాల్యూమ్tagఇ) ESP32 GPIOలకు కనెక్ట్ చేయండి.
మెయిన్స్ వాల్యూమ్tagఇ కనెక్షన్లుమునుపటి ఫోటోలో చూపిన రిలే మాడ్యూల్లో రెండు కనెక్టర్లు ఉన్నాయి, ఒక్కొక్కటి మూడు సాకెట్లతో ఉంటాయి: సాధారణ (COM), సాధారణంగా మూసివేయబడింది (NC) మరియు సాధారణంగా ఓపెన్ (NO).
- COM: మీరు నియంత్రించాలనుకుంటున్న కరెంట్ను కనెక్ట్ చేయండి (మెయిన్స్ వాల్యూమ్tagమరియు).
- NC (సాధారణంగా మూసివేయబడింది): మీరు రిలేను డిఫాల్ట్గా మూసివేయాలనుకున్నప్పుడు సాధారణంగా మూసివేయబడిన కాన్ఫిగరేషన్ ఉపయోగించబడుతుంది. NC అనేవి COM పిన్లు అనుసంధానించబడి ఉన్నాయి, అంటే మీరు ESP32 నుండి రిలే మాడ్యూల్కి సర్క్యూట్ను తెరిచి, కరెంట్ ప్రవాహాన్ని ఆపడానికి సిగ్నల్ పంపకపోతే కరెంట్ ప్రవహిస్తుంది.
- NO (సాధారణంగా తెరిచి ఉంటుంది): సాధారణంగా తెరిచిన కాన్ఫిగరేషన్ మరొక విధంగా పనిచేస్తుంది: NO మరియు COM పిన్ల మధ్య ఎటువంటి కనెక్షన్ లేదు, కాబట్టి మీరు సర్క్యూట్ను మూసివేయడానికి ESP32 నుండి సిగ్నల్ పంపకపోతే సర్క్యూట్ విచ్ఛిన్నమవుతుంది.
కంట్రోల్ పిన్స్తక్కువ-వాల్యూమ్tagఇ వైపు నాలుగు పిన్ల సమితి మరియు మూడు పిన్ల సమితిని కలిగి ఉంటుంది. మొదటి సెట్లో మాడ్యూల్ను శక్తివంతం చేయడానికి VCC మరియు GND మరియు దిగువ మరియు ఎగువ రిలేలను నియంత్రించడానికి ఇన్పుట్ 1 (IN1) మరియు ఇన్పుట్ 2 (IN2) ఉంటాయి.
మీ రిలే మాడ్యూల్లో ఒక ఛానెల్ మాత్రమే ఉంటే, మీకు కేవలం ఒక ఇన్ పిన్ మాత్రమే ఉంటుంది. మీరు నాలుగు ఛానెల్లను కలిగి ఉంటే, మీకు నాలుగు 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ఇ విద్యుత్ సరఫరా తీవ్రమైన గాయం కారణం కావచ్చు.
అందువల్ల, అధిక సరఫరా వాల్యూమ్కు బదులుగా 5mm LED లు ఉపయోగించబడతాయిtagప్రయోగంలో ఇ బల్బులు. మీకు మెయిన్స్ వాల్యూమ్ గురించి తెలియకపోతేtagమరియు మీకు సహాయం చేసే వ్యక్తిని అడగండి. ESPని ప్రోగ్రామింగ్ చేస్తున్నప్పుడు లేదా మీ సర్క్యూట్ను వైరింగ్ చేసేటప్పుడు మెయిన్స్ వాల్యూమ్ నుండి ప్రతిదీ డిస్కనెక్ట్ చేయబడిందని నిర్ధారించుకోండిtage.ESP32 కోసం లైబ్రరీని ఇన్స్టాల్ చేస్తోంది
దీన్ని నిర్మించడానికి web సర్వర్, మేము ESPAsync ని ఉపయోగిస్తాముWebసర్వర్ లైబ్రరీ మరియు AsyncTCP లైబ్రరీ.
ESPAsync ని ఇన్స్టాల్ చేస్తోందిWebసర్వర్ లైబ్రరీ
ఇన్స్టాల్ చేయడానికి తదుపరి దశలను అనుసరించండి ESPA సింక్Webసర్వర్ లైబ్రరీ:
- ESPAsync ని డౌన్లోడ్ చేసుకోవడానికి ఇక్కడ క్లిక్ చేయండి.Webసర్వర్ లైబ్రరీ. మీరు కలిగి ఉండాలి
మీ డౌన్లోడ్ల ఫోల్డర్లో .zip ఫోల్డర్ - .zip ఫోల్డర్ను అన్జిప్ చేయండి మరియు మీరు ESPAsync పొందుతారు.Webసర్వర్-మాస్టర్ ఫోల్డర్
- ESPAsync నుండి మీ ఫోల్డర్ పేరు మార్చండిWebESPAsync కు సర్వర్-మాస్టర్Webసర్వర్
- ESPAsync ని తరలించండిWebమీ Arduino IDE ఇన్స్టాలేషన్ లైబ్రరీల ఫోల్డర్కు సర్వర్ ఫోల్డర్.
ప్రత్యామ్నాయంగా, మీ Arduino IDEలో, మీరు Sketch > Includeకి వెళ్లవచ్చు
లైబ్రరీ > .జిప్ లైబ్రరీని జోడించండి... మరియు మీరు ఇప్పుడే డౌన్లోడ్ చేసిన లైబ్రరీని ఎంచుకోండి.
ESP32 కోసం AsyncTCP లైబ్రరీని ఇన్స్టాల్ చేస్తోంది
ది ESPA సింక్Webసర్వర్ లైబ్రరీ అవసరం అసమకాలిక TCP పని చేయడానికి లైబ్రరీ. అనుసరించండి
ఆ లైబ్రరీని ఇన్స్టాల్ చేయడానికి తదుపరి దశలు:
- AsyncTCP లైబ్రరీని డౌన్లోడ్ చేయడానికి ఇక్కడ క్లిక్ చేయండి. మీరు మీ డౌన్లోడ్ల ఫోల్డర్లో .zip ఫోల్డర్ని కలిగి ఉండాలి
- .zip ఫోల్డర్ని అన్జిప్ చేయండి మరియు మీరు AsyncTCP-master ఫోల్డర్ని పొందాలి
1. AsyncTCP-master నుండి AsyncTCPకి మీ ఫోల్డర్ పేరు మార్చండి
3. AsyncTCP ఫోల్డర్ని మీ Arduino IDE ఇన్స్టాలేషన్ లైబ్రరీస్ ఫోల్డర్కి తరలించండి
4. చివరగా, మీ Arduino IDEని మళ్లీ తెరవండి
ప్రత్యామ్నాయంగా, మీ Arduino IDEలో, మీరు Sketch > Includeకి వెళ్లవచ్చు
లైబ్రరీ > .జిప్ లైబ్రరీని జోడించండి... మరియు మీరు ఇప్పుడే డౌన్లోడ్ చేసిన లైబ్రరీని ఎంచుకోండి.
కోడ్
మేము 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 అవుట్పుట్లను ఎలా నియంత్రించాలో చూపిస్తుంది web సర్వర్ మరియు భౌతిక బటన్ ఏకకాలంలో. అవుట్పుట్ స్థితిపై నవీకరించబడింది web పేజీ భౌతిక బటన్ ద్వారా మార్చబడిందా లేదా web సర్వర్.
ప్రాజెక్ట్ ఓవర్view
ప్రాజెక్ట్ ఎలా పని చేస్తుందో త్వరగా చూద్దాం.ESP32 లేదా ESP8266 హోస్ట్లు a web అవుట్పుట్ స్థితిని నియంత్రించడానికి మిమ్మల్ని అనుమతించే సర్వర్;
- ప్రస్తుత అవుట్పుట్ స్థితి ప్రదర్శించబడుతుంది web సర్వర్;
- ESP అదే అవుట్పుట్ను నియంత్రించే భౌతిక పుష్బటన్కు కూడా అనుసంధానించబడి ఉంది;
- మీరు భౌతిక puhsbuttonని ఉపయోగించి అవుట్పుట్ స్థితిని మార్చినట్లయితే, దాని ప్రస్తుత స్థితి కూడా దీనిలో నవీకరించబడుతుంది web సర్వర్.
సారాంశంలో, ఈ ప్రాజెక్ట్ aని ఉపయోగించి అదే అవుట్పుట్ను నియంత్రించడానికి మిమ్మల్ని అనుమతిస్తుంది web సర్వర్ మరియు ఒక పుష్ బటన్ ఏకకాలంలో. అవుట్పుట్ స్థితి మారినప్పుడల్లా, ది web సర్వర్ నవీకరించబడింది.
భాగాలు అవసరం
సర్క్యూట్ను నిర్మించడానికి మీకు అవసరమైన భాగాల జాబితా ఇక్కడ ఉంది:
- ESP32 DEVKIT V1 బోర్డ్
- 5 mm LED
- 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లో, మీరు Sketch > Includeకి వెళ్లవచ్చు
లైబ్రరీ > .జిప్ లైబ్రరీని జోడించండి... మరియు మీరు ఇప్పుడే డౌన్లోడ్ చేసిన లైబ్రరీని ఎంచుకోండి.
ESP32 కోసం AsyncTCP లైబ్రరీని ఇన్స్టాల్ చేస్తోంది
ESPA సింక్Webసర్వర్ లైబ్రరీ పనిచేయడానికి AsyncTCP లైబ్రరీ అవసరం. ఆ లైబ్రరీని ఇన్స్టాల్ చేయడానికి తదుపరి దశలను అనుసరించండి:
- AsyncTCP లైబ్రరీని డౌన్లోడ్ చేయడానికి ఇక్కడ క్లిక్ చేయండి. మీరు మీ డౌన్లోడ్ల ఫోల్డర్లో .zip ఫోల్డర్ని కలిగి ఉండాలి
- .zip ఫోల్డర్ని అన్జిప్ చేయండి మరియు మీరు AsyncTCP-master ఫోల్డర్ని పొందాలి
- మీ ఫోల్డర్ పేరును AsyncTCP-master నుండి AsyncTCPకి మార్చండి
- AsyncTCP ఫోల్డర్ను మీ Arduino IDE ఇన్స్టాలేషన్ లైబ్రరీల ఫోల్డర్కు తరలించండి
- చివరగా, మీ Arduino IDEని మళ్లీ తెరవండి
ప్రత్యామ్నాయంగా, మీ Arduino IDEలో, మీరు Sketch > Includeకి వెళ్లవచ్చు
లైబ్రరీ > .జిప్ లైబ్రరీని జోడించండి... మరియు మీరు ఇప్పుడే డౌన్లోడ్ చేసిన లైబ్రరీని ఎంచుకోండి.
కోడ్
మేము Arduino IDEని ఉపయోగించి ESP32ని ప్రోగ్రామ్ చేస్తాము, కాబట్టి మీరు కొనసాగడానికి ముందు ESP32 యాడ్-ఆన్ని ఇన్స్టాల్ చేశారని నిర్ధారించుకోండి:(మీరు ఇప్పటికే ఈ దశను పూర్తి చేసి ఉంటే, మీరు తదుపరి దశకు దాటవేయవచ్చు.)
Arduino IDEలో ESP32 యాడ్-ఆన్ను ఇన్స్టాల్ చేస్తోంది
అవసరమైన లైబ్రరీలను ఇన్స్టాల్ చేసిన తర్వాత, కోడ్ను తెరవండి
ప్రాజెక్ట్_8_అవుట్పుట్_స్టేట్_సింక్రొనైజేషన్_Webarduino IDE లో _Server.ino.
కోడ్ను అప్లోడ్ చేయడానికి ముందు, మీ నెట్వర్క్ ఆధారాలను ఇన్సర్ట్ చేయడం మర్చిపోవద్దు, తద్వారా ESP మీ స్థానిక నెట్వర్క్కి కనెక్ట్ అవుతుంది.
కోడ్ ఎలా పనిచేస్తుంది
బటన్ స్థితి మరియు అవుట్పుట్ స్థితి
ledState వేరియబుల్ LED అవుట్పుట్ స్థితిని కలిగి ఉంటుంది. డిఫాల్ట్గా, ఎప్పుడు web సర్వర్ ప్రారంభమవుతుంది, ఇది తక్కువగా ఉంది.
బటన్స్టేట్ మరియు లాస్ట్బటన్స్టేట్లు పుష్బటన్ను నొక్కినా లేదా అని గుర్తించడానికి ఉపయోగించబడతాయి.బటన్ (web సర్వర్)
మేము index_html వేరియబుల్లో బటన్ను సృష్టించడానికి HTMLని చేర్చలేదు.
ఎందుకంటే పుష్బటన్తో కూడా మార్చగలిగే ప్రస్తుత LED స్థితిని బట్టి దాన్ని మార్చగలగాలి.
కాబట్టి, మేము బటన్ %BUTTONPLACEHOLDER% కోసం ప్లేస్హోల్డర్ను సృష్టించాము, అది HTML టెక్స్ట్తో భర్తీ చేయబడి కోడ్లో తర్వాత బటన్ను సృష్టించబడుతుంది (ఇది ప్రాసెసర్() ఫంక్షన్లో చేయబడుతుంది).ప్రాసెసర్ ()
ప్రాసెసర్() ఫంక్షన్ HTML టెక్స్ట్లోని ఏదైనా ప్లేస్హోల్డర్లను వాస్తవ విలువలతో భర్తీ చేస్తుంది. ముందుగా, HTML టెక్స్ట్లు ఏవైనా ఉన్నాయో లేదో తనిఖీ చేస్తుంది
ప్లేస్హోల్డర్లు %BUTTONPLACEHOLDER%.అప్పుడు, ప్రస్తుత అవుట్పుట్ స్థితిని అందించే అవుట్పుట్స్టేట్() ఫంక్షన్కు కాల్ చేయండి. మేము దానిని outputStateValue వేరియబుల్లో సేవ్ చేస్తాము.
ఆ తర్వాత, బటన్ను సరైన స్థితితో ప్రదర్శించడానికి HTML వచనాన్ని సృష్టించడానికి ఆ విలువను ఉపయోగించండి:
HTTP అవుట్పుట్ స్థితిని మార్చడానికి అభ్యర్థనను పొందండి (జావాస్క్రిప్ట్)
మీరు బటన్ నొక్కినప్పుడు, toggleCheckbox() ఫంక్షన్ పిలువబడుతుంది. ఈ ఫంక్షన్ వేర్వేరు వాటిపై అభ్యర్థన చేస్తుంది 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 మరియు లీడ్ స్టేట్ను తదనుగుణంగా మారుస్తుంది.
/state లో అభ్యర్థన వచ్చినప్పుడు 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 పేజీ.
ఈ ప్రాజెక్ట్తో మీరు నేర్చుకుంటారు:
- DHT సెన్సార్ల నుండి ఉష్ణోగ్రత మరియు తేమను ఎలా చదవాలి;
- ఒక అసమకాలిక బిల్డ్ web సర్వర్ ఉపయోగిస్తున్నారు ESPA సింక్Webసర్వర్ లైబ్రరీ;
- రిఫ్రెష్ అవసరం లేకుండా సెన్సార్ రీడింగ్లను ఆటోమేటిక్గా అప్డేట్ చేయండి web పేజీ.
అసమకాలిక Web సర్వర్
నిర్మించడానికి web సర్వర్ మేము ఉపయోగిస్తాము ESPA సింక్Webసర్వర్ లైబ్రరీ ఇది అసమకాలిక నిర్మాణానికి సులభమైన మార్గాన్ని అందిస్తుంది web సర్వర్. అసమకాలిక నిర్మాణం web సర్వర్ అనేక అడ్వాన్లను కలిగి ఉందిtagలైబ్రరీ GitHub పేజీలో పేర్కొన్న విధంగా, వంటి:
- "ఒకే సమయంలో ఒకటి కంటే ఎక్కువ కనెక్షన్లను నిర్వహించండి";
- “మీరు ప్రతిస్పందనను పంపినప్పుడు, నేపథ్యంలో ప్రతిస్పందనను పంపడంలో సర్వర్ జాగ్రత్త తీసుకుంటున్నప్పుడు మీరు వెంటనే ఇతర కనెక్షన్లను నిర్వహించడానికి సిద్ధంగా ఉంటారు”;
- "టెంప్లేట్లను నిర్వహించడానికి సాధారణ టెంప్లేట్ ప్రాసెసింగ్ ఇంజిన్";
భాగాలు అవసరం
ఈ ట్యుటోరియల్ పూర్తి చేయడానికి మీకు ఈ క్రింది భాగాలు అవసరం:
- ESP32 అభివృద్ధి బోర్డు
- DHT11 మాడ్యూల్
- బ్రెడ్బోర్డ్
- జంపర్ వైర్లు
స్కీమాటిక్లైబ్రరీలను ఇన్స్టాల్ చేస్తోంది
ఈ ప్రాజెక్ట్ కోసం మీరు రెండు లైబ్రరీలను ఇన్స్టాల్ చేయాలి:
- ది DHT మరియు ది అడాఫ్రూట్ యూనిఫైడ్ సెన్సార్ 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 నుండి మీ ఫోల్డర్ పేరు మార్చండిWebESPAsync కు సర్వర్-మాస్టర్Webసర్వర్
- ESPAsync ని తరలించండిWebమీ Arduino IDE ఇన్స్టాలేషన్ లైబ్రరీల ఫోల్డర్కు సర్వర్ ఫోల్డర్.
ESP32 కోసం Async TCP లైబ్రరీని ఇన్స్టాల్ చేస్తోంది
ది ESPA సింక్Webసర్వర్ లైబ్రరీ అవసరం అసమకాలిక TCP పని చేయడానికి లైబ్రరీ. ఆ లైబ్రరీని ఇన్స్టాల్ చేయడానికి తదుపరి దశలను అనుసరించండి:
- 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 లో సర్వర్ ఆబ్జెక్ట్.
ఉష్ణోగ్రత మరియు తేమ విధులను చదవండి
మేము రెండు ఫంక్షన్లను సృష్టించాము: ఒకటి ఉష్ణోగ్రతను చదవడానికి మేము రెండు ఫంక్షన్లను సృష్టించాము: ఒకటి ఉష్ణోగ్రతను చదవడానికి (readDHTTtemperature()) మరియు మరొకటి తేమను చదవడానికి (readDHTHumidity()).సెన్సార్ రీడింగ్లను పొందడం ఎంత సులభం, సెన్సార్ రీడింగ్లను పొందడం అనేది dht ఆబ్జెక్ట్పై readTemperature() మరియు readHumidity()పద్ధతులను ఉపయోగించడం అంత సులభం.
సెన్సార్ రీడింగ్లను పొందడంలో విఫలమైతే, మేము రెండు డాష్లను (–) అందించే షరతు కూడా కలిగి ఉన్నాము.
రీడింగ్లు స్ట్రింగ్ రకంగా తిరిగి ఇవ్వబడ్డాయి. ఫ్లోట్ను స్ట్రింగ్గా మార్చడానికి, స్ట్రింగ్() ఫంక్షన్ని ఉపయోగించండి
డిఫాల్ట్గా, మేము ఉష్ణోగ్రతను సెల్సియస్ డిగ్రీలలో చదువుతున్నాము. ఫారెన్హీట్ డిగ్రీలలో ఉష్ణోగ్రతను పొందడానికి, ఉష్ణోగ్రతను సెల్సియస్లో వ్యాఖ్యానించండి మరియు ఫారెన్హీట్లో ఉష్ణోగ్రతను అన్కమెంట్ చేయండి, తద్వారా మీరు ఈ క్రింది వాటిని కలిగి ఉంటారు:
కోడ్ను అప్లోడ్ చేయండి
ఇప్పుడు, మీ ESP32కి కోడ్ని అప్లోడ్ చేయండి. మీరు సరైన బోర్డ్ మరియు COM పోర్ట్ ఎంచుకున్నారని నిర్ధారించుకోండి. కోడ్ సూచన దశలను అప్లోడ్ చేయండి.
అప్లోడ్ చేసిన తర్వాత, 115200 బాడ్ రేటుతో సీరియల్ మానిటర్ను తెరవండి. ESP32 రీసెట్ బటన్ను నొక్కండి. ESP32 IP చిరునామా సీరియల్లో ముద్రించబడాలి మానిటర్.ప్రదర్శన
బ్రౌజర్ను తెరిచి, ESP32 IP చిరునామాను టైప్ చేయండి. మీ web సర్వర్ తాజా సెన్సార్ రీడింగ్లను ప్రదర్శించాలి.
గమనిక: మీ బ్రౌజర్ మరియు ESP32 ఒకే LANకి కనెక్ట్ చేయబడాలి.
రిఫ్రెష్ అవసరం లేకుండా ఉష్ణోగ్రత మరియు తేమ రీడింగ్లు స్వయంచాలకంగా నవీకరించబడతాయని గమనించండి web పేజీ.
ప్రాజెక్ట్_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 |
GND | GND |
SCL | GPIO 22 |
SDA | GPIO 21 |
స్కీమాటిక్SSD1306 OLED లైబ్రరీని ఇన్స్టాల్ చేస్తోంది – ESP32
ESP32తో OLED డిస్ప్లేను నియంత్రించడానికి అనేక లైబ్రరీలు అందుబాటులో ఉన్నాయి.
ఈ ట్యుటోరియల్లో మేము రెండు Adafruit లైబ్రరీలను ఉపయోగిస్తాము: 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 వెడల్పు మరియు ఎత్తును నిర్వచించండి. ఇందులో మాజీampఅలాగే, మేము 128×64 OLED డిస్ప్లేను ఉపయోగిస్తున్నాము. మీరు ఇతర పరిమాణాలను ఉపయోగిస్తుంటే, మీరు దానిని SCREEN_WIDTH మరియు SCREEN_HEIGHT వేరియబుల్స్లో మార్చవచ్చు.ఆపై, I2C కమ్యూనికేషన్ ప్రోటోకాల్ (&వైర్)తో ముందుగా నిర్వచించిన వెడల్పు మరియు ఎత్తుతో డిస్ప్లే ఆబ్జెక్ట్ని ప్రారంభించండి.
(-1) పరామితి అంటే మీ OLED డిస్ప్లేలో రీసెట్ పిన్ లేదు. మీ OLED డిస్ప్లే రీసెట్ పిన్ని కలిగి ఉంటే, అది GPIOకి కనెక్ట్ చేయబడాలి. అలాంటప్పుడు, మీరు GPIO నంబర్ను పారామీటర్గా పాస్ చేయాలి.
సెటప్(), డీబగ్గింగ్ ప్రయోజనాల కోసం 115200 బాడ్ రాట్ వద్ద సీరియల్ మానిటర్ను ప్రారంభించండి.ఈ క్రింది విధంగా ప్రారంభం() పద్ధతితో OLED ప్రదర్శనను ప్రారంభించండి:
ఈ స్నిప్పెట్ మేము డిస్ప్లేకి కనెక్ట్ చేయలేకపోతే, సీరియల్ మానిటర్లో సందేశాన్ని కూడా ప్రింట్ చేస్తుంది.
మీరు వేరొక OLED డిస్ప్లేను ఉపయోగిస్తున్నట్లయితే, మీరు OLED చిరునామాను మార్చవలసి ఉంటుంది. మా సందర్భంలో, చిరునామా 0x3C.
ప్రదర్శనను ప్రారంభించిన తర్వాత, రెండు సెకన్ల ఆలస్యాన్ని జోడించండి, తద్వారా OLED వచనాన్ని వ్రాయడానికి ముందు ప్రారంభించేందుకు తగినంత సమయం ఉంటుంది:
ప్రదర్శనను క్లియర్ చేయండి, ఫాంట్ పరిమాణం, రంగును సెట్ చేయండి మరియు వచనాన్ని వ్రాయండి
ప్రదర్శనను ప్రారంభించిన తర్వాత, clearDisplay() పద్ధతితో డిస్ప్లే బఫర్ను క్లియర్ చేయండి:
వచనాన్ని వ్రాయడానికి ముందు, మీరు టెక్స్ట్ పరిమాణం, రంగు మరియు OLEDలో టెక్స్ట్ ఎక్కడ ప్రదర్శించబడుతుందో సెట్ చేయాలి.
setTextSize() పద్ధతిని ఉపయోగించి ఫాంట్ పరిమాణాన్ని సెట్ చేయండి:setTextColor() పద్ధతితో ఫాంట్ రంగును సెట్ చేయండి:
WHITE తెలుపు ఫాంట్ మరియు నలుపు నేపథ్యాన్ని సెట్ చేస్తుంది.
setCursor(x,y) పద్ధతిని ఉపయోగించి టెక్స్ట్ ప్రారంభమయ్యే స్థానాన్ని నిర్వచించండి. ఈ సందర్భంలో, మేము టెక్స్ట్ను (0,0) కోఆర్డినేట్ల వద్ద ప్రారంభించడానికి సెట్ చేస్తున్నాము – ఎగువ ఎడమ మూలలో.చివరగా, మీరు ఈ క్రింది విధంగా println() పద్ధతిని ఉపయోగించి డిస్ప్లేకి వచనాన్ని పంపవచ్చు
అప్పుడు, మీరు స్క్రీన్పై వచనాన్ని ప్రదర్శించడానికి డిస్ప్లే() పద్ధతిని కాల్ చేయాలి.
Adafruit OLED లైబ్రరీ టెక్స్ట్ను సులభంగా స్క్రోల్ చేయడానికి ఉపయోగకరమైన పద్ధతులను అందిస్తుంది.
- startscrollright(0x00, 0x0F): టెక్స్ట్ని ఎడమ నుండి కుడికి స్క్రోల్ చేయండి
- startscrollleft(0x00, 0x0F): వచనాన్ని కుడి నుండి ఎడమకు స్క్రోల్ చేయండి
- startscrolldiagright(0x00, 0x07): టెక్స్ట్ని ఎడమ దిగువ మూల నుండి కుడి ఎగువ మూలకు స్క్రోల్ చేయండి startscrolldiagleft(0x00, 0x07): వచనాన్ని కుడి దిగువ మూల నుండి ఎడమ ఎగువ మూలకు స్క్రోల్ చేయండి
కోడ్ను అప్లోడ్ చేయండి
ఇప్పుడు, మీ ESP32కి కోడ్ను అప్లోడ్ చేయండి. కోడ్ సూచన దశలను అప్లోడ్ చేయండి.
కోడ్ను అప్లోడ్ చేసిన తర్వాత, OLED స్క్రోలింగ్ వచనాన్ని ప్రదర్శిస్తుంది.
పత్రాలు / వనరులు
![]() |
LAFVIN ESP32 బేసిక్ స్టార్టర్ కిట్ [pdf] సూచనల మాన్యువల్ ESP32 బేసిక్ స్టార్టర్ కిట్, ESP32, బేసిక్ స్టార్టర్ కిట్, స్టార్టర్ కిట్ |