विषयसूची:

दोष-सहिष्णु तापमान सेंसर नेटवर्क नियंत्रक: 8 कदम
दोष-सहिष्णु तापमान सेंसर नेटवर्क नियंत्रक: 8 कदम

वीडियो: दोष-सहिष्णु तापमान सेंसर नेटवर्क नियंत्रक: 8 कदम

वीडियो: दोष-सहिष्णु तापमान सेंसर नेटवर्क नियंत्रक: 8 कदम
वीडियो: NETWORK SECTION REPAIR KARNA ITNA ASHAN 2024, नवंबर
Anonim
दोष-सहिष्णु तापमान सेंसर नेटवर्क नियंत्रक
दोष-सहिष्णु तापमान सेंसर नेटवर्क नियंत्रक

यह निर्देशयोग्य आपको दिखाता है कि दोषपूर्ण सेंसर के स्वचालित अलगाव में सक्षम DS18B20 तापमान सेंसर के एक सेट के लिए एक Arduino Uno बोर्ड को एकल-उद्देश्य नियंत्रक में कैसे परिवर्तित किया जाए।

नियंत्रक Arduino Uno के साथ 8 सेंसर तक का प्रबंधन कर सकता है। (और बहुत कुछ Arduino मेगा के साथ या एक मामूली सॉफ्टवेयर संशोधन के साथ।)

चरण 1: पीछे की कहानी …

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

इससे भी बदतर, सेंसर नेटवर्क की विश्वसनीयता मुख्य रूप से सर्दियों की रातों के दौरान गिर गई, जबकि गर्मियों में लगभग कोई समस्या नहीं थी! यहाँ क्या हो रहा है?

यह जांचने के लिए कि कौन सा सेंसर समस्या का कारण बनता है, उन्हें एक-एक करके चालू / बंद करने या उनमें से किसी भी संयोजन को सक्षम करने की आवश्यकता सामने आई।

चरण 2: यह कैसे काम करता है

DS18B20 (तापमान सेंसर) मालिकाना 1-वायर प्रोटोकॉल का उपयोग करता है जो कई सेंसर को सामान्य डेटा लिंक (वह एक तार) साझा करने की अनुमति देता है। यह सामान्य डेटा लिंक Arduino के GPIO पिन में से एक से जुड़ा है और एक पुल-अप रोकनेवाला के माध्यम से + 5 V से जुड़ा है - कुछ भी असामान्य नहीं है, कई निर्देश इस सेटअप को कवर करते हैं।

चाल यह है कि प्रत्येक सेंसर की पावर लीड स्वयं (समर्पित) जीपीआईओ पिन से जुड़ी होती है, ताकि उन्हें अलग से चालू और बंद किया जा सके। उदाहरण के लिए, यदि किसी सेंसर में पिन #3 और GND से पिन #2 से जुड़ा हुआ Vcc लीड है, तो पिन #3 को हाई पर सेट करने से सेंसर को शक्ति मिलती है (कोई आश्चर्य नहीं) जबकि पिन #2 को LOW पर सेट करने से जमीन मिलती है (के लिए एक छोटा आश्चर्य) मुझे)। दोनों पिनों को इनपुट मोड पर सेट करने से (लगभग) सेंसर और उसकी वायरिंग पूरी तरह से अलग हो जाएगी - इसके अंदर कोई भी विफलता (जैसे शॉर्टकट) क्यों न हो, यह दूसरों के साथ हस्तक्षेप नहीं करेगा।

(यह कहना उचित है कि डेटा वायर को किसी और तरह से Arduino से कनेक्ट करने से वास्तव में हस्तक्षेप होगा, लेकिन यह मेरे सेटअप में लगभग असंभव है)।

ध्यान दें कि DS18B20 1, 5 mA तक की खपत करता है जबकि एक Arduino पिन 40 mA तक का स्रोत / सिंक कर सकता है, इसलिए यह सीधे GPIO पिन द्वारा सेंसर को पावर देने के लिए पूरी तरह से सुरक्षित है।

चरण 3: सामग्री और उपकरण

सामग्री

  • 1 अरुडिनो यूएनओ बोर्ड
  • 3 महिला पिन हेडर: 1×4, 1×6 और 1×6 (या अधिक – मैंने उन्हें एक 1×40 हेडर से काटा)
  • एक गोंद
  • नंगे कूपर तार का एक टुकड़ा (कम से कम 10 सेमी)
  • एक इन्सुलेशन टेप
  • सोल्डरिंग उपभोग्य वस्तुएं (तार, फ्लक्स…)

उपकरण

  • सोल्डरिंग उपकरण (लोहा, धारक, …)
  • छोटे काटने वाले सरौता

चरण 4: चीजों को एक साथ ठीक करें

चीजों को एक साथ ठीक करें
चीजों को एक साथ ठीक करें

महिला पिन हेडर को Arduino बोर्ड हेडर से गोंद करें:

  1. "एनालॉग" पिन हेडर के बगल में 1×4 हेडर, पिन के साथ अगल-बगल A0–A4
  2. पहले डिजिटल पिन हेडर के बगल में 1×6 हेडर, पिन के साथ साइड-टू-साइड 2–7
  3. दूसरे डिजिटल पिन हेडर के बगल में 1×6 हेडर, पिन के साथ साइड-टू-साइड 8-13

ध्यान दें कि मेरे हेडर थोड़े लंबे हैं … इसमें कोई विपक्ष नहीं है और मुझे लगता है कि कोई पेशेवर नहीं है।

चरण 5: तार चीजें एक साथ

तार चीजें एक साथ
तार चीजें एक साथ
तार चीजें एक साथ
तार चीजें एक साथ

1-तार बस लाइन वायरिंग:

  1. चिपके हुए हेडर के सभी लीड को "डिजिटल" साइड (पिन 2–13 से सटे) पर नंगे तार के एक टुकड़े को सोल्डर करके कनेक्ट करें
  2. इस तार के सिरे को SCL पिन लेड से मिलाएं (आंतरिक रूप से A5 से जुड़ा हुआ)
  3. चिपके हुए हेडर के सभी लीड को "एनालॉग" साइड (पिन A0–A3) पर नंगे तार के एक टुकड़े को सोल्डर करके कनेक्ट करें
  4. इस तार के सिरे को A4 और A5 लीड से मिलाएं (मैंने A5 और A6 का उपयोग किया क्योंकि मेरे पास एक बोर्ड है जिसमें A6 और A7 है)
  5. इस तार के दूसरे छोर और +5 V पिन लेड के बीच एक 4k7 रोकनेवाला मिलाप करें

टिप्पणियाँ:

  • पिन A0-A5, हालांकि "एनालॉग" के रूप में चिह्नित किया जा रहा है, GPIO डिजिटल पिन के रूप में भी उपयोग किया जा सकता है।
  • "डिजिटल" साइड पर SCL पिन आंतरिक रूप से "एनालॉग" साइड पर A5 से जुड़ा है; हेडर से जुड़ा, यह 1-तार बस लाइन बनाता है
  • A4 (एनालॉग इनपुट के रूप में प्रयुक्त) नैदानिक उद्देश्यों के लिए बस के वोल्टेज को मापता है। यही कारण है कि यह सीधे बस से जुड़ा है।
  • मैंने A4 के बजाय A6 का उपयोग किया क्योंकि मेरे पास एक बोर्ड है जिसमें A6 और A7 है; मूल रूप से मैं A7 को 1-वायर बस मास्टर के रूप में उपयोग करना चाहता था लेकिन इन दो पिनों को डिजिटल GPIO के रूप में कॉन्फ़िगर नहीं किया जा सकता है।
  • सेंसर कनेक्टर्स के गलत कनेक्शन को रोकने के लिए आप प्रत्येक पुरुष कनेक्टर से अप्रयुक्त संपर्क (किसी भी तार से जुड़ा नहीं) को हटा सकते हैं / काट सकते हैं और इसे चिपके पिन हेडर में संबंधित छेद में डाल सकते हैं।

चरण 6: सेंसर को जोड़ना

सेंसर कनेक्ट करना
सेंसर कनेक्ट करना

आपने अभी आठ 2×2 सॉकेट की एक सरणी बनाई है। आप 2×2 ड्यूपॉन्ट कनेक्टर्स को सेंसर केबल्स में मिलाप और असेंबल कर सकते हैं और उन्हें इन सॉकेट्स से जोड़ सकते हैं। सॉफ्टवेयर पिन को कॉन्फ़िगर करता है ताकि पिन भी जीएनडी पिन हों और विषम पिन वीसीसी पिन हों। प्रत्येक सेंसर के लिए, Vcc पिन सिर्फ GND पिन + 1 है। 2×2 सॉकेट के अन्य दो पिनों में से एक (चिपके और सोल्डर हेडर में उन दो में से एक) सेंसर के डेटा वायर के लिए है। इससे कोई फर्क नहीं पड़ता कि आप किसका उपयोग करते हैं।

चरण 7: नियंत्रक सॉफ्टवेयर

नियंत्रक सॉफ्टवेयर
नियंत्रक सॉफ्टवेयर

सीरियल थर्मामीटर स्केच नियंत्रक चलाता है। आप इसे जीथब पर पा सकते हैं। Arduino IDE का उपयोग करके खोलें और अपलोड करें।

क्रमशः:

  1. अपना Arduino IDE खोलें और स्केच के माध्यम से डलास तापमान पुस्तकालय और उसकी सभी निर्भरताओं को स्थापित करें। पुस्तकालय शामिल करें | पुस्तकालयों का प्रबंधन करें।
  2. क्लोन गिट भंडार। यदि आप git से परिचित नहीं हैं, तो इस ज़िप को अपने कंप्यूटर पर कहीं भी डाउनलोड और अनपैक करें।
  3. अपने Arduino IDE में सीरियल थर्मामीटर स्केच खोलें।
  4. USB केबल (मानक तरीके से) द्वारा अपने संशोधित Arduino बोर्ड को अपने कंप्यूटर से कनेक्ट करें
  5. अपने Arduino IDE का उपयोग करके स्केच अपलोड करें
  6. टूल्स के माध्यम से सीरियल मॉनिटर खोलें | सीरियल मॉनिटर
  7. आपको डायग्नोस्टिक आउटपुट देखना चाहिए जिसमें तापमान रीडिंग के बाद कई भौतिक माप होते हैं - प्रत्येक सेंसर सॉकेट सिंगल लाइन पर। यदि अलग से चालू होने पर और सभी एक साथ चालू होने पर सेंसर की संख्या भिन्न होती है), निदान लूप हल होने तक। लेकिन कोई चिंता नहीं, निदान भी तापमान माप प्रदान करता है!

डायग्नोस्टिक आउटपुट के बारे में अधिक विवरण के लिए एनोटेट चित्र देखें।

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

मुझे इस बात का गहरा अहसास है कि मेरे सेंसर नेटवर्क की विफलता मेरी लंबी वायरिंग की उच्च समाई के कारण हुई थी - प्रत्येक सेंसर के लिए लगभग 10 मीटर LIYY 314 (3 × 0, 14 मिमी²) केबल। मेरे प्रयोगों से पता चला है कि 1-तार बस और जमीन के बीच 0.01 μF के आसपास या उससे अधिक क्षमता होने पर संचार टूट जाता है, मुझे लगता है क्योंकि 4k7 पुल-अप प्रतिरोधी बस को + 5 वी तक तेजी से खींचने में सक्षम नहीं है प्रोटोकॉल का पालन करने के लिए सीमाएं.

मेरे सेटअप में यह तब होता है जब 3 से अधिक सेंसर एक साथ जुड़े होते हैं। फिर, नियंत्रक डायग्नोस्टिक चक्र में लूप करता है, तापमान सेंसर-बाय-सेंसर को मापता है (क्या अच्छा भी है …)

लेकिन 5वां सेंसर भी (28:ff:f2:41:51:17:04:31) काफी खराब लग रहा है (शायद गलत सोल्डरिंग), इसलिए मैं आगे की जांच कर सकता हूं!

सिफारिश की: