विषयसूची:

फ्रीजर अलार्म रिले: 5 कदम
फ्रीजर अलार्म रिले: 5 कदम

वीडियो: फ्रीजर अलार्म रिले: 5 कदम

वीडियो: फ्रीजर अलार्म रिले: 5 कदम
वीडियो: Fridge Relay Connection | Refrigerator/Fridge Compressor Relay Wire's Connection Danfoss 2024, जुलाई
Anonim
फ्रीजर अलार्म रिले
फ्रीजर अलार्म रिले

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

इस समस्या के 2 भाग हैं, हमें यह पता लगाने के लिए एक विधि की आवश्यकता है कि अलार्म बंद हो गया है और इस तथ्य को हमारे रहने की जगह पर रिले करने की एक विधि है। मैंने जिस डिज़ाइन पर समझौता किया था, वह फ़्रीज़र अलार्म के बंद होने को सुनने के लिए रास्पबेरी पाई का उपयोग करना था, और फिर मेरे घरेलू रेडियो पर एक श्रव्य अलार्म संदेश भेजने के लिए जो कि यूपीएनपी सक्षम है। यूनिवर्सल प्लग एंड प्ले (UpnP) मीडिया सर्वर और खिलाड़ियों सहित नेटवर्क पर विभिन्न उपकरणों द्वारा दी जाने वाली सेवाओं की खोज और बातचीत के लिए एक मानक है, हालांकि मुझे नहीं लगता कि मानक विकसित होने पर फ्रीजर की परिकल्पना की गई थी। चेतावनी संदेश जोर से और परेशान करने वाला बनाया गया था और रेडियो बंद होने तक अंतहीन रूप से दोहराया जाता था।

मैंने रास्पबेरी पाई ज़ीरो डब्ल्यू और सीड रीस्पीकर 2-मिक्स पाई एचएटी के साथ अलार्म का पता लगाने के लिए चुना रास्पबेरी पीआई ज़ीरो रास्पबेरी पाई का एक कम लागत वाला संस्करण है और डब्ल्यू विकल्प में वाईफाई बनाया गया है, जबकि सीड पाई एचएटी इससे कम के लिए रिटेल करता है $ 10, में अंतर्निहित एलईडी और एक उपयोगकर्ता बटन है। Pi HAT एक्सटेंशन कार्ड हैं जो एक बहुत ही सरल असेंबली प्रक्रिया बनाते हुए सीधे रास्पबेरी पाई पर प्लग करते हैं। कोई भी पीआई संस्करण नौकरी के लिए सक्षम से अधिक होगा, और चुने गए माइक्रोफ़ोन को प्रतिस्थापित किया जा सकता है, हालांकि मैंने इस निर्माण में अंतर्निर्मित एल ई डी का उपयोग किया है।

यह जांचना आसान है कि कोई रेडियो या टीवी आपके लिए काम करेगा या नहीं। इसे "DLNA सक्षम" या इसी तरह के रूप में वर्णित किए जाने की अधिक संभावना है। यह संचार करने के लिए यूपीएनपी का उपयोग करता है। Windows PC पर, एक mp3 फ़ाइल और "डिवाइस पर कास्ट करें" चुनें। यदि आपका उपकरण दिखाई देता है और आप फ़ाइल चला सकते हैं, तो आप जाने के लिए अच्छे हैं।

मैंने सॉफ़्टवेयर को 2 पायथन लिपियों में विभाजित किया है, यह जांचने के लिए checkFreezer.py कि क्या कोई फ्रीजर अलर्ट ट्रिगर किया गया है और अलार्म बढ़ाने के लिए raiseAlarm.py करें। इन लिपियों को अलग से विकसित और परीक्षण किया जा सकता है और विभिन्न माइक्रोफोन अलार्म बढ़ाने के तरीकों के लिए आसानी से अनुकूलित या प्रतिस्थापित किया जा सकता है।

आपूर्ति

  • सॉफ्टवेयर -https://github.com/wapringle/freezer-alarm
  • रास्पबेरी पीआई शून्य डब्ल्यू
  • रीस्पीकर 2-एमआईसीएस पाई HAT. देखें
  • यूपीएनपी सक्षम रेडियो

चरण 1: डिटेक्टर को डिजाइन करना

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

इस डिटेक्टर की 2 आवश्यकताएं हैं

  • इसे परिवेशी शोर की उपस्थिति में भी बजर का पता लगाना चाहिए (झूठे नकारात्मक को खत्म करें)
  • इसे परिवेशी शोर से ट्रिगर नहीं किया जाना चाहिए (झूठी सकारात्मक को हटा दें)

मैंने तय किया कि उपयोगिता कक्ष में हूवर चलाना एक अच्छी परीक्षा होगी। यह अलार्म को ट्रिगर नहीं करना चाहिए, और जब फ्रीजर बजर बंद हो जाता है और हूवर चल रहा होता है तो अलार्म चालू हो जाना चाहिए।

चरण 2: डिटेक्टर को कॉन्फ़िगर करना

डिटेक्टर को कॉन्फ़िगर करना
डिटेक्टर को कॉन्फ़िगर करना
डिटेक्टर को कॉन्फ़िगर करना
डिटेक्टर को कॉन्फ़िगर करना
डिटेक्टर को कॉन्फ़िगर करना
डिटेक्टर को कॉन्फ़िगर करना

अपने फोन के साथ, मैंने अकेले फ्रीजर बजर की WAV फाइलों के रूप में ऑडियो नमूने लिए, एक शोर पृष्ठभूमि के साथ, और हूवर चलने के साथ। मैंने एफएफटी के लिए ऑडियो स्ट्रीम पढ़ने के बाद एफएफटी (जब संदेह में, साहित्यिक चोरी) से एफएफटी करने के लिए कोड को अनुकूलित किया और शांत, शोर और बहुत शोर पृष्ठभूमि में बजर के कच्चे और फूरियर ट्रांसफॉर्म किए गए नमूनों को प्लॉट करने के लिए फूरियरटेस्ट.पीई स्क्रिप्ट का उपयोग किया। फ़्रीक्वेंसी 645 के स्तर में स्पाइक को पहले प्लॉट में उच्चारित किया गया है और यह अभी भी बहुत शोर वाली पृष्ठभूमि के साथ महत्वपूर्ण है।

चरण 3: डिटेक्टर का निर्माण

डिटेक्टर को असेंबल करना।

बहुत सरल। Pi W बिल्ट-इन Wifi के साथ आता है और HAT को Pi पर GPIO पिन में सीधे प्लग किया जाता है। सॉफ़्टवेयर को कॉन्फ़िगर करने के लिए चरणों की आवश्यकता होती है

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

$ sudo apt-libasound-dev स्थापित करें

$पाइप इंस्टाल पाइल्सऑडियो

  • HAT को रास्पबेरी PI से कनेक्ट करें
  • एचएटी के लिए ड्राइवरों को स्थापित करने के लिए देखी गई वेबसाइट पर दिए गए निर्देशों का पालन करें।
  • HAT काम कर रहा है और ठीक से कॉन्फ़िगर किया गया है, यह जांचने के लिए सीड डायग्नोस्टिक्स चलाएँ।

डिटेक्टर प्रोग्राम माइक्रोफ़ोन से नमूने के रूप में डेटा के एक ब्लॉक को पढ़ता है, एफएफटी करता है और यह तय करता है कि उसने नमूने में बजर का पता लगाया है या नहीं। मैंने ऑडियो नमूना दर को 16kHz तक कम करके और पाठक द्वारा स्वीकार किए जाने वाले सबसे बड़े बफर का उपयोग करके यथासंभव लंबे समय तक ब्लॉक बनाने की कोशिश की। मैं चिंतित था कि एफएफटी गणना के कारण फ्रेम को गिरा दिया जा सकता है, लेकिन ऐसा नहीं हुआ।

मेरे फोन पर पहले से रिकॉर्ड किए गए नमूने होने से डिटेक्टर का निर्माण बहुत आसान हो गया क्योंकि मैं फ्रीजर द्वारा इन-सीटू परीक्षण करने से पहले बेंच पर पूरा निर्माण कर सकता था।

डिटेक्टर को प्रशिक्षित करना।

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

यह पता लगाने के 2 तरीके हैं कि क्या बीप हुई है:

  1. क्या नमूने में बजर आवृत्ति चरम आवृत्ति थी?
  2. या बजर फ़्रीक्वेंसी पर पावर लेवल एक दहलीज से अधिक था?

किसी भी विधि ने शांत नमूने में काम किया, लेकिन दूसरा शोर नमूने के साथ बेहतर था, इसलिए मैंने इसका इस्तेमाल किया।

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

फिर हमें अपवोट और डाउनवोट के लिए थ्रेशोल्ड के साथ वेट चाहिए। यह मैंने कई नमूनों पर परीक्षण और त्रुटि के साथ किया। मुझे वास्तविक बजर आवृत्ति निर्धारित करने की आवश्यकता नहीं थी, मैंने केवल एफएफटी स्पेक्ट्रम में स्टैंडआउट आवृत्ति की तलाश की थी।

चरण 4: रेडियो को संदेश भेजना

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

  • www.electricmonk.nl/log/2016/07/05/exploring-upnp-with-python/ इसका एक अच्छा अवलोकन है कि यह सब एक साथ कैसे फिट बैठता है
  • developer.sony.com/develop/audio-control-api/get-started/browse-dlna-file।
  • stackoverflow.com/questions/28422609/how-to-send-setavtransporturi-using-upnp-c/35819973

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

  • जब रेडियो इसके लिए कहे तो चेतावनी संदेश देने के लिए पॉपअप वेबसर्वर लॉन्च करें
  • वॉल्यूम स्तर को LOUD पर सेट करें (चेतावनी संदेश को सभी का ध्यान आकर्षित करना चाहिए)
  • रेडियो पर चेतावनी संदेश का यूरी पास करें
  • रेडियो को तब तक पोल करें जब तक कि वर्तमान स्थिति "STOPPED" न हो जाए
  • रेडियो को "चलाएं" uri. के लिए प्राप्त करें
  • अंतिम 2 चरणों को तब तक दोहराएं जब तक कि वर्तमान स्थिति "नो मीडिया प्रेजेंट" न हो, जिसका अर्थ है कि रेडियो को बंद करके अलार्म को स्वीकार कर लिया गया है
  • अंत में वेबसर्वर को बंद करें और बाहर निकलें।

यह स्क्रिप्ट है raiseAlarm.py

चरण 5: इसे स्वयं करना

इसे स्वयं करना
इसे स्वयं करना

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

माइक्रोफ़ोन सहित PI Zero W सेट करना

  • चरण 3 के अनुसार हार्डवेयर को असेंबल करें
  • इस निर्देश से, या git रिपॉजिटरी से फ्रीज़र-अलार्म स्क्रिप्ट डाउनलोड करें जिसमें कुछ बोनस ट्रैक शामिल हैं

$ git क्लोन

आपको ऑन-बोर्ड APA102 LED का उपयोग करने के लिए सॉफ़्टवेयर स्थापित करने की भी आवश्यकता है। मैंने git कार्यशील निर्देशिका में apa102.py की एक प्रति शामिल की है

अपने डिटेक्टर को प्रशिक्षित करना

मैंने checkFreezer.py स्क्रिप्ट में एक प्रशिक्षण विकल्प जोड़ा है। यह इसे स्टैंड-अलोन चलाता है और कमांड लाइन पर डायग्नोस्टिक्स को प्रिंट करता है, लेकिन पहले आपको अलार्म के कुछ नमूनों को शांत वातावरण में WAV फाइलों के रूप में रिकॉर्ड करने की आवश्यकता होती है, और एक शोर में ऐसा ही करें। प्रशिक्षण को पूरा करने के लिए आपको पहले उच्चतम स्तर ("पीक फ़्रीक्वेंसी") के साथ FFT फ़्रीक्वेंसी खोजने की आवश्यकता है और फिर ट्रिगर सेट करने के लिए उस फ़्रीक्वेंसी के लिए थ्रेशोल्ड लेवल। ऐसा करने के लिए, स्क्रिप्ट चेकफ्रीज़र को प्रशिक्षण मोड में चलाएं, '-t' विकल्प के साथ और अलार्म की रिकॉर्डिंग चलाएं।

$ अजगर checkFreezer.py -t

यह स्क्रिप्ट को ट्रेनिंग मोड में चलाता है। यह "तैयार" प्रिंट करता है जब सीड एचएटी को इनिशियलाइज़ किया गया है और एलईडी हरे रंग की हो जाती है, तो प्रत्येक गैर-तुच्छ शोर के लिए एक लाइन जो वह सुनता है, उदाहरण के लिए

$ अजगर checkFreezer.py -t

तैयार शिखर आवृत्ति 55 ट्रिगर स्तर 1 ट्रिगर? झूठी चोटी आवृत्ति 645 ट्रिगर स्तर 484 ट्रिगर? झूठी चोटी आवृत्ति 645 ट्रिगर स्तर 380 ट्रिगर? झूठा

इस मामले में पीक फ़्रीक्वेंसी 645 है और वह ट्रिगर फ़्रीक्वेंसी बन जाती है। अब ट्रिगर स्तर प्राप्त करने के लिए, चेकफ़्रीज़र को फिर से चलाएँ, ट्रिगर सेट करें

$ अजगर checkFreezer.py -t --trigger=645

तैयार चोटी आवृत्ति 645 ट्रिगर स्तर 1273 ट्रिगर? झूठी चोटी आवृत्ति 645 ट्रिगर स्तर 653 ट्रिगर? झूठी चोटी आवृत्ति 645 ट्रिगर स्तर 641 ट्रिगर? झूठी चोटी आवृत्ति 645 ट्रिगर स्तर 616 ट्रिगर? झूठा

अंत में हमें एक ट्रिगर थ्रेशोल्ड की आवश्यकता होती है जो एक बीप का पता चलने पर सक्रिय होता है, लेकिन शोर को अनदेखा करता है, उदाहरण के लिए

$ अजगर checkFreezer.py -t --trigger=645 --threshold=500

रेडी पीक फ़्रीक्वेंसी 645 ट्रिगर लेवल 581 ट्रिगर? ट्रू पीक फ़्रीक्वेंसी 645 ट्रिगर लेवल 798 ट्रिगर? ट्रू पीक फ़्रीक्वेंसी 645 ट्रिगर लेवल 521 ट्रिगर? सत्य

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

रेडियो से जुड़ना

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

मैंने एक डिफ़ॉल्ट अलार्म संदेश दिया है, फ़्रीज़र.mp3। बेझिझक अपने संदेश से बदलें।

उपयुक्त IP पतों के साथ स्क्रिप्ट संपादित करें और स्क्रिप्ट चलाएँ।

$ अजगर raiseAlarm.py

यदि सब ठीक है, तो जोर से और परेशान करने वाला अलार्म संदेश आपके रेडियो से तब तक निकलेगा जब तक कि रेडियो बंद न हो जाए, अलार्म को रद्द कर दिया जाए।

जबकि स्क्रिप्ट चल रही है, यह रेडियो पर अलार्म एमपी3 की सेवा के लिए एक मिनी वेब सर्वर चलाता है, संभवतः एक सुरक्षा समस्या है, लेकिन यह केवल तभी सक्रिय है जब अलार्म संदेश चल रहा हो।

लाइव होना

'-t' प्रशिक्षण ध्वज हटाएं, और अपने स्वयं के मूल्यों के साथ चेकफ्रीज़र चलाएं, उदाहरण के लिए

$ अजगर checkFreezer.py --trigger=645 --threshold=200

इसे रीबूट पर प्रारंभ करने के लिए, /etc/rc.local में जोड़ें, सीडी/होम/पीआई/फ्रीजर-अलार्म

(पायथन checkFreezer.py --trigger=645 --threshold=200 > /tmp/freezer 2> /tmp/freezererror &) और बाहर निकलें 0

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

आखिरकार

पीआई को फ्रीजर के पास, रास्ते से बाहर और बिजली की आपूर्ति के पास एक स्थान पर रखें। पावर अप और हरी एलईडी आनी चाहिए। दरवाजा खुला छोड़ कर अलार्म को चालू करने का परीक्षण करें। प्रकाश लाल हो जाना चाहिए और अलार्म संदेश रेडियो पर बजना चाहिए।

सफलता !! आपने इसे किया है। अपने आप को फ्रीजर से बर्फ के साथ एक लंबे पेय के लिए तैयार करें, लेकिन फ्रीजर का दरवाजा बंद करना न भूलें!

सिफारिश की: