विषयसूची:

ह्यू मैजिक: 4 स्टेप्स (चित्रों के साथ)
ह्यू मैजिक: 4 स्टेप्स (चित्रों के साथ)

वीडियो: ह्यू मैजिक: 4 स्टेप्स (चित्रों के साथ)

वीडियो: ह्यू मैजिक: 4 स्टेप्स (चित्रों के साथ)
वीडियो: How to draw Peacock 🦚 With 4 Number Easily | Peacock Drawing 🦚 #art #reels #drawing 2024, जून
Anonim
Image
Image

जादूगरों का स्वागत है!

कुछ महीने पहले मैंने अपने 3 साल के बेटे के लिए छड़ी के साथ एक छोटा सा जादू का डिब्बा बनाया। जब वह छड़ी से बॉक्स को छूता है, तो बॉक्स से एक बदलती रंगीन रोशनी निकलने लगेगी। जब वह एक रंग देखता है जिसे वह विशेष रूप से पसंद करता है, तो वह छड़ी को टेबल लैंप की ओर इंगित कर सकता है (अंदर एक फिलिप्स ह्यू बल्ब के साथ), एक जादू डालें और बॉक्स से रंग जादुई रूप से दीपक पर कूद जाएगा! बॉक्स से दीपक और प्रकाश का अचानक एक ही रंग होता है …

कुछ सेकंड के बाद, रंग फीका पड़ जाता है और टेबल लैंप जादू से पहले अपनी स्थिति में लौट आता है। जब तक एक नया जादू नहीं डाला जाता …

चरण 1: इस परियोजना को बनाने के लिए आपको क्या चाहिए

इस प्रोजेक्ट को बनाने के लिए आपको क्या चाहिए
इस प्रोजेक्ट को बनाने के लिए आपको क्या चाहिए
इस प्रोजेक्ट को बनाने के लिए आपको क्या चाहिए
इस प्रोजेक्ट को बनाने के लिए आपको क्या चाहिए
इस प्रोजेक्ट को बनाने के लिए आपको क्या चाहिए
इस प्रोजेक्ट को बनाने के लिए आपको क्या चाहिए

इस परियोजना को बनाने के लिए, आपको निम्नलिखित सामग्रियों की आवश्यकता होगी:

    • 1 (या अधिक) फिलिप्स ह्यू रंग का बल्ब और एक ह्यू ब्रिज
    • 1 Wemos D1 मिनी या समान esp8266-आधारित माइक्रोकंट्रोलर
    • 1 (Arduino) टच सेंसर (जैसे TTP223R)
    • 1 (Arduino) क्षणिक बटन
    • 1 10uF संधारित्र
    • 1 आरजीबी एलईडी (सामान्य एनोड प्रकार)
    • 5 प्रतिरोधक (10, 22 और 47 ओम, 2x 10K ओम)
    • 2 छोटे प्रोटोटाइप पीसीबी (2x3 इंच या लगभग 5x7 सेमी काफी बड़े होने चाहिए)
    • कुछ (जम्पर) तार
    • एक टांका लगाने वाला लोहा
    • एक जादू की छड़ी (खिलौने की दुकान में तैयार के रूप में खरीदी जा सकती है, या आप इसे स्वयं बना सकते हैं)
    • कार्डबोर्ड या लकड़ी से बना एक छोटा बॉक्स (मौजूदा बॉक्स हो सकता है, लेकिन आप निश्चित रूप से खरोंच से एक बॉक्स भी बना सकते हैं)
    • कुछ टेप
    • कुछ गोंद और/या नट और बोल्ट बॉक्स में पीसीबी को माउंट करने के लिए।
    • वैकल्पिक: बॉक्स के लिए रैपिंग पेपर

एनबी: इस निर्देश के माध्यम से जाने पर सर्किट आरेख पढ़ने में थोड़ा अनुभव सहायक होता है। मेरा आरेख अत्यधिक जटिल नहीं है: यदि आप एक संधारित्र को एक रोकनेवाला से अलग कर सकते हैं, तो आप शायद ठीक हो जाएंगे।

Arduino IDE का उपयोग करके Arduino प्रोग्रामिंग के साथ कुछ अनुभव भी मददगार है। बल्कि बुनियादी अनुभव पर्याप्त होना चाहिए, क्योंकि मैं आपको कॉपी/पेस्ट करने के लिए पूरा कोड प्रदान करूंगा। हालांकि, आपको इसे अपने विशेष सेट-अप (जैसे आपकी नेटवर्क सेटिंग्स और आपके ह्यू कॉन्फ़िगरेशन से कुछ विवरण) में काम करने के लिए कुछ चीजों को अनुकूलित करने की आवश्यकता होगी। यदि यह थोड़ा डराने वाला लगता है, तो चिंता न करें, मैं आपकी सभी आवश्यक जानकारी प्राप्त करने में आपकी सहायता करूंगा।

चरण 2: बॉक्स और छड़ी

द बॉक्स एंड वैंड
द बॉक्स एंड वैंड
बॉक्स और छड़ी
बॉक्स और छड़ी

पहले चरण आम तौर पर सबसे कठिन होते हैं, लेकिन इस निर्देश में नहीं! एक आसान शुरुआत के लिए, आप बस एक खिलौने की दुकान से एक जादू की छड़ी खरीद सकते हैं और बॉक्स के लिए आप बस एक मौजूदा छोटे बॉक्स का फिर से उपयोग कर सकते हैं जिसे आप पहले से ही लेटे हुए हैं। बस सुनिश्चित करें कि बॉक्स धातु से बना नहीं है, क्योंकि यह वाईफाई सिग्नल को अवरुद्ध कर देगा और हमें जादू के लिए उनकी आवश्यकता है;-)।

जब आप किसी मौजूदा बॉक्स का पुनर्निमाण करते हैं, तो आपको केवल एक चीज करने की ज़रूरत है कि बॉक्स के शीर्ष में दो छेद करें: आरजीबी एलईडी के लिए 1 छोटा छेद (आकार 5 मिमी = 0.2") और एक बड़ा छेद (लगभग 12- टच सेंसर के लिए 14 मिमी या लगभग 0.5")।

छिद्रों का सटीक स्थान महत्वपूर्ण नहीं है, बस उन्हें अपने सौंदर्यशास्त्र के अनुसार रखें लेकिन कुछ बातों का ध्यान रखें:

  • यह सुनिश्चित करने के लिए दोनों छेदों के बीच कुछ दूरी रखें कि जो घटक छेद के नीचे लगे होंगे (RGB एलईडी और टच सेंसर) दोनों को माउंटिंग और वायरिंग के लिए पर्याप्त जगह घेरने की अनुमति है।
  • सबसे बड़ा छेद टच सेंसर के लिए है। यह सेंसर छेद के ठीक नीचे लगाया जाएगा, इस तरह से इसे छड़ी से छुआ जा सकता है (और थोड़ा दबाया भी जा सकता है)। तो सुनिश्चित करें कि आप जो छड़ी खरीद रहे हैं वह बहुत मोटी नहीं है!

वैकल्पिक रूप से आप अपने बॉक्स को थोड़ा सा सुंदर बनाने के लिए और इसे भोजन के फैलाव और गंदे हाथों से बचाने के लिए (स्प्रे) पेंट या रैपिंग पेपर का उपयोग कर सकते हैं और प्लास्टिक को कवर कर सकते हैं।

यदि यह पहला कदम आपकी पसंद के हिसाब से थोड़ा बहुत स्पष्ट है, तो कृपया आगे बढ़ें और एक बॉक्स बनाएं और पूरी तरह से खरोंच से भटकें! वहाँ कई निर्देश हैं जो आपको एक सुंदर छड़ी बनाने में मदद करेंगे

आप जो भी रास्ता चुनते हैं, अब बॉक्स के अंदर का पता लगाने का समय है।

चरण 3: हार्डवेयर अंदर

हार्डवेयर अंदर
हार्डवेयर अंदर
हार्डवेयर अंदर
हार्डवेयर अंदर
हार्डवेयर अंदर
हार्डवेयर अंदर

ऊपर दिए गए सर्किट आरेख के अनुसार इलेक्ट्रॉनिक घटकों को जोड़ने के लिए सोल्डरिंग आयरन का उपयोग करें। विशेष ध्यान देने के लिए कुछ चीजें हैं:

  • Wemos D1 Mini और RGB एलईडी के बीच के तार काफी लंबे होने चाहिए ताकि RGB LED को आपके द्वारा बॉक्स के ढक्कन में बनाए गए छेद में लगाया जा सके।
  • क्षणिक स्विच और टच सेंसर से जुड़े तारों के लिए समान मायने रखता है क्योंकि ये ढक्कन के दूसरे छेद के माध्यम से सुलभ होना चाहिए।
  • क्षणिक स्विच के बटन को स्पर्श संवेदक के नीचे (गैर संवेदनशील पक्ष) से चिपकाया जाना चाहिए, इस तरह से आप बटन को क्षणिक स्विच पर वापस रख सकते हैं, जिसके ऊपर स्पर्श संवेदक चिपका हुआ है (चित्र देखें)। टच सेंसर एक उंगली द्वारा किए गए बटन प्रेस का पता लगाने के लिए क्षणिक स्विच के शीर्ष पर लगाया जाता है, इस स्थिति में बटन प्रेस को अनदेखा कर दिया जाएगा। केवल जब जादू की छड़ी से बटन दबाया जाता है (जो गैर-प्रवाहकीय होना चाहिए, इसलिए प्लास्टिक और लकड़ी ठीक हैं), जादू चक्र शुरू हो जाएगा।
  • टच सेंसर के साथ क्षणिक बटन को ढक्कन में छेद के नीचे बहुत गहरा नहीं माउंट करें, क्योंकि जादू को गति में सेट करने के लिए इसे जादू की छड़ी से पहुंचा जा सकता है।
  • टांका लगाते समय संधारित्र की ध्रुवीयता का निरीक्षण करना सुनिश्चित करें। यदि आप सकारात्मक और नकारात्मक लीड को उलट देते हैं, तो संधारित्र कुछ जादुई धुएं का उत्सर्जन करेगा और आपके सर्किट को हमेशा के लिए नींद में डाल देगा।
  • बैटरी होल्डर और पीसीबी को ग्लू, टेप या स्क्रू करें। यह साफ-सुथरा होना जरूरी नहीं है, क्योंकि यह देखने में नहीं होगा। यह सिर्फ ड्रॉप प्रूफ होना चाहिए।

सॉफ्टवेयर पर!

चरण 4: सॉफ्टवेयर

सुनिश्चित करें कि आपके पास नवीनतम (मुफ़्त) Arduino सॉफ़्टवेयर संपादक है, जिसे https://www.arduino.cc/en/Main/Software पर डाउनलोड किया जा सकता है। Wemos D1 मिनी और अन्य ESP8266-आधारित बोर्डों के लिए समर्थन जोड़ने के लिए, निम्नलिखित कदम उठाएं:

  • स्थापना के बाद, Arduino सॉफ़्टवेयर प्रारंभ करें और प्राथमिकताएँ विंडो खोलें।
  • "अतिरिक्त बोर्ड प्रबंधक URL" फ़ील्ड में https://arduino.esp8266.com/stable/package_esp8266com_index.json दर्ज करें। आप कई URL जोड़ सकते हैं, उन्हें अल्पविराम से अलग कर सकते हैं।
  • टूल्स> बोर्ड मेनू से बोर्ड मैनेजर खोलें और esp8266 प्लेटफॉर्म इंस्टॉल करें (और इंस्टॉलेशन के बाद टूल्स> बोर्ड मेनू से अपना ESP8266 बोर्ड चुनना न भूलें। "LOLIN (WEMOS) D1 R2 और मिनी" Wemos D1 मिनी v2 और v3 के लिए सबसे अच्छा काम करता है। बोर्ड।

यदि आपको Arduino को स्थापित करने और ड्राइवरों को स्थापित करने में अधिक सहायता की आवश्यकता है, तो आप https://www.instructables.com/id/Wemos-ESP8266-Getting-Started-Guide-Wemos-101/ पर एक नज़र डाल सकते हैं।

Arduino संपादक में, एक नई फ़ाइल खोलें (फ़ाइल>नई) और नीचे दिए गए कोड को उस विंडो में कॉपी/पेस्ट करें जो अभी-अभी खुली है। बस उन पंक्तियों को अधिलेखित कर दें जो नई विंडो में पहले से मौजूद हैं (शून्य सेटअप और शून्य लूप)।

अब आप लगभग तैयार हैं, लेकिन आपको अपने विशेष सेट-अप के लिए कोड के कुछ टुकड़ों को अनुकूलित करना होगा।

पहली बात यह है कि अपने ह्यू ब्रिज के आईपी पते में आईपी पते को लाइन 34 (Arduino संपादक में कोड की पंक्तियों को क्रमांकित किया गया है) में बदलना है। यदि आप अपना ह्यू ब्रिज आईपी पता नहीं जानते हैं, तो https://discovery.meethue.com/ पर जाएं और सही आईपी पता यह आपके ब्राउज़र में तुरंत दिखाई देगा। आईपी एड्रेस डॉटेड नंबर है जो "इंटर्नलीपड्रेस" से पहले होता है।

ह्यू लाइट्स के साथ संचार करने के लिए, आपको Wemos D1 मिनी के लिए एक Hue API उपयोगकर्ता बनाना होगा, ताकि Wemos Hue API के माध्यम से Hue लाइट से संचार कर सके। ऐसा करने के लिए, https://developers.meethue.com/develop/get-started-2/ पर दिए गए निर्देशों का पालन करें और Arduino कोड विंडो में जेनरेट किए गए (काफी लंबे) उपयोगकर्ता नाम को कॉपी/पेस्ट करें। बस प्रत्येक "Your HUE API USERNAME" को जेनरेट किए गए API उपयोगकर्ता नाम से बदलें।

फिर आपको रंग बदलने के लिए सही ह्यू लाइट का चयन करना होगा। ह्यू एपीआई में प्रत्येक प्रकाश की एक संख्या होती है, इसलिए आपको उस संख्या का पता लगाना होगा जो उस प्रकाश से मेल खाती है जिसे आप इस परियोजना के लिए उपयोग करना चाहते हैं। यह पता लगाने का सबसे आसान तरीका है कि किसी विशेष प्रकाश में कौन सा नंबर है, एंड्रॉइड या आईओएस के लिए ह्यू व्यूअर ऐप डाउनलोड करना है। Arduino कोड विंडो में हर जगह "Your LIGHT NUMBER" टेक्स्ट को सही संख्या से बदलें।

आखिरी बात यह है कि Wemos को अपने वाईफाई नेटवर्क से कनेक्ट करने के लिए सेटअप करना है। यह कोड को Wemos पर अपलोड करके और आपके लैपटॉप पर दूसरे वाईफाई नेटवर्क पर स्विच करके किया जाता है: "AutoConnectAP" पर। आपका ब्राउज़र तब एक पृष्ठ प्रदर्शित करेगा जहां आप अपने वाईफाई नेटवर्क का एसएसआईडी (नाम) और पासवर्ड जोड़ सकते हैं जिसका उपयोग वेमोस नियंत्रक आपके वाईफाई नेटवर्क (और ह्यू ब्रिज से) से कनेक्ट करने के लिए करेगा।

ध्यान दें: यदि USB के माध्यम से हमारे Wemos D1 मिनी पर कोड अपलोड करने से काम नहीं चलता है, तो आपको Wemos पर USB चिप के लिए ड्राइवर डाउनलोड करने की आवश्यकता हो सकती है। आपके प्लेटफॉर्म (विंडोज, मैक) के लिए एक ड्राइवर को https://sparks.gogo.co.nz/ch340.html पर डाउनलोड किया जा सकता है।

अब आप अपनी रचना का परीक्षण करने के लिए पूरी तरह तैयार हैं!

// ESP8266 ह्यू मैजिक वैंड // रिचर्ड वैन कम्पेन - 2018 // इस कोड का परीक्षण Wemos D1 मिनी पर किया गया है, लेकिन संभवतः अन्य ESP8266-आधारित विकास बोर्डों पर भी काम करेगा // Wemos D1 मिनी और अन्य ESP8266 बोर्डों के लिए समर्थन जोड़ने के लिए Arduino संपादक के लिए, निम्न चरणों का पालन करें: // - Arduino प्रारंभ करें और प्राथमिकताएँ विंडो खोलें। // - अतिरिक्त बोर्ड प्रबंधक URL फ़ील्ड में https://arduino.esp8266.com/stable/package_esp8266com_index.json दर्ज करें। आप कई URL जोड़ सकते हैं, उन्हें अल्पविराम से अलग कर सकते हैं। // - टूल्स> बोर्ड मेनू से बोर्ड मैनेजर खोलें और एस्प 8266 प्लेटफॉर्म इंस्टॉल करें (और इंस्टॉलेशन के बाद टूल्स> बोर्ड मेनू से अपना ईएसपी 8266 बोर्ड चुनना न भूलें)। // उपयोग की गई लाइब्रेरी: #include "ESP8266WiFi.h" // ESP8266 कोर वाईफाई लाइब्रेरी #include "DNSServer.h" // स्थानीय DNS सर्वर वाईफाईमैनेजर कॉन्फ़िगरेशन पोर्टल पर सभी अनुरोधों को पुनर्निर्देशित करने के लिए उपयोग किया जाता है यदि कोई वाईफ़ाई सेटिंग्स (एसएसआईडी, पासवर्ड) नहीं है अभी तक सेट नहीं किया गया है। #include "ESP8266WebServer.h" // WiFiManager कॉन्फ़िगरेशन पोर्टल की सेवा के लिए उपयोग किया जाने वाला स्थानीय वेबसर्वर #include "WiFiManager.h" // WiFi कॉन्फ़िगरेशन मैजिक लाइब्रेरी, यदि अभी तक स्थापित नहीं है तो कृपया https://github.com/tzapu/WiFiManager देखें #इंस्टॉल-थ्रू-लाइब्रेरी-मैनेजर #include "RestClient.h" // https://github.com/fabianofranca/ESP8266RestClient, फिलिप्स ह्यू एपीआई का उपयोग करने के लिए आवश्यक (देखें https://developers.meethue.com/develop/ ह्यू-एपीआई /)। #include "ArduinoJson.h" // https://github.com/bblanchon/ArduinoJson, ह्यू एपीआई प्रतिक्रिया का विश्लेषण करने के लिए आवश्यक है, कृपया Arduino में लाइब्रेरी मैनेजर के माध्यम से संस्करण 5.x स्थापित करें (मेनू "स्केच"> लाइब्रेरी शामिल करें> प्रबंधित करें पुस्तकालय> ArduinoJson की खोज करें और संस्करण को नवीनतम 5.x में बदलें)। संस्करण 6 (वर्तमान में बीटा में) एक त्रुटि फेंकता है। // चर और init: स्ट्रिंग प्रतिक्रिया; const int redPin = 13;//Wemos पर यह d7 const int GreenPin = 12 है;//Wemos पर यह d6 const int bluePin = 14 है;//Wemos पर यह d5 const int touchSensor = 5;// Wemos पर यह है d1 const int एक्टिवेशनपिन = 4 है; // Wemos पर यह d2 बूल एक्टिवेशन = हाई है; बूल टच = कम; कास्ट चार* an_restore; int bri_restore; डबल x_restore; डबल y_restore; डबल x_magic; डबल y_magic; बूल पहले = सच; अहस्ताक्षरित लंबी शुरुआतमिलिस; अहस्ताक्षरित लंबी धारामिलिस; अहस्ताक्षरित लंबी अवधिमिलिस; रेस्ट क्लाइंट क्लाइंट = रेस्ट क्लाइंट ("192.168.178.23"); // "आपका ह्यू ब्रिज आईपी पता" // यदि आप अपना ह्यू ब्रिज आईपी पता नहीं जानते हैं, तो https://discovery.meethue.com पर जाएं और यह तुरंत आपके ब्राउज़र में दिखाई देगा। आईपी पता बिंदीदार संख्या है जो "इंटर्नलीपड्रेस" शून्य सेटअप () {एनालॉगवाइटरेंज (255) से पहले होती है; सीरियल.बेगिन (९६००); // एलईडी बंद के साथ शुरू करें। पिनमोड (सक्रियणपिन, INPUT_PULLUP); पिनमोड (टच सेंसर, इनपुट); स्टार्टमिलिस = मिलिस (); चेकवंड (); } शून्य लूप () {// यहां करने के लिए कुछ नहीं, खाली छोड़ दें… } शून्य चेकवंड () { int rgbColor [३]; // जेम्स हार्टन द्वारा आरजीबी रंग कोड, https://gist.github.com/jamesotron/766994 // लाल रंग से शुरू करें। आरजीबी रंग [0] = 255; आरजीबी रंग [1] = 0; आरजीबी रंग [2] = 0; एक्टिवेशन = digitalRead(activationPin);// LOW का मतलब है कि वैंड का इस्तेमाल किया जा रहा है। टच = डिजिटल रीड (टच सेंसर); // हाई का मतलब है कि छड़ी के बजाय उंगली का इस्तेमाल किया जाता है, जो कि ऐसा नहीं होना चाहिए। जबकि (सक्रियण == कम && स्पर्श == कम) {// वृद्धि और कमी के लिए रंग चुनें। के लिए (int decColor = 0; decColour <3; decColour += 1) { int incColour = decColour == 2? 0: डीकलर + 1; //= टर्नरी ऑपरेटर, का अर्थ है: int incColour;if (decColour == 2) {incColour = 0;} और {incColour = decColour +1;} // दो रंगों को क्रॉस-फेड करें। के लिए (int i = 0; i <255; i += 1) { rgbColor[decColor] -= 1; आरजीबी रंग [incColor] + = 1; // चूंकि हमारे आरजीबी के नेतृत्व में कैथोड के बजाय एक आम एनोड है (इसलिए हमें जमीन के बजाय +3.3V से कनेक्ट करने की आवश्यकता है), हमें आरजीबी के लिए व्युत्क्रम मूल्यों की आवश्यकता है: int red = 255 - rgbColor[0]; इंट ग्रीन = २५५ - rgbColor[1]; इंट ब्लू = २५५ - rgbColor[2]; एनालॉगवर्इट (रेडपिन, रेड); एनालॉगवर्इट (ग्रीनपिन, ग्रीन); एनालॉगवर्इट (ब्लूपिन, ब्लू); देरी (8); सक्रियण = डिजिटलरेड (सक्रियण पिन); अगर (सक्रियण == उच्च) {// उच्च का मतलब है कि छड़ी उठा ली गई है। गोटो स्टॉप कलर साइक्लिंग; } } } } स्टॉपकलरसाइकलिंग: करेंटमिलिस = मिली (); अवधिमिलिस = (करंटमिलिस - स्टार्टमिलिस); अगर (अवधिमिलिस> १०००) {RGBtoxy(rgbColor[0], rgbColor[1], rgbColor[2]); } और {// Wemos को स्लीप मोड में डालें: ESP.deepSleep(0); } } शून्य आरजीबीटॉक्सी (इंट रेड, इंट ग्रीन, इंट ब्लू) {//देखें https://developers.meethue.com/documentation/color-conversions-rgb-xy डबल आर = मैप (लाल, 0, 255, 0, 1000); आर / = 1000; डबल जी = नक्शा (हरा, 0, 255, 0, 1000); जी / = 1000; डबल बी = नक्शा (नीला, 0, 255, 0, 1000); बी / = 1000; आर = (आर > ०.०४०४५एफ) ? पाउ ((आर + 0.055 एफ) / (1.0 एफ + 0.055 एफ), 2.4 एफ): (आर / 12.92 एफ); जी = (जी> ०.०४०४५एफ) ? पाउ ((जी + 0.055 एफ) / (1.0 एफ + 0.055 एफ), 2.4 एफ): (जी / 12.92 एफ); बी = (बी> 0.04045f)? पाउ ((बी + 0.055 एफ) / (1.0 एफ + 0.055 एफ), 2.4 एफ): (बी / 12.92 एफ); डबल एक्स = आर * 0.649926f + जी * 0.103455f + B * 0.197109f; डबल वाई = आर * 0.234327f + जी * 0.743075f + बी * 0.022598f; डबल जेड = आर * 0.0000000f + जी * 0.053077f + बी * 1.035763f; डबल एक्स = एक्स / (एक्स + वाई + जेड); डबल वाई = वाई / (एक्स + वाई + जेड); // रूपांतरण पूरी तरह से पूरा नहीं हुआ है, लेकिन शायद हम जो हासिल करना चाहते हैं, उसके लिए काफी अच्छा है, इसलिए इसे इस पर छोड़ दें और XY मान को लैंप पर भेजें: sendtoHue(x, y); } शून्य प्रेषण (डबल ए, डबल बी) {// वैंड मैजिक से वास्तविक रंग परिवर्तन अगर (पहले) {// पहला पास: वर्तमान लैंप स्थिति प्राप्त करें getCurrentValues (); }// फिर जादू की छड़ी रंग भेजें: // जादू की प्रतीक्षा करें: लंबा इंतजार; एक्स_मैजिक = ए; वाई_मैजिक = बी; // जादू की छड़ी के रंग में दीपक चालू करें: प्रतिक्रिया = ""; इंट अस्थायी = यादृच्छिक (2, 9); कास्ट चार * राज्य = "सच"; के लिए (int i = 1; i <= temp; i++) {// ब्रिज पर भेजने के लिए चार ऐरे बनाएं: स्ट्रिंग temp_body1 = "{"on\": "+ String(state) +", \"bri\": २२०, \"xy\": [" + String(x_magic) + ", " + String(y_magic) + "], \"transitiontime\": 1}"; int str_len1 = temp_body1.length() + 1; चार पोस्ट_बॉडी1 [str_len1]; temp_body1.toCharArray(post_body1, str_len1);// अब हमारे पास post_body1 चार सरणी के रूप में है; // बाकी कॉल करें: int statusCodePut1 = client.put("/api/Your HUE API USERNAME/lights/Your LIGHT NUMBER/state", post_body1, &response); प्रतीक्षा = यादृच्छिक (१००, ६००); देरी (प्रतीक्षा); अगर (राज्य == "सत्य") {राज्य = "गलत"; } और { राज्य = "सच"; } } // चमक कम करें…: प्रतिक्रिया = ""; अस्थायी = यादृच्छिक (4, 17); // पुल पर भेजने के लिए चार सरणी बनाएं: स्ट्रिंग temp_body2 = "{"on\": सच, \"bri\": 154, \"transitiontime\": "+ String(temp) + "}"; int str_len2 = temp_body2.length() + 1; चार पोस्ट_बॉडी 2 [str_len2]; temp_body2.toCharArray(post_body2, str_len2);// अब हमारे पास post_body2 चार सरणी के रूप में है; // बाकी कॉल करें: int statusCodePut2 = client.put("/api/Your HUE API USERNAME/lights/Your LIGHT NUMBER/state", post_body2, &response); प्रतीक्षा = यादृच्छिक (1000, 2500); देरी (प्रतीक्षा); //..और फिर से उज्जवल बनाएं: प्रतिक्रिया = ""; अस्थायी = यादृच्छिक (4, 17); // ब्रिज पर भेजने के लिए चार ऐरे बनाएं: स्ट्रिंग temp_body3 = "{"bri_inc\": 100, \"transitiontime\": }"; int str_len3 = temp_body3.length() + 1; चार पोस्ट_बॉडी3 [str_len3]; temp_body3.toCharArray(post_body3, str_len3);// अब हमारे पास post_body3 चार सरणी के रूप में है; // बाकी कॉल करें: int statusCodePut3 = client.put("/api/Your HUE API USERNAME/lights/Your LIGHT NUMBER/state", post_body3, &response); प्रतीक्षा = यादृच्छिक (2500, 5000); // 2-5 सेकंड की देरी प्रतीक्षा करें (प्रतीक्षा करें); // और पुराने मान पर वापस फीका: प्रतिक्रिया = ""; // ब्रिज पर भेजने के लिए चार ऐरे बनाएं: स्ट्रिंग temp_body4 = "{"on\": "+ String(aan_restore) +", \"bri\": "+ String(bri_restore) +", \"xy\": [" + स्ट्रिंग (x_restore) + ", " + स्ट्रिंग (y_restore) + "], \"संक्रमण समय\": " + स्ट्रिंग(20) + "}"; int str_len4 = temp_body4.length() + 1; चार पोस्ट_बॉडी4 [str_len4]; temp_body4.toCharArray(post_body4, str_len4);// अब हमारे पास post_body4 चार सरणी के रूप में है; // बाकी कॉल करें: int statusCodePut4 = client.put("/api/Your HUE API USERNAME/lights/Your LIGHT NUMBER/state", post_body4, &response); ईएसपी.डीप स्लीप (0); // फिर से सोने जा रहे हैं…। } अहस्ताक्षरित int getCurrentValues() {connectWifi ();// पहले Wifi प्रतिक्रिया से कनेक्ट करें = ""; // बाकी कॉल करें: int statusCodeGet = client.get("/api/Your HUE API USERNAME/lights/Your LIGHT NUMBER", &response); Serial.print ("GET के बाद सर्वर से स्थिति कोड:"); Serial.println (statusCodeGet); Serial.print ("सर्वर से प्रतिक्रिया निकाय:"); Serial.println (प्रतिक्रिया); स्टेटिकजेसनबफर // पार्सिंग जसन प्रतिक्रिया // ऑब्जेक्ट ट्री की जड़। // // यह JsonObject का संदर्भ है, वास्तविक बाइट्स ऑब्जेक्ट ट्री के अन्य सभी नोड्स के साथ //jsonBuffer के अंदर हैं। // मेमोरी मुक्त हो जाती है जब jsonBuffer गुंजाइश से बाहर हो जाता है। JsonObject और रूट = jsonBuffer.parseObject (प्रतिक्रिया); JsonObject& State = root["state"];// पार्सिंग सफल होने पर परीक्षण करें। अगर (! root.success ()) {Serial.println ("parseObject () विफल"); } // मान प्राप्त करें। aan_restore = राज्य ["चालू"]; Serial.println (aan_restore); bri_restore = राज्य ["bri"]; x_restore = राज्य ["xy"] [0]; y_restore = राज्य ["xy"] [1]; पहला = झूठा;} शून्य कनेक्ट वाईफाई () {// स्थानीय इंटीलाइजेशन।एक बार इसका व्यवसाय हो जाने के बाद, इसे WiFiManager wifiManager के आसपास रखने की कोई आवश्यकता नहीं है; // रीसेट सेटिंग्स - परीक्षण के लिए: //wifiManager.resetSettings(); // सेट कॉलबैक जो पिछले वाईफाई से कनेक्ट होने पर कॉल किया जाता है, विफल रहता है, और एक्सेस प्वाइंट मोड में प्रवेश करता है wifiManager.setAPCallback(configModeCallback); // एसएसआईडी प्राप्त करता है और पास करता है और कनेक्ट करने का प्रयास करता है // यदि यह कनेक्ट नहीं होता है तो यह निर्दिष्ट नाम के साथ एक एक्सेस प्वाइंट शुरू करता है) { Serial.println ("कनेक्ट करने और टाइमआउट हिट करने में विफल"); // रीसेट करें और फिर से प्रयास करें, या शायद इसे गहरी नींद में डाल दें ESP.reset (); देरी (1000); } // यदि आप यहां पहुंचते हैं तो आप वाईफाई सीरियल से कनेक्ट हो गए हैं। सीरियल.प्रिंट ("इससे जुड़ा:"); Serial.println (वाईफाई.एसएसआईडी ()); सीरियल.प्रिंट ("आईपी पता:"); Serial.println (वाईफाई.लोकलआईपी ()); // आपके ईएसपी (वेमोस) को सौंपा गया आईपी पता // प्राप्त सिग्नल की शक्ति को प्रिंट करें: लंबा आरएसएसआई = वाईफाई। आरएसएसआई (); सीरियल.प्रिंट ("सिग्नल स्ट्रेंथ (RSSI):"); सीरियल.प्रिंट्लन (आरएसआई); } शून्य configModeCallback (WiFiManager * myWiFiManager) { Serial.println ("कॉन्फ़िगरेशन मोड में प्रवेश किया"); Serial.println(WiFi.softAPIP ()); // यदि आपने स्वतः उत्पन्न SSID का उपयोग किया है, तो इसे Serial.println (myWiFiManager-> getConfigPortalSSID ()) प्रिंट करें; }

सिफारिश की: