ఈ ESP32 కథనంలో, మేము ESP32 బోర్డ్ను యాక్సెస్ పాయింట్తో ఎలా కనెక్ట్ చేయవచ్చో మరియు దాని వెబ్ సర్వర్ని ఎలా డిజైన్ చేయాలో అన్వేషిస్తాము. ఆ వెబ్ సర్వర్ని ఉపయోగించి, మేము రిలే మాడ్యూల్ సహాయంతో LED లు మరియు AC ఉపకరణాలను నియంత్రిస్తాము.
కంటెంట్:
- ESP32 వెబ్ సర్వర్
- Arduino IDE ఉపయోగించి ESP32 వెబ్ సర్వర్ను ఎలా సృష్టించాలి
- ESP32 వెబ్ సర్వర్ కోడ్
- ESP32 వెబ్ సర్వర్ IP చిరునామా
- ESP32 వెబ్ సర్వర్ ఉపయోగించి LED లను నియంత్రిస్తోంది
- డెస్క్టాప్ ఇంటర్ఫేస్
- మొబైల్ ఇంటర్ఫేస్
- ESP32 వెబ్ సర్వర్ని ఉపయోగించి AC ఉపకరణాలను నియంత్రించడం
- ముగింపు
1. ESP32 వెబ్ సర్వర్
వెబ్ సర్వర్ వెబ్ క్లయింట్లకు వెబ్ పేజీలను ప్రాసెస్ చేయగల మరియు పంపగల ప్రత్యేక ప్రోగ్రామ్ను కలిగి ఉంది. వెబ్సైట్ను తెరవడానికి, మేము వెబ్ బ్రౌజర్ని ఉపయోగిస్తాము. ఈ వెబ్ బ్రౌజర్ని వెబ్ క్లయింట్ అని కూడా అంటారు. మీరు చూడాలనుకుంటున్న వెబ్సైట్ వెబ్ సర్వర్ అని పిలువబడే మరొక కంప్యూటర్లో నిల్వ చేయబడుతుంది.
ఒకరితో ఒకరు మాట్లాడుకోవడానికి, వెబ్ సర్వర్ మరియు వెబ్ క్లయింట్ HTTP అనే సాధారణ భాషను ఉపయోగిస్తాయి. ఇది ఎలా పని చేస్తుంది: వెబ్ క్లయింట్ HTTP అభ్యర్థనను ఉపయోగించి వెబ్ పేజీ కోసం వెబ్ సర్వర్ని అడుగుతుంది. వెబ్ సర్వర్ అభ్యర్థించిన వెబ్ పేజీని తిరిగి పంపుతుంది. వెబ్ పేజీ లేనట్లయితే, మీరు దోష సందేశాన్ని చూస్తారు.
ESP32లో, మేము వెబ్ సర్వర్ను రూపొందించగలము, ESP32 నెట్వర్క్ ద్వారా ఇతర పరికరాలతో కనెక్ట్ అవ్వడమే కాకుండా దాని వెబ్ సర్వర్ని సృష్టించగలదు మరియు స్వీకరించిన అభ్యర్థనలకు ప్రతిస్పందించగలదు. ESP32 మూడు విభిన్న రీతుల్లో పనిచేయగలదు కాబట్టి ఇది సాధ్యమే:
- స్టేషన్
- యాక్సెస్ పాయింట్
- స్టేషన్ మరియు యాక్సెస్ పాయింట్ రెండూ
ESP32 యొక్క మూడు మోడ్ల గురించి అంతర్దృష్టిని పొందడానికి మీరు ఈ కథనాన్ని చూడవచ్చు:
Arduino IDEని ఉపయోగించి ESP32 యాక్సెస్ పాయింట్ (AP)ని ఎలా సెట్ చేయాలి
2. Arduino IDEని ఉపయోగించి ESP32 వెబ్ సర్వర్ని ఎలా సృష్టించాలి
Arduino IDE ఉపయోగించి ESP32 వెబ్ సర్వర్ని సృష్టించడానికి, మీరు ESP32ని యాక్సెస్ పాయింట్కి కనెక్ట్ చేయవచ్చు మరియు వెబ్ సర్వర్ కోసం IP చిరునామాను రూపొందించవచ్చు. మీరు మీ సర్వర్ ఇంటర్ఫేస్ను రూపొందించడానికి కొన్ని HTML మరియు CSSలను వర్తింపజేయవచ్చు.
మీరు ESP32 యాక్సెస్ పాయింట్ పనిని అర్థం చేసుకున్న తర్వాత, మీరు Arduino IDE కోడ్ని ఉపయోగించి ESP32 వెబ్ సర్వర్ను సులభంగా డిజైన్ చేయవచ్చు. ESP32 వెబ్ సర్వర్ కోడ్ ESP32 Wi-Fi లైబ్రరీని ఉపయోగిస్తుంది. ఈ లైబ్రరీ ESP32ని యాక్సెస్ పాయింట్కి కనెక్ట్ చేయడానికి అవసరమైన అన్ని ముఖ్యమైన ఫంక్షన్లను కలిగి ఉన్నందున ఇది మా పనిని సులభతరం చేస్తుంది.
Arduino IDE కోడ్ని ఉపయోగించి ESP32 వెబ్ సర్వర్ని డిజైన్ చేద్దాం.
3. ESP32 వెబ్ సర్వర్ కోడ్
ESP32 వెబ్ సర్వర్ కోడ్ యాక్సెస్ పాయింట్తో ESP32 కనెక్షన్ని కలిగి ఉంటుంది మరియు సర్వర్ కోసం IP చిరునామాను పొందుతుంది. మీరు IP చిరునామాను పొందిన తర్వాత, ESP32 వెబ్ సర్వర్ను యాక్సెస్ చేయడానికి మీరు అదే నెట్వర్క్కు కనెక్ట్ చేయాలి. అక్కడ నుండి మీరు LED లు మరియు ఇతర పరికరాలను నియంత్రించవచ్చు.
Arduino IDEని తెరిచి దానితో మీ ESP32 బోర్డుని కనెక్ట్ చేయండి:
Arduino IDEలో ESP32 బోర్డ్ను ఇన్స్టాల్ చేస్తోంది
ESP32 బోర్డ్ కనెక్ట్ అయిన తర్వాత, కింది కోడ్ను మీ బోర్డుకి అప్లోడ్ చేయండి.
/**************Linuxhint.com
LED లను నియంత్రించడానికి ESP32 వెబ్ సర్వర్
****************
// లైబ్రరీని దిగుమతి చేయండి కోసం Wi-Fi కనెక్షన్
#
// మీ Wi-Fi పేరు మరియు పాస్వర్డ్ని నమోదు చేయండి
కాన్స్ట్ చార్ * ssid = 'ESP32' ;
కాన్స్ట్ చార్ * పాస్వర్డ్ = '123456789' ;
// పోర్ట్ సంఖ్యను ఎంచుకోండి కోసం వెబ్ సర్వర్
WiFiServer సర్వర్ ( 80 ) ;
// వెబ్ అభ్యర్థనను నిల్వ చేయడానికి వేరియబుల్ను సృష్టించండి
స్ట్రింగ్ హెడర్;
// అవుట్పుట్ల స్థితిని నిల్వ చేయడానికి వేరియబుల్లను సృష్టించండి
స్ట్రింగ్ అవుట్పుట్26స్టేట్ = 'ఆఫ్' ;
స్ట్రింగ్ అవుట్పుట్27స్టేట్ = 'ఆఫ్' ;
// అవుట్పుట్ పిన్లను వేరియబుల్స్కు కేటాయించండి
const int output26 = 26 ;
const int output27 = 27 ;
సంతకం చేయని దీర్ఘ కరెంట్ టైమ్ = మిల్లీస్ ( ) ;
సంతకం చేయని దీర్ఘ మునుపటి సమయం = 0 ;
// ఎంచుకోండి సమయం పరిమితి కోసం వెబ్ అభ్యర్థన లో మిల్లీసెకన్లు
కాన్స్ట్ లాంగ్ టైమ్ అవుట్ టైమ్ = 2000 ;
శూన్యమైన సెటప్ ( ) {
సీరియల్.ప్రారంభం ( 115200 ) ;
// అవుట్పుట్ పిన్లను సెట్ చేయండి వంటి అవుట్పుట్లు
పిన్ మోడ్ ( అవుట్పుట్26, అవుట్పుట్ ) ;
పిన్ మోడ్ ( అవుట్పుట్27, అవుట్పుట్ ) ;
// అవుట్పుట్లను ఆఫ్ చేయండి
డిజిటల్ రైట్ ( అవుట్పుట్26, తక్కువ ) ;
డిజిటల్ రైట్ ( అవుట్పుట్27, తక్కువ ) ;
// Wi-Fi నెట్వర్క్కి కనెక్ట్ చేయండి
సీరియల్.ప్రింట్ ( 'దీనికి కనెక్ట్ అవుతోంది' ) ;
Serial.println ( ssid ) ;
WiFi.begin ( ssid, పాస్వర్డ్ ) ;
// వేచి ఉండండి వరకు కనెక్షన్ ఏర్పాటు చేయబడింది
అయితే ( WiFi. స్థితి ( ) ! = WL_కనెక్ట్ చేయబడింది ) {
ఆలస్యం ( 500 ) ;
సీరియల్.ప్రింట్ ( '.' ) ;
}
Serial.println ( '' ) ;
Serial.println ( 'WiFi కనెక్ట్ చేయబడింది.' ) ;
Serial.println ( 'IP చిరునామా:' ) ;
Serial.println ( WiFi.localIP ( ) ) ;
సర్వర్.ప్రారంభం ( ) ;
}
శూన్య లూప్ ( ) {
WiFiClient క్లయింట్ = server.available ( ) ; // తనిఖీ కోసం కొత్త క్లయింట్లు
ఉంటే ( క్లయింట్ ) { // క్లయింట్ కనెక్ట్ అయినట్లయితే,
ప్రస్తుత సమయం = మిల్లీస్ ( ) ;
మునుపటి సమయం = ప్రస్తుత సమయం;
Serial.println ( 'కొత్త క్లయింట్.' ) ; // సీరియల్ పోర్ట్కు తెలియజేయండి
స్ట్రింగ్ కరెంట్ లైన్ = '' ; // క్లయింట్ డేటాను నిల్వ చేయడానికి స్ట్రింగ్ను సృష్టించండి
అయితే ( క్లయింట్. కనెక్ట్ చేయబడింది ( ) && ప్రస్తుత సమయం - మునుపటి సమయం = 0 ) {
Serial.println ( 'GPIO 26 ఆన్' ) ;
output26State = 'పై' ;
డిజిటల్ రైట్ ( అవుట్పుట్26, అధికం ) ;
} లేకపోతే ఉంటే ( header.indexOf ( 'గెట్ /26/ఆఫ్' ) > = 0 ) {
Serial.println ( 'GPIO 26 ఆఫ్' ) ;
output26State = 'ఆఫ్' ;
డిజిటల్ రైట్ ( అవుట్పుట్26, తక్కువ ) ;
} లేకపోతే ఉంటే ( header.indexOf ( 'గెట్ /27/ఆన్' ) > = 0 ) {
Serial.println ( 'GPIO 27 ఆన్' ) ;
output27State = 'పై' ;
డిజిటల్ రైట్ ( అవుట్పుట్27, అధికం ) ;
} లేకపోతే ఉంటే ( header.indexOf ( 'గెట్ /27/ఆఫ్' ) > = 0 ) {
Serial.println ( 'GPIO 27 ఆఫ్' ) ;
output27State = 'ఆఫ్' ;
డిజిటల్ రైట్ ( అవుట్పుట్27, తక్కువ ) ;
}
client.println ( '' ) ;
client.println ( '' ) ;
client.println ( '<లింక్ rel=' చిహ్నం ' href=' సమాచారం:, '>' ) ;
// బటన్లను స్టైల్ చేయడానికి CSS
client.println ( '