ESP8266 वेब पेज के बिना


9

क्या मैं बिना वेब सर्वर बनाए ESP8266 पर डेटा भेज सकता हूं?

मैं एक वेब सर्वर के माध्यम से ESP8266 के GPIO पिन को एक्सेस कर रहा हूं। अब मैं उसके लिए एक Android ऐप बनाना चाहता हूं। इसलिए मैं बिना वेब सर्वर बनाए 8266 पर डेटा भेजना चाहता हूं-क्या यह संभव है?


Android App का उपयोग करके, क्या आप एक ही नेटवर्क पर होंगे?
रोहन

जवाबों:


8

हां, आप एक वेब सर्वर का उपयोग किए बिना ईएसपी 8266 पर डेटा भेज सकते हैं, लेकिन आप एक का उपयोग करना चाहते हैं, या एक से संबंधित कुछ कार्यात्मक उपयोग कर सकते हैं।

एक ESP8266 वाईफाई रेडियो और एक नेटवर्क स्टैक के साथ एक काफी सामान्य प्रयोजन कंप्यूटिंग डिवाइस है, इसलिए, आप कोड में वर्णित किसी भी उचित प्रोटोकॉल के बारे में लागू कर सकते हैं

हालांकि, यह प्रोटोकॉल को लागू करने के लिए काफी लोकप्रिय हो गया है जो मानव उपभोग के लिए लघु वेब पेजों की तरह दिखता है और कार्य करता है।

यानी, अपने क्लाइंट को जोड़ने और ऐसा कुछ करने के बजाय

GET /index.html HTTP/1.1

यह कह सकते हैं

GET /gpio/15/value HTTP/1.1

जहां URL एक विशिष्ट दस्तावेज़ को संदर्भित नहीं करता है, लेकिन उस उपकरण पर डेटा के कुछ टुकड़े पर जिसे आप एक्सेस करना चाहते हैं। आप के लिए इसी तरह के काम कर सकते हैं POST, PATCH, DELETEआदि अनुरोध।

जब तक आप मानव उपभोग के लिए एक पेज नहीं बना रहे हैं, आमतौर पर आपके द्वारा एक्सचेंज किया जाने वाला डेटा HTML पेज नहीं होगा। अक्सर यह JSON के बजाय कुछ हो सकता है। इसलिए उदाहरण के लिए

GET /gpio/15/value HTTP/1.1

एक प्रतिक्रिया की तरह ट्रिगर हो सकता है

{"gpio": 15, "direction": "in", "value": 0}

इसी तरह, आप एक समापन बिंदु बना सकते हैं जहां आपका ग्राहक कहकर एक GPIO सेट कर सकता है

POST /gpio/15 HTTP/1.1
{"direction": "out", "value": 1}

यह कुछ हद तक एक अर्थपूर्ण या कार्यान्वयन विशिष्ट प्रश्न है यदि इस तरह के प्रश्नों का उत्तर देने वाला कार्यक्रम एक "वेब सर्वर" है - यह एक वेब सर्वर हो सकता है जो डेटा और जीपीओआईएस से निपटने के लिए विभिन्न सहायक कार्य चलाता है (जो कि सर्वर पर पृष्ठों की सेवा गतिशील रूप से हो सकता है) डेटाबेस प्रश्नों से उनकी कुछ सामग्री उत्पन्न करें), या यह एक समर्पित कार्यक्रम हो सकता है जो दोनों डेटा से संबंधित है और जानता है कि HTTP पर कैसे बात की जाए।

और बेशक JSON पेलोड का आदान-प्रदान करने के लिए HTTP का उपयोग चीजों को करने के कई तरीकों में से एक है - यह सिर्फ वर्तमान में लोकप्रिय होने के लिए होता है जो कई वेबसर्वर जैसी अवधारणाओं का फिर से उपयोग करता है, और एक हद तक वेब ब्राउज़र के उपयोग की अनुमति भी दे सकता है परीक्षण के लिए।


यह भी ध्यान में रखने योग्य है कि ऐसी योजना स्थानीय स्तर पर सबसे अच्छा काम करती है, जब फोन और ईएसपी 8266 एक ही होम वाईफाई नेटवर्क के ग्राहक होते हैं। यदि फोन "घर पर" नहीं है या यह है, लेकिन यह केवल एक मोबाइल नेटवर्क पर है, तो इसे ईएसपी 8266 तक पहुंचने की अनुमति होगी, जिसका अर्थ है कि घर के नेटवर्क में बाहरी अनुरोधों को अनुमति देना, कुछ अधिमानतः बचा हुआ। उस स्थिति में, यह एक प्रोटोकॉल का उपयोग करने के लिए काफी लोकप्रिय है, जहां ESP8266 डिवाइस और फोन दोनों स्वतंत्र रूप से एक बाहरी रिले सर्वर तक पहुंचते हैं, जो उनके बीच संदेशों को पारित करता है। एमक्यूटीटी एक ऐसी योजना का एक उदाहरण है जिसका उपयोग अक्सर रिले-सर्वर आधारित वास्तुकला के साथ एक प्रणाली के लिए किया जाता है।


इसके अलावा, मैं DELETEएक बंदरगाह के लिए लागू करने के बारे में उत्सुक हूं ;-)
अर्जन

1
कई लिनक्स सिस्टम पर आपको एक GPIO को "निर्यात" करना होगा, इससे पहले कि आप इसे / sys / class / gpio इंटरफ़ेस के साथ उपयोग कर सकें। मैं अपने सिर के ऊपर से पता नहीं है अगर आप एक "unexport" कर सकते हैं, लेकिन वैचारिक रूप से एक DELETE से मेल खा सकता है :-)
क्रिस स्ट्रैटन

2

हां, आप एक कस्टम टीसीपी सर्वर लिख सकते हैं । या, हल्के वजन के लिए, एक यूडीपी सर्वर का उपयोग करें

किसी भी तरह से, टीसीपी / यूडीपी के शीर्ष पर अपने स्वयं के अनुप्रयोग प्रोटोकॉल को परिभाषित करने के लिए प्राप्त करें, और अपना आवेदन भेजें। और आप HTTP के ओवरहेड पर सेव करते हैं। (HTTP में प्रति संदेश लगभग 1000 बाइट्स ओवरहेड हो सकते हैं!)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.