क्या एक Arduino 24/7 चलाने में सक्षम है?


46

मैं एक साधारण Arduino वेब सर्वर बना रहा हूं और मैं इसे हर समय चालू रखना चाहता हूं। इसलिए इसे लगातार काम करते रहना चाहिए।

मैं एक ईथरनेट शील्ड के साथ एक Arduino Uno का उपयोग कर रहा हूं। यह एक साधारण आउटलेट बिजली की आपूर्ति 5V @ 1A के साथ संचालित है।

मेरे सवाल:

  • क्या मुझे Arduino को हर समय चालू रखने में कोई समस्या होगी?
  • क्या इसके लिए कुछ अन्य Arduino बोर्ड की बेहतर सिफारिश की गई है?
  • क्या इस बारे में कोई सावधानी बरतने की ज़रूरत है?

पहला प्रश्न!
TheDoctor

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

जवाबों:


58

आपके पास इसे हर समय रखने के लिए कोई समस्या नहीं होनी चाहिए, हालांकि, किसी भी बात पर विचार करने के लिए कोई भी काउंटर आपके पास हो सकता है, जैसे कि उपयोग करना millis()

से मिली सेकंड पर Arduino डॉक्स :

यह संख्या लगभग 50 दिनों के बाद अतिप्रवाह (शून्य पर वापस) जाएगी।

इसलिए जो परियोजनाएं लंबे समय से चल रही हैं, आपको तुरंत कोई समस्या नहीं दिखती है, लेकिन ऐसा कुछ हो सकता है और सड़क के नीचे त्रुटियों का कारण बन सकता है।


19
सटीक होने के लिए, मिलिस एक uint32_tचर है, इसलिए यह 4294967296 मिलीसेकंड में ("शून्य पर वापस जाएँ") से आगे निकल जाएगा, जो ~ 49.7 दिन, ~ 1193 घंटे या ~ 71582 मिनट है।
कॉनर वुल्फ

5
फिर आपको बस एक और uint32_t का उपयोग करना है, जब पहला रोल खत्म होने पर वेतन वृद्धि होती है। फिर आप रोलओवर के बीच लगभग 5.846 × 10 ^ 8 साल का आनंद ले सकते हैं।
80HD

4
यदि आप मिलिस () - स्टार्टटाइम (एक अनसाइन्टेड लॉन्ग, उर्फ ​​uint32_t के रूप में शुरुआत के समय के साथ) करते हैं, तो आपको हमेशा एक वैध परिणाम प्राप्त होगा जब तक कि एक से अधिक ओवरफ्लो नहीं होता है
लेस्टो

1
अधिक सटीक होने के लिए, अतिप्रवाह 49 दिनों, 17 घंटे, 2 मिनट, 47 सेकंड और 295 मिलीसेकंड के बाद होता है।
मेमेट ऑलसेन

4
मिलिस () के ओवरफ्लो की समस्या कभी नहीं होती है। मिलिस ( देखें ) अतिप्रवाह ... एक बुरी बात है? अधिक जानकारी के लिए। मूल रूप से यदि आप उचित डेटा प्रकारों का उपयोग करके घटाव द्वारा समय अंतराल की गणना करते हैं, तो आपके पास कभी कोई समस्या नहीं होगी।
निक गैमन

33

कुछ बातों को ध्यान में रखना (@ सचिन के उल्लेख के बाहर millis()):

  • किसी भी इलेक्ट्रॉनिक्स की तरह, गर्मी विघटनकारी हो सकती है। माइक्रो-नियंत्रक ही गर्मी के दृष्टिकोण से एक बड़ा मुद्दा होने की संभावना नहीं है, लेकिन बिजली की आपूर्ति जैसे अन्य घटक मुद्दों का कारण बन सकते हैं।

  • यदि आपका कोड उपयोग करता है EEPROM.write(), तो ध्यान रखें कि आपके Uno के ATmega328P में EEPROM केवल 100,000 लिखने के लिए रेट किया गया है।


12

ध्यान रखें कि फ्लैश और EEPROM में सीमित जीवनकाल (लगभग 10,000 और 100,000 क्रमशः साइकिल लिखते हैं) इसलिए यदि आप उन लोगों को बहुत कुछ लिख रहे हैं, तो वे भ्रष्ट हो सकते हैं। एक परीक्षण में मैंने किया, एक बाहरी EEPROM को भ्रष्ट होने के लिए लगभग 3 दिन लग गए।


1
हालांकि प्रलेखन 10k चक्रों को सूचीबद्ध कर सकता है, कई परीक्षणों ने दिखाया है ~ 100k वह जगह है जहां समस्याएं होने लगती हैं।
रॉन

EEPROM आजीवन, न्यूनतम १,००,००० साइकलशीट के अनुसार चक्र लिखते हैं। मुझे लगता है कि मुझे एक परीक्षण पढ़ना याद है जहां भ्रष्टाचार एक मिलियन के करीब शुरू हुआ था।
user2973

10

Arduino 24/7 चलाना समस्या नहीं होनी चाहिए।

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

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


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

1
Atmega328p में एक कम पावर स्लीप मोड है जो ~ 0.1 यूए ड्रॉ करता है।
जोबर्ट

2
जो केवल तभी प्रासंगिक होगा जब कोड वास्तव में प्रोसेसर को सोता है।
क्रिस स्ट्रैटन

8

हम देर से 2011 के बाद से ब्लूमिंगटन IN में ब्लूमिंगलैब्स हैकर्सस्पेस में अपने Arduino- आधारित आरएफआईडी एक्सेस सिस्टम को चला रहे हैं और एक जोड़ी पावर आउटेज और सॉफ्टवेयर अपडेट से यह घड़ी के चारों ओर चलता है, कोई समस्या नहीं है। हाल ही में हमने एक नेटवर्क थर्मोस्टैट जोड़ा, एक ही सौदा - यह चौबीसों घंटे चल रहा है।


मेरा भी 24/7 चलने वाला RFID एक्सेस सिस्टम है। केवल तभी "विफल" होता है जब बिजली बंद हो जाती है, क्योंकि यह मुख्य शक्ति से चलती है। यह 2011 से चल रहा है जिसमें कोई समस्या नहीं है।
निक गैमन

हाहा, हे स्टीव!
डेल्टरय

@NickGammon हाँ, आपका सिस्टम ठंडा है, लेकिन कार्ड कार्ड डेटा पर आधारित क्यों नहीं है, लेकिन केवल टोकन UID है? कृपया हमें एक चतुर समाधान दिखाएं।
user2497

अापका नजरिया क्या है? यह पोस्टर के प्रश्न से असंबंधित है।
sdcharle

6

Arduinos वास्तव में लंबे समय तक मुद्दों के बिना चल सकते हैं, हालांकि स्थानीय परिस्थितियों और गणना की तीव्रता के आधार पर आपको हीट सिंक संलग्न करना पड़ सकता है।

इसके अलावा, इसे अच्छी तरह हवादार रखें।

यह उपयोग किए जा रहे प्रोग्राम पर निर्भर करता है, इसलिए भी, यदि आपका सर्वर हर समय एक पृष्ठ की सेवा कर रहा है, तो यह एक मुद्दा नहीं होना चाहिए, लेकिन यदि आप निरंतर ट्रैफ़िक की अपेक्षा करते हैं तो Arduino जल्दी से गर्म हो सकता है।

आप बिजली की आपूर्ति की स्थिरता भी सुनिश्चित करना चाहते हैं, जब एक Arduino के साथ बेंचटॉप प्रयोगों को चलाना यह एक बड़ा मुद्दा नहीं है, तो थोड़ा यह एक समस्या बन सकता है यदि स्थायी स्थिरता के लिए मुख्य से बिजली बदलना।


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

@ChrisStratton एक ईथरनेट शील्ड उपयोग के आधार पर अलग-अलग हो सकती है। इसके अलावा, Arduino एक कम बिजली की स्थिति में हो सकता है (उदाहरण के लिए, 12AM और 5AM के बीच सो रहा है)।
अनाम पेंगुइन

4

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

जबकि एक Arduino 7-20v को संभालने में सक्षम है क्योंकि इनपुट 12v से अधिक कुछ भी लंबे समय तक गर्म हो सकता है और बोर्ड को नुकसान पहुंचा सकता है। Arduino के किसी भी ओवरहीटिंग से बचने के लिए एक त्वरित सिफारिश के रूप में मैं वोल्टेज को यथासंभव 7v के करीब रखूंगा।


4

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


आपने मुझे इसे हरा दिया, +1।
hoosierEE

मेरा मानना ​​है कि स्ट्रिंग वर्ग मॉलॉक का उपयोग करता है और यह काफी सामान्य है।
user2973

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

4

मैंने अपने पहले Arduino के साथ एक साधारण पावर मॉनिटर बनाया। यह एक वेब-सर्वर से यूएसबी के माध्यम से संचालित होता है जो बदले में काफी बैटरी बैकअप (जिसमें अधिसूचना क्षमता नहीं है) के माध्यम से संचालित होता है।

यह एक गैर-यूपीएस पावर सॉकेट में प्लग किए गए मोबाइल फोन चार्जर से भी जुड़ा है।

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

यह सितंबर 2013 के अंत में, 23 मार्च 2014 को स्थापित किया गया था - मुझे मेरा पहला ईमेल मिला!

इसलिए मैंने एक समस्या नहीं देखी है (यह मिलिस () का उपयोग नहीं करता है) लेकिन यह हर 5 सेकंड में शक्ति का नमूना लेता है।


1

क्या एक Arduino 24/7 चलाने में सक्षम है?

यह एक विश्वसनीयता का सवाल है। विश्वसनीयता में, विचार करने के लिए बहुत सारी चीजें हैं।

  1. सॉफ्टवेयर। अधिक मजबूत सॉफ्टवेयर्स हैं। कम मजबूत सॉफ्टवेयर्स हैं। उदाहरण के लिए, महत्वपूर्ण अनुप्रयोगों के लिए, गतिशील मेमोरी आवंटन को हतोत्साहित किया जाता है, क्योंकि इससे मेमोरी विखंडन हो सकता है। दुर्भाग्य से, Arduino डायनामिक मेमोरी आवंटन पर बहुत निर्भर करता है। इस समस्या को समाप्त कर दिया गया है क्योंकि अधिकांश Arduino बोर्ड में बहुत सीमित रैम है।
  2. पुस्तकालय। कई Arduino पुस्तकालयों में कीड़े होते हैं (यहां तक ​​कि वे अंतर्निहित Arduino पैकेज में, Wringring के रूप में सरल हैं)। सामान्य ऑपरेशन में, ऐसे कीड़े दिखाई नहीं दे सकते हैं। हालाँकि, आप उम्मीद नहीं कर सकते हैं कि "सबकुछ ठीक हो जाएगा" और यह कि "उपयोगकर्ता" (या सबसिस्टम) भविष्यवाणी के अनुसार काम करेगा। पुस्तकालयों की अपनी सीमाएं भी हो सकती हैं (यानी ठीक से बग नहीं)। उदाहरण के लिए, कई उपयोगकर्ताओं ने पहले ही मिलिस () फ़ंक्शन का हवाला दिया, जो 50 दिनों के बाद रीसेट करता है। यह, अगर सही ढंग से संभाला नहीं जाता है, तो गंभीर कीड़े हो सकते हैं।
  3. हार्डवेयर की विश्वसनीयता (सस्ते Arduino क्लोन के बारे में भी बात नहीं ...)। यहां पर उप-वर्गों का एक नया वर्ग खुलता है। मैं केवल एक बहुत ही सीमित उपसमूह का हवाला दूंगा।
    • क्या Arduino बोर्ड विश्वसनीयता के लिए डिज़ाइन किए गए हैं? (उदाहरण
      के लिए इस्तेमाल किया संधारित्रों की विश्वसनीयता क्या है ? और अन्य घटक?)
    • ईएमआई के खिलाफ लूट? मैं उस पर भरोसा नहीं करेगा: Arduino बोर्ड के अधिकांश में सिर्फ दो परतें हैं, और एक उचित जमीन / शक्ति विमान की कमी है।
    • EEPROM (यह सॉफ्टवेयर और हार्डवेयर दोनों है)। क्या आपका सॉफ्टवेयर EEPROM का उपयोग कर रहा है? साइकिल चलाने से रोकने के लिए कुछ एल्गोरिदम को लागू करना (एक ही कोशिकाओं पर बार-बार लिखना / मिटाना) है?
    • फ्लैश मेमोरी प्रतिधारण समय। तापमान के साथ अवधारण समय कम हो जाता है, और प्रोग्रामिंग चक्रों की संख्या के साथ भी।
    • आयनीकरण विकिरण। हां, भले ही संभावना बहुत कम हो, कम से कम समुद्र के स्तर पर, विकिरण-प्रेरित एकल-घटना से परेशान होने की संभावना शून्य नहीं है, और इसे पर्याप्त प्रतिवाद लिया जाना चाहिए (विशेष रूप से ध्यान में रखा गया है कि रैम में कोई हार्डवेयर त्रुटि नहीं है ) महत्वपूर्ण अनुप्रयोगों में।
    • बिजली की आपूर्ति की गुणवत्ता।
    • ऑपरेटिंग वातावरण। एक 25- ° C नियंत्रित वातावरण, या छत पर एक ब्लैक बॉक्स में (गर्मियों में सूरज के नीचे 70 ° C)? तापमान जितना अधिक होगा, उतनी ही तेजी से सभी क्षरण तंत्र।
    • ...

फिर भी, आपको आश्चर्यचकित नहीं होना चाहिए कि क्या आपका आर्डिनो कई वर्षों तक निर्दोष काम करेगा। लेकिन यह सुनिश्चित नहीं करता है कि हर arduino करेगा।

कुछ प्रतिवाद विश्वसनीयता बढ़ाएँगे:

  • वॉचडॉग का उपयोग करें: एक गैर-उत्तरदायी प्रणाली को रीसेट करना बेहतर है, एक अटक / दुर्व्यवहार करने की तुलना में।
  • स्मृति आवंटन का उपयोग करने वाले किसी भी पुस्तकालय का उपयोग करने से बचें।
  • लागू करें (यदि आप EEPROM का उपयोग करते हैं) इसे संरक्षित करने के लिए एक एल्गोरिथ्म!
  • अच्छी बिजली की आपूर्ति।
  • कठोर उथल-पुथल (उच्च तापमान, उच्च आर्द्रता, बड़े और निरंतर थर्मल चक्र, आदि) से बचें।

0

यह निश्चित रूप से 24/7 चल सकता है। मैं या तो 5V को 5V पिन का उपयोग करता हूं, या 7808 से विन पिन को वीजीआर को लोड करने के लिए करता हूं। आदर्श रूप से यह 6.5 वी होगा, लेकिन मेरे पास ऐसी आपूर्ति नहीं है। आप 5V पर एक डिकूपर कैप चाहते हैं, हालांकि अपनी आपूर्ति को बढ़ाते समय किसी भी छोटे स्पाइक्स को भिगोने के लिए।

कोई भी हार्डवेयर जो 5 वी पर चलता है, मैं 7805 के साथ फीड करता हूं। आप 783 के एवज में LM317s या LM350s का उपयोग कर सकते हैं, लेकिन आपको उन लोगों के लिए कुछ प्रतिरोधों की आवश्यकता होगी, जो शायद ट्रिमपॉट हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.