I3231C के माध्यम से एकीकृत DS2 की तारीख और तापमान की जांच करने के लिए Arduino लाइब्रेरी

I3231C के माध्यम से एकीकृत DS2 की तारीख और तापमान की जांच करने के लिए Arduino लाइब्रेरी

I3231C के माध्यम से एकीकृत DS2 की तारीख और तापमान की जांच करने के लिए Arduino लाइब्रेरी

अद्यतन: नए पर भी जाएँ DS3231 RTC मॉड्यूल और Arduino के साथ दिनांक और समय प्रबंधित करने के लिए लाइब्रेरी मौसमी समय जैसे सुधारों के साथ।

का संचालन IC de वास्तविक समय घड़ियाँ (आरटीसी) सबसे लोकप्रिय जिनका उपयोग करके नियंत्रित किया जाता है बस मैं2C यह आमतौर पर बहुत समान होता है. इसके अतिरिक्त तार पुस्तकालय de Arduino उपकरणों के साथ संचार को बहुत सरल बनाता है दो-तार सीरियल इंटरफ़ेस (TWI), I2C, विशिष्ट।

सामग्री की तालिका

    मोटे तौर पर, इस प्रक्रिया में शामिल हैं

    1. फ़ंक्शन के साथ स्लेव या मास्टर (डिफ़ॉल्ट रूप से सेट) के रूप में संचार आरंभ करें तार.शुरू (पता). यदि "पता" हटा दिया जाता है, तो संचार इससे शुरू होता है μC के शिक्षक बस मैं2C.

    2. संचार सक्रिय करें I2C कमांड का उपयोग करके डिवाइस के साथ मेमोरी एड्रेस के माध्यम से जहां यह स्थित है वायर.बेगिनट्रांसमिशन(पता).

    3. में एक आदेश लिखें बस मैं2C डिवाइस को यह बताने के लिए कि आप उससे कौन सा ऑपरेशन कराना चाहते हैं वायर.लिखें(कमांड), जिसमें "ऑर्डर" ऑपरेशन कोड है।

    4. जारी करने के लिए संचार अक्षम करें बस मैं2C समारोह के साथ Wire.endTransmission ().

    5. डिवाइस से फ़ंक्शन के साथ अनुरोध किए गए ऑपरेशन के अनुरूप एक निश्चित मात्रा में डेटा भेजने का अनुरोध करें (इस मामले में, दिनांक और समय) वायर.अनुरोध(पता,राशि).

    6. फ़ंक्शन के साथ अनुरोधित डेटा पढ़ने के लिए उपलब्ध होने की प्रतीक्षा करें Wire.available (), जो पहले से प्राप्त और पढ़े जा सकने वाले डेटा की संख्या लौटाता है।

    7. डिवाइस द्वारा भेजा गया डेटा पढ़ें (द वास्तविक समय घड़ी, इस मामले में) फ़ंक्शन का उपयोग करना तार.पढ़ें() जितनी बार बाइट्स इंगित की गईं Wire.available () उपलब्ध हैं।

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

    DS3231 के संबंध में (और उसी श्रृंखला में संगत, जैसे कि DS3232) और डेटा की व्याख्या, एकीकृत विनिर्देशों के अनुसार, उदाहरण के लिए, समय का प्रतिनिधित्व करने वाले विभिन्न अंकों के मूल्यों का प्रतिनिधित्व किया जाता है बाइनरी कोडित दशमलव (बीसीडी) जिसे दशमलव मान के रूप में व्यक्त करना अधिक सुविधाजनक होगा (a बाइट) में उपयोग करने के लिए Arduino

    इसी तर्ज पर तापमान को बाइट इन के रूप में व्यक्त किया जाता है दो का अनुपूरण पूर्णांक भाग के लिए और चरण के लिए दो बिट, दशमलव भाग के एक चौथाई डिग्री के रिज़ॉल्यूशन के साथ। घड़ी पर डेटा प्रतिनिधित्व के इन और अन्य पहलुओं पर नीचे लाइब्रेरी कोड में विस्तृत चर्चा की गई है। DS3231

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

    लाइब्रेरी का उपयोग कैसे करें यह दिखाने के लिए निम्नलिखित उदाहरण कोड है। जैसा कि ऊपर उल्लेख किया गया है, तापमान को केवल फ़ंक्शन के साथ पढ़ा जाता है read_तापमान() क्लास ऑब्जेक्ट का DS3231 लेकिन, रीडिंग में त्रुटियों को नजरअंदाज करने के लिए, दो स्थिरांक का उपयोग किया जाता है जो क्रमशः डेटा शीट के अनुसार डिवाइस के अधिकतम और न्यूनतम तापमान को संग्रहीत करते हैं और जिन्हें संबंधित कार्यों के साथ पढ़ा जाता है।

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

    • समारोह दिनांक_समय_मान() जो एक सूचक को एक सरणी में लौटाता है टैंक (बाइट्स) जिसमें सात संख्यात्मक मान होते हैं जो घड़ी पर दिनांक और समय का प्रतिनिधित्व करते हैं DS3231 दशमलव में परिवर्तित (वे अंदर हैं बीसीडी उपकरण पर)

    • फ़ंक्शन का उपयोग करना कार्यदिवस_संख्या() एक मान प्राप्त होता है जो रविवार से शुरू होने वाले सप्ताह के दिन की संख्या से मेल खाता है। इसे पाठ के रूप में प्रदर्शित करने के लिए, एक सरणी का उपयोग किया जाता है और सूचकांक शून्य, रविवार से प्रारंभ करने के लिए एक को घटाया जाता है।

    • "स्थानीय" (स्पेनिश) प्रारूप में तारीख देखने के लिए, फ़ंक्शन का उपयोग करें मानव तिथि(), जो एक स्ट्रिंग पर एक सूचक लौटाता है जिसमें तारीख को DD/MM/YYYY प्रारूप में दर्शाया जाता है, जहां DD 2 अंकों के साथ दिन का प्रतिनिधित्व करता है, MM 2 अंकों के साथ महीना है और YYYY 4 अंकों के साथ वर्ष है।

    • समारोह मानव_घंटा() समय को hh:mm:ss प्रारूप में लौटाता है, जिसमें hh घंटा (24 प्रारूप में) 2 अंकों के साथ दर्शाया जाता है, mm 2 अंकों के साथ मिनट होता है और ss 2 अंकों के साथ सेकंड होता है।

    • दिनांक और समय का आसानी से उपयोग करने के लिए फाइल्स लॉग करें # लॉग फाइलें समारोह को प्रोग्राम किया गया है कॉम्पैक्ट_दिनांक_समय(), जो YYMMDDhhmmss प्रारूप में दिनांक और समय का मान प्रदान करता है, जिसमें AA अंतिम 2 अंकों के साथ वर्ष का प्रतिनिधित्व करता है, MM महीने को 2 अंकों के साथ, DD दिन को 2 अंकों के साथ, hh घंटा (24 प्रारूप में) 2 के साथ दर्शाता है। अंक, 2 अंकों के साथ मिनट मिमी और 2 अंकों के साथ सेकंड एसएस। यह प्रारूप, भले ही यह पाठ है, बहुत कम जगह लेता है और बहुत ही सरल वर्णमाला क्रम की अनुमति देता है।

    • समारोह दिनांक_समय_MySQL() डेटाबेस प्रबंधक द्वारा उपयोग किए गए प्रारूप में दिनांक और समय प्रस्तुत करने का कार्य करता है MySQL (या नया और स्वतंत्र MariaDB) YYYY-MM-DD hh:mm:ss, जहां YYYY वर्ष को 4 अंकों के साथ दर्शाया गया है, MM 2 अंकों के साथ महीना है, DD 2 अंकों के साथ दिन है, hh 24 अंकों के साथ घंटा (2 प्रारूप में) है , मिमी 2 अंकों वाला मिनट और 2 अंकों वाला सेकंड है।

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

    उपरोक्त उदाहरण प्रोग्राम का आउटपुट कुछ ऐसा हो सकता है जो निम्नलिखित छवि में दिखाया गया है: 7 मानों की एक सूची (सेकंड, मिनट, घंटा, सप्ताह का दिन, महीने का दिन, महीना और वर्ष) तारीख और समय को "मानवीय" तरीके से व्यक्त किया जाता है (स्पेनिश शैली के अनुसार) चार अंकों के घड़ी प्रारूप में पूर्ण संख्या के रूप में समय, डेटाबेस प्रारूप में दिनांक और समय MySQL, दिनांक और समय कॉम्पैक्ट प्रारूप में (के लिए)। लॉग) और का आंतरिक तापमान DS3231.

    I3231C बस के माध्यम से Arduino कंसोल आउटपुट लाइब्रेरी रियल टाइम क्लॉक (RTC) और तापमान DS2

    टिप्पणी पोस्ट

    आप चूक गए होंगे