विषयसूची:
- चरण 1: प्रदर्शन
- चरण 2: बढ़ते सर्वर
- चरण 3: क्लाइंट असेंबली
- चरण 4: प्रवाह - सर्वर
- चरण 5: प्रवाह - ग्राहक
- चरण 6: Client.ino
- चरण 7: Server.ino
- चरण 8: फ़ाइलें
वीडियो: डुअल कोर के साथ Arduino IDE: रिमोट कंट्रोल: 8 कदम
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:21
यह वीडियो "बहु" के बारे में है। हम मल्टीटास्किंग, मल्टीकोर और मल्टीक्लाइंट के साथ काम कर रहे हैं। कुछ समय पहले, मैंने दो ईएसपी के साथ रिमोट कंट्रोल बनाया: एक क्लाइंट और एक एक्सेस प्वाइंट। इसके आधार पर, आज हम एक बहु-ग्राहक सर्वर स्थापित करेंगे। इसका मतलब है कि हमारे पास एक ही ईएसपी में कई क्लाइंट जुड़े होंगे।
इस प्रकार, आज के पाठ में ESP32 में एक सर्वर का निर्माण, लूप में नए क्लाइंट्स को जोड़ना और दूसरे कोर में अनुरोधों को हैंडल करना शामिल है। ग्राहक अपने पिन के राज्य परिवर्तन के बारे में जानकारी भेजेंगे, और सर्वर इन राज्य परिवर्तनों को पुन: पेश करेगा।
चरण 1: प्रदर्शन
चरण 2: बढ़ते सर्वर
चरण 3: क्लाइंट असेंबली
चरण 4: प्रवाह - सर्वर
चरण 5: प्रवाह - ग्राहक
चरण 6: Client.ino
घोषणाएं और चर
#शामिल करें // स्ट्रक्चर क्यू परिभाषित ओएस डैडोस क्यू वामोस एनवीयर (डेवे सेर इगुअल नो सर्वर) टाइपिफ़ स्ट्रक्चर {इंट नंबर; अंतर स्थिति; }पिन; // क्वांटिडेड डी पिनोस क्यू इरेमोस लेर ई एनवीयर ओ स्टेटस # परिभाषित पिन_COUNT 2 // ऐरे कॉम ओएस पिनोस डेफिनिडोस // नो कैसो वामोस ट्रैबलर कॉम ओएस 21 ई 19 मास वोक पॉड अल्टर पैरा ओएस पिनोस क्यू डेसेजर पिन पिन [पिन_काउंट] = { {.संख्या = 21}, {.संख्या = 19}};
सेट अप
शून्य सेटअप () {Serial.begin (115200); // टेम्पो पैरा पर विचार एक कोमो पेर्डिडा क्लाइंट.सेटटाइमआउट (5000); // Conectamos WiFi e conectamos ao सर्वर सेटअपWiFi (); कनेक्ट क्लाइंट (); के लिए(int i=0; i
सेटअप वाईफाई
शून्य सेटअप वाईफाई () {सीरियल.प्रिंट ("कनेक्टिंग टू" + स्ट्रिंग (एसएसआईडी)); // Conectamos वाईफाई क्रिआडो पेलो आउट्रो ESP WiFi.begin (SSID, PASSWORD) को फिर से करें; // Esperamos conectar जबकि (WiFi.status() != WL_CONNECTED) { Serial.print("."); देरी (500); } // से चेगौ एक्वी एस्टा कोनेक्टैडो वाईफाई सीरियल को फिर से करें।प्रिंट्लन (); Serial.println ("कनेक्टेड!"); }
कनेक्ट क्लाइंट
शून्य कनेक्ट क्लाइंट () {Serial.println ("कनेक्टिंग क्लाइंट"); // Esperamos conectar com o सर्वर जबकि (!client.connect(WiFi.gatewayIP(), SERVER_PORT)) { Serial.print("."); देरी (500); } // सर्वर सीरियल.प्रिंट्लन (); Serial.println ("क्लाइंट कनेक्टेड!"); }
कुंडली
शून्य लूप () {// से não estiver conectado वाईफाई को फिर से करें, mandamos conectar if(WiFi.status() != WL_CONNECTED) { setupWiFi (); } }
हैंडल कनेक्शन
शून्य हैंडल कनेक्शन (शून्य * पीवी पैरामीटर) {// महत्वपूर्ण: एक तारे नो पॉड टर्मिनर, देवे फिकार प्रेसा एम उम लूप इनफिनिटो जबकि (सत्य) {// से नो एस्टिवर कनेक्टेडो कॉम ओ सर्वर, मैंडामोस कनेक्टर अगर (! क्लाइंट। कनेक्टेड ())) {कनेक्ट क्लाइंट (); }//पैरा कैडा पिनो, वेरिफिकामोस से मुदौ ओ एस्टाडो। सर्वर ओ नोवो एस्टाडो के लिए (int i=0; i.)
हैपिनस्टैटसबदल गया
// वेरिफ़िका से ओ एस्टाडो दो पिनो ना पॉसीकाओ 'आई' डू एरे मडौ // रिटोरना 'ट्रू' से मुडौ या 'झूठी' कैसो कॉन्ट्रारियो बूलियन हैपिनस्टैटस चेंजेड (इंट आई) {//फैज ए लेटुरा डो पिनो इंट पिनस्टैटस = डिजिटलरीड (पिन्स) [मैं]। संख्या); // से ओ एस्टाडो डू पिनो फॉर डिफरेंट अगर (पिन । स्टेटस! = पिनस्टैटस) {//गार्डामोस ओ नोवो एस्टाडो ई रेटोर्नमोस ट्रू पिन । स्टेटस = पिनस्टैटस; सच लौटना; } // सो चेगरा एक्वी से ओ एस्टाडो नो फोई अल्टरैडो // एंटाओ रेटोर्नामोस फाल्सो रिटर्न झूठा; }
पिन स्थिति भेजें
// सर्वर पर सर्वर ओएस के बारे में बताएं 'i' do arrayvoid sendPinStatus(int i) { client.write((uint8_t*)&pins, sizeof(Pin)); क्लाइंट.फ्लश (); }
चरण 7: Server.ino
घोषणाएं और चर
#include #include //Dados da rede // Deve ser igual no Client #define SSID "ESP32Server" #define PASSWORD "87654321" #define SERVER_PORT 5000 //Criamos um Server na porta definida por 'SERVER_PORT' WiFiServer Server(SERVER_PORT); //Vector onde vamos adicionar os क्लाइंट्स कन्फर्म eles फोरम conectando std::vector क्लाइंट; // स्ट्रक्चर क्यू परिभाषित ओएस डैडोस क्यू वामोस एनवीयर (डेवे सेर इगुअल नो क्लाइंट) टाइपिफ़ स्ट्रक्चर {इंट नंबर; अंतर स्थिति; }पिन;
सेट अप
शून्य सेटअप () {Serial.begin (115200); //Ciamos a rede WiFi e iniciamos या सर्वर setupWiFi (); सर्वर। शुरू (); xTaskCreatePinnedToCore (हैंडल क्लाइंट, // फ़नकाओ क्यू सेरा एक्जीक्यूटाडा "हैंडल क्लाइंट", // नोम दा तारेफ़ा 10000, // तमनहो दा पिला न्यूल, // पैरामेट्रो दा तारेफ़ा (नो कैसो नो उसामोस) 2, // प्राथमिकता न्यूल, // कैसो क्वेरिया मैन्टर उमा रेफरेन्सिया पैरा ए तारेफा क्यू वै सेर क्रिआडा (नो कैसो नो प्रीसीसामोस) 0); // नोमेरो डू कोर क्यू सेरा एक्जीक्यूटाडा ए तारेफा (उसमोस ओ कोर ० पैरा ओ लूप फिकर लिवर कॉम ओ कोर १) }
सेटअपवाईफाई
शून्य सेटअप वाईफाई () {// कोलोका एस्टे ईएसपी कॉमो एक्सेस प्वाइंट वाईफाई। मोड (वाईफाई_एपी); // SSID e Senha para se conectarem a este ESP WiFi.softAP (SSID, PASSWORD); }
कुंडली
शून्य लूप () {// वेरिफ़िका से उम नोवो क्लाइंट एस्टा टेंटंडो से कनेक्ट वाईफाई क्लाइंट क्लाइंट = सर्वर। उपलब्ध (); // से सिम कोलोकैमोस और कोई वेक्टर नहीं है अगर (क्लाइंट) {क्लाइंट्स.पुश_बैक (क्लाइंट); } }
हैंडल क्लाइंट
शून्य हैंडल क्लाइंट (शून्य * pvParameters) {// महत्वपूर्ण: एक tarefa não pod टर्मिनर, deve ficar presa em um loop infinito जबकि (true) {//para cada क्लाइंट que temos no vector for(int i=0; i
चरण 8: फ़ाइलें
फ़ाइलें डाउनलोड करें
पीडीएफ
मैं नहीं
सिफारिश की:
ESP8266 - इंटरनेट / ESP8266 के माध्यम से टाइमर और रिमोट कंट्रोल के साथ उद्यान सिंचाई: 7 कदम (चित्रों के साथ)
ESP8266 - इंटरनेट / ESP8266 के माध्यम से टाइमर और रिमोट कंट्रोल के साथ उद्यान सिंचाई: ESP8266 - सिंचाई रिमोट नियंत्रित और सब्जी बागानों, फूलों के बगीचों और लॉन के लिए समय के साथ। यह सिंचाई फ़ीड के लिए ESP-8266 सर्किट और एक हाइड्रोलिक / इलेक्ट्रिक वाल्व का उपयोग करता है। लाभ: कम लागत (~ US $ 30,00) त्वरित पहुँच कमांड ov
IRduino: Arduino रिमोट कंट्रोल - खोए हुए रिमोट की नकल करें: 6 कदम
IRduino: Arduino Remote Control - एक खोए हुए रिमोट की नकल करें: यदि आपने कभी अपने टीवी या डीवीडी प्लेयर के लिए रिमोट कंट्रोल खो दिया है, तो आप जानते हैं कि डिवाइस पर ही बटनों तक चलना, ढूंढना और उनका उपयोग करना कितना निराशाजनक है। कभी-कभी, ये बटन रिमोट के समान कार्यक्षमता भी प्रदान नहीं करते हैं। प्राप्त करें
साधारण रिमोट कंट्रोल किट चार-चैनल आरसी टॉय रिमोट कंट्रोल में तब्दील: 4 कदम
साधारण रिमोट कंट्रोल किट चार-चैनल आरसी खिलौना रिमोट कंट्रोल में परिवर्तित: 如何将通用遥控器套件转换为玩具模型中使用的四通道遥控器。遥控器套件非常便宜。它采用2262和2272芯片和433个模块构建。 मैं
Arduino के साथ I2C इन्फ्रारेड रिमोट कंट्रोल: 8 कदम (चित्रों के साथ)
Arduino के साथ I2C इन्फ्रारेड रिमोट कंट्रोल: प्रस्तावना यह निर्देश योग्य विवरण है कि इंटरफ़ेस के लिए I2C का उपयोग करके एक सार्वभौमिक रिमोट कंट्रोलर कैसे बनाया जाए। I2C स्लेव डिवाइस का उपयोग करके आप कितना अजीब कहते हैं? हाँ, एक I2C स्लेव डिवाइस। ऐसा इसलिए है क्योंकि IR पैकेट्स की सटीक टाइमिंग काफी डिमांडिंग है और
रिमोट रिमोट कंट्रोल: 11 कदम (चित्रों के साथ)
रिमोट रिमोट कंट्रोल: मेरा एक नवजात बच्चा है और वह नहीं सोचता कि उसे मेरी पत्नी के रूप में काफी देर तक सोना चाहिए और मैं भी उसे चाह सकता हूं। एक चीज जो उसे अपने पालने में खुश रखती है वह है मोबाइल जो उसके ऊपर लटकता है। तो जब वह जागता है अगर हमें एक और 25 मिनट या उससे अधिक की आवश्यकता होती है