विषयसूची:

सिल्वरलाइट: सर्वर रूम के लिए Arduino आधारित पर्यावरण मॉनिटर: 3 चरण (चित्रों के साथ)
सिल्वरलाइट: सर्वर रूम के लिए Arduino आधारित पर्यावरण मॉनिटर: 3 चरण (चित्रों के साथ)

वीडियो: सिल्वरलाइट: सर्वर रूम के लिए Arduino आधारित पर्यावरण मॉनिटर: 3 चरण (चित्रों के साथ)

वीडियो: सिल्वरलाइट: सर्वर रूम के लिए Arduino आधारित पर्यावरण मॉनिटर: 3 चरण (चित्रों के साथ)
वीडियो: What is Arduino with Full Information? – [Hindi] – Quick Support 2024, नवंबर
Anonim
सिल्वरलाइट: सर्वर रूम के लिए Arduino आधारित पर्यावरण मॉनिटर
सिल्वरलाइट: सर्वर रूम के लिए Arduino आधारित पर्यावरण मॉनिटर
सिल्वरलाइट: सर्वर रूम के लिए Arduino आधारित पर्यावरण मॉनिटर
सिल्वरलाइट: सर्वर रूम के लिए Arduino आधारित पर्यावरण मॉनिटर
सिल्वरलाइट: सर्वर रूम के लिए Arduino आधारित पर्यावरण मॉनिटर
सिल्वरलाइट: सर्वर रूम के लिए Arduino आधारित पर्यावरण मॉनिटर
सिल्वरलाइट: सर्वर रूम के लिए Arduino आधारित पर्यावरण मॉनिटर
सिल्वरलाइट: सर्वर रूम के लिए Arduino आधारित पर्यावरण मॉनिटर

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

यह प्रोजेक्ट सिल्वरलाइट नाम का कोड है, मुझसे यह न पूछें कि मुझे ये नाम कहां से मिले:) मैंने सिर्फ चमकदार आधे ऐक्रेलिक बॉक्स को देखा और इस नाम के साथ फैसला किया, इसका माइक्रोहोफ उत्पाद से कोई लेना-देना नहीं है जो मुझे बाद में पता चला।.

चरण 1: हार्डवेयर डिजाइन

हार्डवेयर डिजाइन
हार्डवेयर डिजाइन
हार्डवेयर डिजाइन
हार्डवेयर डिजाइन
हार्डवेयर डिजाइन
हार्डवेयर डिजाइन

वाणिज्यिक हार्डवेयर अवलोकन।

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

पर्यावरण निगरानी उपकरण संगतता

10/100Mb नेटवर्क-MS, PXGUPS, PXGPDP, और PXGMS।

FW V3.01 और उच्चतर के साथ 10/100Mb ConnectUPS-X, ConnectUPS-BD और ConnectUPS-E। आयाम (एलएक्सडब्ल्यूएक्सएच)

2.26 x 1.48 x 1.15 (इंच) 57.6 x 37.6 x 29.3 (मिमी) वजन:

1.19 आउंस (34 ग्राम)

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

यह परियोजना मेरी कई परियोजनाओं का एक संयोजन है: नतालिया मौसम स्टेशन, फीनिक्स की छाया। बॉक्स निम्नलिखित पर्यावरणीय बाधाओं की निगरानी करने में सक्षम है:

  • तापमान/आर्द्रता/गर्मी सूचकांक
  • हवा में एलपीजी, धुआं, शराब, प्रोपेन, हाइड्रोजन, मीथेन और कार्बन मोनोऑक्साइड सांद्रता (एमक्यू 2)
  • सौर संवेदनशीलता (सर्वर रूम में लाइट चालू है?)
  • मोशन पीर सेंसर (जब कोई कमरे में प्रवेश करता है तो मोशन सेंसर के लिए धन्यवाद अब से आप रोशनी को स्वचालित रूप से चालू/बंद भी कर सकते हैं)

यह सारा डेटा एलसीडी स्क्रीन पर अच्छी तरह से प्रदर्शित होता है जबकि आगे की प्रक्रिया और अलर्ट के लिए कंप्यूटर (ऑरेंज पीआई ज़ीरो) पर भी रिले किया जाता है। हालाँकि डिजिटल सेंसर जैसे DHT और MQ2 के डिजिटल पिन को सीधे ऑरेंजपीआई से जोड़ना संभव होगा, मैं हमेशा इन कार्यों के लिए समर्पित माइक्रो का उपयोग करना पसंद करता हूं और जब आपको एलसीडी को भी अपडेट करने और अन्य निम्न स्तर करने की आवश्यकता होती है सामान Arduino सिर्फ अपराजेय है और कई वर्षों तक मज़बूती से नॉन-स्टॉप चला सकता है (वास्तव में एक भी Arduino नहीं है जो 24/7 चलता है जो अभी तक मुझ पर विफल रहा है)। ऑरेंजपीआई इसकी कमियों के साथ (आइए इसका सामना यह 10 डॉलर का कंप्यूटर है) जैसे भारी कार्यभार के लिए अनुपयोगी, कोई बीएसडी समर्थन नहीं, एकीकृत वाईफाई फूला हुआ है आदि आसानी से सीरियल (यूएसबी) के माध्यम से सेंसर रीडिंग लेने और उन्हें संसाधित करने जैसे छोटे कार्यभार को संभाल सकता है।

यह एक बहुत ही सरल परियोजना हार्डवेयर है जिसके लिए निम्नलिखित घटकों की आवश्यकता होती है:

  • अरुडिनो प्रो माइक्रो
  • एलसीडी स्क्रीन 2x16 वर्ण आरजीबी
  • एसी-डीसी आइसोलेटिंग स्विच पावर मॉड्यूल 220V से 5V HLK-5M05 (ये Arduino/ESP प्रोजेक्ट्स के लिए बहुत अच्छे हैं), यह 5V/5W संस्करण है!
  • 2x300ohm प्रतिरोधक
  • 2xleds (लाल/हरा)
  • पीर मोशन सेंसर
  • MQ2 सेंसर
  • DHT22
  • लीडर
  • 2X10Kohm रोकनेवाला
  • बजर
  • ऑरेंज पीआई जीरो
  • मिनी यूएसबी डाटा केबल

मैंने इसके लिए एक पीसीबी बनाने की भी जहमत नहीं उठाई, बस नियमित ब्रेडबोर्ड का इस्तेमाल किया क्योंकि घटकों को केवल Arduino से जोड़ा जा सकता है (चित्र संलग्न देखें):

-DHT22 को VCC (डिजिटल) के लिए 10K पुलअप की आवश्यकता होगी

-LDR को GND (एनालॉग) के लिए 10K पुलडाउन की आवश्यकता होगी

-MQ2 को किसी भी एनालॉग पिन (एनालॉग) से सीधे जोड़ा जा सकता है <एनालॉग का उपयोग करना पसंद करते हैं क्योंकि क्यों नहीं जब हमारे पास एनालॉग पिन के साथ एक MCU है जहां हम उच्च या प्राप्त करने के लिए डिवाइस के पीछे कुछ पॉट को समायोजित करने के बजाय सटीक मान प्राप्त कर सकते हैं। इसमें से कम, मेरे डिजाइन में ग्लूइंग के कारण जो वैसे भी पहुंच योग्य नहीं है। चेक करें:

-पीआईआर को सीधे किसी भी पिन (डिजिटल) से जोड़ा जा सकता है

-एलसीडी: 4 पिन के साथ संचालित किया जा सकता है, किसी भी पिन से जोड़ा जा सकता है (डिजिटल) की आवश्यकता होगी +2 आरएस/ई (डिजिटल)

-बजर: किसी भी Arduino पिन (डिजिटल) से सीधे जोड़ा जा सकता है

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

डीएचटी के बारे में भी मेरी अन्य परियोजनाओं से मत भूलना: यदि आप डीएचटी पुस्तकालय को अपने कोड में डालते हैं और डीएचटी सेंसर जुड़ा नहीं है या गलत डीएचटी जुड़ा हुआ है (उदाहरण के लिए कोड में परिभाषित 11 जिसे आप 22 का उपयोग कर रहे हैं) जो कार्यक्रम का नेतृत्व कर सकता है शुरुआत में हमेशा के लिए लटकने के लिए।

पीर मोशन डिटेक्शन सेंसर के बारे में, जैसा कि आप मेरी तस्वीर पर देख सकते हैं, इनमें से कई नकली नकली हैं, वास्तव में मुझे eBay से असली खरीदना भी मुश्किल होगा। नकली लंबे समय तक भी ठीक उसी तरह काम करते हैं, लेकिन उनके पास सर्किट मिरर होता है जो + और - पिन को उलट देता है, इन्हें भी पहचानना आसान होता है: नीले पीसीबी के साथ आना सामान्य हरा नहीं, लेबल गायब होना कुम्हार। मैं भाग्यशाली था कि मुझे अपने बॉक्स में एक वास्तविक मिला अन्यथा स्थिति बदलने से मेरे लिए 2 एल ई डी कवर हो जाएंगे। मैंने पाया है कि दोनों बर्तन मेरे लिए काम के बीच में क्रैंक किए गए हैं। यह आपको सेंसिंग के लिए पर्याप्त लंबी रेंज देगा, जब गति होगी तो डिजिटल लेग को लगभग एक मिनट के लिए हाई पोजीशन में रखा जाएगा, इसलिए आपको इसके लिए कोड बनाने की जरूरत नहीं है। नकली पर यह निर्धारित करना आसान है कि कौन सा पक्ष है - और + पिन से जुड़े इलेक्ट्रोलाइटिक कैप के लिए संबंधित पैरों को देखें।

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

चरण 2: सॉफ्टवेयर डिजाइन

सॉफ्टवेर डिज़ाइन
सॉफ्टवेर डिज़ाइन
सॉफ्टवेर डिज़ाइन
सॉफ्टवेर डिज़ाइन

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

यह परियोजना Arduino->OrangePI से एक तरफ़ा संचार का उपयोग करती है, किसी भी प्रकार के लागू किए गए कोई आदेश नहीं हैं। हालाँकि ऐसा करना पूरी तरह से संभव होगा जैसा कि मैंने इसे अपने अन्य प्रोजेक्ट में किया था जहाँ कंप्यूटर LCD_PRINT1 या LCD_PRINT2 भेज सकता है ताकि LCD स्क्रीन की एक पंक्ति को अपने संदेश के साथ अधिलेखित कर सके (जैसे: ip पता, अपटाइम, सिस्टम दिनांक, सीपीयू उपयोग), स्क्रीन क्षेत्र 3 सेंसर से डेटा प्रदर्शित करने के लिए इतना छोटा है कि मैंने परेशान भी नहीं किया। SOL और SMK दोनों ही 4 अंक 0000-1023 तक जा सकते हैं, जो स्क्रीन पर पहले से ही 8 मूल्यवान वर्णों को लेकर है।

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

ऑरेंजपीआई पर चलने वाला एसी नियंत्रण कोड और पर्यावरण डेटा लॉगिंग और जरूरत पड़ने पर ईमेल अलर्ट भेजना।

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

0.17 ए - केवल Arduino + सेंसर

0.5-0.62 ए - ऑरेंजपीआई बूटिंग

0.31 ए - नारंगी पीआई निष्क्रिय में

0.29 ए - ऑरेंज पीआई संचालित (वास्तव में इसे बंद नहीं कर सकता, इसमें एसीपीआई या ऐसा कुछ भी नहीं है)

0.60 ए - तनाव परीक्षण 4 कोर पर 100% CPU उपयोग

मेरे पास यह ऑरेंजपीआई लंबे समय से एक बॉक्स में था। पुराने कर्नेल के साथ डिवाइस ने इतना करंट निकाला (जैसा कि मीटर ने कहा कि 0.63 ए के आसपास चरम पर है) वह पीएसयू शायद यह प्रदान नहीं कर सका कि यह बस बूट नहीं हुआ, बूट प्रक्रिया अटक गई और मुझे 2 ईथरनेट एलईडी लाइट अप हो गए लगातार और कुछ नहीं कर रहा।

अब यह एक तरह से कष्टप्रद है क्योंकि HLK-5M05 का दावा है कि यह 5V पर 5W कर सकता है जिससे यह 1 Amp प्रदान करने में सक्षम है, लेकिन इन उपकरणों के चीन से बाहर आने के साथ आप कभी नहीं जानते, 0.63 A चोटी रेटेड अधिकतम से कम थी मूल्य। इसलिए मैं सरल रीबूट परीक्षण चला रहा था, 10 रीबूट से ऑरेंजपीआई केवल दो बार सफलतापूर्वक बूट हो जाएगा, जिसने मुझे लगभग परियोजना से बाहर फेंक दिया क्योंकि मुझे सर्किट में छोटी गाड़ी असंगत व्यवहार पसंद नहीं है। इसलिए मैंने चारों ओर घूमना शुरू कर दिया शायद सॉफ्टवेयर से बूट समय पर बिजली की खपत को कम करने का एक तरीका है (क्योंकि यह केवल एक मुद्दा था) और कुछ लेख script.bin को ट्विक करने की बात कर रहे थे लेकिन यह ऑरेंज पीआई पीसी और के लिए था भंडारण से फ़ाइलें गायब थीं, इसलिए अंतिम उपाय के रूप में मैंने फर्मवेयर, कर्नेल और अन्य सभी चीजों को अपग्रेड करने के लिए जादुई "उपयुक्त अपग्रेड" किया है, उम्मीद है कि यह कम निकलेगा और डिवाइस बूट हो सकता है और:

लिनक्स सिल्वरलाइट 4.14.18-सनक्सी #24 एसएमपी शुक्र फरवरी 9 16:24:32 सीईटी 2018 armv7l जीएनयू/लिनक्स

लिनक्स सिल्वरलाइट 4.19.62-सनक्सी # 5.92 एसएमपी बुध जुलाई 31 22:07:23 सीईएसटी 2019 armv7l जीएनयू / लिनक्स

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

मैंने कर्नेल मॉड्यूल को भी देखा है:

usb_f_acm u_serial g_serial libcomposite xradio_wlan mac80211 लीमा sun8i_codec_analog snd_soc_simple_card gpu_sched sun8i_adda_pr_regmap sun4i_i2s snd_soc_simple_card_utils ttm sun4i_gpadc_iio snd_soc_core cfg80211 snd_pcm_dmaengine industrialio snd_pcm snd_timer SND sun8i_ths soundcore cpufreq_dt uio_pdrv_genirq uio thermal_sys pwrseq_simple

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

हमें क्या चाहिए और यह डिफ़ॉल्ट रूप से लोड नहीं होता है सीडीसी एसीएम Arduino के साथ संवाद करने के लिए, इसे सक्षम करें:

इको "सीडीसी-एसीएम" >> / आदि / मॉड्यूल

इसके बाद आप पहले से ही इसके साथ कनेक्शन का परीक्षण कर सकते हैं:

स्क्रीन / देव / ttyACM0 9600

आपको हर 10 सेकंड में भेजा जा रहा स्थिति डेटा देखना चाहिए।

अलर्ट और निगरानी

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

- तापमान 30 सी. से अधिक चला जाता है

- आर्द्रता 70% से अधिक हो जाती है (सर्वर के लिए स्वस्थ नहीं)

- कमरे में गति का पता चला है (यदि आप अपने सर्वर रूम में चलते रहते हैं तो यह कष्टप्रद हो सकता है)

- धुआं या गैस का पता चला (100 से अधिक अलर्ट को गंभीरता से लिया जा सकता है, मैंने इस सेंसर के साथ खेला है और यह बहुत सारी चीजों के लिए चालू हो जाता है, उदाहरण के लिए सोल्डरिंग आयरन के साथ सेंसर के बगल में धुआं बनाना 50 से थोड़ा अधिक हो गया है, जबकि अगले सिगरेट पीना है। o यह 500 तक बढ़ गया, इसने दूर से नियमित डिओडोरेंट से गैस का भी पता लगाया)

ऐतिहासिक डेटा रखने के लिए मैंने एक उपकरण विकसित करने की जहमत नहीं उठाई क्योंकि जब हमें वहां उत्कृष्ट निगरानी ढांचे मिले तो पहिया को फिर से क्यों बनाया जाए। मैं एक उदाहरण दिखाऊंगा कि इसे अपने व्यक्तिगत पसंदीदा, ज़ब्बिक्स में कैसे एकीकृत किया जाए:

apt-zabbix-agent स्थापित करें

के अंत में जोड़ें: /etc/zabbix/zabbix_agentd.conf

UserParameter=silverlight.hum, head-1 /dev/shm/silverlight-zbx.log | awk -F", " '{प्रिंट $1}'

UserParameter=silverlight.tmp, हेड -1 /dev/shm/silverlight-zbx.log | awk -F", " '{प्रिंट $2}' UserParameter=silverlight.sol, head-1 /dev/shm/silverlight-zbx.log | awk -F", " '{प्रिंट $4}' UserParameter=silverlight.mot, head-1 /dev/shm/silverlight-zbx.log | awk -F", " '{प्रिंट $5 }' UserParameter=silverlight.smk, head-1 /dev/shm/silverlight-zbx.log | awk -F", " '{प्रिंट $6}'

चल रहा zabbix_agentd -p अब उचित मान लौटाएगा:

सिल्वरलाइट.हम [टी|41]

सिल्वरलाइट.टीएमपी [टी|23] सिल्वरलाइट.सोल [टी|144] सिल्वरलाइट।मोट [टी|0] सिल्वरलाइट।एसएमके [टी|19]

हीट इंडेक्स, मैं इसे इकट्ठा करता हूं, लेकिन इसका कोई व्यावहारिक उपयोग नहीं दिखता है, इसलिए यह सिर्फ लॉग किया गया है। सी नियंत्रण कोड में मैंने 2 लॉगिंग फ़ंक्शन लागू किए हैं, पहला उपयोगकर्ता के अनुकूल प्रारूप में सभी डेटा लॉग करेगा:

[सिल्वरलाइट] २०१९-०९-१० २३:३६:०८ पर प्राप्त डेटा => आर्द्रता: ४४, तापमान: २२, हाय: २५, सौर: ०, गति: ०, धुआँ: २१

[सिल्वरलाइट] 2019-09-10 23:36:18 पर प्राप्त डेटा => आर्द्रता: 44, तापमान: 22, हाय: 25, सौर: 0, गति: 0, धुआं: 21 [सिल्वरलाइट] 2019-09 में प्राप्त डेटा -10 23:36:29 => आर्द्रता: 44, तापमान: 22, हाय: 25, सौर: 0, गति: 0, धुआं: 22 [सिल्वरलाइट] 2019-09-10 23:36:39 पर प्राप्त डेटा => आर्द्रता: ४४, तापमान: २२, हाय: २५, सौर: ०, गति: ०, धुआँ: २१

दूसरा एक:

शून्य लकड़हारा २ (चार * पाठ) {

फ़ाइल *f = fopen("/dev/shm/silverlight-zbx.log", "w"); अगर (f == NULL) { प्रिंटफ ("मेमोरी लॉग फ़ाइल खोलने में त्रुटि! / n"); वापसी; } fprintf(f, "%s", पाठ); एफक्लोज (एफ); वापसी; }

यह 1 लाइनर लॉग इन मेमोरी (sdcard पर अनावश्यक rw संचालन को समाप्त कर देगा) जो हमेशा अगली बार अधिलेखित हो जाएगा। इस लॉग में केवल 6 डेटा कॉलम होंगे और कोई टाइमस्टैम्प नहीं होगा, यह ज़ब्बिक्स के लिए आसानी से पठनीय है।

अंतिम बोनस के रूप में: ऑरेंजपीआई से सीधे Arduino को कैसे प्रोग्राम करें ताकि आपको हर बार डिवाइस तक न चलना पड़े और अपने लैपटॉप में प्लग इन न करना पड़े।

2 तरीके हैं:

-आसान तरीका: पूर्ण Arduino IDE स्थापित करें और पुस्तकालय कुछ दूरस्थ डेस्कटॉप जैसे X11 का उपयोग अग्रेषण, Xrdp, Xvnc, Nxserver आदि के साथ करते हैं

-हार्ड तरीका: Arduino IDE इंस्टॉल करें और कमांड लाइन का उपयोग करें

हम इस बार कड़ी मेहनत करने जा रहे हैं क्योंकि मुझे सर्वर पर X11 स्थापित करने का शौक नहीं है। इसके लिए आपको 6 घटकों की आवश्यकता होगी:

1, एआरएम 32 बिट के लिए Arduino IDE ->

2, पायथन सीरियल -> उपयुक्त-पायथन-सीरियल स्थापित करें

3, Arduino Makefile प्रोजेक्ट -> git क्लोन

4, डीएचटी पुस्तकालय

5, स्पार्कफुन बोर्ड की परिभाषाएं

6, सिल्वरलाइट.इनो, मुख्य कोड

इसे आसान बनाने के लिए मैंने पिछले 4 बिंदुओं (sketchbook.tgz) के लिए आवश्यक फाइलों को बंडल किया है, इसलिए आपको केवल पहले 2 की आवश्यकता होगी।

सबसे पहले एक नियमित उपयोगकर्ता बनाना सबसे अच्छा है जिसके पास यूएसबी पोर्ट तक पहुंच है:

योजक चांदी

यूजरमॉड-ए-जी डायलआउट सिल्वर

नए बनाए गए उपयोगकर्ता की होम निर्देशिका में डिवाइस के लिए स्केचबुक.टीजीजेड एससीपी करें और इसे वहीं निकालें:

सीडी/घर/चांदी

टार xvzf स्केचबुक.tgz

जब आप ग्राफिकल आईडीई का उपयोग कर रहे हों तो हुड के नीचे क्या चल रहा है, इसे समझने के लिए:

Arduino IDE का उपयोग करते समय Arduino स्केच बनाने के निर्माण कार्यप्रवाह का वर्णन Arduino वेबसाइट https://www.arduino.cc/en/Hacking/BuildProcess पर किया गया है और यहां अधिक विवरण में: https://www.arduino.cc/ en/हैकिंग/बिल्डप्रोसेस

आम तौर पर, मानक Arduino निर्माण प्रक्रिया है:

मुख्य स्केच फ़ाइल में.ino फ़ाइलों को मिलाएं। मुख्य स्केच फ़ाइल का परिवर्तन: #include कथन जोड़ें; मुख्य स्केच फ़ाइल में सभी कार्यों की फ़ंक्शन घोषणाएं (प्रोटोटाइप) बनाएं; लक्ष्य की main.cxx फ़ाइल की सामग्री को मुख्य स्केच फ़ाइल में जोड़ें। फ़ाइलों को ऑब्जेक्ट करने के लिए कोड संकलित करें। ऑब्जेक्ट फ़ाइलों को Arduino पर अपलोड करने के लिए तैयार एक.hex फ़ाइल बनाने के लिए लिंक करें।

Arduino मानक निर्माण प्रक्रिया और Arduino-Makefile का उपयोग करके निर्माण प्रक्रिया के बीच कुछ मामूली अंतर हैं:

केवल एक.ino फ़ाइल समर्थित है। फ़ंक्शन घोषणाएं स्वचालित रूप से.ino फ़ाइल में नहीं बनाई जाती हैं। उपयोगकर्ता को सही फ़ंक्शन घोषणाएं बनाने का ख्याल रखना है।

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

BOARD_TAG = प्रोमाइक्रो

ALTERNATE_CORE = SparkFun BOARD_SUB = 16MHzatmega32U4 ARDUINO_PORT = /dev/ttyACM0 USER_LIB_PATH = /होम/सिल्वर/स्केचबुक/लाइब्रेरी ARDUINO_DIR = /opt/arduino-1.8.9 में /home/silver/sketchbook/Arduino शामिल हैं।

और आपको केवल एक टाइप करना होगा: अपलोड करें (जो पहले.hex फ़ाइलों का निर्माण करेगा और फिर उन्हें अपलोड करने के लिए avrdude का उपयोग करेगा), यह कुछ इस तरह से समाप्त होगा:

mkdir -p बिल्ड-प्रोमाइक्रो-16MHzatmega32U4

रीसेट करें बनाना [1]: निर्देशिका दर्ज करना '/ होम/सिल्वर/स्केचबुक'/होम/सिल्वर/स्केचबुक/अरुडिनो-मेकफाइल/बिन/आर्ड-रीसेट-आर्डुइनो --केटरिना/देव/टीटीएसीएम0 मेक[1]: निर्देशिका छोड़ना ' /home/silver/sketchbook' make do_upload make[1]: डायरेक्टरी में प्रवेश करना '/home/silver/sketchbook' /opt/arduino-1.8.9/hardware/tools/avr/bin/avrdude -q -V -p atmega32u4 - C /opt/arduino-1.8.9/hardware/tools/avr/etc/avrdude.conf -D -c avr109 -b 57600 -P /dev/ttyACM0 / -U फ्लैश:w:build-promicro-16MHzatmega32U4/sketchbook. हेक्स: मैं प्रोग्रामर से जुड़ रहा हूं:। प्रोग्रामर मिला: आईडी = "कैटरिन"; प्रकार = एस सॉफ्टवेयर संस्करण = १.०; कोई हार्डवेयर संस्करण नहीं दिया गया। प्रोग्रामर ऑटो एडर इंक्रीमेंट का समर्थन करता है। प्रोग्रामर बफ़रसाइज़ = 128 बाइट्स के साथ बफ़र्ड मेमोरी एक्सेस का समर्थन करता है। प्रोग्रामर निम्नलिखित उपकरणों का समर्थन करता है: डिवाइस कोड: 0x44 avrdude: AVR डिवाइस आरंभिक और निर्देशों को स्वीकार करने के लिए तैयार avrdude: डिवाइस हस्ताक्षर = 0x1e9587 (शायद m32u4) avrdude: इनपुट फ़ाइल पढ़ना "build-promicro-16MHzatmega32U4/sketchbook.hex" avrdude: फ्लैश लिखना (११५८० बाइट्स): एवरड्यूड: ११५८० बाइट्स फ्लैश लिखित एवार्ड: सेफमोड: फ़्यूज़ ओके (ई: सीबी, एच: डी ८, एल: एफएफ) एवरड्यूड किया। धन्यवाद।

ठीक है धन्यवाद, और अब हमारा Arduino रीसेट हो गया है और नए कोड के साथ प्रोग्राम किया गया है, जिसे आप स्थानीय रूप से vi या अपने पसंदीदा संपादक के साथ संपादित कर सकते हैं, किसी भी IDE की कोई आवश्यकता नहीं है। मैं ध्यान दूंगा कि अपलोड करते समय आपको सी नियंत्रण कार्यक्रम, स्क्रीन या आर्डिनो तक पहुंचने वाली किसी भी चीज़ को बंद कर देना चाहिए, अन्यथा पोर्ट रीसेट के बाद/dev/ttyACM1 के रूप में वापस आ जाएगा।

चरण 3: क्लोजर और टूडू लिस्ट

क्लोजर और टूडू लिस्ट
क्लोजर और टूडू लिस्ट
क्लोजर और टूडू लिस्ट
क्लोजर और टूडू लिस्ट
क्लोजर और टूडू लिस्ट
क्लोजर और टूडू लिस्ट

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

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

ऑरेंजपीआई के साथ एक पूर्ण स्टैक आर्मबियन चल रहा है संभावनाएं असीमित हैं, आप ग्राफ पर ऐतिहासिक डेटा प्रदर्शित करने के लिए PHP में स्क्रैच से लिखा गया एक स्थानीय वेब इंटरफ़ेस बना सकते हैं। क्या यह पहले से ही बेहतर नहीं है कि आपके पास अपने सर्वर रूम की निगरानी करने वाला एक पूरी तरह से ओपन सोर्स डिवाइस है, जिसे बनाने पर आपको गर्व हो सकता है, अगर आपको लगता है कि इसे स्वयं बनाएं!

सिफारिश की: