विषयसूची:

रेट्रो भाषण संश्लेषण। भाग: १२ IoT, गृह स्वचालन: १२ कदम (चित्रों के साथ)
रेट्रो भाषण संश्लेषण। भाग: १२ IoT, गृह स्वचालन: १२ कदम (चित्रों के साथ)

वीडियो: रेट्रो भाषण संश्लेषण। भाग: १२ IoT, गृह स्वचालन: १२ कदम (चित्रों के साथ)

वीडियो: रेट्रो भाषण संश्लेषण। भाग: १२ IoT, गृह स्वचालन: १२ कदम (चित्रों के साथ)
वीडियो: द मेसेंजर्स - मीडियम चिको जेवियर - स्पिरिट आंद्रे लुइज़ द्वारा। 2024, जुलाई
Anonim
Image
Image
रेट्रो भाषण संश्लेषण। भाग: 12 आईओटी, गृह स्वचालन
रेट्रो भाषण संश्लेषण। भाग: 12 आईओटी, गृह स्वचालन

यह लेख होम ऑटोमेशन इंस्ट्रक्शंस पर एक श्रृंखला में 12 वां है जो एक घरेलू वातावरण में सफल तैनाती को सक्षम करने के लिए सभी आवश्यक सॉफ़्टवेयर कार्यक्षमता सहित एक मौजूदा होम ऑटोमेशन सिस्टम में एक IoT रेट्रो स्पीच सिंथेसिस डिवाइस बनाने और एकीकृत करने का दस्तावेजीकरण करता है।

चित्र 1 पूर्ण IoT स्पीच सिंथ डिवाइस दिखाता है और चित्र 2 प्रोटोटाइप में उपयोग किए गए सभी घटक भागों को दिखाता है जो अंतिम उत्पाद में जाने के लिए कम किए गए फॉर्म फैक्टर थे।

वीडियो डिवाइस को चालू (परीक्षण के दौरान) दिखाता है।

परिचय

जैसा कि इस निर्देश योग्य विवरण के ऊपर बताया गया है कि IoT रेट्रो स्पीच सिंथेसिस डिवाइस कैसे बनाया जाता है और यह सामान्य इंस्ट्रूमेंट्स SP0256-AL2 के आसपास आधारित है।

इसका प्राथमिक उद्देश्य IoT नेटवर्क में 'ओल्ड स्कूल' वॉयस सिंथेसिस को जोड़ना है। आप 'ओल्ड स्कूल' क्यों पूछ सकते हैं? ठीक है, क्योंकि मैं ८० के दशक में था जब इन चीजों का पहली बार निर्माण किया गया था और मैंने अपने बीबीसी माइक्रो में एक को इंटरफेस किया था, इसलिए मेरे लिए एसपी०२५६-एएल२ के आसपास कुछ हद तक उदासीनता है।

मैं यह पता लगाने की कोशिश करने की चुनौती को बहुत पसंद करता हूं कि इस डेलिक की आवाज से पृथ्वी पर क्या कहा जा रहा है, हिप्स्टर अमेज़ॅन इको या सिरी के डलसेट टोन को सुनने की तुलना में। इसमें चुनौती कहां है मैं आपसे पूछता हूं?

ओह, और उल्लेख नहीं करने के लिए मेरे पास 'SP0256-AL2' IC का 'बैग लोड' भी पड़ा हुआ है।

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

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

मुझे किन भागों की आवश्यकता है?

सामग्री का बिल यहां देखें

मुझे किस सॉफ्टवेयर की आवश्यकता है?

  • अरुडिनो आईडीई 1.6.9,
  • Arduino IDE को ESP8266-07 (इसी तरह) प्रोग्राम करने के लिए कॉन्फ़िगर किया गया है। फिर यहां सॉफ्टवेयर स्केच में दिए गए विस्तृत विवरण के अनुसार आईडीई को कॉन्फ़िगर करें,
  • पायथन v3.5.2 यदि आप स्वचालित परीक्षण क्षमता का उपयोग करना चाहते हैं, तो यहां विवरण दें

मुझे कौन से टूल्स चाहिए?

  • माइक्रोस्कोप कम से कम x3 (SMT सोल्डरिंग के लिए),
  • Molex कनेक्टर crimping टूल (JST कनेक्टर्स के लिए),
  • एसएमडी सोल्डरिंग आयरन (तरल फ्लक्स पेन और फ्लक्स कोर्ड सोल्डर के साथ),
  • पेचकश (विभिन्न),
  • हीट गन,
  • अभ्यास (विभिन्न),
  • काउंटरसिंक हैंडटूल,
  • फ़ाइलें (विभिन्न),
  • डरमेल (विभिन्न बिट्स),
  • स्टर्डी वाइस (छोटा और बड़ा, एक ब्लैक एंड डेकर वर्क मेट की तरह),
  • खोपड़ी,
  • वर्नियर कैलिपर्स (पीसीबी घटकों को आकार देने के लिए निर्माण और उपयोगी को मापने के लिए उपयोग किया जाता है),
  • स्पैनर और नट ड्राइवर (विभिन्न),
  • मजबूत चिमटी (श्रीमती सोल्डरिंग के लिए),
  • जूनियर हक्सॉ,
  • ड्रिल (विभिन्न ड्रिल बिट्स के साथ),
  • ठीक सरौता (बिंदु और स्नब नोज्ड),
  • फ्लश कटर,
  • श्रव्य निरंतरता जांच के साथ DMM,
  • डुअल चैनल डिजिटल स्कोप (सिग्नल डिबगिंग के लिए आसान)

मुझे क्या कौशल चाहिए?

  • ढेर सारा धैर्य,
  • मैनुअल निपुणता और उत्कृष्ट हाथ/आंख समन्वय का एक बड़ा सौदा,
  • उत्कृष्ट सोल्डरिंग कौशल,
  • उत्कृष्ट निर्माण कौशल,
  • 3 आयामों में कल्पना करने की क्षमता,
  • 'सी' के साथ सॉफ्टवेयर डेवलपमेंट का कुछ ज्ञान (यदि आप सोर्स कोड को समझना चाहते हैं),
  • पायथन का कुछ ज्ञान (यदि आप स्वचालित परीक्षण का उपयोग करना चाहते हैं तो स्क्रिप्ट कैसे स्थापित करें और चलाएं),
  • Arduino और उसके IDE का ज्ञान,
  • इलेक्ट्रॉनिक्स का अच्छा ज्ञान,
  • आपके होम नेटवर्क की कुछ समझ।

शामिल विषय

  • उपयोगकर्ता पुस्तिका
  • सर्किट अवलोकन
  • पीसीबी निर्माण और विधानसभा
  • छलरचना
  • सॉफ्टवेयर सिस्टम अवलोकन
  • सॉफ्टवेयर अवलोकन
  • सेंसर अंशांकन
  • MQTT विषय नामकरण सम्मेलन
  • डिबग और फॉल्ट फाइंडिंग
  • डिजाइन का परीक्षण
  • निष्कर्ष
  • संदर्भ प्रयुक्त

सीरीज लिंक टू पार्ट 11: IoT Desktop Console। भाग: ११ आईओटी, गृह स्वचालन

चरण 1: उपयोगकर्ता मैनुअल

उपयोगकर्ता पुस्तिका
उपयोगकर्ता पुस्तिका
उपयोगकर्ता पुस्तिका
उपयोगकर्ता पुस्तिका
उपयोगकर्ता पुस्तिका
उपयोगकर्ता पुस्तिका

ऊपर दिया गया चित्र 1 रेट्रो स्पीच सिंथेसाइज़र के सामने और पीछे के चित्र 2 को दिखाता है।

संलग्नक मोर्चा

  1. स्पीकर ग्रिल
  2. 3.5 मिमी इयरफ़ोन जैक: 3.5 मिमी जैक डालने पर मुख्य स्पीकर अक्षम हो जाता है।
  3. लाल एलईडी: जब एक HTTP अनुरोध के माध्यम से भाषण शुरू किया गया था तब यह एलईडी एक शब्द बोलते समय प्रकाशित होता है।
  4. ब्लू एलईडी: जब एक एमक्यूटीटी आईओटी अनुरोध के माध्यम से भाषण शुरू किया गया था तब एक शब्द बोलते समय यह एलईडी प्रकाशित होता है।

संलग्नक रियर

  1. रीसेट बटन: ESP8266-07 IoT डिवाइस को हार्ड रीसेट करने के लिए उपयोग किया जाता है।
  2. फ्लैश बटन: जब रीसेट बटन के संयोजन के साथ प्रयोग किया जाता है तो ईएसपी 8266-07 को फिर से फ्लैश करने की अनुमति मिलती है।
  3. वाईफाई एंटीना प्लग (एसएमए प्लग): बाहरी वाईफाई एंटीना के लिए कम से कम आरएफ पथ क्षीणन देना क्योंकि क्लोजर एल्यूमीनियम है।
  4. बाहरी प्रोग्रामिंग पोर्ट: पुन: प्रोग्रामिंग उद्देश्यों के लिए ESP8266-07 तक पहुंच प्राप्त करने के लिए संलग्नक को हटाने की आवश्यकता को दूर करने के लिए। ESP8266-07 के प्रोग्रामिंग पिन को बाहरी प्रोग्रामिंग पोर्ट पर लाया गया है। चित्र 3 प्रोग्रामिंग एडेप्टर है।
  5. ग्रीन एलईडी: यह IoT सिस्टम का नेतृत्व किया जाता है और इसका उपयोग डिवाइस की नैदानिक स्थिति और बूट अप और संचालन के दौरान इंगित करने के लिए किया जाता है।
  6. बाहरी तापमान / आर्द्रता सेंसर (AM2320)
  7. एसडी कार्ड स्लॉट: इसमें वेब सर्वर पेजों के साथ सभी कॉन्फिग/सुरक्षा डेटा होता है।
  8. 2.1 मिमी आपूर्ति जैक 6vdc

चरण 2: सर्किट अवलोकन

सर्किट अवलोकन
सर्किट अवलोकन
सर्किट अवलोकन
सर्किट अवलोकन

रेट्रो स्पीच सिंथ डिवाइस में दो पीसीबी शामिल हैं;

  • RetroSpeechSynthIoTBoard: यह एक सामान्य, पुन: उपयोग करने योग्य ESP8266-07/12/12E/13 PCB है
  • RetroSpeechSynthBoard: यह एक सामान्य SP0256-AL2 PCB है

रेट्रो स्पीच सिंथ IoT बोर्ड

यह बोर्ड ESP8266-07/12/12E/13 या 0.1 पिच सॉकेट्स के सीधे सोल्डरिंग की अनुमति देता है जिसमें ESP8266 कैरियर PCB को समायोजित किया जाता है।

बोर्ड को I2C कनेक्शन पर अपने I/O का विस्तार करने के लिए डिज़ाइन किया गया था और Q1, Q2, R8-13 के माध्यम से 3v3 या 5v आपूर्ति स्तरों का समर्थन कर सकता है।

बोर्ड से कनेक्शन दो हेडर J2 और J4, एक 8-वे DIL IDC रिबन या 5-वे JST/Molex में से एक के माध्यम से प्राप्त किया जाता है।

U2 और U3 प्रावधान 3.3v और 5v बोर्ड आपूर्ति विनियमन पर। वैकल्पिक रूप से यदि अधिक वर्तमान क्षमता की आवश्यकता है, तो ऑफ बोर्ड सीरियल शंट नियामकों को क्रमशः कनेक्टर J10 और J11 के माध्यम से जोड़ा जा सकता है।

कनेक्टर J1 और J3 SPI पर बाहरी SD कार्ड समर्थन प्रदान करते हैं। J1 को 8-वे Molex के लिए डिज़ाइन किया गया है और J3 में 3v3 या 5v समर्थन के साथ एक ऑफ शेल्फ SD कार्ड PCB के लिए पिन संगतता समर्थन के लिए सीधा पिन है।

रेट्रो स्पीच सिंथ बोर्ड

इस बोर्ड का नियंत्रण J1, J5 या J6, 4-वे JST/Molex, 8-वे DIL IDC या 8-वे IDC रिबन कनेक्टर के माध्यम से I2C 5v अनुरूप कनेक्शन पर है।

U2 MPC23017, U3 SP0256-AL2 और LEDS D1 (हरा), D2 (लाल) और D3 (नीला) के समानांतर इंटरफ़ेस को I2C प्रदान करता है। स्पीच सिंथ का आउटपुट ऑडियो amp CR1 TBA820M को एनालॉग पॉट RV1 या डिजिटल पॉट U1 MCP4561 के माध्यम से खिलाया जाता है।

डिजिटल पॉट U1 को 5v अनुरूप I2C के माध्यम से भी नियंत्रित किया जाता है।

नोट: ESP8266-07 डिवाइस को चुना गया था क्योंकि इसमें एक इंटीग्रल IPX RF कनेक्टर है, जो एल्युमीनियम के बाड़े में बाहरी वाईफाई एंटीना को जोड़ने की अनुमति देता है।

चरण 3: पीसीबी निर्माण और असेंबली

पीसीबी निर्माण और विधानसभा
पीसीबी निर्माण और विधानसभा
पीसीबी निर्माण और विधानसभा
पीसीबी निर्माण और विधानसभा
पीसीबी निर्माण और विधानसभा
पीसीबी निर्माण और विधानसभा
पीसीबी निर्माण और विधानसभा
पीसीबी निर्माण और विधानसभा

चित्र 1 और 2 एल्यूमीनियम संलग्नक सब्सट्रेट पर स्थित पूर्ण और वायर्ड पीसीबी उप-असेंबली दिखाते हैं।

दो पीसीबी को Kicad v4.0.7 का उपयोग करके डिजाइन किया गया था, जिसे JLCPCB द्वारा निर्मित किया गया था और मेरे द्वारा असेंबल किया गया था और Pics 3 से 13 के ऊपर दिखाया गया था।

चरण 4: निर्माण

छलरचना
छलरचना
छलरचना
छलरचना
छलरचना
छलरचना

चित्र 1 अंतिम असेंबली से पहले सभी पूर्वनिर्मित भागों का हेन्स मैनुअल स्टाइल लेआउट दिखाता है।

Pics 2 … 5 न्यूनतम मंजूरी के साथ बाड़े के निर्माण के दौरान विभिन्न शॉट्स दिखाते हैं।

चरण 5: सॉफ्टवेयर सिस्टम अवलोकन

सॉफ्टवेयर सिस्टम अवलोकन
सॉफ्टवेयर सिस्टम अवलोकन
सॉफ्टवेयर सिस्टम अवलोकन
सॉफ्टवेयर सिस्टम अवलोकन

इस IoT रेट्रो स्पीच सिंथेसिस डिवाइस में छह प्रमुख सॉफ्टवेयर घटक हैं जैसा कि ऊपर चित्र 1 में दिखाया गया है।

एसडी कार्ड

यह बाहरी एसडी एसपीआई फ्लैश फाइलिंग सिस्टम है और इसका उपयोग निम्नलिखित जानकारी रखने के लिए किया जाता है (ऊपर चित्र 2 देखें);

  • आइकॉन और 'स्पीच सिंथ कॉन्फिगरेशन होम पेज' index.htm: IoT डिवाइस द्वारा सेवा दी जाती है जब यह आपके IoT वाईफाई नेटवर्क (आमतौर पर गलत सुरक्षा जानकारी, या पहली बार उपयोग के कारण) से कनेक्ट करने में असमर्थ होता है और उपयोगकर्ता को एक साधन प्रदान करता है नई एसडी सामग्री को फिर से फ्लैश करने की आवश्यकता के बिना सेंसर को दूरस्थ रूप से कॉन्फ़िगर करने के लिए। इसमें index1.htm, mqtt.htm और sp0256.htm भी हैं, ये स्थानीय रूप से उपलब्ध वेब पेज हैं जो वेब ब्राउज़र पर पहुंच योग्य हैं जो भाषण संश्लेषण के सीमित नियंत्रण की अनुमति देते हैं। HTTP पर।
  • सुरक्षा जानकारी: इसमें आपके IoT वाईफाई नेटवर्क और MQTT ब्रोकर से कनेक्ट करने के लिए IoT डिवाइस द्वारा पावर अप में उपयोग की जाने वाली जानकारी होती है। 'स्पीच सिंथ कॉन्फ़िगरेशन होम पेज' के माध्यम से सबमिट की गई जानकारी इस फ़ाइल ('secvals.txt') पर लिखी जाती है।
  • कैलिब्रेशन सूचना: फाइलों में निहित जानकारी ('calvals1.txt' और 'calvals2.txt') का उपयोग ऑन-बोर्ड तापमान/आर्द्रता सेंसर को कैलिब्रेट करने के लिए किया जाता है, यह आवश्यक होना चाहिए। कैलिब्रेशन स्थिरांक IoT डिवाइस को MQTT कमांड के माध्यम से MQTT ब्रोकर से या SD कार्ड को री-फ्लैश करके लिखा जा सकता है। 'calvals1.txt' AM2320 सेंसर से संबंधित है और 'calvals2.txt' DHT22 से संबंधित है।
  • उपयोगकर्ता विन्यास योग्य सिस्टम मान: उपयोगकर्ता द्वारा चुनी गई इस फ़ाइल ('confvals.txt') में निहित जानकारी, कुछ सिस्टम प्रतिक्रियाओं को नियंत्रित करती है, जैसे प्रारंभिक डिजिटल वॉल्यूम स्तर, एमक्यूटीटी ब्रोकर सदस्यता आदि पर ऑटो 'सिस्टम तैयार' घोषणा।

एमडीएनएस सर्वर

यह कार्यक्षमता तब लागू होती है जब IoT डिवाइस आपके वाईफाई नेटवर्क को वाईफाई स्टेशन के रूप में कनेक्ट करने में विफल हो जाता है और इसके बजाय घरेलू वाईफाई राउटर के समान वाईफाई एक्सेस प्वाइंट बन जाता है। ऐसे राउटर के मामले में आप आम तौर पर 192.168.1.1 (आमतौर पर बॉक्स से जुड़े लेबल पर मुद्रित) का आईपी पता दर्ज करके इसे सीधे अपने ब्राउज़र यूआरएल बार में दर्ज कर सकते हैं, जिस पर आपको दर्ज करने के लिए एक लॉगिन पेज प्राप्त होगा। उपयोगकर्ता नाम और पासवर्ड आपको डिवाइस को कॉन्फ़िगर करने की अनुमति देता है। एपी मोड (एक्सेस प्वाइंट मोड) में ईएसपी8266-07 के लिए डिवाइस आईपी एड्रेस 192.168.4.1 पर डिफॉल्ट करता है, हालांकि एमडीएनएस सर्वर चलने के साथ आपको ब्राउज़र यूआरएल बार में केवल मानव अनुकूल नाम 'SPEECHSVR.local' दर्ज करना होगा। 'स्पीच सिंथ कॉन्फ़िगरेशन होम पेज' देखें।

एमक्यूटीटी क्लाइंट

MQTT क्लाइंट सभी आवश्यक कार्यक्षमता प्रदान करता है; अपने IoT नेटवर्क MQTT ब्रोकर से कनेक्ट करें, अपनी पसंद के विषयों की सदस्यता लें और किसी दिए गए विषय पर पेलोड प्रकाशित करें। संक्षेप में यह IoT कोर कार्यक्षमता का प्रावधान करता है।

HTTP वेब सर्वर

इस वेब सर्वर के दो उद्देश्य हैं;

  1. यदि IoT डिवाइस वाईफाई नेटवर्क से कनेक्ट करने में असमर्थ है जिसका SSID, P/W आदि SD कार्ड पर रखी गई सुरक्षा सूचना फ़ाइल में परिभाषित है, तो डिवाइस एक एक्सेस प्वाइंट बन जाएगा। एक बार एक्सेस प्वाइंट द्वारा प्रदान किए गए वाईफाई नेटवर्क से कनेक्ट होने के बाद, एक HTTP वेब सर्वर की उपस्थिति आपको सीधे डिवाइस से कनेक्ट करने और HTTP वेब ब्राउज़र के उपयोग के माध्यम से इसके कॉन्फ़िगरेशन को बदलने की अनुमति देती है, इसका उद्देश्य 'स्पीच सिंथ कॉन्फ़िगरेशन' की सेवा करना है। होम पेज' वेब पेज जो एसडी कार्ड पर भी होता है।
  2. एक बार IoT रेट्रो स्पीच सिंथेसिस डिवाइस वाईफाई नेटवर्क और MQTT ब्रोकर से कनेक्ट हो जाने पर, यदि एक्सेस किया जाता है, तो HTTP वेब सर्वर स्वचालित रूप से एक HTTP वेब पेज की सेवा करेगा, जिससे IoT डिवाइस के सीमित नियंत्रण को निश्चित वाक्यांशों के चयन और बोलने की क्षमता की अनुमति होगी। दो फ्रंट रेड और ब्लू LEDS को साइकिल करें।

वाईफाई स्टेशन

यह कार्यक्षमता IoT डिवाइस को सुरक्षा सूचना फ़ाइल में मापदंडों का उपयोग करके घरेलू वाईफाई नेटवर्क से कनेक्ट करने की क्षमता देती है, इसके बिना आपका IoT डिवाइस MQTT ब्रोकर की सदस्यता/प्रकाशन नहीं कर पाएगा।

वाईफाई एक्सेस प्वाइंट

वाईफाई एक्सेस प्वाइंट बनने की क्षमता एक ऐसा माध्यम है जिसके द्वारा आईओटी डिवाइस आपको वाईफाई स्टेशन और ब्राउज़र (जैसे ऐप्पल आईपैड पर सफारी) के माध्यम से इससे कनेक्ट करने और कॉन्फ़िगरेशन परिवर्तन करने की अनुमति देता है। यह एक्सेस प्वाइंट एक SSID = "SPEECHSYN" + IoT डिवाइस के मैक पते के अंतिम 6 अंक प्रसारित करता है। इस बंद नेटवर्क के पासवर्ड को काल्पनिक रूप से 'पासवर्ड' नाम दिया गया है

चरण 6: सॉफ्टवेयर अवलोकन

सॉफ्टवेयर अवलोकन
सॉफ्टवेयर अवलोकन
सॉफ्टवेयर अवलोकन
सॉफ्टवेयर अवलोकन
सॉफ्टवेयर अवलोकन
सॉफ्टवेयर अवलोकन

प्रस्तावना

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

अवलोकन

सॉफ्टवेयर राज्य-मशीन का उपयोग करता है जैसा कि ऊपर चित्र 1 में दिखाया गया है (मेरे GitHub रिपॉजिटरी में स्रोत की पूरी प्रति यहाँ)। नीचे उल्लिखित 5 मुख्य राज्य हैं;

  • इस में

    यह इनिशियलाइज़ेशन स्टेट पावर अप के बाद दर्ज किया गया पहला राज्य है।

  • NOCONFIG

    यह स्थिति दर्ज की जाती है यदि पावर अप के बाद एक अमान्य या अनुपलब्ध secvals.txt फ़ाइल का पता चलता है। इस अवस्था के दौरान कॉन्फिग पेज दिखाई देता है।

  • लंबित एनडब्ल्यू

    यह राज्य क्षणभंगुर है, दर्ज किया गया है, जबकि कोई वाईफाई नेटवर्क कनेक्शन मौजूद नहीं है

  • लंबित एमक्यूटीटी

    यह स्थिति अस्थायी है, वाईफाई नेटवर्क कनेक्शन के बाद दर्ज की गई है और उस नेटवर्क पर एमक्यूटीटी ब्रोकर से कोई कनेक्शन मौजूद नहीं है।

  • सक्रिय

    वाईफाई नेटवर्क कनेक्शन और एमक्यूटीटी ब्रोकर कनेक्शन दोनों स्थापित हो जाने के बाद यह सामान्य परिचालन स्थिति दर्ज की जाती है। इस अवस्था के दौरान IoT रेट्रो स्पीच सिंथेसिस डिवाइस का तापमान, ऊष्मा सूचकांक और आर्द्रता नियमित रूप से MQTT ब्रोकर को प्रकाशित किया जाता है। इस अवस्था में स्पीच सिंथ होम पेज दिखाई देता है।

राज्यों के बीच संक्रमण को नियंत्रित करने वाली घटनाओं का वर्णन ऊपर चित्र 1 में किया गया है। राज्यों के बीच संक्रमण भी निम्नलिखित SecVals मापदंडों द्वारा नियंत्रित होता है;

  • पहला एमक्यूटीटी ब्रोकर आईपी पता। बिंदीदार दशमलव रूप में AAA. BBB. CCC. DDD
  • दूसरा एमक्यूटीटी ब्रोकर पोर्ट। पूर्णांक रूप में।
  • तीसरा एमक्यूटीटी ब्रोकर कनेक्शन एसटीए मोड से एपी मोड में स्विच करने से पहले बनाने का प्रयास करता है। पूर्णांक रूप में।
  • चौथा वाईफाई नेटवर्क एसएसआईडी। मुक्त रूप में पाठ।
  • 5वां वाईफाई नेटवर्क पासवर्ड। मुक्त रूप में पाठ।

जैसा कि ऊपर उल्लेख किया गया है, यदि IoT डिवाइस वाईफाई नेटवर्क के लिए वाईफाई स्टेशन के रूप में कनेक्ट करने में असमर्थ है, जिसका SSID और P/W एसडी कार्ड पर आयोजित secvals.txt में परिभाषित है, तो IoT डिवाइस एक एक्सेस प्वाइंट बन जाएगा। एक बार इस एक्सेस प्वाइंट से कनेक्ट होने के बाद यह 'स्पीच सिंथ कॉन्फ़िगरेशन होम पेज' पर काम करेगा जैसा कि ऊपर Pic 2 में दिखाया गया है (या तो 'SPEECHSVR.local' या आपके ब्राउज़र URL एड्रेस बार में 192.168.4.1 दर्ज करके)। यह होम पेज एक HTTP ब्राउज़र के माध्यम से IoT रेट्रो स्पीच सिंथेसिस डिवाइस को फिर से कॉन्फ़िगर करने की अनुमति देता है।

सक्रिय अवस्था में रिमोट एक्सेस

एक बार MQTT ब्रोकर से कनेक्ट होने के बाद MQTT विषय प्रकाशनों के माध्यम से डिवाइस को फिर से कैलिब्रेट और पुन: कॉन्फ़िगर करना दोनों संभव है। फ़ाइल calvals.txt के पास R/W एक्सेस है और secvals.txt में केवल राइट एक्सेस एक्सपोज़्ड है।

जैसा कि ऊपर उल्लेख किया गया है, एक बार सक्रिय मोड में 'SPEECHSVR.local' या 192.168.4.1 को अपने ब्राउज़र URL एड्रेस बार में दर्ज करके HTTP इंटरफ़ेस के माध्यम से स्पीच सिंथ को एक्सेस करना संभव है। यह HTTP आधारित इंटरफ़ेस स्पीच सिंथ के बुनियादी नियंत्रण की अनुमति देता है। चित्र 3, 4 और 5 उपलब्ध वेब पेजों को दिखाते हैं।

उपयोगकर्ता डिबग

बूट अनुक्रम के दौरान बाड़े के पीछे की ओर ले जाने वाला IoT डिवाइस ग्रीन सिस्टम निम्नलिखित डिबग फीडबैक देता है;

  • 1 लघु फ्लैश: एसडी कार्ड (secvals.txt) पर स्थित कोई कॉन्फ़िग फ़ाइल नहीं
  • 2 छोटी चमक: IoT डिवाइस वाईफाई नेटवर्क से कनेक्ट करने का प्रयास कर रहा है
  • निरंतर रोशनी: IoT डिवाइस MQTT ब्रोकर से कनेक्ट करने का प्रयास कर रहा है
  • बंद: डिवाइस सक्रिय है।

सक्रिय अवस्था में IoT रेट्रो स्पीच सिंथेसिस डिवाइस की कार्यक्षमता

एक बार सक्रिय अवस्था में ESP8266 निम्नलिखित कार्यों को कॉल करते हुए एक निरंतर लूप में प्रवेश करता है; टाइमर_अपडेट (), चेक टेम्परेचर एंड ह्यूमिडिटी () और हैंडलस्पीच ()। जिसका शुद्ध परिणाम उपयोगकर्ता को HTTP या MQTT इंटरफ़ेस के साथ प्रस्तुत करने के लिए डिज़ाइन किया गया है, मांग पर फोनेम के साथ अपने ऑन-बोर्ड भाषण प्रोसेसर को निर्बाध रूप से सेवा देता है और एमक्यूटीटी पर स्थानीय परिवेश पैरामीट्रिक मूल्यों को प्रकाशित करता है।

स्रोत कोड में पेलोड मूल्यों सहित सभी विषय सदस्यताओं और प्रकाशनों की एक व्यापक सूची शामिल है।

चरण 7: सेंसर अंशांकन

सेंसर अंशांकन
सेंसर अंशांकन

जब IoT डिवाइस चालू होता है, तो बूट अनुक्रम के भाग के रूप में 'cavals1.txt' और 'cavals2.txt' नाम की दो फ़ाइलें SD कार्ड से पढ़ी जाती हैं।

इन फाइलों की सामग्री अंशांकन स्थिरांक हैं जैसा कि ऊपर चित्र 1 में दर्शाया गया है।

  1. 'cavals1.txt': बाहरी AM2320 द्वारा उपयोग किया जाता है
  2. 'cavals2.txt': आंतरिक DHT22 द्वारा उपयोग किया जाता है

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

रिपोर्टिंग रणनीति

यह पैरामीटर निर्धारित करता है कि रिमोट सेंसर किसी भी परिवेशी पैरामीट्रिक परिवर्तन को स्थानीय रूप से कैसे रिपोर्ट करता है। यदि 0 के मान का चयन किया जाता है तो रिमोट सेंसर तापमान या आर्द्रता में देखे जाने वाले किसी भी बदलाव को हर बार संबंधित सेंसर को पढ़ने पर (लगभग हर 10 सेकंड में) प्रकाशित करेगा। कोई अन्य मान परिवर्तन के प्रकाशन में 1…60 मिनट की देरी करेगा। इस पैरामीटर को संशोधित करने से MQTT नेटवर्क ट्रैफ़िक के अनुकूलन की अनुमति मिलती है। यह ध्यान दिया जाना चाहिए कि DHT22 से तापमान और आर्द्रता डेटा सेंसर की सीमाओं के कारण वैकल्पिक रूप से पढ़ा जाता है।

तापमान अंशांकन

तापमान संवेदक को जांचने के लिए मैंने उसी प्रक्रिया का पालन किया जैसा कि यहां चरण 4 में बताया गया है, फिर से एक साधारण y=mx+c संबंध का उपयोग करते हुए। मैंने संदर्भ उपकरण के रूप में IoT तापमान, आर्द्रता सेंसर # 1 का उपयोग किया। सेंसर से मान डिग्री सेल्सियस में हैं।

आर्द्रता अंशांकन

जैसा कि मेरे पास स्थानीय परिवेश की आर्द्रता को सटीक रूप से रिकॉर्ड करने या यहां तक कि नियंत्रित करने का कोई साधन नहीं है, सेंसर को कैलिब्रेट करने के लिए मैंने यहां चरण 4 के समान दृष्टिकोण का उपयोग किया, फिर से सेंसर # 1 को संदर्भ के रूप में उपयोग किया। हालाँकि ऊपर कहा गया है, मुझे हाल ही में वेब पर एक उत्कृष्ट लेख मिला है जिसमें बताया गया है कि आर्द्रता सेंसर को कैसे जांचना है। मैं भविष्य में कभी भी इस दृष्टिकोण को आजमा सकता हूं। सेंसर से मान सापेक्ष आर्द्रता के% आयु में हैं।

चरण 8: एमक्यूटीटी विषय नामकरण सम्मेलन

MQTT विषय नामकरण सम्मेलन
MQTT विषय नामकरण सम्मेलन
MQTT विषय नामकरण सम्मेलन
MQTT विषय नामकरण सम्मेलन

जैसा कि पहले के एक निर्देशयोग्य (यहाँ) में उल्लेख किया गया है, मैं ऊपर चित्र 1 में उल्लिखित विषय नामकरण सम्मेलन पर बस गया।

अर्थात्, 'AccessMethod/DeviceType/WhichDevice/Action/SubDevice' यह सही नहीं है, लेकिन यह किसी दिए गए पैरामीट्रिक विषय के लिए सभी सेंसर आउटपुट देखने के लिए उपयोगी फ़िल्टर लागू करने की अनुमति देता है, इस प्रकार MQTTSpy के साथ ऊपर चित्र 2 में आसान तुलना की अनुमति देता है।

यह प्रोजेक्ट पहला उदाहरण है जहां एक ही उपकरण में एक ही प्रकार के प्रकाशन के एक से अधिक मूल स्रोत शामिल हैं। अर्थात। आंतरिक और बाहरी उप-उपकरणों से दो तापमान/आर्द्रता सेंसर।

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

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

नोट: यदि आप सुनिश्चित नहीं हैं कि MQTTSpy का उपयोग कैसे करें, तो यहां देखें 'MQTT ब्रोकर की स्थापना। भाग 2: IoT, गृह स्वचालन'

चरण 9: डिबग और दोष ढूँढना

डिबग और फॉल्ट फाइंडिंग
डिबग और फॉल्ट फाइंडिंग

बड़े पैमाने पर, मेरे शौक परियोजनाओं के लिए, जहां संभव हो मैं एक प्रतिनिधि हार्डवेयर प्रोटोटाइप का निर्माण करता हूं जिसके खिलाफ सॉफ्टवेयर विकसित किया जाता है, सॉफ्टवेयर को अंतिम प्लेटफॉर्म हार्डवेयर में एकीकृत करते समय मुझे शायद ही कभी कोई समस्या होती है।

हालाँकि, इस अवसर पर मुझे एक अजीब आंतरायिक गलती का पता चला, जिससे कुछ स्वर निकलेंगे लेकिन अन्य नहीं।

स्पीच सिंथ पीसीबी के कुछ शुरुआती डिबगिंग के बाद एक Arduino Uno से सोर्स फोनेम्स का उपयोग करना और यह साबित करना कि यह बोर्ड काम कर रहा था, मैंने IoT PCB और स्पीच सिंथ पीसीबी के बीच I2C लाइनों के लिए एक दायरा लिया। ऊपर Pic 1 देखें।

आप निशान पर I2C सिग्नल के लिए 'देखा दांत'/घातीय किनारे स्पष्ट रूप से देख सकते हैं।

यह आमतौर पर एक संकेत है कि I2C पुल अप मान बहुत अधिक हैं, जिससे लाइन वोल्टेज को एक खुले नाली सर्किट में तेजी से ठीक होने से रोका जा सकता है।

एक 'काम के आसपास' के रूप में मैंने दो श्रीमती पुल अप रेसिस्टर्स R12 और R13 को 10K के साथ 4K7 देने के लिए समानांतर किया और निश्चित रूप से स्पीच सिंथ 'जीवन में फट गया'

इस प्रकार की विफलता इस प्रकार की परियोजनाओं को डीबग करते समय क्या हो सकती है, इसके विपरीत है। आम तौर पर eBay से खरीदे गए अधिकांश I2C आधारित मॉड्यूल 10K या 4K7 पुल अप के साथ आते हैं जो पहले से ही फिट हैं। यदि आप >5 I2C मॉड्यूल का उपयोग करने का इरादा रखते हैं, प्रत्येक 4K7 पुल अप के साथ, तो कुल भार 940R है जो मास्टर के आउटपुट चरण के लिए बहुत अच्छा होगा। फिक्स प्रत्येक मॉड्यूल पर पुल अप रेसिस्टर्स के एक सेट को छोड़कर सभी को डी-सोल्डर करना होगा। अधिमानतः वह जो गुरु से शारीरिक रूप से सबसे दूर हो।

I2C उपकरणों के साथ इलेक्ट्रॉनिक्स डिजाइन करते समय एक उपयोगी टिप और ध्यान में रखने योग्य।

चरण 10: डिजाइन का परीक्षण

Image
Image
डिजाइन का परीक्षण
डिजाइन का परीक्षण
डिजाइन का परीक्षण
डिजाइन का परीक्षण

दो पद्धतियों का उपयोग करके परीक्षण किया गया था; मैनुअल और स्वचालित।

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

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

दूसरा, स्वचालित दृष्टिकोण अपनाया गया क्योंकि स्रोत कोड अधिक जटिल हो गया (>3700 लाइनें)। बढ़ी हुई जटिलता का अर्थ है लंबे समय तक मैन्युअल परीक्षण चक्र और अधिक जटिल परीक्षण। परीक्षण की विश्वसनीयता, नियतिवाद और गुणवत्ता में सुधार के लिए, स्वचालित परीक्षण का उपयोग एक अजगर परीक्षण कार्यकारी (चित्र 1) के माध्यम से किया गया था। इस निर्देश में चरण # 10 देखें कि स्वचालित परीक्षण कैसे शुरू किया गया था। इस निर्देश में प्रयुक्त स्वचालित परीक्षणों की एक पूरी प्रति यहाँ उपलब्ध है।

ऑपरेशन में स्वचालित परीक्षण अनुक्रम का एक वीडियो ऊपर दिखाया गया है। अनुक्रम निम्नलिखित चरणों को निष्पादित करता है;

  • MQTT के माध्यम से स्वचालित

    • MQTT बैकबोन से जुड़ें और 'सिस्टम रेडी' की घोषणा करें
    • व्यायाम ग्रीन एलईडी
    • व्यायाम लाल एलईडी
    • व्यायाम ब्लू एलईडी
    • चेक डिजिटल पॉट काम करता है
    • फोनेम्स का उपयोग करके बोलें
    • फोनमेस के लिए हेक्स कोड का उपयोग करके बोलें
    • फिक्स वाक्यांशों के लिए कोड का उपयोग करके बोलें
    • थोड़ा सा डॉ हू और डेल्क्स मज़ा।
  • मैन्युअल रूप से HTTP / क्रोम के माध्यम से

    • व्यायाम ब्लू एलईडी
    • व्यायाम लाल एलईडी
    • निश्चित वाक्यांश बोलें 'स्टीवन क्विन', 'सिस्टम रेडी' और 'हैलो वर्ल्ड'
    • HTTP सर्वर लें, सेवा करें

      • स्पीच सिंथ चिप पर विवरण
      • एमक्यूटीटी विवरण

चरण 11: निष्कर्ष

निष्कर्ष
निष्कर्ष

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

सॉफ्टवेयर अच्छी तरह से काम करता है, IoT डिवाइस पिछले कुछ समय से बिना किसी समस्या के स्थिर संचालन में है।

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

मैंने वर्ड कमांड ('WFD/SpeechTH/1/Word/Command') को लागू करना बंद कर दिया क्योंकि मेरे पास समय खत्म हो गया था और मुझे आगे बढ़ने की जरूरत थी। जब मैं एक MySQL डेटाबेस सेट करता हूं तो मैं इसे फिर से देख सकता हूं। अभी मैं InfluxDB का उपयोग कर रहा हूँ।

चरण 12: प्रयुक्त संदर्भ

इस निर्देश को एक साथ रखने के लिए निम्नलिखित स्रोतों का उपयोग किया गया था; IoT रेट्रो स्पीच सिंथेसिस डिवाइस के लिए स्रोत कोड (इसमें सब कुछ की एक प्रति है)

https://github.com/SteveQuinn1/IoT_Retro_Speech_Synthesis_SP0256_AL2

PubSubClient.h

  • द्वारा: निक ओ'लेरी
  • उद्देश्य: डिवाइस को किसी दिए गए ब्रोकर के साथ MQTT विषयों को प्रकाशित या सदस्यता लेने में सक्षम बनाता है
  • से:

डीएचटी.एच

  • द्वारा: एडफ्रूट
  • उद्देश्य: DHT11DHT22, आदि के लिए Arduino पुस्तकालय अस्थायी और आर्द्रता सेंसर
  • से:

Adafruit_AM2320.h/Adafruit_Sensor.h

  • द्वारा: एडफ्रूट
  • उद्देश्य: AM2320, आदि के लिए Arduino पुस्तकालय अस्थायी और आर्द्रता सेंसर
  • से:

MCP4561_DIGI_POT.h

  • द्वारा: स्टीव क्विन
  • उद्देश्य: MCP4561 डिजिटल पोटेंशियोमीटर के लिए Arduino लाइब्रेरी
  • से:

Adafruit_MCP23017.h

  • द्वारा: स्टीव क्विन
  • उद्देश्य: MCP23017 I2C पोर्ट एक्सपैंडर के लिए Arduino लाइब्रेरी। यह Adafruit-MCP23017-Arduino-Library से Adafruit का GIThub कांटा है।
  • से:

मजे के लिए

https://haynes.com/en-gb/

पीसीबी निर्माण

https://jlcpcb.com/

अतिरिक्त Arduino लाइब्रेरी स्थापित करना

https://www.arduino.cc/en/Guide/Libraries

ह्यूमिडिटी सेंसर को कैसे चेक और कैलिब्रेट करें

https://www.allaboutcircuits.com/projects/how-to-check-and-check-a-humidity-sensor/?utm_source=All+About+Circuits+Members&utm_campaign=ffeee38e54-EMAIL_CAMPAIGN_2017_12_06&utm_medium=1_25529c /

SP0256-AL2 डेटाशीट

https://www.futurebots.com/spo256.pdf

भाषण चिप्स की दुकान

https://www.speechchips.com/shop/

Arduino प्रतियोगिता 2019
Arduino प्रतियोगिता 2019
Arduino प्रतियोगिता 2019
Arduino प्रतियोगिता 2019

Arduino प्रतियोगिता 2019 में उपविजेता

सिफारिश की: