विषयसूची:

ईएसपी-12 इंफ्रा रेड ब्लास्टर: 7 कदम
ईएसपी-12 इंफ्रा रेड ब्लास्टर: 7 कदम

वीडियो: ईएसपी-12 इंफ्रा रेड ब्लास्टर: 7 कदम

वीडियो: ईएसपी-12 इंफ्रा रेड ब्लास्टर: 7 कदम
वीडियो: Race To Semi-Finals | India's Laughter Champion - Ep 12 | Full Episode | 17 July 2022 2024, जुलाई
Anonim
ईएसपी-12 इंफ्रा रेड ब्लास्टर
ईएसपी-12 इंफ्रा रेड ब्लास्टर

esp8266. का उपयोग कर इंफ्रा रेड रिमोट कंट्रोल ब्लास्टर

वेब से प्राप्त रिमोट कंट्रोल कोड को कई आउटपुट डिवाइस का समर्थन करता है।

मुख्य रूप से परीक्षण के लिए सरल वेब पेज में निर्मित।

सामान्य उपयोग POST संदेशों के माध्यम से होता है जो वेब पेजों से या IFTTT / एलेक्सा वॉयस कंट्रोल से आ सकते हैं।

जैसे ही सक्रिय शब्द बोला जाता है, म्यूट / शांत करने के लिए अमेज़ॅन इको / डॉट सक्रिय डिटेक्टर का समर्थन करता है।

कमांड या तो सिंगल कमांड या सीक्वेंस होते हैं। अनुक्रमों को नामित मैक्रोज़ के रूप में संग्रहीत किया जा सकता है जिसे बाद में कमांड या अन्य अनुक्रमों के रूप में उपयोग किया जा सकता है।

हाल का इतिहास और मैक्रोज़ की सूची वेब इंटरफेस के माध्यम से प्राप्त की जा सकती है

नए फर्मवेयर के OTA अपलोडिंग का समर्थन करता है और प्रारंभिक वाईफाई सेट अप के लिए WifiManager लाइब्रेरी का उपयोग करता है

चरण 1: हार्डवेयर

हार्डवेयर
हार्डवेयर
हार्डवेयर
हार्डवेयर

निम्नलिखित घटकों का उपयोग करता है

  • ईएसपी -12 एफ मॉड्यूल
  • 3.3V रेगुलेटर (MP2307 मिनी हिरन रेगुलेटर)
  • MOSFET स्विच (AO3400)
  • इंफ्रा रेड एमिटर (3 मिमी)
  • लाइट डिपेंडेंट रेसिस्टर GL2258 (वैकल्पिक एलेक्सा एक्टिविटी डिटेक्टर)
  • प्रतिरोधों
  • डिकूपिंग कैपेसिटर (20uF)
  • यूएसबी महिला सॉकेट (आस्तीन के साथ अधिमानतः मिलाप के अनुकूल)
  • एलेक्सा डिटेक्टर के लिए 3 पिन आईसी सॉकेट स्ट्रिप
  • यांत्रिक भागों (3 डी मुद्रित किया जा सकता है)

ESP-12F प्रोजेक्ट बॉक्स में इकट्ठा किया जा सकता है

  • USB कनेक्टर से रेगुलेटर अटैच करें और बॉक्स में डालें
  • वेरो बोर्ड के छोटे टुकड़े पर IR ड्राइवर बनाएं (3 तार, +5V, 0V गेट इनपुट)
  • IR ड्राइवर को USB +5V, 0V. से कनेक्ट करें
  • एलेक्सा डिटेक्टर का उपयोग करते हुए प्रोजेक्ट बॉक्स में 3 पिन आईसी सॉकेट डालें। इनपुट के लिए +3.3V, 0V और वायर से कनेक्ट करें
  • GPIO15 से GND, EN से Vdd, 4K7 GPIO13 से Vdd, एलेक्सा इनपुट GPIO13, IR ड्राइवर से GPIO14, 0V और Vdd से 3.3V तक 2.2K के साथ ESP-12F बनाएं
  • एलेक्सा डिटेक्टर बनाएं और जरूरत पड़ने पर बफर सपोर्ट करें।

ध्यान दें कि पहले ESP-12F प्रोग्राम करना आसान हो सकता है यदि आपके पास सीरियल पोर्ट से कनेक्ट करने के लिए किसी प्रकार की सीरियल प्रोग्रामिंग सुविधा या अस्थायी ब्रेडबोर्डिंग सुविधा है।

बाद की प्रोग्रामिंग बिल्ट इन ओटीए अपडेट का उपयोग करके की जा सकती है।

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

इर ब्लास्टर जीथब पर उपलब्ध एक Arduino स्केच का उपयोग करता है

इसे स्थानीय परिस्थितियों के अनुरूप समायोजित करने और फिर एक esp8266 Arduino वातावरण में संकलित करने की आवश्यकता है।

निम्नलिखित पुस्तकालयों की आवश्यकता है, अधिकांश मानक हैं या जोड़े जा सकते हैं। अंतिम दो गिट में शामिल हैं।

  • ईएसपी8266वाईफाई
  • ESP8266वेबसर्वर
  • एफ.एस.एच
  • डीएनएससर्वर
  • ESP8266mDNS
  • ESP8266HTTPअपडेट सर्वर
  • ArduinoJson
  • बिटटेक्स (गिट में शामिल)
  • बिटमैसेज (गिट में शामिल)

बदले जाने वाले स्केच में आइटम शामिल हैं

  • वेब एक्सेस के लिए प्राधिकरण कोड AP_AUTHID
  • WFI प्रबंधक पासवर्ड WM_PASSWORD
  • फर्मवेयर ओटीए पासवर्ड अपडेट_पासवर्ड
  • नए IR डिवाइस / बटन कोड (बाद में देखें)

एक बार यह हो जाने के बाद इसे पहले पारंपरिक सीरियल अपलोड का उपयोग करके अपलोड किया जाना चाहिए।

जैसा कि SPIFFS का उपयोग किया जाता है, तब arduino ESP8266 स्केच डेटा अपलोड टूल को स्थापित और उपयोग करके मेमोरी तैयार की जानी चाहिए। यह डेटा फ़ोल्डर को प्रारंभिक SPIFFS सामग्री के रूप में अपलोड करेगा

जब डिवाइस स्थानीय नेटवर्क से कनेक्ट नहीं हो पाता है (जैसा कि पहली बार होगा) तब Wifi प्रबंधक एक एक्सेस प्वाइंट (192.168.4.1) बनाएगा। फोन या टैबलेट से इस नेटवर्क से कनेक्ट करें और फिर 192.168.4.1 पर ब्राउज़ करें। आपको स्थानीय वाईफाई से कनेक्ट करने के लिए एक वेब इंटरफेस मिलेगा। बाद के एक्सेस इसका उपयोग करेंगे। यदि स्थानीय नेटवर्क बदलता है तो यह इस कॉन्फिग मोड पर वापस आ जाएगा।

बाद में अद्यतन Arduino पर्यावरण में निर्यात बाइनरी संकलित करके और फिर आईपी/फर्मवेयर पर ओटीए इंटरफ़ेस तक पहुंच कर किया जा सकता है।

चरण 3: डिवाइस / बटन कोड जोड़ें

नोट: यह खंड पिछली पद्धति से बदल गया है जहां कॉन्फ़िगरेशन जिसे पहले कोड में संकलित किया गया था। यह अब उन फाइलों का उपयोग करता है जो SPIFF फाइलिंग सिस्टम से लोड की जाती हैं। इससे नई परिभाषाएँ अपलोड करना बहुत आसान हो जाता है।

बटन की परिभाषाएं buttonnames.txt फ़ाइल में शामिल हैं। यह उपयोग में आने वाले सभी रिमोट के नामों की एक वैश्विक सूची है क्योंकि कई नाम सामान्य होते हैं। आपूर्ति के रूप में इसमें मेरे द्वारा उपयोग किए जाने वाले रिमोट के विवरण शामिल हैं। नई प्रविष्टियां जोड़ी जा सकती हैं। कुल १६० नामों के लिए जगह है लेकिन इसे bitMessages.h में स्थिरांक समायोजित करके और पुन: संकलित करके बढ़ाया जा सकता है। यहां परिभाषित नाम कमांड भेजते समय उपयोग किए जाने वाले नाम हैं।

प्रत्येक रिमोट डिवाइस को dev_remotename नामक फ़ाइल में परिभाषित किया गया है। इसमें शीर्ष पर एक कॉन्फिग सेक्शन होता है और फिर बटननाम से लेकर कोड तक एक मैपिंग टेबल होता है, जो हेक्स स्ट्रिंग्स होते हैं जिनमें बिट्स भेजे जाते हैं। केवल आवश्यक बटननामों को परिभाषित करने की आवश्यकता है।

डिवाइस फ़ाइल की शुरुआत में कॉन्फ़िगरेशन अनुभाग में कोड भेजते समय उपयोग किए जाने वाले पैरामीटर होते हैं। पहली प्रविष्टि डिवाइसनाम है जिसका उपयोग कमांड भेजते समय किया जाता है। अन्य पैरामीटर कोड साइट पर रीडमी में वर्णित हैं।

अधिकांश रिमोट 3 प्रोटोकॉल श्रेणियों (एनईसी, आरसी 5 और आरसी 6) में से एक से संबंधित हैं। एनईसी शायद सबसे आम है और इसमें एक साधारण हेडर संरचना और बिट टाइमिंग है। इसका एक छोटा सा रूप है जो केवल हेडर पल्स टाइमिंग में भिन्न होता है। rc5 और rc6 फिलिप्स द्वारा परिभाषित प्रोटोकॉल हैं लेकिन कुछ अन्य निर्माताओं द्वारा भी उपयोग किए जाते हैं। वे थोड़े अधिक जटिल हैं और आरसी 6 में विशेष रूप से बिट्स में से एक के लिए विशेष समय की आवश्यकता होती है।

एक नए रिमोट के लिए कोड कैप्चर करने के लिए मैं आमतौर पर रिमोट रिसीवर में प्लग के साथ उपयोग किए जाने वाले आईआर रिसीवर (टीएसओपी) का उपयोग करता हूं। यह मूल डिकोडिंग करता है और तर्क स्तर का आउटपुट देता है। वे आम तौर पर +5V, GND, DATA कनेक्शन के साथ 3.5mm जैक के साथ आते हैं। मैंने एक की बलि दी, लीड को छोटा किया और रास्पबेरी पाई पर GPIO पिन फीड करने के लिए इसे एक इनवर्टिंग 3.3V बफर के माध्यम से रखा।

मैं फिर कोड कैप्चर करने के लिए एक पायथन टूल rxir.py (गिट टूल्स फ़ोल्डर में) का उपयोग करता हूं। बड़ी संख्या में बटनों को कैप्चर करने के लिए उपयोग करना आसान बनाने के लिए टूल रिमोट पर बटन को परिभाषित करने के लिए टेक्स्ट डेफिनिशन फ़ाइल का उपयोग करता है और रिमोट पर समूह में बटनों के नाम मात्र है। उदाहरण के लिए, किसी के पास एक नया सोनी रिमोट हो सकता है और एक 3 टेक्स्ट फाइलें सेट करता है जिन्हें सोनीटीवी-कर्सर, सोनीटीवी-नंबर, सोनीटीवी-प्लेकंट्रोल प्रत्येक में संबंधित बटन नामों के साथ सेट किया जाता है। टूल डिवाइस (सोनीटीवी), अनुभाग के लिए संकेत देगा। (कर्सर) और किस प्रोटोकॉल का उपयोग करना है (एनसीई, एनईसी 1, आरसी 5, आरसी 6)। इसके बाद यह प्रत्येक बटन प्रेस के लिए क्रमिक रूप से संकेत देगा और परिणामों को Sonytv-ircodes फ़ाइल में लिखेगा। यदि आवश्यक हो तो कैप्चर की जांच करने के लिए अनुभागों को दोहराया जा सकता है।.ircodes फ़ाइल के बिट्स को BitDevices टेबल में संपादित किया जा सकता है।

चरण 4: वेब नियंत्रण और मैक्रो

मूल वेब नियंत्रण या तो सिंगल गेट या एक जेसन पोस्ट है जिसमें अनुक्रम हो सकता है।

गेट टू / आईआर में 6 पैरामीटर हैं

  • प्रमाणीकरण - प्राधिकरण कोड युक्त
  • डिवाइस - रिमोट डिवाइस का नाम
  • पैरामीटर - बटन का नाम
  • बिट्स - एक वैकल्पिक बिट गणना
  • दोहराना - एक वैकल्पिक दोहराव गिनती
  • प्रतीक्षा करें - अगले आदेश को निष्पादित करने से पहले एमसेकंड में देरी।

डिवाइस केवल विलंब प्राप्त करने के लिए 'शून्य' भी हो सकता है, पैरामीटर द्वारा संदर्भित मैक्रो का उपयोग करने के लिए 'मैक्रो', या एलेक्सा डिटेक्ट फीचर का उपयोग करने के लिए 'डिटेक्ट' (बाद में देखें)।

/irjson की पोस्ट में एक json संरचना होती है जैसे

{

"प्रामाणिक": "1234", "आदेश": [{ "डिवाइस": "यामाहाव", "पैरामीटर": "एचडीएमआई 4", "प्रतीक्षा करें": "5000", "बिट्स": "0", "रिपीट": "1"}, { "डिवाइस": "यामाहाव", "पैरामीटर": "म्यूट", "वेट": "100", "बिट्स": "0", "रिपीट": "1"}]

}

अनुक्रम किसी भी लम्बाई का हो सकता है और डिवाइस मैक्रो संदर्भ हो सकते हैं।

मैक्रोज़ को परिभाषित करने के लिए समान संरचना का उपयोग किया जा सकता है। बस मैक्रो शामिल करें: "मैक्रोनाम", शीर्ष स्तर पर उदा। प्रमाणीकरण के बाद। यह वास्तविक सामग्री macroname.txt नामक फ़ाइल में संग्रहीत की जाती है

मैक्रोज़ को बिना "कमांड" के परिभाषित करके हटाया जा सकता है।

अन्य वेब कमांड

  • / हाल (हाल की गतिविधि को सूचीबद्ध करता है)
  • /चेक (मूल स्थिति दिखाता है)
  • / (मैन्युअल रूप से कमांड भेजने के लिए वेब फॉर्म लोड करता है)
  • /संपादित करें (फ़ाइल सूची देखने और फ़ाइलों को हटाने/अपलोड करने के लिए एक वेब फॉर्म लोड करता है)
  • /संपादित करें?फ़ाइल=फ़ाइलनाम (किसी विशिष्ट फ़ाइल की सामग्री देखें)
  • / पुनः लोड करें (बटननाम और डिवाइस फ़ाइलों को पुनः लोड करता है। इनमें से किसी को भी बदलने के बाद उपयोग करें)

चरण 5: IFTTT का उपयोग करके एलेक्सा वॉयस कंट्रोल

एलेक्सा के साथ आईआर ब्लास्टर का उपयोग करने का सबसे सरल तरीका IFTTT को गेटवे के रूप में उपयोग करना है।

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

एक IFTTT खाता सेट करें और मेकर वेबहुक चैनल और एलेक्सा चैनल को सक्षम करें। जब आप IFTT एक्सेस को सक्षम करने के लिए ऐसा करते हैं तो आपको Amazon साइट पर लॉगऑन करना होगा।

IFTTT एलेक्सा चैनल का उपयोग करके एक IF ट्रिगर बनाएं, एक वाक्यांश के आधार पर कार्रवाई चुनें और वह वाक्यांश दर्ज करें जो आप चाहते हैं (जैसे वॉल्यूम अप)।

मेकर वेबहुक चैनल चुनकर कार्रवाई बनाएं। URL फ़ील्ड में कुछ इस तरह दर्ज करें

myip:port/irjson?plain={"auth":"1234", "com…

यह क्रिया ir ब्लास्टर को भेजी जाएगी जहां यह मैक्रो वॉल्यूमअप को निष्पादित करने का प्रयास करेगा। यदि वांछित हो तो यहां विशिष्ट उपकरण/बटन हो सकते हैं, लेकिन मुझे मैक्रोज़ को परिभाषित करना और उनका उपयोग करना बेहतर लगता है क्योंकि तब मैक्रो को फिर से परिभाषित करके क्रिया अनुक्रम को आसानी से बदला जा सकता है।

प्रत्येक कमांड के लिए एक अलग IFTTT एप्लेट की आवश्यकता होती है।

चरण 6: नेटिव एलेक्सा वॉयस स्किल

IFTTT के बजाय कोई एलेक्सा विकास के अंदर एक कस्टम कौशल का निर्माण कर सकता है। यह सभी प्रसंस्करण को एक ही स्थान पर केंद्रीकृत करता है और इसका मतलब है कि आपको प्रत्येक बटन के लिए अलग-अलग क्रियाएं नहीं करनी हैं।

आपको Amazon Alexa डेवलपर के रूप में पंजीकरण प्राप्त करने की आवश्यकता है और आपको Amazon AWS कंसोल लैम्ब्डा सेवा के साथ पंजीकरण करने की आवश्यकता है। प्रक्रिया को थोड़ा समझने के लिए आपको ट्यूटोरियल देखने की भी आवश्यकता होगी।

एलेक्सा डेवलपर पक्ष पर आपको एक नया कस्टम कौशल बनाने की जरूरत है, उसका ट्रिगर शब्द दर्ज करें और कमांड शब्दों की एक सूची बनाएं जैसे वॉल्यूम अप, गाइड, आदि।

एलेक्सा फिर वाक्यांश को लैमडा सेवा पर चल रहे एक प्रोग्राम को भेजती है जो वाक्यांश की व्याख्या करता है और इसे क्रियान्वित करने के लिए इर ब्लास्टर को एक यूआरएल कॉल करता है।

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

चरण 7: एलेक्सा सक्रिय डिटेक्टर

हालांकि इको / डॉट वॉयस रिकग्निशन अच्छा है, यह कभी-कभी भ्रमित हो सकता है अगर ध्वनि टीवी से चल रही हो, जब तक कि आप पास न हों और जोर से न बोलें।

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

इसे चालू और बंद करने के लिए 'डिटेक्ट' कमांड का भी इस्तेमाल किया जा सकता है। तो उदाहरण के लिए मैं पहचान और टर्नऑफ मैक्रो को अक्षम करने के लिए सक्षम करने के लिए प्रारंभिक टर्नन मैक्रो का उपयोग करता हूं। इसका उपयोग वास्तविक म्यूट और अनम्यूट कॉमैंड का समर्थन करने के लिए एक्शन मैक्रोज़ के भीतर भी किया जा सकता है जो अन्यथा समस्याग्रस्त होगा।

फिजिकल डिटेक्टर एक लाइट डिपेंडेंट रेसिस्टर है जिसे सर्किट सपोर्ट करता है। मैं एक 3D प्रिंटेड ब्रैकेट के साथ डॉट पर मेरा माउंट करता हूं

सिफारिश की: