IOT

स्टोन डिस्प्ले का उपयोग करके घड़ी और गृह स्वचालन

विषय-सूची

  1. Description
  2. जीयूआई डिजाइन

3। सर्किट आरेख

  1. कोड
  2. वीडियो

Description

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

इसके लिए हम उपयोग कर रहे हैं टीएफटी डिस्प्ले (स्टोन-एचएमआई), इस डिस्प्ले में एक सॉफ्टवेयर है जो एक GUI सॉफ़्टवेयर है जिसकी मदद से हम इंटरफ़ेस डिज़ाइन करने जा रहे हैं जिसमें सेक्शन क्लॉक और ऑटोमेशन दोनों शामिल होंगे। GUI सॉफ़्टवेयर डाउनलोड करें यहां क्लिक करे

क्लॉक पार्ट डिजाइनिंग:-

आइए पहले घड़ी के हिस्से को डिज़ाइन करें, पहले हमें उन सभी छवियों को जोड़ना होगा जो फ़ोल्डर में दी गई हैं क्लिक करें यहाँ ।

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

'1' के लिए - 0031

'2' के लिए - 0031

'3' के लिए - 0031

'4' के लिए - 0031

'5' के लिए - 0031

'6' के लिए - 0031

'7' के लिए - 0031

'8' के लिए - 0031

'9' के लिए - 0031

'0' के लिए - 0030

'ओके' के लिए- 00F1

उसके बाद सभी बटनों के लिए छवि संख्या-7 के रूप में बटन प्रभाव जोड़ें ताकि इस भाग द्वारा घड़ी की सेटिंग की जा सके। घड़ी का हाथ बनाने के लिए आगे बढ़ते हैं।

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

ऑटोमेशन पार्ट डिजाइनिंग :-

आइए इसके लिए स्वचालन भाग को डिज़ाइन करें, हमें एक पते पर विशेष कुंजी मान भेजने के लिए Arduino की आवश्यकता है, यहां हम सभी कुंजी मान के लिए '0001' का उपयोग कर रहे हैं। फैन (चालू) बटन के लिए हम '0001' कुंजी मान भेज रहे हैं और फैन (ऑफ) के लिए ) हम '0002' कुंजी मान भेज रहे हैं इसी तरह हम सभी उपकरणों के लिए सभी विशेष मूल्य के लिए भेज रहे हैं। यहां हमने घड़ी जीयूआई पर स्विच करने के लिए एक बटन भी जोड़ा है जो इस इंटरफेस से घड़ी इंटरफेस में जाने में मदद करेगा।

पेज स्विच के लिए हम 'बटन' का उपयोग कर रहे हैं जो कि बाईं ओर रखा गया है और ऑटोमेशन बटन के लिए हम 'रिटर्न प्रेस की वैल्यू' फ़ंक्शन का उपयोग कर रहे हैं, जिसमें दो पैरामीटर हैं, पहला एड्रेस वैल्यू है और दूसरा महत्वपूर्ण वैल्यू है जैसा कि हमने ऊपर बताया है कि हम हैं प्रत्येक स्वचालन बटन के लिए भिन्न भिन्न कुंजी मान का उपयोग करना।

सर्किट आरेख

जैसा कि आप कनेक्शन में देख सकते हैं कि तीन एलईडी लाइट -1, लाइट -2 हैं और यहां फैन के लिए हम केवल एलईडी का उपयोग कर रहे हैं लेकिन आप वास्तविक उपकरणों को इससे जोड़ सकते हैं। लाइट -1 Arduino के पिन-डी 6 से कनेक्ट करें, लाइट- 2 Arduino के पिन-D7 से कनेक्ट करें, इसी तरह का फैन Arduino के साथ D5 से कनेक्ट होता है। और सर्किट आरेख के अनुसार Rx और Tx के लिए कनेक्शन करें। यहां हमने Tx को पिन -2 और Rx को Arduino के पिन -3 के साथ जोड़ा है Arduino कोड के अनुसार। आइए आगे बढ़ते हैं कि यह कोड के साथ कैसे काम करता है।

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

कोड कैसे काम कर रहा है, यह जानने के लिए आइए आगे बढ़ते हैं। 

कोड :- 

#शामिल // सॉफ्टवेयर सीरियल लाइब्रेरी

सॉफ्टवेयर सीरियल मैक्स232(2,3);

चार डेटा; 

स्ट्रिंग मिस्ट्रिंग;

इंट एफ = 5; // फैन के लिए पिन

इंट एल1 = 6; // प्रकाश के लिए पिन-1

इंट एल2 = 7; // प्रकाश के लिए पिन-2

व्यर्थ व्यवस्था ()

{

सीरियल.बेगिन (115200); // यहां बॉड्रेट 115200 है

max232.begin (115200);

पिनमोड (एफ, आउटपुट);     

डिजिटलवाइट (एफ, लो); 

पिनमोड (एल 1, आउटपुट);    

डिजिटलवाइट (एल 1, कम);

पिनमोड (एल 2, आउटपुट);    

डिजिटलवाइट (एल 2, कम);

}

शून्य लूप ()

{

अगर (अधिकतम 232.उपलब्ध ()> 0)

 {

   डेटा = अधिकतम 232. पढ़ें ();

   मिस्ट्रिंग = मिस्ट्रिंग + बाइट (डेटा); 

   देरी (10);

 }

और अगर (mystring.endsWith("101")) // फैन ऑन के लिए कंडीशन

  {

    मिस्ट्रिंग = ""; 

   डिजिटलवाइट (एफ, हाई);

  }

और अगर (mystring.endsWith(“102”)) // फैन ऑफ के लिए कंडीशन

  {

   मिस्ट्रिंग = ""; 

   डिजिटलवाइट (एफ, लो);

  }

और अगर (mystring.endsWith(“103”))//लाइट-1 के लिए शर्त चालू

  {

  मिस्ट्रिंग = ""; 

  डिजिटलवाइट (एल 1, हाई);

  }

और अगर (mystring.endsWith(“104”)) // लाइट -1 के लिए शर्त बंद

  {

   मिस्ट्रिंग = ""; 

   डिजिटलवाइट (एल 1, कम);

  }

और अगर (mystring.endsWith(“105”))//लाइट-2 के लिए शर्त चालू

  {

  मिस्ट्रिंग = ""; 

  डिजिटलवाइट (एल 2, हाई);

  }

और अगर (mystring.endsWith(“106”)) // लाइट -2 के लिए शर्त बंद

  {

   मिस्ट्रिंग = ""; 

   डिजिटलवाइट (एल 2, कम);

  }

और अगर (mystring.endsWith(“107”))//सभी उपकरणों के लिए शर्त चालू

  {

   मिस्ट्रिंग = ""; 

   डिजिटलवाइट (एल 1, हाई);

   डिजिटलवाइट (एल 2, हाई);

   डिजिटलवाइट (एफ, हाई);

  }

और अगर (mystring.endsWith(“108”)) // सभी उपकरणों के लिए शर्त OFF

  {

   मिस्ट्रिंग = ""; 

   डिजिटलवाइट (एल 1, कम);

   डिजिटलवाइट (एल 2, कम);

   डिजिटलवाइट (एफ, लो);

  }

}

काम में हो :-

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

शून्य लूप अनुभाग में उपकरणों के लिए चार शर्तें हैं। पहली शर्त पंखे के लिए है और यहां हम चालू स्थिति के लिए '0001' कुंजी मान और '0002' पते पर '0001' बंद स्थिति के लिए '1' भेज रहे हैं। यह पता है सभी उपकरणों के लिए समान। दूसरे डिवाइस के लिए जो लाइट -0003 के लिए है, हम '0004' ऑन कंडीशन के लिए और '2' ऑफ कंडीशन के लिए भेज रहे हैं, इसी तरह लाइट -0005 '0006' ऑन के लिए और 'XNUMX' ऑफ कंडीशन के लिए भेज रहे हैं। इस तरह ये स्थितियां अलग-अलग डिवाइस के लिए काम कर रही हैं।

एक बार में सभी उपकरणों को बंद या चालू करने के लिए एक और शर्त है, इसके लिए हम चालू के लिए '0007' और बंद के लिए '0008' का उपयोग कर रहे हैं।

आउटपुट वीडियो:-

यह इस वीडियो में इस प्रोजेक्ट का आउटपुट वीडियो है जो पहले घड़ी की स्थापना दिखा रहा है और ऑटोमेशन का काम कर रहा है जैसा कि आप वीडियो में देख सकते हैं।

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

कोड

// इस परियोजना के बारे में अधिक जानकारी के लिए देखें:- wwww.electrocircuit.net //

#शामिल

सॉफ्टवेयर सीरियल मैक्स232(2,3);

चार डेटा; 

स्ट्रिंग मिस्ट्रिंग;

इंट एफ = 5; 

इंट एल1 = 6; 

इंट एल2 = 7;  

व्यर्थ व्यवस्था ()

{

Serial.begin (115200); 

max232.begin (115200);

पिनमोड (एफ, आउटपुट); /////////लाल////////

डिजिटलवाइट (एफ, लो); 

पिनमोड (एल 1, आउटपुट); ////////हरा///////

डिजिटलवाइट (एल 1, कम);

पिनमोड (एल 2, आउटपुट); ///////नीला/////////

डिजिटलवाइट (एल 2, कम);

}

शून्य लूप ()

{

अगर (अधिकतम 232.उपलब्ध ()> 0)

 {

   डेटा = अधिकतम 232. पढ़ें ();

   मिस्ट्रिंग = मिस्ट्रिंग + बाइट (डेटा); 

   देरी (10);

 }

और अगर (mystring.endsWith(“101”))

  {

    मिस्ट्रिंग = ""; 

   डिजिटलवाइट (एफ, हाई);

  }

और अगर (mystring.endsWith(“102”))

  {

   मिस्ट्रिंग = ""; 

   डिजिटलवाइट (एफ, लो);

  }

और अगर (mystring.endsWith(“103”))

  {

  मिस्ट्रिंग = ""; 

  डिजिटलवाइट (एल 1, हाई);

  }

और अगर (mystring.endsWith(“104”))

  {

   मिस्ट्रिंग = ""; 

   डिजिटलवाइट (एल 1, कम);

  }

और अगर (mystring.endsWith(“105”))

  {

  मिस्ट्रिंग = ""; 

  डिजिटलवाइट (एल 2, हाई);

  }

और अगर (mystring.endsWith(“106”))

  {

   मिस्ट्रिंग = ""; 

   डिजिटलवाइट (एल 2, कम);

  }

और अगर (mystring.endsWith(“107”))

  {

   मिस्ट्रिंग = ""; 

   डिजिटलवाइट (एल 1, हाई);

   डिजिटलवाइट (एल 2, हाई);

   डिजिटलवाइट (एफ, हाई);

  }

और अगर (mystring.endsWith(“108”))

  {

   मिस्ट्रिंग = ""; 

   डिजिटलवाइट (एल 1, कम);

   डिजिटलवाइट (एल 2, कम);

   डिजिटलवाइट (एफ, लो);

  }

}

स्रोत: प्लेटो डेटा इंटेलिजेंस