Computer >> कंप्यूटर >  >> प्रणाली >> MAC

मौसम की निगरानी के लिए नोड, रास्पबेरी पाई और एलसीडी स्क्रीन का उपयोग कैसे करें

पिछले कुछ वर्षों में, स्मार्ट होम डिवाइस 2015 में 300,000 से कम से बढ़कर 2020 में लगभग 1.2 बिलियन हो गए हैं और उनके 2021 तक 1.5 बिलियन तक बढ़ने की उम्मीद है।

इसलिए संभव है कि आपके घर में कम से कम कुछ स्मार्ट डिवाइस हों, यह देखते हुए कि 2021 तक औसत 8.7 स्मार्ट डिवाइस प्रति घर तक पहुंच जाएगा।

डेवलपर्स के रूप में, इस डोमेन में हमें कुछ लाभ है, क्योंकि हम अपने स्वयं के स्मार्ट होम डिवाइस बना सकते हैं।

यह केवल वे उपकरण नहीं हैं जिन्होंने तेजी से विकास का अनुभव किया है। उनके लिए उपयोग किए जाने वाले विकास बोर्ड अधिक से अधिक व्यावसायिक और सुलभ होने लगे हैं।

इस लेख में, हम देखेंगे कि हम बाहर या किसी विशिष्ट स्थान के लिए मौसम की निगरानी के लिए रास्पबेरी पाई, एलसीडी स्क्रीन और कोड की कुछ पंक्तियों का उपयोग कैसे कर सकते हैं।

मौसम की निगरानी के लिए नोड, रास्पबेरी पाई और एलसीडी स्क्रीन का उपयोग कैसे करें

चूंकि यह स्वयं करें (DIY) प्रोजेक्ट है, इसलिए इस डिवाइस के लिए हमें कुछ पूर्वापेक्षाओं की आवश्यकता है।

आवश्यकताएँ

  • रास्पबेरी पाई 3 (या उच्चतर)
  • एलसीडी स्क्रीन
  • कनेक्शन तार
  • पोटेंशियोमीटर (वैकल्पिक)
  • ब्रेडबोर्ड (वैकल्पिक)

इसे कैसे बनाएं

जैसे ही हमारे पास वह सब कुछ होगा जो हमें चाहिए हम शुरू कर सकते हैं। आइए इसे कदम दर कदम उठाएं।

चरण I - आधार कॉन्फ़िगरेशन

पहले चरण में बुनियादी सेटअप और सभी घटकों का सत्यापन शामिल है।

इस डेमो के लिए, हम मौसम डेटा प्रदाता के रूप में क्लाइमासेल वेदर एपीआई का उपयोग करेंगे, क्योंकि उनके पास हमारे उपयोग के लिए वायु गुणवत्ता संकेतकों सहित बड़ी संख्या में संकेतक हैं।

उनके एपीआई का उपयोग करने के लिए हमें उनके प्लेटफॉर्म पर एक खाता खोलना होगा और एक एपीआई कुंजी प्राप्त करनी होगी, जिसका उपयोग हम अपने अनुरोधों पर हस्ताक्षर करने के लिए करेंगे।

मौसम की निगरानी के लिए नोड, रास्पबेरी पाई और एलसीडी स्क्रीन का उपयोग कैसे करें
ClimaCell API Limit

खाता खोलने के लिए स्वतंत्र है और यह एपीआई कॉल की 100 घंटे की सीमा के साथ आता है, जो हमारे प्रोजेक्ट के लिए पर्याप्त से अधिक है।

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

रास्पबेरी पाई 3 के लिए पिन लेआउट अगली छवि में देखा जा सकता है।

मौसम की निगरानी के लिए नोड, रास्पबेरी पाई और एलसीडी स्क्रीन का उपयोग कैसे करें
रास्पबेरी पाई 3 पिन

एलसीडी और विकास बोर्ड के बीच तार कनेक्शन निम्नलिखित है:

मौसम की निगरानी के लिए नोड, रास्पबेरी पाई और एलसीडी स्क्रीन का उपयोग कैसे करें
रास्पबेरी PI और LCD के बीच कनेक्शन

यह हार्डवेयर कनेक्शन एलसीडी स्क्रीन को पूर्ण चमक और पूर्ण कंट्रास्ट पर बना देगा। ब्राइटनेस लेवल कोई समस्या नहीं है, लेकिन कंट्रास्ट इसलिए है क्योंकि हम स्क्रीन पर कैरेक्टर नहीं देख पाएंगे।

इसलिए हमें कम से कम एक पोटेंशियोमीटर लगाने की ज़रूरत है जिससे कंट्रास्ट लेवल सेट किया जा सके।

मौसम की निगरानी के लिए नोड, रास्पबेरी पाई और एलसीडी स्क्रीन का उपयोग कैसे करें
योजनाबद्ध

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

चरण II - प्रोजेक्ट कॉन्फ़िगरेशन

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

एक नए फोल्डर में npm init -y . कमांड चलाएँ npm install lcd node-fetch . कमांड के बाद एक नया npm पैकेज सेट करने के लिए इन 2 आवश्यक निर्भरताओं को स्थापित करने के लिए।

  • lcd LCD स्क्रीन के साथ संचार करने के लिए उपयोग किया जाएगा
  • node-fetch क्लाइमासेल एपीआई को एचटीटीपी अनुरोध करने के लिए इस्तेमाल किया जाएगा।

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

config.json

{  "cc_key": "<your_ClimaCell_API_key>"}

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

// * Dependencies
const Lcd = require("lcd");
const fs = require("fs");
const fetch = require("node-fetch");

// * Globals
const { cc_key } = JSON.parse(fs.readFileSync("./config.json"));

चरण III - LCD

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

हमारी LCD स्क्रीन के लिए संपूर्ण कोड निम्नलिखित है:

मौसम की निगरानी के लिए नोड, रास्पबेरी पाई और एलसीडी स्क्रीन का उपयोग कैसे करें
रॉ

पहला कदम एक नया lcd बनाना था ऑब्जेक्ट और तर्क के रूप में पास करने के लिए हमने जिन पिनों का उपयोग किया है।

कुंजियाँ cols और rows हमारे एलसीडी डिस्प्ले के कॉलम और पंक्तियों की संख्या का प्रतिनिधित्व करते हैं। 16x2 वह है जिसका मैंने इस उदाहरण में उपयोग किया है। यदि आपके LCD में केवल 8 कॉलम और 1 पंक्ति है, तो 16 और 2 को अपने मानों से बदलें।

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

  • lcd.setCursor() - उस स्थिति का चयन करना जिससे लिखना शुरू करना है
  • एलसीडी.प्रिंट ()

साथ ही, हमने इन दो कार्यों को async/away . का उपयोग करने के वादे में लपेटा है कीवर्ड।

इस बिंदु पर, आप इस फ़ंक्शन का उपयोग कर सकते हैं और अपने डिस्प्ले पर कुछ प्रिंट कर सकते हैं। writeToLcd(0,0,'Hello World') संदेश को प्रिंट करना चाहिए Hello World पहले कॉलम से शुरू होने वाली पहली पंक्ति पर।

चरण IV - मौसम डेटा

अगला कदम मौसम संबंधी डेटा प्राप्त करना और उसे डिस्प्ले पर प्रिंट करना है।

क्लाइमासेल मौसम संबंधी बहुत सारी जानकारी प्रदान करता है, लेकिन वायु गुणवत्ता और पराग, आग और अन्य जानकारी भी प्रदान करता है। डेटा बहुत बड़ा है, लेकिन ध्यान रखें कि आपकी LCD स्क्रीन में केवल 16 कॉलम और 2 पंक्तियाँ हैं - यह केवल 32 वर्ण हैं।

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

मौसम की निगरानी के लिए नोड, रास्पबेरी पाई और एलसीडी स्क्रीन का उपयोग कैसे करें

इस डेमो के लिए हम इसे सरल रखेंगे और हम LCD स्क्रीन पर निम्न डेटा प्रिंट करेंगे:

  • वर्तमान तिथि (घंटा, मिनट, सेकंड)
  • तापमान
  • वर्षा तीव्रता
मौसम की निगरानी के लिए नोड, रास्पबेरी पाई और एलसीडी स्क्रीन का उपयोग कैसे करें
रॉ

किसी विशिष्ट स्थान के लिए क्लाइमासेल से डेटा प्राप्त करने के लिए, आपको इसके भौगोलिक निर्देशांक, अक्षांश और देशांतर भेजने होंगे।

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

इस बिंदु पर API कॉल द्वारा लौटाया गया डेटा स्वरूप निम्न है:

{
  lat: 45.658,
  lon: 25.6012,
  temp: { value: 17.56, units: 'C' },
  precipitation: { value: 0.3478, units: 'mm/hr' },
  observation_time: { value: '2020-06-22T16:30:22.941Z' }
}

हम इस ऑब्जेक्ट का पुनर्निर्माण कर सकते हैं और अस्थायी और वर्षा मान प्राप्त कर सकते हैं और उन्हें पहली और दूसरी पंक्ति पर प्रिंट कर सकते हैं।

चरण V - इसे रैप करें

अब हमें केवल अपनी स्क्रिप्ट के लिए तर्क लिखना है, और नया डेटा आने पर LCD स्क्रीन को अपडेट करना है।

मौसम की निगरानी के लिए नोड, रास्पबेरी पाई और एलसीडी स्क्रीन का उपयोग कैसे करें
रॉ

मौसम डेटा हर 5 मिनट में अपडेट किया जाता है। लेकिन चूंकि हमारे पास क्लाइमासेल द्वारा लगाई गई 100 एपीआई कॉल/घंटा की सीमा है, इसलिए हम और भी आगे जा सकते हैं और हर मिनट मौसम डेटा अपडेट कर सकते हैं।

वर्तमान तिथि के लिए, हमारे पास दो विकल्प हैं:

  • हम संपत्ति का उपयोग कर सकते हैं observation_time और वह दिनांक प्रदर्शित करें जिस पर डेटा प्राप्त हुआ था, या
  • हम एक वास्तविक घड़ी बना सकते हैं और वर्तमान समय प्रदर्शित कर सकते हैं।

मैंने दूसरा विकल्प चुना, लेकिन बेझिझक इसे अपनी इच्छानुसार करें।

ऊपरी दाएं कोने में समय को प्रिंट करने के लिए, हमें पहले शुरुआती कॉलम की गणना करनी चाहिए ताकि टेक्स्ट अच्छी तरह से फिट हो जाए। इसके लिए हम अगले सूत्र का उपयोग कर सकते हैं total columns number घटा text to display length

दिनांक में 8 वर्ण हैं और चूंकि उसके पास 16 स्तंभ हैं, इसलिए हमें स्तंभ संख्या 8 से प्रारंभ करना चाहिए।

LCD सेटिंग अतुल्यकालिक है, इसलिए हमें lcd.on() . विधि का उपयोग करना चाहिए संबंधित पुस्तकालय द्वारा प्रदान किया जाता है, इसलिए हम जानते हैं कि एलसीडी कब शुरू किया गया है और उपयोग के लिए तैयार है।

एम्बेडेड सिस्टम में एक और सर्वोत्तम अभ्यास आपके द्वारा उपयोग किए जाने वाले संसाधनों को बंद करना और मुक्त करना है। इसलिए हम SIGNINT . का उपयोग करते हैं कार्यक्रम बंद होने पर एलसीडी स्क्रीन को बंद करने की घटना। इस तरह की अन्य घटनाओं में शामिल हैं:

  • SIGUSR1 और SIGUSR2 - नोडमॉन रीस्टार्ट की तरह "किल पिड" को पकड़ने के लिए
  • uncaughtException - न आए अपवादों को पकड़ने के लिए

चरण VI - इसे हमेशा के लिए चलाएं

स्क्रिप्ट पूरी हो गई है और इस बिंदु पर हम अपना प्रोग्राम चला सकते हैं। समाप्त करने से पहले हमारे पास बस एक और काम है जो हमें करना चाहिए।

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

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

इस समस्या को हल करने के लिए, हम pm2 जैसे प्रक्रिया प्रबंधक का उपयोग कर सकते हैं।

यहाँ कदम हैं:

  1. sudo npm install pm2 -g - pm2 इंस्टॉल करें
  2. sudo pm2 startup - pm2 प्रबंधक के लिए एक स्टार्टअप स्क्रिप्ट बनाएं
  3. pm2 start index.js - एक आवेदन शुरू करें
  4. pm2 save - सर्वर पर अपनी प्रक्रिया सूची सहेजें पुनरारंभ करें

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

निष्कर्ष

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

रास्पबेरी पाई एक पर्सनल कंप्यूटर की तरह है, इसलिए आप उस पर बहुत कुछ कर सकते हैं, जितना कि आप सामान्य रूप से Arduino जैसे माइक्रोकंट्रोलर पर करते हैं। इस वजह से, इसे आपके घर में मौजूद अन्य उपकरणों के साथ संयोजित करना आसान है।


  1. डीडीसी/सीआई क्या है और इसका उपयोग कैसे करें

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

  1. विंडोज 8 और 10 में विंडोज अपडेट ट्रबलशूटर का उपयोग कैसे करें

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

  1. मैक पर टास्क मैनेजर:गतिविधि मॉनिटर और इसका उपयोग कैसे करें

    मैक टास्क मैनेजर की तलाश है? जबकि विंडोज अनुभव का एक प्रमुख, मैकोज़ में विंडोज़ उपयोगिता के सटीक समकक्ष नहीं है। इसके बजाय, macOS में एक्टिविटी मॉनिटर नामक एक प्रोग्राम होता है, जो बड़े पैमाने पर, विंडोज टास्क मैनेजर के समान काम करता है। आइए अच्छी तरह से देखें कि एक्टिविटी मॉनिटर क्या है, यह मैक प