विषयसूची:

IoT स्कूल प्रोजेक्ट फिलिप्स ह्यू: 19 कदम
IoT स्कूल प्रोजेक्ट फिलिप्स ह्यू: 19 कदम

वीडियो: IoT स्कूल प्रोजेक्ट फिलिप्स ह्यू: 19 कदम

वीडियो: IoT स्कूल प्रोजेक्ट फिलिप्स ह्यू: 19 कदम
वीडियो: Super Cop Moment #19 | Little Singham | Every day, 11.30 AM & 5.30 PM 2024, जुलाई
Anonim
IoT स्कूल प्रोजेक्ट Philips Hue
IoT स्कूल प्रोजेक्ट Philips Hue

यह एक मैनुअल है जिसे मुझे स्कूल के लिए लिखना था। यह पूरा नहीं है और मुझे यकीन नहीं है कि आप इसका उपयोग भी कर सकते हैं। एपीआई के बारे में मेरा ज्ञान न्यूनतम है। हम पीठ पर रोशनी के साथ एक इंटरेक्टिव मिरर बनाना चाहते थे जो मौसम, बाहर से प्रकाश आदि पर प्रतिक्रिया करता हो।

मैंने देखा कि मैं एक Arduino के साथ Philips Hue लैम्प को कैसे प्रोग्राम कर सकता हूँ। इसमें मैं अपने सभी कदम और मैं कितनी दूर आ गया हूं, समझाता हूं। मैं Arduino के साथ ह्यू की प्रोग्रामिंग करने में सफल नहीं हुआ लेकिन मुझे लगता है कि यह एक अच्छी शुरुआत है।

मुझे इसकी आवश्यकता है: एक Arduino एक रंग का दीपक एक पुल फिलिप्स ह्यू डेवलपर खाता

स्रोत:https://www.developers.meethue.com/documentation/g…https://github.com/bsalinas/ArduinoHuehttps://arduino-esp8266.readthedocs.io/en/latest/e…https:// www.makeuseof.com/tag/control-philips-hue-…

चरण 1: आरंभ करें

इससे पहले कि आप एपीआई दस्तावेज तक पहुंच सकें, आपको एक डेवलपर के रूप में पंजीकरण करना होगा। यह मुफ़्त है, लेकिन आपको नियम और शर्तें स्वीकार करनी होंगी। आप यहां एक बना सकते हैं >

चरण 2: ह्यू ऐप

आधिकारिक फिलिप्स ह्यू ऐप डाउनलोड करें। अपने फ़ोन को उस नेटवर्क से कनेक्ट करें जिसे आप चाहते हैं कि ह्यू ब्रिज चालू हो।

चरण 3: ब्रिज कनेक्ट करें

अपने ब्रिज को अपने नेटवर्क से कनेक्ट करें और ठीक से काम कर रहा है। परीक्षण करें कि स्मार्टफोन ऐप उसी नेटवर्क पर रोशनी को नियंत्रित कर सकता है। यह उसी वाई-फाई नेटवर्क पर होना चाहिए।

चरण 4: आईपी पता

फिर आपको अपने नेटवर्क पर ब्रिज के आईपी पते की खोज करनी होगी। ऐप में पुल से कनेक्ट करने के लिए लिंक को पुश करें और रोशनी को नियंत्रित करने का प्रयास करें।

चरण 5:

अगर यह सब काम कर रहा है तो ऐप में सेटिंग मेनू पर जाएं। "माई ब्रिज" पर जाएं, "नेटवर्क सेटिंग्स" पर जाएं। डीएचसीपी टॉगल को स्विच ऑफ करें और आप ब्रिज का आईपी एड्रेस देखें। आईपी पते पर ध्यान दें, फिर डीएचसीपी को वापस चालू करें।

चरण 6: अपने रंग को डीबग करें

डिबग योर ह्यू
डिबग योर ह्यू

जब आपने इसे लिखा था तो आपको अपने ह्यू को डीबग करना होगा। इस चरण के लिए आपको आईपी-एड्रेस की आवश्यकता है। आपको अगली साइट पर जाना है।

/debug/clip.html

छवि में इंटरफ़ेस इस तरह दिखेगा। यह सभी वेब ट्रैफ़िक और ह्यू रेस्टफुल इंटरफ़ेस का आधार है।

मुझे यह जानकारी Philips Hue साइट के Restful इंटरफ़ेस के बारे में मिली है।

यूआरएल: यह वास्तव में रंग प्रणाली के अंदर एक विशिष्ट संसाधन (चीज) का स्थानीय पता है। यह प्रकाश हो सकता है, रोशनी का समूह या कई और चीजें। यह वह वस्तु है जिसे आप इस आदेश के भीतर इंटरैक्ट करेंगे।

एक बॉडी: यह संदेश का वह हिस्सा है जो बताता है कि आप क्या बदलना चाहते हैं और कैसे। यहां आप JSON प्रारूप में, संसाधन का नाम और मान दर्ज करते हैं, जिसे आप बदलना/जोड़ना चाहते हैं।

एक विधि: यहां आपके पास 4 HTTP विधियों में से एक विकल्प है जिसे ह्यू कॉल उपयोग कर सकता है।

प्राप्त करें: यह संबोधित संसाधन के बारे में सभी जानकारी प्राप्त करने का आदेश है

PUT: यह एक संबोधित संसाधन को संशोधित करने का आदेश है

पोस्ट: यह संबोधित संसाधन के अंदर एक नया संसाधन बनाने का आदेश है

हटाएं: यह संबोधित संसाधन को हटाने का आदेश है प्रतिक्रिया: इस क्षेत्र में, आप अपने आदेश की प्रतिक्रिया देखेंगे। JSON प्रारूप में भी।

चरण 7: आइए आरंभ करें

आएँ शुरू करें
आएँ शुरू करें

अब हमें एक बेतरतीब ढंग से उत्पन्न उपयोगकर्ता नाम की आवश्यकता है जो पुल आपके लिए बनाता है। इसे भरने पर आपको एक मिल जाएगा।

यूआरएल में डालें:

/एपीआई/

शरीर में लगाएं:

और दबाएं GET

यह आदेश मूल रूप से कह रहा है "कृपया निम्नलिखित गुणों के साथ /api" (जहां उपयोगकर्ता नाम बैठते हैं) के अंदर एक नया संसाधन बनाएं। सबसे पहले, आपको एक त्रुटि मिलेगी, और ऐसा इसलिए है क्योंकि यह Philips Hue का सुरक्षा कदम है। बटन दबाकर वे साबित करते हैं कि आपके पास पुल तक भौतिक पहुंच है।

चरण 8:

छवि
छवि

अब ब्रिज पर बटन दबाएं और फिर से POST पर क्लिक करें।

अब आपको एक यूजरनेम मिलेगा जो ब्रिज आपके लिए बना है।

चरण 9: आइए रोशनी के साथ कुछ करें

चलो रोशनी के साथ कुछ करते हैं
चलो रोशनी के साथ कुछ करते हैं

अपना उपयोगकर्ता नाम कॉपी करें और इसे निम्न पंक्ति में रखें।

इसे अपने यूआरएल में डालें

/api/ /रोशनी

प्रेस GET

आपको अपने सिस्टम की सभी लाइटों और उनके नामों के साथ एक JSON प्रतिक्रिया मिलनी चाहिए।

चरण 10:

छवि
छवि

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

इसे आपके पास पहले से मौजूद URL के आगे रखें:

/api/ /लाइट्स/3

प्रेस GET

अब आपको लेड ३ के बारे में पूरी जानकारी मिल जाएगी (यदि आपके पास १ जैसा कोई दूसरा नंबर है तो आप उसके बारे में जानकारी देखेंगे)।

चरण 11: आइए प्रकाश को नियंत्रित करें

आइए प्रकाश को नियंत्रित करें
आइए प्रकाश को नियंत्रित करें

आप "राज्य" में देखते हैं कि मेरा नेतृत्व "चालू" है। हम "राज्य" में प्रकाश को नियंत्रित करना चाहते हैं।

इसे आपके पास पहले से मौजूद URL के आगे रखें:https:// /api/ /lights/3/ State

अगली पंक्ति को BODY में डालें

पुट दबाएं

अब आपकी लाइट बंद हो जाएगी! शरीर में मान को सत्य में बदलें और प्रकाश फिर से चालू हो जाएगा।

चरण 12:

अब सब कुछ काम कर रहा है मैं इसे अपने Arduino के साथ करना चाहता हूं। मैंने हल्के रंग को बदलने के लिए फिलिप्स ह्यू द्वारा दिए गए लिंक को देखा। लेकिन इसके लिए आपको पायथन की जरूरत है, मैंने कभी पायथन के साथ काम नहीं किया इसलिए मैंने कुछ और खोजा।

यदि आप इस कोड को देखना चाहते हैं तो मेरे पास यहां जीथब लिंक है:

github.com/bsalinas/ArduinoHue

चरण 13:

मैंने देखा कि मैं इस डेवलपर साइट से अपने arduino की जानकारी कैसे प्राप्त कर सकता हूं। अधिकांश समय मुझे भाषा समझ में नहीं आती थी। लेकिन मुझे जेम्स ब्रूस की वेबसाइट पर कुछ कोड मिला।

यह वेबसाइट का लिंक है।

www.makeuseof.com/tag/control-philips-hue-lights-arduino-and-motion-sensor/

चरण 14:

पहले मैंने देखा कि वह एक ईथरनेट केबल का उपयोग कर रहा था। मेरे पास केवल एक ह्यू लाइट बल्ब और ब्रिज एक अरुडिनो था, और कोड की थोड़ी समझ थी। मुझे उसका कोड समझने में थोड़ा समय लगा, लेकिन मैं अभी भी इसे वास्तव में समझ नहीं पाया।

मैंने सबसे पहले इस लाइब्रेरी को इंटरनेट के लिए जोड़ा।

#शामिल

यह आपके नेटवर्क के लिए है (इसे ह्यू लाइट बल्ब के समान होना चाहिए)

कास्ट चार * एसएसआईडी = ""; // यहां अपना वाईफाई नेटवर्क डालें SSIDconst char* पासवर्ड = " "; // यहां अपना वाईफाई नेटवर्क पासवर्ड डालें

ये आपके ब्रिज की आईडी और आपके ब्रिज का यूजरनेम आपको दिया गया है। (मुझे नहीं पता कि 80 का मतलब कहां है, लेकिन जब मैंने कुछ शोध किया तो मैंने देखा कि इसका इस्तेमाल नेटवर्क के लिए किया गया था)।

// ह्यू स्थिरांक कास्ट चार ह्यूहबआईपी = ""; // ह्यू हब आईपी कॉन्स्ट चार ह्यू यूज़रनेम = ""; // ह्यू यूज़रनेम कॉन्स्ट इंट ह्यूहबपोर्ट = 80;

// ह्यू वैरिएबल बूल ह्यूऑन; // ऑन / ऑफ इंट ह्यूब्री; // चमक मूल्य लंबी ह्यूह्यू; // ह्यू वैल्यू स्ट्रिंग ह्यूसीएमडी; // ह्यू कमांड

अहस्ताक्षरित लंबा बफर = 0; // प्राप्त डेटा भंडारण के लिए बफर अहस्ताक्षरित लंबे योजक;

चरण 15:

शून्य सेटअप के लिए, मैंने इंटरनेट कनेक्शन के लिए सबसे अधिक प्रयास किया। इस कोड में, Arduino देख रहा है कि क्या वह नेटवर्क से जुड़ सकता है।

शून्य सेटअप () {Serial.begin (९६००);

सीरियल.प्रिंट्लन ();

Serial.printf ("%s से कनेक्ट हो रहा है", ssid);

वाईफाई.बेगिन (एसएसआईडी, पासवर्ड);

जबकि (WiFi.status() != WL_CONNECTED) {

देरी (500);

सीरियल.प्रिंट ("।"); }

Serial.println ("कनेक्टेड"); }

चरण 16:

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

शून्य लूप () {

// चार नमूना आदेशों की एक श्रृंखला, जो रंग लाल और गुलाबी के बीच दो रोशनी को फीका कर देता है। उपयोग किए जाने वाले सटीक आदेशों के बारे में अधिक जानकारी के लिए ह्यू एपीआई // दस्तावेज़ीकरण पर पढ़ें, लेकिन ध्यान दें कि उद्धरण चिह्नों से बचना चाहिए।

स्ट्रिंग कमांड = "{"ऑन\": सच, \"ह्यू\": 50100, \"sat\":255, \"bri\":255, \"transitiontime\":"+String(random(15), 25))+"}";सेटह्यू(1, कमांड);

कमांड = "{"ऑन\": सच, \"ह्यू\": 65280, \"sat\":255, \"bri\":255, \"transitiontime\":"+String(random(15, 25))+"}"; सेटह्यू (2, कमांड);

कमांड = "{"ह्यू\": 65280, \"sat\":255, \"bri\":255, \"transitiontime\":"+String(random(15, 25))+"}"; सेटह्यू (1, कमांड);

कमांड = "{"ह्यू\": 50100, \"sat\":255, \"bri\":255, \"transitiontime\":"+String(random(15, 25))+"}"; सेटह्यू (2, कमांड);

}

चरण 17:

अगला कोड एक बूलियन था, लेकिन Arduino में आपको बूल लिखना होगा। सबसे पहले, क्लाइंट शब्द के कारण मुझे बहुत सारी त्रुटियां मिलीं। तो मैंने इसे देखा और देखा कि कुछ कोड "WifiClient क्लाइंट" लाइन का उपयोग करते हैं। इसलिए मैंने इसका इस्तेमाल किया और यह काम कर गया।

इफ स्टेटमेंट में आप अक्सर क्लाइंट.प्रिंट देखते हैं। यदि आप कोड में देखते हैं, तो आप देखेंगे कि आपके द्वारा पहले दर्ज किया गया URL टुकड़ों में बंटा हुआ है। अब अपना खुद का कोड डालें। मुझे अपनी तीसरी एलईडी लाइट चुननी थी।

/* setHue() हमारा मुख्य कमांड फंक्शन है, जिसे JSON फॉर्मेट में एक लाइट नंबर और * ठीक से फॉर्मेट की गई कमांड स्ट्रिंग को पास करने की जरूरत है (मूल रूप से वेरिएबल्स की एक जावास्क्रिप्ट स्टाइल ऐरे * और वैल्यू। यह तब एक साधारण HTTP PUT रिक्वेस्ट करता है प्रारंभ में निर्दिष्ट IP पर ब्रिज। */

बूल सेटह्यू (इंट लाइटनम, स्ट्रिंग कमांड) {

वाईफाई क्लाइंट क्लाइंट;

अगर (क्लाइंट.कनेक्ट (ह्यूहबआईपी, ह्यूहबपोर्ट)) {

जबकि (क्लाइंट.कनेक्टेड ()) {

क्लाइंट.प्रिंट ("पुट / एपीआई /"); क्लाइंट.प्रिंट (ह्यू यूज़रनेम); क्लाइंट.प्रिंट ("/ लाइट्स /"); क्लाइंट.प्रिंट (लाइटनम); // ह्यूलाइट शून्य आधारित, 1 क्लाइंट जोड़ें। प्रिंट्लन ("3 / राज्य"); // यहां मैंने रंग का नाम और Stateclient.print ("होस्ट:"); क्लाइंट.प्रिंट्लन (ह्यूहबआईपी); क्लाइंट.प्रिंट ("सामग्री-लंबाई:"); client.println(command.length()); client.println ("सामग्री-प्रकार: पाठ/सादा; वर्णसेट = UTF-8"); क्लाइंट.प्रिंट्लन (); // बॉडी क्लाइंट से पहले खाली लाइन। प्रिंट्लन (कमांड); // ह्यू कमांड

} क्लाइंट.स्टॉप (); सच लौटना; // कमांड निष्पादित}

अन्यथा झूठी वापसी; // कमांड विफल}

चरण 18:

दूसरे बूलियन में, मैंने कुछ शब्दों को बदलकर वही किया। मैंने इसे यह देखने के लिए अपलोड किया कि यह काम करता है या नहीं।

/* यदि आपका तर्क प्रकाश की वर्तमान स्थिति पर निर्भर करता है तो एक सहायक कार्य। * यह कई वैश्विक चर सेट करता है जिसे आप यह पता लगाने के लिए जांच सकते हैं कि वर्तमान में कोई प्रकाश चालू है या नहीं * और रंग इत्यादि। केवल आदेश भेजने के लिए जरूरी नहीं है */

बूल गेटह्यू (इंट लाइटनम) {

वाईफाई क्लाइंट क्लाइंट;

अगर (क्लाइंट.कनेक्ट (ह्यूहबआईपी, ह्यूहबपोर्ट)) {

क्लाइंट.प्रिंट ("प्राप्त करें / एपीआई /"); क्लाइंट.प्रिंट (ह्यू यूज़रनेम); क्लाइंट.प्रिंट ("/ लाइट्स /"); क्लाइंट.प्रिंट (लाइटनम); client.println ("3/राज्य"); क्लाइंट.प्रिंट ("होस्ट:"); क्लाइंट.प्रिंट्लन (ह्यूहबआईपी); client.println ("सामग्री-प्रकार: एप्लिकेशन/जेसन"); client.println ("रखें-जीवित"); क्लाइंट.प्रिंट्लन ();

जबकि (क्लाइंट.कनेक्टेड ()) { अगर (क्लाइंट.उपलब्ध ()) {क्लाइंट.फाइंड यूनटिल ("\"ऑन\":", "\0"); ह्यूऑन = (क्लाइंट.readStringUntil(',') == "true"); // यदि प्रकाश चालू है, तो वेरिएबल को ट्रू क्लाइंट पर सेट करें। FindUntil("\"bri\":", "\0"); ह्यूब्री = client.readStringUntil(',').toInt(); // ब्राइटनेस वैल्यू क्लाइंट के लिए वेरिएबल सेट करें। फाइंड यूनटिल ("\"ह्यू \":", "\ 0"); ह्यूह्यू = क्लाइंट.readStringUntil(',').toInt(); // वैरिएबल को ह्यू वैल्यू ब्रेक के लिए सेट करें; // अभी तक अन्य प्रकाश विशेषताओं को कैप्चर नहीं कर रहा है}} client.stop(); सच लौटना; // पर कब्जा कर लिया, bri, रंग} और झूठी वापसी; // त्रुटि पढ़ने पर, bri, रंग}

चरण 19:

छवि
छवि

मुझे लगता है कि मैं फिलिप्स ह्यू के साथ संबंध बना सकता हूं। मुझे जानकारी प्राप्त होती है लेकिन इसे अभी भी उपयोग करने की आवश्यकता है।

दुर्भाग्य से, यह मैं जो कोड कर सकता हूं उससे आगे जाता है। यदि आप उत्तर जानते हैं, या यदि वास्तविक त्रुटियां हैं जिन्हें ठीक करने की आवश्यकता है, तो मुझे यह सुनना अच्छा लगेगा।:-)

सिफारिश की: