अप्रत्याशित बिजली आपूर्ति से निपटने के लिए रणनीतियाँ


15

मैं अपनी कार में एक पाई स्थापित करना चाहता हूं और इसका उपयोग जीपीएस डेटा रिकॉर्ड करने के लिए करता हूं। एसडी कार्ड पर लिखते समय बिजली बाधित होने के कारण मैं किन रणनीतियों (अपने कार्यक्रम में) का पालन कर सकता हूं?

अब तक मैं इसके बारे में सोच सकता हूं:

  • डेटा संग्रहीत करना और केवल रुक-रुक कर लिखना
  • केवल तब लिखना जब वाहन की गति शून्य के करीब न हो (यानी इग्निशन को बंद करना)
  • एक अस्थायी फाइल पर लिखें जिसे मैं भ्रष्ट कर सकता हूं, फिर उसे हर हाल में जारी रखें

मैं सोच रहा हूं कि क्या हैं

  • फाइलसिस्टम मोड मैं ज्यादातर समय रुक सकता हूं जो अचानक बंद होने से बच जाएगा
  • अधिक भरोसेमंद लिखते हुए बिजली से वसूली करने के तरीके

जाहिर है (मुझे लगता है) कुछ डेटा हानि अपरिहार्य है, लेकिन मैं इसे कैसे कम कर सकता हूं?

जवाबों:


3

आपूर्ति पक्ष में दो विकल्प (कम से कम) हैं:

  • कई कारों में अब एक एक्सेसरी सॉकेट होता है जिसे इग्निशन द्वारा स्विच नहीं किया जाता है ... यदि आपकी कार में एक है, तो उस का उपयोग करें (लेकिन उपयोग में नहीं आने पर अनप्लग करें!) जो आपको एक विश्वसनीय आपूर्ति दे (हालांकि यह इंजन के दौरान गिर सकती है) क्रेंकिंग)
  • यदि आप अपने स्वयं के पावर कन्वर्टर को डिजाइन कर रहे हैं, तो यह सुनिश्चित करने के लिए एक बड़ा पर्याप्त जलाशय संधारित्र जोड़ें कि वाहन स्विच ऑफ होने के बाद आपूर्ति काफी समय तक रहे ... आप एक GPIO के लिए वाहन बंद (वाहन आपूर्ति एक सीमा से नीचे गिर जाता है) का पता लगा सकते हैं, सुनिश्चित करें कि आप पावर-ऑफ के बाद लिखना शुरू न करें

2

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

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


क्या किसी ने पीआई पर इस लेख के साथ जाने की कोशिश की है? ऐसा लगता है कि इसे बहुत अनुकूलन की आवश्यकता होगी
गाइस्टॉफ्ट

2

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

फिर, एक ठेठ कार की बैटरी लगभग 80 आह होगी और पीआई 500-1200 एमए (यदि यह एक मॉडल ए या बी है) के आधार पर खपत करेगा, तो शायद यह आपकी कार की बैटरी को 2 और 6 दिनों के बीच में सूखा देगा, इसलिए मुझे नहीं लगता कि आपको यह स्वीकार्य लगेगा।

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

हालाँकि, अगर आपको शटडाउन में कुछ डेटा को ढीला करने के लिए स्वीकार्य है, तो मैं डेमॉन को डिज़ाइन करूँगा जो समय-समय पर जीपीएस डेटा को इस तरह से फ़ाइल में सहेजता है कि यह प्रत्येक लिखने के बाद एक fsync कॉल को निष्पादित करता है (डेटा को एसडी-फ्लश करने के लिए) कार्ड)। यदि आप हर कुछ सेकंड में ऐसा करते हैं (और डिफ़ॉल्ट जर्नलिंग ext4 फाइल सिस्टम का उपयोग भी कर रहे हैं) तो इसका मतलब शायद यह होगा कि आप प्रत्येक पावर लॉस में केवल कुछ सेकंड ही ढीला करेंगे।

कृपया ध्यान रखें कि Raspbian (कम से कम मेरा इंस्टॉलेशन) बूट समय पर रूट फाइल सिस्टम की fsck के साथ नहीं आया था। प्रत्येक माउंट पर इसे सक्षम करने के लिए आपको निम्नलिखित कार्य करने होंगे:

tune2fs -c 1 /dev/mmcblk0p2

आपको रूट फ़ाइल सिस्टम के लिए अंतिम पंक्ति को / a / etc / fstab में 1 को बदलना होगा, जैसे:

/dev/mmcblk0p2  /               ext4    defaults,noatime,commit=120  0       1
                                                               Change this ^^^^^

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


1

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

दुर्भाग्य से फ़िलहाल स्टॉक आउट हो रहा है, लेकिन आप प्री-ऑर्डर कर सकते हैं।


0

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

अनुप्रयोग पक्ष पर, कुछ डेटाबेस ( sqlite ?) का उपयोग करते हुए डेटा को फिर से खोले जाने पर संपूर्ण लेखन या कोई लेखन स्थिति की गारंटी नहीं देनी चाहिए।

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

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

एक कार में आपके पास +12/24 वी और पीआई +5 वी का उपयोग होता है, इसलिए कनवर्टर में या उससे पहले किसी चीज के लिए संभावित (हेह) है। आप करने के लिए सक्षम हो सकता है डायोड या एक और यथोचित कनवर्टर उस पर जब वोल्टेज, चला जाता है, उदाहरण के लिए ले जाएगा से पहले 9-12 वी बैटरी आकार। अपेक्षाकृत भारी पावर ड्रा को ध्यान में रखते हुए, इसे किसी भी तरह चार्ज करने की आवश्यकता होगी। आप मुख्य पावर लाइन के लिए एक तुलनित्र या एक विशेष वोल्टेज मॉनिटर को रिग करने में सक्षम हो सकते हैं और मुख्य पावर डाउन होने पर सतर्क हो सकते हैं। (मुझे नहीं पता कि पीआई को संकेत करने का एक तेज़ तरीका क्या होगा।)


1
एक संबंधित बिजली का प्रश्न लगता है: raspberrypi.stackexchange.com/questions/3778/…
XTL
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.