विषयसूची:

होम अलर्ट: बड़े डिस्प्ले पर Arduino + क्लाउड मैसेजिंग: 14 कदम (चित्रों के साथ)
होम अलर्ट: बड़े डिस्प्ले पर Arduino + क्लाउड मैसेजिंग: 14 कदम (चित्रों के साथ)

वीडियो: होम अलर्ट: बड़े डिस्प्ले पर Arduino + क्लाउड मैसेजिंग: 14 कदम (चित्रों के साथ)

वीडियो: होम अलर्ट: बड़े डिस्प्ले पर Arduino + क्लाउड मैसेजिंग: 14 कदम (चित्रों के साथ)
वीडियो: Temperature and Humidity Monitor using Arduino IOT Cloud and ESP8266 2024, नवंबर
Anonim
होम अलर्ट: बड़े डिस्प्ले पर Arduino + क्लाउड मैसेजिंग
होम अलर्ट: बड़े डिस्प्ले पर Arduino + क्लाउड मैसेजिंग
होम अलर्ट: बड़े डिस्प्ले पर Arduino + क्लाउड मैसेजिंग
होम अलर्ट: बड़े डिस्प्ले पर Arduino + क्लाउड मैसेजिंग
होम अलर्ट: बड़े डिस्प्ले पर Arduino + क्लाउड मैसेजिंग
होम अलर्ट: बड़े डिस्प्ले पर Arduino + क्लाउड मैसेजिंग

मोबाइल फोन के युग में, आप उम्मीद करेंगे कि लोग 24/7 आपकी कॉल का जवाब देंगे।

या नहीं। एक बार जब मेरी पत्नी घर पहुंच जाती है, तो फोन उसके हैंड बैग में दब जाता है, या उसकी बैटरी सपाट हो जाती है। हमारे पास लैंड लाइन नहीं है। बरसात की रात में ट्रेन स्टेशन से लिफ्ट घर मांगने के लिए फोन करना या एसएमएस करना या यह पूछने के लिए कि क्या मेरी चाबियां अभी भी मेरे डेस्क पर हैं, सचमुच इच्छाधारी सोच है।

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

होम अलर्ट इन भागों से बना है:

  • एक फ्रीट्रॉनिक्स डॉट मैट्रिक्स डिस्प्ले, जो 16x32 एलईडी की एक सरणी है। वे अलग-अलग रंगों में आते हैं, लेकिन मैं इस बात पर जोर देने के लिए लाल रंग का उपयोग करता हूं कि यह गैजेट "महत्वपूर्ण" सूचनाओं के लिए है।
  • ईथरनेट शील्ड के साथ Arduino Uno।
  • एक रीयल-टाइम क्लॉक ब्रेकआउट, जैसे यह या यह ।
  • एक पीजो बजर
  • एक DHT22 तापमान और आर्द्रता सेंसर।

होम अलर्ट को एक वेब पेज के माध्यम से नियंत्रित किया जाता है जो क्लाउड-आधारित एप्लिकेशन होस्ट हेरोकू पर होस्ट किया जाता है। वेब पेज को रूबी में सिनात्रा वेब ऐप फ्रेमवर्क और रेडिस की-वैल्यू स्टोर का उपयोग करके कोडित किया गया है।

मुख पृष्ठ पर एक नज़र डालें (इस चरण में पहली संलग्न छवि में दिखाएं), जहां प्रपत्र उपयोगकर्ता के एक नए संदेश की प्रतीक्षा कर रहा है।

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

आप जिस संदेश को प्रदर्शित करना चाहते हैं वह दूसरे क्षेत्र में जाता है। आप जो भी टेक्स्ट टाइप करेंगे वह डीएमडी में प्रदर्शित होगा।

यदि आप कुछ शोर करना चाहते हैं, तो हाँ की जाँच करें! चेकबॉक्स, और बजर निश्चित रूप से आस-पास के किसी भी व्यक्ति का ध्यान आकर्षित करेगा।

इस लेख में, मैं आपको दिखाऊंगा कि कैसे Arduino हार्डवेयर और सॉफ्टवेयर, साथ ही सिनात्रा मिनी वेब एप्लिकेशन दोनों के लिए अपना होम अलर्ट सिस्टम बनाया जाए।

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

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

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

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

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

शारीरिक रूप से, यह डिस्प्ले 320mm (W), 160mm (H) और 14mm (D) को मापता है।

बैक पैनल में बाहरी शक्ति के लिए कनेक्टर होते हैं, कम से कम 4Amps क्षमता के साथ 5V, Arduino कनेक्टर HUB1 के रूप में चिह्नित होता है, और विपरीत दिशा में डेज़ी-चेनिंग अतिरिक्त डिस्प्ले के लिए कनेक्टर होता है। प्रलेखन के अनुसार, आप चार डीएमडी तक डेज़ी-चेन कर सकते हैं।

DMD को Arduino Uno द्वारा नियंत्रित किया जाता है। फ़्रीट्रॉनिक्स एक बहुत ही सुविधाजनक "डीएमडीसीओएन" कनेक्टर प्रदान करता है जो सीधे सही एसपीआई और डेटा पिन पर स्नैप करता है।

DMD के अलावा, मैंने एक Arduino Uno, एक इथरनेट शील्ड, एक रीयल-टाइम क्लॉक ब्रेकआउट, एक बजर और एक DHT22 का उपयोग किया। इन सभी घटकों के लिए, मैंने अपने उदमी पाठ्यक्रम में उनके संचालन का वर्णन करते हुए व्याख्यान तैयार किए हैं। (बेशर्म आत्म-प्रचार: arduinosbs.com पर मेरी ईमेल सूची में साइन अप करें और एक कूपन प्राप्त करें जो आपको सभी 55 व्याख्यानों तक छूट प्रदान करता है)।

रीयल-टाइम घड़ी, DS18072 घड़ी IC पर आधारित एक ब्रेकआउट, एक I2C डिवाइस है, इसलिए यह Uno के एनालॉग पिन 1 और 2 से जुड़ा है, जो I2C बस को लागू करता है।

बजर डिजिटल पिन 3 से जुड़ा है, जहां से मैं इसे टोन () फ़ंक्शन का उपयोग करके नियंत्रित करता हूं।

DHT22 सेंसर डिजिटल पिन 2 से जुड़ा है। 5V लाइन और डेटा लाइन के बीच 10KΩ पुल-अप रेसिस्टर को जोड़ने के लिए सावधान रहें।

चरण 2: Arduino स्केच

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

यहाँ स्केच है, एम्बेडेड टिप्पणियों के साथ (पीडीएफ अटैचमेंट देखें)।

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

कृपया संलग्न पीडीएफ फाइल को डाउनलोड करें और पढ़ें, इसमें एम्बेडेड टिप्पणियां हैं जो इसके संचालन का वर्णन करती हैं।

चरण 3: सिनात्रा मंच लेता है

सिनात्रा मंच लेता है!
सिनात्रा मंच लेता है!

वेब साइट और वेब सेवाएं बनाने के कई तरीके हैं। वेब-सहायक पुस्तकालयों वाली प्रोग्रामिंग भाषाओं से लेकर पूर्ण-विशेषताओं वाले ढांचे तक, इस कार्य के लिए किसी एक को चुनना भ्रामक और कठिन हो सकता है।

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

सिनात्रा क्या है, और यह इतना अच्छा विकल्प क्यों है? मुझे खुशी है कि आपने पूछा!

सिनात्रा वेब अनुप्रयोगों के तेजी से विकास के लिए एक भाषा है। यह रूबी के शीर्ष पर बनाया गया है, जो एक बहुत ही लोकप्रिय और अभिव्यंजक सामान्य प्रयोजन स्क्रिप्टिंग भाषा है। आप सुन सकते हैं कि सिनात्रा को "डीएसएल", एक डोमेन विशिष्ट भाषा के रूप में संदर्भित किया जा रहा है। यहां का डोमेन वेब है। सिनात्रा के लिए बनाए गए कीवर्ड (शब्द) और सिंटैक्स ऐसा है कि यह लोगों के लिए वेब एप्लिकेशन बनाना आसान और त्वरित बनाता है।

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

सिनात्रा दुनिया के रेल और Djangos की तुलना में अवधारणात्मक रूप से बहुत सरल है। आप एक वेब एप्लिकेशन के साथ उठ सकते हैं और चल सकते हैं जो मिनटों में आपके Arduino के साथ इंटरैक्ट कर सकता है।

मैं एक उदाहरण के साथ प्रदर्शित करूंगा। यहाँ एक सिनात्रा न्यूनतम वेब ऐप कैसा दिखता है (अभी के लिए निम्नलिखित को पढ़ें, वास्तव में अपने कंप्यूटर पर ऐसा न करें क्योंकि आपके पास अभी तक इसके लिए पूर्वापेक्षाएँ सेटअप नहीं हैं):

एक फ़ाइल में, इसे my_app.rb कहते हैं, यह टेक्स्ट जोड़ें:

आवश्यकता है 'sinatra'get '/' do "Hello, world!"end

कमांड लाइन पर, इस तरह से ऐप शुरू करें:

रूबी my_app.rb

आपका ऐप शुरू हो जाएगा, और आपको यह टेक्स्ट कंसोल में दिखाई देगा:

peter@ubuntu-dev:~/arduino/sinatra_demo$ रूबी my_app.rbPuma 2.8.1 प्रारंभ…* न्यूनतम थ्रेड्स: 0, अधिकतम थ्रेड्स: 16* पर्यावरण: विकास* tcp पर सुनना: ४५६७== सिनात्रा/१.४.4 ने प्यूमा से बैकअप के साथ विकास के लिए 4567 पर मंच लिया है

ऐप अब क्लाइंट अनुरोध प्राप्त करने के लिए तैयार है। एक ब्राउज़र खोलें, इसे https://localhost:4567 पर इंगित करें, और यही आप देखेंगे (संलग्न स्क्रीनशॉट देखें)।

यह एक फ़ाइल में कोड की चार सरल पंक्तियाँ हैं। इसके विपरीत, रेल को सौ से अधिक फाइलों की आवश्यकता होती है, जो केवल ढांचे की आवश्यकताओं को पूरा करने के लिए उत्पन्न होती हैं। मुझे गलत मत समझो, मुझे रेल पसंद है, लेकिन वास्तव में?…

तो, सिनात्रा सरल है, और दौड़ने में तेज है। मैं मान लूंगा कि आप रूबी, सिनात्रा और क्लाउड पर एप्लिकेशन परिनियोजन के बारे में कुछ नहीं जानते हैं, इसलिए अगले भाग में मैं आपको क्लाउड पर आपकी Arduino वेब सेवा की तैनाती के लिए शून्य से कदम दर कदम आगे बढ़ाऊंगा।

चरण 4: अपनी विकास मशीन सेटअप करें

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

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

चरण 5: मैक या लिनक्स पर रूबी

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

curl -sSL https://get.rvm.io | बैश-एस स्थिर --रूबी

बैठो, वापस आओ, आराम करो, और आरवीएम और रूबी के डाउनलोड, संकलन और स्थापना के पूरा होने की प्रतीक्षा करें।

चरण 6: विंडोज़ पर रूबी

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

चरण 7: अपनी रूबी जांचें और सेट करें

लेखन के समय, नवीनतम स्थिर रूबी रिलीज़ 2.1.1.p76 है। आप इसे टाइप करके आरवीएम के साथ स्थापित संस्करण की जांच कर सकते हैं:

आरवीएम जानकारी

आरवीएम और रूबी के बारे में बहुत सारी जानकारी दिखाई देगी। मेरे मामले में, यह रूबी अनुभाग है:

रूबी: दुभाषिया: "रूबी" संस्करण: "२.१.१पी७६" तिथि: "२०१४-०२-२४" प्लेटफॉर्म: "एक्स ८६_६४-लिनक्स" पैचलेवल: "२०१४-०२-२४ संशोधन ४५१६१" फुल_वर्जन: "रूबी २.१.१पी७६ (२०१४) -02-24 संशोधन 45161) [x86_64-linux]"

मैं अनुशंसा करता हूं कि आप रूबी 2.1.1 का भी उपयोग करें, इसलिए यदि आप उससे पुराना कुछ भी देखते हैं, तो इस तरह अपग्रेड करें:

आरवीएम 2.1.1 स्थापित करें

यह रूबी 2.1.1 स्थापित करेगा। RVM प्रोजेक्ट साइट में RVM के बारे में और आपके रूबी इंस्टॉलेशन को प्रबंधित करने के तरीके के बारे में बहुत सारी जानकारी है।

चरण 8: सिनात्रा स्थापित करें (सभी प्लेटफ़ॉर्म)

रूबी में, कोड को "जेम्स" नामक पैकेज के रूप में साझा किया जाता है। सिनात्रा बनाने वाला कोड आपके कंप्यूटर पर इस तरह से एक रत्न के रूप में स्थापित किया जा सकता है:

मणि सिनात्रा स्थापित करें

यह लाइन सभी कोड और दस्तावेज़ प्राप्त करेगी और इसे आपके कंप्यूटर पर स्थापित करेगी।

चरण 9: मैक या लिनक्स पर रेडिस

मैक या लिनक्स पर रेडिस सेट करना आसान है। प्रक्रिया को रेडिस वेब साइट पर समझाया गया है। खोल टर्मिनल खोलें, और इन आदेशों में टाइप करें:

$ wget https://download.redis.io/releases/redis-2.8.7.tar…$ tar xzf redis-2.8.7.tar.gz$ cd redis-2.8.7$ मेक

टाइप करके रेडिस चलाएँ:

$ स्रोत/रेडिस-सर्वर

… और आपका काम हो गया!

चरण 10: विंडोज़ पर रेडिस

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

चरण 11: वेब सेवा एप्लिकेशन बनाएं

वेब सेवा एप्लिकेशन बनाएं
वेब सेवा एप्लिकेशन बनाएं

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

यहाँ रूबी कोड है, सभी " web.rb " नामक एक ही फ़ाइल में (यह कोड Github पर उपलब्ध है)।

महत्वपूर्ण: संलग्न पीडीएफ फाइल को डाउनलोड करें और पढ़ें, इसमें विस्तृत एम्बेडेड टिप्पणियां हैं (कृपया जारी रखने से पहले इसे करें!)

अब आप अपना होम अलर्ट सिस्टम आज़मा सकते हैं। अपने स्केच में, अपने विकास मशीन और अपने विकास सिनात्रा सर्वर के लिए पोर्ट नंबर को इंगित करने के लिए वेबसाइट और वेबपेज स्थिरांक बदलें। मेरे मामले में, मेरे पास आईपी 172.16.115.136 पर एक विकास मशीन है, और विकास सिनात्रा सर्वर पोर्ट 5000 को सुन रहा है, इसलिए मेरी स्केच सेटिंग्स हैं:

# परिभाषित करें HW_ID "123"#वेबसाइट परिभाषित करें "172.16.115.136:5000"#वेबपेज परिभाषित करें "/get_message/"

यह आईपी पता केवल मेरे होम नेटवर्क के उपकरणों के लिए उपलब्ध है।

HW_ID सेटिंग "हार्डवेयर आईडी" का प्रतिनिधित्व करती है, यानी वह आईडी जिससे DMD को नियंत्रित करने वाला Arduino खुद को सिनात्रा एप्लिकेशन में पहचान लेगा। यह एक बहुत ही बुनियादी प्रकार का प्रमाणीकरण है। वेब एप्लिकेशन प्रदान किए गए HW_ID के आधार पर एक Arduino को एक संदेश सौंपेगा जो इसके लिए पूछेगा। आपके पास समान HW_ID वाले अनेक उपकरण हो सकते हैं, इस स्थिति में सभी उपकरण समान संदेश प्रदर्शित करेंगे। यदि आप "गोपनीयता" चाहते हैं, तो बहुत सारे यादृच्छिक वर्णों वाली एक आईडी चुनें, जिसका अन्य लोग अनुमान नहीं लगा पाएंगे। साथ ही सावधान रहें, कोई संचार एन्क्रिप्टेड नहीं है।

अब आगे बढ़ें और अपना सिनात्रा ऐप शुरू करें, इसे टाइप करें (मान लें कि आप सिनात्रा प्रोजेक्ट फ़ोल्डर में हैं):

रूबी web.rb

… और आप कुछ इस तरह देखेंगे (कुछ विवरण भिन्न हो सकते हैं, जब तक यह क्रैश नहीं होता, आप ठीक हैं):

10:42:18 वेब.1 | 4911910:42:18 वेब.1 पिड के साथ शुरू हुआ | प्यूमा 2.8.1 प्रारंभ…10:42:18 वेब.1 | * न्यूनतम धागे: 0, अधिकतम धागे: 1610:42:18 वेब.1 | *पर्यावरण: विकास10:42:18 वेब.1 | * टीसीपी पर सुनना: //0.0.0.0:5000

अपने वेब ब्राउज़र को उस स्थान पर इंगित करें जिसे सर्वर सुन रहा है, और आप इसे देखेंगे (दूसरा अनुलग्नक देखें)।

अपने स्केच को Arduino पर अपलोड करें, सुनिश्चित करें कि यह आपके स्थानीय नेटवर्क से जुड़ा है। यदि सब कुछ ठीक रहा, तो Arduino आपकी वेब सेवा को हर मिनट में एक बार मतदान करेगा। इसे दिखाने के लिए एक संदेश दें: HW कोड फ़ील्ड में, उसी ID को टाइप करें जिसे आपने स्केच में HW_ID स्थिरांक के लिए सेट किया है। "आपका संदेश" फ़ील्ड में कुछ भी टाइप करें, और "बज़?" चेकबॉक्स।

सबमिट करें, एक मिनट प्रतीक्षा करें, और अपना संदेश DMD में प्रदर्शित होते हुए देखें!

चरण 12: हरोकू का उपयोग करके क्लाउड पर तैनात करें

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

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

* config.ru: यह हरोकू को बताता है कि किस फाइल में एप्लिकेशन है। यहाँ सामग्री है:

आवश्यकता './web'run सिनात्रा:: आवेदन

पहली पंक्ति web.rb को इंगित करती है, और दूसरी पंक्ति वास्तव में आपके एप्लिकेशन को चलाती है।

* जेमफाइल: इसमें रत्न (रूबी कोड पैकेज) होते हैं जो एप्लिकेशन द्वारा आवश्यक होते हैं। हेरोकू इस फ़ाइल के अंदर यह पता लगाने के लिए देखेगा कि इसे किस अन्य कोड को स्थापित करने की आवश्यकता है ताकि आपका एप्लिकेशन काम करे। Gemfile को देखने का दूसरा तरीका यह है कि इसमें आपकी परियोजना के लिए निर्भरता की एक सूची है। यदि इनमें से कोई भी निर्भरता उपलब्ध नहीं है, तो आपका आवेदन काम नहीं करेगा। यहाँ इस ऐप के लिए Gemfile के अंदर क्या है:

स्रोत "https://rubygems.org"ruby "2.1.1"मणि 'sinatra'gem' puma'gem 'redis'

सबसे पहले, यह सभी जेम कोड के स्रोत भंडार को rubygems.org पर सेट करता है। इसके बाद, यह आवश्यक है कि रूबी संस्करण 2.1.1 एप्लिकेशन को चलाने के लिए उपयोग किया जाए। फिर यह आवश्यक रत्नों को सूचीबद्ध करता है: सिनात्रा, प्यूमा (एक महान रूबी वेब एप्लिकेशन सर्वर), और रेडिस।

* Procfile: यह Heroku को बताता है कि आपके सर्वर को कैसे स्टार्टअप करना है। यहाँ केवल एक पंक्ति है:

वेब: रैकअप-एस प्यूमा-पी $पोर्ट

यह पंक्ति कहती है कि "वेब" एकमात्र प्रकार की सेवा की आवश्यकता है (आपके पास पृष्ठभूमि प्रसंस्करण के लिए "कार्यकर्ता" जैसे अन्य हो सकते हैं), और सेवा शुरू करने के लिए हेरोकू को ":" के बाद आने वाले आदेश का उपयोग करना होगा।

आप अपनी विकास मशीन पर इस क्रम का पालन करके हरोकू क्या करने जा रहे हैं, इसका अनुकरण कर सकते हैं (केवल तीर से पहले परीक्षण टाइप करें; तीर का अनुसरण केवल कमांड का विवरण है):

$>मणि इंस्टॉल बंडलर -> बंडलर इंस्टॉल करता है, जो जानता है कि जेमफाइल को कैसे संभालना है। $> बंडल इंस्टॉल -> बंडलर जेमफाइल को प्रोसेस करता है और निर्भरताएं स्थापित करता है। $> रैकअप config.ru -> रैकअप एक उपकरण है जो config.ru फ़ाइल को संसाधित कर सकता है। यह आम तौर पर रूबी के बाद के संस्करण के साथ आता है, अगर यह इसे इस तरह स्थापित नहीं करता है: मणि इंस्टॉल रैक।

अंतिम चरण का परिणाम वास्तव में आपका एप्लिकेशन लॉन्च करना है। आपको ठीक वैसा ही आउटपुट देखना चाहिए जैसा आपने पहले रूबी web.rb के साथ शुरू किया था। यह वही एप्लिकेशन चल रहा है, बस इस अंतर के साथ कि दूसरी विधि यह है कि हेरोकू इसे कैसे शुरू करता है।

हम इस एप्लिकेशन को आपके हरोकू खाते में तैनात करने के लिए लगभग तैयार हैं। यदि आपके पास अभी तक एक नहीं है, तो आगे बढ़ें और अभी एक बनाएं। फिर, अपना खाता और अपनी स्थानीय विकास मशीन, और विशेष रूप से हेरोकू टूलबेल्ट सेटअप करने के लिए त्वरित प्रारंभ मार्गदर्शिका का पालन करें।

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

एक बार जब आप हेरोकू वेब साइट पर निर्देशों का पालन करते हुए हेरोकू टूलबेल्ट की स्थापना पूरी कर लेते हैं, तो अपने आवेदन को तैनात करने के लिए इन चरणों का पालन करें (सब कुछ कमांड लाइन में टाइप किया गया है, ऐप की निर्देशिका के अंदर):

$>heroku लॉगिन -> कमांड लाइन के माध्यम से हरोकू में लॉगऑन करें $>git init -> अपने एप्लिकेशन के लिए एक गिट रिपॉजिटरी शुरू करें $>git ऐड। -> (डॉट पर ध्यान दें!) वर्तमान निर्देशिका में सभी फाइलों को गिट रिपॉजिटरी में जोड़ें $> गिट प्रतिबद्ध -एम "इनिट" -> इन फाइलों को एक नए संदेश के साथ भंडार में जमा करें $> उसकेोकू बनाएं -> एक नया बनाएं हरोकू पर ऐप। हरोकू आपके ऐप को एक यादृच्छिक नाम देगा, जैसे "ब्लेजिंग-गैलेक्सी -997"। नाम और यूआरएल को नोट कर लें ताकि बाद में आप इसे अपने वेब ब्राउजर के जरिए एक्सेस कर सकें।यह यूआरएल इस तरह दिखेगा: “https://blazing-galaxy-997.herokuapp.com/“। आपको अपने नए एप्लिकेशन के होस्टनाम ("ब्लेजिंग-गैलेक्सी-997.herokuapp.com" भाग) को अपने Arduino स्केच के WEBSITE स्थिरांक में कॉपी करना होगा। इसे अभी करें ताकि आप बाद में न भूलें। $> उसकेोकू एडॉन्स: रेडिसक्लाउड जोड़ें -> रेडिसक्लाउड रेडिस सेवा के फ्री टियर को आपके एप्लिकेशन में जोड़ता है। कॉन्फ़िगरेशन सेटिंग्स स्वचालित रूप से बनाई जाती हैं और आपके एप्लिकेशन को उपलब्ध कराई जाती हैं। $> गिट पुश हेरोकू मास्टर -> अपने कोड को हेरोकू में तैनात करें। यह स्वचालित रूप से कोड को स्थानांतरित कर देगा, हरोकू पर किसी भी निर्भरता को सेटअप करेगा, और एप्लिकेशन शुरू करेगा। प्रक्रिया के अंत में, आप कुछ इस तरह देखेंगे: "https://blazing-galaxy-997.herokuapp.com हेरोकू में तैनात", जिसका अर्थ है कि आपका आवेदन अब सार्वजनिक क्लाउड पर लाइव है! बधाई हो!

आगे बढ़ो, इसे एक स्पिन दो!

चरण 13: यह सब एक साथ रखना

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

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

यदि सब कुछ ठीक रहा तो आपका संदेश लगभग एक मिनट बाद DMD पर दिखाई देगा!

चरण 14: संभावित

आप अपने होम अलर्ट सिस्टम के साथ और भी बहुत कुछ कर सकते हैं…

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

आनंद लेना!

सिफारिश की: