विषयसूची:

NaTaLia Weather Station: Arduino Solar Powered Weather Station ने सही तरीके से किया: 8 कदम (चित्रों के साथ)
NaTaLia Weather Station: Arduino Solar Powered Weather Station ने सही तरीके से किया: 8 कदम (चित्रों के साथ)

वीडियो: NaTaLia Weather Station: Arduino Solar Powered Weather Station ने सही तरीके से किया: 8 कदम (चित्रों के साथ)

वीडियो: NaTaLia Weather Station: Arduino Solar Powered Weather Station ने सही तरीके से किया: 8 कदम (चित्रों के साथ)
वीडियो: High Density 2022 2024, जुलाई
Anonim
NaTaLia मौसम स्टेशन: Arduino सौर ऊर्जा संचालित मौसम स्टेशन ने सही तरीके से किया
NaTaLia मौसम स्टेशन: Arduino सौर ऊर्जा संचालित मौसम स्टेशन ने सही तरीके से किया
NaTaLia मौसम स्टेशन: Arduino सौर ऊर्जा संचालित मौसम स्टेशन ने सही तरीके से किया
NaTaLia मौसम स्टेशन: Arduino सौर ऊर्जा संचालित मौसम स्टेशन ने सही तरीके से किया

2 अलग-अलग स्थानों पर 1 साल के सफल संचालन के बाद मैं अपनी सौर ऊर्जा संचालित मौसम स्टेशन परियोजना योजनाओं को साझा कर रहा हूं और बता रहा हूं कि यह कैसे एक ऐसी प्रणाली के रूप में विकसित हुई जो वास्तव में सौर ऊर्जा से लंबे समय तक जीवित रह सकती है। यदि आप मेरे निर्देशों का पालन करते हैं और सूचीबद्ध समान सामग्रियों का उपयोग करते हैं, तो आप सौर ऊर्जा से चलने वाले मौसम स्टेशन का निर्माण कर सकते हैं जो कई वर्षों तक चलेगा। वास्तव में यह कितनी देर तक चलेगा यह सीमित करने वाला एकमात्र कारक उस बैटरी का जीवनकाल है जिसका आप उपयोग कर रहे हैं।

चरण 1: मौसम स्टेशन संचालन

1, ट्रांसमीटर: सौर पैनल के साथ आउटडोर माउंटेड बॉक्स जो समय-समय पर इनडोर रिसीवर यूनिट को मौसम टेलीमेट्री (तापमान, आर्द्रता, हीट इंडेक्स, सोलर स्ट्रेंथ) भेजता है।

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

फोटोरेसिस्टर (जो यह निर्धारित करता है कि यह दिन या रात बाहर है) को पढ़कर स्टेशन मेरे घर में रोशनी को नियंत्रित कर रहा है। मेरे मामले में रिसीवर हेडलेस है लेकिन आप एलसीडी डिस्प्ले जोड़ने के लिए प्रोजेक्ट को आसानी से संशोधित कर सकते हैं। स्टेशन से मौसम डेटा का उपयोग करने, पार्स करने और प्रदर्शित करने वाले उपकरणों में से एक मेरा अन्य प्रोजेक्ट है: आयरनफोर्ज द नेटबीएसडी टोस्टर।

चरण 2: पहला संस्करण

पहला संस्करण
पहला संस्करण
पहला संस्करण
पहला संस्करण
पहला संस्करण
पहला संस्करण
पहला संस्करण
पहला संस्करण

नेट पर बहुत सारी सौर परियोजनाएं हैं लेकिन उनमें से कई सामान्य गलती करते हैं कि सिस्टम समय के साथ बैटरी से अधिक ऊर्जा लेता है जो सौर पैनल फिर से भर सकता है, खासकर बादल, अंधेरे सर्दियों के महीनों के दौरान।

जब आप सौर ऊर्जा से चलने वाले सिस्टम को डिजाइन करते हैं तो केवल एक चीज मायने रखती है बिजली की खपत, सभी घटकों पर: एमसीयू, रेडियो ट्रांसमीटर, वोल्टेज नियामक आदि।

रास्पबेरी पाई जैसे बड़े कंप्यूटर का उपयोग करना या ईएसपी जैसे बिजली के भूखे वाईफाई डिवाइस का उपयोग करना और कुछ बिट्स मौसम डेटा को इकट्ठा करना और परिवहन करना एक ओवरकिल होगा, लेकिन जैसा कि मैं इसे इस ट्यूटोरियल में दिखाऊंगा, यहां तक कि एक छोटा Arduino बोर्ड भी है।

आपकी बिल्ड प्रक्रिया के दौरान मीटर या स्कोप के साथ हमेशा करंट को मापना सबसे अच्छा होता है (उपयोगी जब आप ऑपरेशन के दौरान बहुत कम समय (मिलीसेकंड) में उपयोग में छोटे स्पाइक्स को मापने का प्रयास करते हैं)।

पहली तस्वीर पर आप मेरा पहला (Arduino Nano Based) स्टेशन और दूसरा Arduino Barebone Atmega 328P बोर्ड देख सकते हैं।

पहला संस्करण, हालांकि इसने पूरी तरह से काम किया (पर्यावरण की निगरानी करना और रेडियो के माध्यम से डेटा भेजना) में बहुत अधिक बिजली की खपत ~ 46mA थी और कुछ ही हफ्तों में बैटरी खत्म हो गई।

सभी संस्करण निम्नलिखित बैटरी का उपयोग कर रहे थे:

18650 6000mAh संरक्षित ली-आयन रिचार्जेबल बैटरी बिल्ट-इन प्रोटेक्शन बोर्ड

इन स्कैमफायर बैटरियों पर अद्यतन करें। हालाँकि यह एक काफी पुराना निर्देश है, फिर भी मुझे इस फर्जी बैटरी के कारण इसे ठीक करने के लिए मजबूर होना पड़ा। उल्लिखित बैटरी न खरीदें, अन्य LION/LIPO बैटरी के बारे में अपना स्वयं का शोध करें, सभी 3.7V बैटरी इस परियोजना के साथ काम करेंगी।

अंत में मेरे पास यह देखने के लिए स्कैमफायर बैटरी को डिबंक करने का समय था कि यह वास्तविक क्षमता क्या है। इसलिए हम वास्तविक और "विज्ञापित" क्षमताओं के साथ-साथ 2 गणनाएँ चलाएंगे।

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

LION/LIPO बैटरी पर एक छोटा सा लेख:

टीएलडीआर:

इसका मतलब यह है कि सेल का अधिकतम वोल्टेज 4.2v है और "नाममात्र" (औसत) वोल्टेज 3.7V है।

उदाहरण के लिए, यहां 'क्लासिक' 3.7V/4.2V बैटरी के लिए वोल्टेज का प्रोफाइल दिया गया है। वोल्टेज अधिकतम 4.2 से शुरू होता है और अधिकांश बैटरी जीवन के लिए जल्दी से लगभग 3.7V तक गिर जाता है। एक बार जब आप 3.4V हिट करते हैं तो बैटरी मृत हो जाती है और 3.0V पर कटऑफ सर्किटरी बैटरी को डिस्कनेक्ट कर देती है।

डमी लोड का उपयोग करके मेरा माप:

बैटरी चार्ज: 4.1V

कटऑफ सेट: 3.4V

लोड सिमुलेशन: 0.15A (मेरे डिवाइस को इससे कम जाने में थोड़ी समस्या थी।)

मापी गई क्षमता: 0.77Ah इसे एक अनावश्यक 0.8 आह दें जो कि विज्ञापित 6000mAh के बजाय 800mAh है!

चूंकि इस बैटरी में सुरक्षा सर्किट भी नहीं था इसलिए मैं स्वतंत्र रूप से कम जा सकता था लेकिन 3.4V पर 10 मिनट के बाद यह पहले ही 3.0V तक क्रैश हो जाता है।

इसलिए सरल गणनाओं के साथ बैटरी प्रदान कर रही है:

सैद्धांतिक

बैटरी वोल्टेज = 3.7 वी

शक्ति =3.7x6000= 22000 mWh

असली

बैटरी वोल्टेज =3.7VPower =3.7x800= 2960 mWh

संस्करण: 0.1 ARDUINO नैनो आधारित

लोपावर लाइब्रेरी के साथ भी एक Arduino नैनो ~ 16 mA (स्लीप मोड में) -> FAIL की खपत करता है।

सैद्धांतिक

Pavg=VxIavg =5Vx16mA= 80 mW

बैटरी जीवन = २२०००/८० = २७५ घंटे = ११ दिन लगभग

RealPavg=VxIavg =5Vx16mA= 80 mW

बैटरी लाइफ = ८००/८० = १० घंटे

संस्करण: 0.2 एटमेगा 328पी बेयरबोन

ATmega328 द्वारा खपत की जाने वाली शक्ति बहुत कुछ इस बात पर निर्भर करती है कि आप इसके साथ क्या कर रहे हैं। बस वहां एक डिफ़ॉल्ट स्थिति में बैठे, यह 16mA @ 5V का उपयोग कर सकता है जबकि 16MHz पर चल रहा है।

जब ATmega328P सक्रिय मोड में होता है, तो यह प्रति सेकंड कई मिलियन निर्देशों को लगातार निष्पादित करेगा। इसके अलावा, ऑन-बोर्ड पेरिफेरल्स एनालॉग टू डिजिटल कन्वर्टर (एडीसी), सीरियल पेरिफेरल इंटरफेस (एसपीआई), टाइमर 0, 1, 2, टू वायर इंटरफेस (आई2सी), यूएसएआरटी, वॉचडॉग टाइमर (डब्ल्यूडीटी), और ब्राउन-आउट डिटेक्शन (बीओडी) बिजली की खपत करते हैं।

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

लो-पावर लाइब्रेरी का उपयोग करना आसान है लेकिन बहुत शक्तिशाली है। बयान LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF); पहले तर्क के आधार पर MCU को 16 ms से 8 s के लिए SLEEP_MODE_PWR_DOWN में रखता है। यह एडीसी और बीओडी को निष्क्रिय कर देता है। पावर-डाउन स्लीप का मतलब है कि अगले व्यवधान तक सभी चिप फ़ंक्शन अक्षम हैं। इसके अलावा, बाहरी थरथरानवाला बंद कर दिया गया है। INT1 और INT2 पर केवल लेवल इंटरप्ट, पिन चेंज इंटरप्ट, TWI/I2C एड्रेस मैच, या WDT, यदि सक्षम है, तो MCU को जगा सकता है। तो एकल कथन के साथ, आप ऊर्जा की खपत को कम कर देंगे। 3.3 वी प्रो मिनी के लिए बिना पावर एलईडी और बिना रेगुलेटर (नीचे देखें) जो स्टेटमेंट चला रहा है, ऊर्जा की खपत 4.5 μA है। यह पावर-डाउन स्लीप के लिए ATmega328P डेटाशीट में उल्लिखित WDT के साथ 4.2 μA (स्रोतों में जुड़े डेटाशीट) के साथ बहुत करीब है। इसलिए, मुझे पूरा विश्वास है कि पावरडाउन फ़ंक्शन हर संभव चीज़ को बंद कर देता है। LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF) कथन के साथ, WDT अक्षम हो जाएगा और आप तब तक नहीं जागेंगे जब तक कि कोई व्यवधान ट्रिगर न हो जाए।

तो बेयरबोन सेटअप के साथ हम चिप को 5 मिनट के लिए स्लीप मोड में डाल सकते हैं, जबकि यह बहुत कम मात्रा में ऊर्जा (बिना बाह्य उपकरणों के 0.04 mA) की खपत कर रहा है। हालाँकि यह क्रिस्टल ऑसिलेटर के साथ केवल Atmega 328P चिप है और कुछ नहीं, 3.7V से बैटरी वोल्टेज को बढ़ावा देने के लिए इस कॉन्फ़िगरेशन में उपयोग किया जाने वाला वोल्टेज बूस्टर -> 5.0 V भी 0.01 mA की खपत करता है।

एक निरंतर वोल्टेज ड्रेन जोड़ा गया फोटो रेसिस्टर था जो स्लीप मोड में खपत को समग्र रूप से 1 mA (इसमें सभी घटक शामिल करता है) तक बढ़ा देता है।

स्लीप और वेकअप मोड दोनों में डिवाइस के लिए सटीक खपत की गणना करने का सूत्र है:

Iavg = (टन * आयन + नींद * सो) / (टन + नींद)

आयन = 13mA

यह ज्यादातर RF433 Mhz ट्रांसमीटर से आ रहा है:

ट्रांसमीटर:

कार्यशील वोल्टेज: अधिकतम के लिए 3V - 12V। बिजली का उपयोग 12V कार्यशील वर्तमान: अधिकतम 40mA से कम अधिकतम, और न्यूनतम 9mAResonance मोड: (SAW) मॉड्यूलेशन मोड: ASK कार्य आवृत्ति: पूर्व संध्या 315MHz या 433MHz संचरण शक्ति: 25mW (12V पर 315MHz) आवृत्ति त्रुटि: +150kHz (अधिकतम) वेग: 10Kbps से कम

नींद = 1mA

फोटोरेसिस्टर के बिना काफी कम होगा।

ट्रुनन समय टन=250 mS = 0.25s

सोने का समय नींद = ५ मिनट = ३०० सेकंड

Iavg = (टन * आयन + नींद * सो) / (टन + नींद)

औसत = (0.25s*13mA + 300s*1mA) / (0.25s+300s)

औसत = 1.26mA

Pavg=VxIavg =5Vx1.26mA=6 mW

सैद्धांतिक

बैटरी जीवन = २२०००mWh/6mW = ३६६६ घंटे = १५२ दिन लगभग

असली

बैटरी जीवन = 800mWh/6mW = 133 घंटे = 5.5 दिन लगभग

हालाँकि ये अभी भी एक बेहतर अल्ट्राफायर श्रृंखला थी जिसका मैंने शुरू में उपयोग किया था, आप देख सकते थे कि सौर पैनल या कम 1mA खपत के बिना यह परियोजना लंबे समय तक नहीं चलेगी।

स्टेशन बनाने के लिए स्वतंत्र महसूस करें और टिप्पणियों में अपने निष्कर्ष और गणना लिखें और मैं लेख को अपडेट करूंगा। मैं विभिन्न एमसीयू और बूस्ट कन्वर्टर्स के साथ परिणामों की भी सराहना करता हूं।

चरण 3: एक सफल मौसम स्टेशन का निर्माण

एक सफल मौसम स्टेशन का निर्माण
एक सफल मौसम स्टेशन का निर्माण
एक सफल मौसम स्टेशन का निर्माण
एक सफल मौसम स्टेशन का निर्माण
एक सफल मौसम स्टेशन का निर्माण
एक सफल मौसम स्टेशन का निर्माण
एक सफल मौसम स्टेशन का निर्माण
एक सफल मौसम स्टेशन का निर्माण

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

तस्वीर पर नया छोटा मॉड्यूल जिसमें एक संकेतक भी नहीं है, वास्तव में 3mA (*FAIL*) की निकासी करता है, इसलिए मैं अपने पुराने बोर्ड के साथ रहा:

पीएफएम कंट्रोल डीसी-डीसी यूएसबी 0.9वी-5वी से 5वी डीसी बूस्ट स्टेप-अप पावर सप्लाई मॉड्यूल

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

चरण 4: हार्डवेयर सूची

हार्डवेयर सूची
हार्डवेयर सूची
  • 18650 6000mAh संरक्षित ली-आयन रिचार्जेबल बैटरी बिल्ट-इन प्रोटेक्शन बोर्ड
  • बूटलोडर के साथ Atmega 328P16M 5V
  • Adafruit DC Boarduino (Arduino संगत) किट (w/ATmega328) <यह एक अच्छा निवेश होने जा रहा है यदि आप भविष्य में नंगे हड्डी वाले प्रोजेक्ट कर रहे हैं
  • फोटो लाइट सेंसिटिव रेसिस्टर फोटोरेसिस्टर ऑप्टोरेसिस्टर 5 मिमी GL5539
  • 1A 1000V डायोड 1N4007 IN4007 DO-41 दिष्टकारी डायोड
  • पीएफएम कंट्रोल डीसी-डीसी यूएसबी 0.9वी-5वी से 5वी डीसी बूस्ट स्टेप-अप पावर सप्लाई मॉड्यूल
  • 1.6W 5.5V 266mA मिनी सोलर पैनल मॉड्यूल सिस्टम एपॉक्सी सेल चार्जर DIY
  • TP405 5V मिनी USB 1A लिथियम बैटरी चार्जिंग बोर्ड चार्जर मॉड्यूल
  • Arduino/ARM/MC रिमोट कंट्रोल के लिए 433 मेगाहर्ट्ज आरएफ ट्रांसमीटर और रिसीवर लिंक किट <किट, ट्रांसमीटर और रिवाइवर दोनों शामिल हैं
  • IP65 स्विच रक्षक जंक्शन बॉक्स आउटडोर पनरोक संलग्नक 150x110x70mm
  • Arduino के लिए नया DHT22 तापमान और सापेक्ष आर्द्रता सेंसर मॉड्यूल
  • 1x220 ओम, 2x10KOhm, 1xLED, 1xमिनी स्विच, 1x1N4007डायोड
  • एडफ्रूट 16 मेगाहर्ट्ज सिरेमिक रेज़ोनेटर / ऑसीलेटर [एडीए 1873]
  • रिसीवर स्टेशन + रास्पबेरी पीआई 1/2/3. के लिए Arduino यूएनओ/मेगा इत्यादि
  • ऐक्रेलिक प्लास्टिक बॉक्स साफ़ करें (वैकल्पिक)

आप इन सभी को eBay पर पा सकते हैं, मैं किसी भी विक्रेता को उनके पृष्ठों से लिंक करके प्रचारित नहीं करना चाहता और लिंक भविष्य में वैसे भी मृत हो जाएंगे।

हार्डवेयर सूची के लिए नोट्स:

बस अगर आप प्रोग्रामिंग के साथ एटमेगा को ईंट करते हैं तो उनमें से अधिक खरीदते हैं, वही वोल्टेज बूस्टर और सौर चार्ज नियंत्रक के लिए जाता है।

सोलर चार्जर में 2 छोटे रंग के एलईडी होते हैं जो केवल सोलर चार्जिंग के मामले में चालू होते हैं और संकेत करते हैं (लाल-> चार्जिंग, नीला-> पूरी तरह से चार्ज स्थिति)। इन्हें अनसोल्ड भी किया जा सकता है। यह चार्जिंग के दौरान बैटरी को थोड़ा और अतिरिक्त रस देता है।

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

TP405 5V मिनी USB 1A लिथियम बैटरी चार्जिंग बोर्ड: दुर्भाग्य से इस बोर्ड में सोलर पैनल के लिए रिवर्स करंट प्रोटेक्शन शामिल नहीं है, इसके लिए आपको सोलर पैनल के एक पैर और चार्जिंग सर्किट के बीच करंट को रोकने के लिए 1 और डायोड लगाने की आवश्यकता होगी। रात में वापस सौर पैनल में प्रवाहित होने के लिए।

चरण 5: विधानसभा

सभा
सभा
सभा
सभा
सभा
सभा

इस बोर्ड में अपेक्षाकृत कम घटक होते हैं और बोर्ड पर मार्कर काफी सरल होते हैं।

सुनिश्चित करें कि आपने Atmega328P को गलत तरीके से नहीं डाला है (जो चिप को गर्म और ईंट कर सकता है, वोल्टेज बूस्टर को भी नष्ट कर सकता है)।

इस सेटअप में चिप नीचे की ओर होती है (छोटा U होल मार्किंग PIN1)। अन्य सभी घटक स्पष्ट होने चाहिए।

LDR के लिए परिरक्षित केबल का उपयोग करें (जैसे: CDROM से ऑडियो केबल ठीक रहेगा)। कुछ मामलों में (कई हफ्तों के परीक्षण में) यह पता चला कि यह रेडियो सिग्नल ट्रांसमिशन में हस्तक्षेप कर रहा है। यह उन बगों में से एक था जिनका निवारण करना मुश्किल था, इसलिए यदि आप परेशानी नहीं चाहते हैं तो केवल एक परिरक्षित केबल का उपयोग करें, कहानी का अंत।

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

टीपी: समग्र सर्किट के लिए वर्तमान को मापने के लिए परीक्षण बिंदु है।

DHT22: सस्ता DHT11 न खरीदें, सफेद DHT22 प्राप्त करने के लिए 50 सेंट अधिक खर्च करें जो नकारात्मक तापमान को भी माप सकता है।

चरण 6: केस डिजाइन

केस डिजाइन
केस डिजाइन
केस डिजाइन
केस डिजाइन
केस डिजाइन
केस डिजाइन

हालाँकि यह थोड़ा अधिक है, DHT22 तापमान सेंसर को रखने के लिए एक 3D प्रिंटेड क्यूब (weather_cube) बनाया गया था। क्यूब को आईपी बॉक्स के नीचे चिपका दिया गया है, जिसमें सेंसर तक पहुंचने के लिए हवा के लिए केवल 1 छेद है। मैंने छेद में मधुमक्खियों, ततैया और अन्य छोटी मक्खियों के खिलाफ एक जाल जोड़ा है।

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

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

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

चरण 7: सॉफ्टवेयर

सॉफ्टवेयर
सॉफ्टवेयर

सॉफ्टवेयर कोड के लिए 3 बाहरी पुस्तकालयों (लोपावर, डीएचटी, वर्चुअलवायर) की आवश्यकता होगी। मुझे हाल ही में उनमें से कुछ को आसानी से ऑनलाइन खोजने में समस्या हुई थी इसलिए मैंने उन्हें एक अलग ज़िप फ़ाइल में संलग्न किया। भले ही आप Linux/Windows का उपयोग कर रहे हों, बस अपने Arduino IDE का लाइब्रेरी फ़ोल्डर ढूंढें और उन्हें वहां निकालें।

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

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

मैंने पाया है कि बॉड्रेट को कम करने से रेडियो प्रसारण की स्थिरता में वृद्धि होगी। स्टेशन बहुत कम मात्रा में डेटा भेज रहा है, 300 बीपीएस पर्याप्त से अधिक है। यह भी न भूलें कि ट्रांसमीटर केवल लगभग से ही काम कर रहा है। 4.8V, भविष्य के 3.3V संस्करण में इससे ट्रांसमिशन गुणवत्ता और भी खराब हो सकती है (दीवारों और अन्य बाधाओं के माध्यम से डेटा भेजना)। मैं एक रास्पबेरी पीआई 2 से जुड़े एक Arduino मेगा का उपयोग करने के साथ एक समस्या में भाग लेता हूं जो पीआई से मेगा को शक्ति देता है, कि मुझे कोई ट्रांसमिशन नहीं मिला। समाधान मेगा को एक अलग बाहरी 12V आपूर्ति से बिजली देना था।

चरण 8: संस्करण 2 (ESP32 आधारित)

संस्करण 2 (ESP32 आधारित)
संस्करण 2 (ESP32 आधारित)
संस्करण 2 (ESP32 आधारित)
संस्करण 2 (ESP32 आधारित)
संस्करण 2 (ESP32 आधारित)
संस्करण 2 (ESP32 आधारित)

जो कुछ भी टूट सकता है वह अच्छे पुराने मर्फी को उद्धृत करने के लिए टूट जाएगा और आखिरकार वर्षों बाद रहस्यमय तरीके से स्टेशन विफल हो गए। एक ने अस्पष्ट सौर डेटा भेजना शुरू कर दिया जो हजारों तक चला गया, जो कि असंभव है: Arduino बोर्ड में 6 चैनल (मिनी और नैनो पर 8 चैनल, मेगा पर 16), डिजिटल कनवर्टर के लिए 10-बिट एनालॉग शामिल हैं। इसका मतलब है कि यह 0 और 5 वोल्ट के बीच इनपुट वोल्टेज को 0 और 1023 के बीच पूर्णांक मानों में मैप करेगा। इसलिए रेडियो, LDR को बदलने और Atmega 328P को कई बार रीप्रोग्राम करने के बाद मैंने हार मान ली और फैसला किया कि यह नवाचार का समय है। आइए चलते हैं ESP32।

मैंने जो बोर्ड इस्तेमाल किया वह था: ESP32 WEMOS LOLIN32 Lite V1.0.0 Wifi और ब्लूटूथ कार्ड Rev1 MicroPython 4MB FLASH

wiki.wemos.cc/products:lolin32:lolin32_lit…

माइक्रोकंट्रोलर ESP-32

ऑपरेटिंग वोल्टेज 3.3V डिजिटल I/O पिन 19 एनालॉग इनपुट पिन 6 क्लॉक स्पीड (अधिकतम) 240Mhz फ्लैश 4M बाइट्स लंबाई 5mm चौड़ाई 2.54mm वजन 4g

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

हालाँकि यहाँ कहानी का स्याह पक्ष है:

प्रारंभ में मैंने LDR को A15 से जोड़ा है जो कि पिन 12 है क्योंकि यह पिन को एक साथ जोड़ना आसान था। तब मुझे ४०९५ रीडआउट मिले (जो कि अधिकतम है जो आप ESP32 पर AnlogRead के साथ प्राप्त कर सकते हैं) जिसने मुझे पागल कर दिया क्योंकि पूरे कारण से मैंने स्टेशन को फिर से बनाया था, पुराने से टूटे हुए LDR रीडआउट थे (DHT अभी भी ठीक काम कर रहा था)) तो यह पता चला है कि:

एस्प 32 दो 12-बिट एसीडी रजिस्टरों को एकीकृत करता है। ADC1 सफेद 8 चैनल GPIOs 32-39 से जुड़े और ADC2 सफेद 10 चैनल दूसरे पिन में।बात यह है कि ESP32 वाईफाई कार्यों को प्रबंधित करने के लिए ADC2 का उपयोग करता है, इसलिए यदि आप वाईफाई का उपयोग करते हैं, तो आप उस रजिस्टर का उपयोग नहीं कर सकते। ADC ड्राइवर API ADC1 (8 चैनल, GPIO 32 - 39 से जुड़ा हुआ), और ADC2 (10 चैनल, GPIO 0, 2, 4, 12 - 15 और 25 - 27 से जुड़ा) का समर्थन करता है। हालाँकि, ADC2 के उपयोग में अनुप्रयोग के लिए कुछ प्रतिबंध हैं:

ADC2 का उपयोग वाई-फाई ड्राइवर द्वारा किया जाता है। इसलिए एप्लिकेशन केवल ADC2 का उपयोग कर सकता है जब वाई-फाई ड्राइवर शुरू नहीं हुआ हो। ADC2 पिन में से कुछ का उपयोग स्ट्रैपिंग पिन (GPIO 0, 2, 15) के रूप में किया जाता है, इसलिए इसे स्वतंत्र रूप से उपयोग नहीं किया जा सकता है। निम्नलिखित आधिकारिक विकास किटों में ऐसा ही है:

इसलिए LDR को पिन 12 से A0 से जोड़ना जो कि VP ने सब कुछ हल कर दिया है, लेकिन मुझे यह नहीं मिला कि वे ADC2 पिन को निर्माताओं के लिए उपलब्ध क्यों सूचीबद्ध कर रहे हैं। यह पता लगाने तक कितने अन्य हॉबीस्ट ने टन समय बर्बाद किया? कम से कम अनुपयोगी पिनों को लाल या किसी चीज़ से चिह्नित करें या मैनुअल में इसका बिल्कुल भी उल्लेख न करें ताकि अन्य निर्माता केवल उनके बारे में पता लगा सकें यदि उन्हें वास्तव में उनकी आवश्यकता है। ESP32 का पूरा उद्देश्य इसे WIFI के साथ उपयोग करना है, हर कोई इसे WIFI के साथ उपयोग करता है।

इस बोर्ड के लिए Arduino IDE को सेटअप करने की एक अच्छी शुरुआत:

हालाँकि मैंने इसे यहाँ कोड में रखा है लेकिन यह एक बार फिर से चला जाता है:

यह कोड Weemos LOLIN 32 के अलावा अन्य ESP32 मॉडल के लिए संकलित नहीं हो सकता है!

बिल्ड सेटिंग्स: -अपलोड/सीरियल का उपयोग करें: 115200-सीपीयू/रैम का उपयोग करें: 240 मेगाहर्ट्ज (वाईफाई | बीटी) - फ्लैश फ्रीक का उपयोग करें: 80 मेगाहर्ट्ज

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

यह फिर से एक सुखद आश्चर्य था कि डीप स्लीप मोड विज्ञापित के रूप में काम करता है। गहरी नींद के दौरान करंट इतना कम था कि मेरा सस्ता मल्टी मीटर इसे माप भी नहीं सकता था (मेरे लिए काम करता है)।

डेटा भेजने के दौरान करंट लगभग 80mA था (जो कि Atmega 328P के जागने और संचारित होने की तुलना में लगभग 5 गुना अधिक है), हालाँकि यह मत भूलिए कि V1 के साथ स्लीप मोड में LDR पर औसत 1mA पावर ड्रेन था (जो प्रकाश के स्तर पर भी निर्भर करता था और 0.5mA - 1mA) से चला गया था जो अब चला गया है।

अब जबकि UltraFire बैटरी डिबंक हो गई है, यदि आप यहां उसी बैटरी का उपयोग करते हैं, तो आप यही उम्मीद कर सकते हैं:

Iavg = (टन * आयन + नींद * सो) / (टन + नींद)

औसत = (2s*80mA + 300s*0.01mA) / (2s+300s) औसत = 0.5mA

Pavg=VxIavg =5Vx0.5mA=2.5 mW

सैद्धांतिक

बैटरी जीवन = 22000mWh/2.5mW = 8800 घंटे = 366 दिन लगभग

असली

बैटरी जीवन = 800mWh/2.5mW = 320 घंटे = 13 दिन लगभग

मेरे पास समय पर टर्न को ठीक से मापने की गुंजाइश नहीं थी, लेकिन मेरे ट्विक्स के साथ यह लगभग 2 सेकंड में सबसे ऊपर हो जाता है।

मैं सब कुछ कस्टम कोडिंग पर दोपहर बिताना नहीं चाहता था इसलिए मैंने ESP32 पर आधारित इंस्ट्रक्शंस पर कुछ अन्य मौसम स्टेशनों की तलाश की, यह देखने के लिए कि वे डेटा स्टोरेज के लिए क्या करते हैं। दुख की बात है कि वे अनम्य और सीमित साइटों जैसे वेदरक्लाउड का उपयोग कर रहे हैं। चूंकि मैं "क्लाउड" का प्रशंसक नहीं हूं और उनका कोड लंबे समय से टूट गया है क्योंकि साइट ने तब से इसका एपीआई बदल दिया है, मैंने कस्टम समाधान बनाने में अपना 10 मिनट का समय लिया है क्योंकि यह उतना कठिन नहीं है जितना कोई सोच सकता है। आएँ शुरू करें!

सबसे पहले इस परियोजना के लिए अलग से कोई सर्किट बोर्ड चित्र नहीं है, क्योंकि यह V1 के रूप में ठीक उसी घटकों (बदसूरत ब्रेडबोर्ड चित्र में मिलाप के लिए खेद है) का उपयोग करता है, इस अंतर के साथ कि सब कुछ 3.3V से चलता है। DHT ने VCC को पुलअप के साथ जोड़ा, LDR ने 10k के साथ नीचे खींच लिया। मेरी चीनी नकली (६५०० एमएएच अल्ट्रा सन फायर लोल: डी) जैसी १८६५० बैटरियों के साथ समस्या यह हो सकती है कि वे लगभग ४.१ वी नए युग से डिस्चार्ज कर्व शुरू करते हैं और तब तक चलते हैं जब तक कि उनकी कटऑफ सर्किटरी सेल क्षति को रोकने के लिए किक नहीं करती (जो इसे पाने के लिए काफी भाग्यशाली हैं)। 3.3V इनपुट के रूप में यह हमारे लिए कहीं भी अच्छा नहीं है। यद्यपि इस लोलिन बोर्ड में इस परियोजना में लिथियम बैटरी कनेक्टर और चार्जिंग सर्किट है, लेकिन मैं पुराने स्टेशन से जो कुछ भी कर सकता था उसे नवीनीकृत करना चाहता था, इसलिए पुराने 18650 के साथ आप इसे चार्जर में निर्मित नहीं कर सकते। समाधान मृत सरल था: मैंने पुराने वोल्टेज बूस्टर और वॉयला समस्या में से 5V में सोल्डर किए गए एक माइक्रो यूएसबी केबल को काट दिया, क्योंकि माइक्रोयूएसबी पर बोर्ड में नियामक है।

तो पुराने और नए संस्करण के बीच का अंतर जो पुरानी बैटरी में 3.7V प्रदान करता है -> 5V तक बढ़ाया जाता है -> ardu 5V पर चलता है -> सभी घटक 5V पर चलते हैं।

नए में: बैटरी 3.7V प्रदान करती है -> 5V तक बढ़ा दी जाती है -> ESP32 पर ऑनबोर्ड reg के माध्यम से विनियमित -> सभी घटक 3.3V पर चलते हैं।

सॉफ्टवेयर के अनुसार हमें एक और DHT लाइब्रेरी की भी आवश्यकता होगी, Arduino का DHT ESP के अनुकूल नहीं है। हमें जो चाहिए वह DHT ESP कहलाता है।

मैंने इस कोड को प्रदान किए गए डीएचटी उदाहरण के आसपास अपना कोड आधारित करना शुरू कर दिया। कोड का कार्य है:

1, फोटोकेल से डीएचटी + सौर डेटा से पर्यावरण डेटा प्राप्त करें

2, स्थिर आईपी के साथ वाईफाई से कनेक्ट करें

3, डेटा को एक PHP स्क्रिप्ट पर पोस्ट करें

४, १० मिनट के लिए सो जाएं

जैसा कि आप देखेंगे कि मैंने पूरी तरह से जागने के समय को कम करने के लिए दक्षता के लिए कोड को ट्यून किया है क्योंकि यह पुराने प्रोजेक्ट की तुलना में 5 गुना बिजली की निकासी कर रहा है जब इसे चालू किया गया था। मैंने यह कैसे किया? सबसे पहले अगर किसी भी प्रकार की त्रुटि होती है तो getTemperature() फ़ंक्शन झूठी के साथ वापस आ जाएगा (जिसका अर्थ है कि 10 मिनट फिर से सोएं)। यह ऐसा हो सकता है जैसे डीएचटी सेंसर शुरू नहीं किया जा सकता है या वाईफाई कनेक्शन उपलब्ध नहीं है। जैसा कि आप हमेशा के लिए वाईफाई एसोसिएशन की कोशिश करते रहने के लिए सामान्य समय () लूप को भी हटा दिया गया था, लेकिन वहां 1 सेकंड की देरी की आवश्यकता थी अन्यथा यह हमेशा कनेक्ट नहीं होगा और यह एपी प्रकार, लोड आदि पर भी निर्भर करता है कि यह कितनी तेजी से है होगा, 0.5 के साथ मुझे असंगत व्यवहार मिला (कभी-कभी यह कनेक्ट नहीं हो सका)। अगर कोई ऐसा करने का बेहतर तरीका जानता है तो कृपया इसे टिप्पणियों में छोड़ दें। केवल जब DHT डेटा पढ़ा जाता है और वाईफाई कनेक्शन चालू होता है, तो यह डेटा को वेबसर्वर पर स्क्रिप्ट पर पोस्ट करने का प्रयास करेगा। Serial.println()'s जैसे सभी प्रकार के समय बर्बाद करने वाले कार्य सामान्य परिचालन मोड में भी अक्षम हैं। सर्वर के रूप में मैं एक अनावश्यक डीएनएस लुकअप से बचने के लिए आईपी का उपयोग कर रहा हूं, मेरे कोड में डिफ़ॉल्ट गेटवे और डीएनएस सर्वर दोनों 0.0.0.0 पर सेट हैं।

मुझे समझ में नहीं आता कि अपना खुद का एपीआई बनाना इतना कठिन क्यों है जब यह सब कुछ लेता है:

स्प्रिंटफ (प्रतिक्रिया, "अस्थायी =% डी और हम =% डी और हाय =% डी / सोल =% डी", अस्थायी, हम, हाय, सोल);

int httpResponseCode = http. POST (प्रतिक्रिया);

आप इस छोटे से PHP कोड को किसी भी रास्पबेरी पाई में डालते हैं और आप टेलीमेट्री के आधार पर सिस्टम () कार्य तुरंत कर सकते हैं जैसे पंखे चालू करना या पर्याप्त अंधेरा होने पर रोशनी चालू करना।

कोड के बारे में कुछ नोट्स:

वाईफाई.कॉन्फिग (स्टैटिकआईपी, गेटवे, सबनेट, डीएनएस); // वाईफाई शुरू होने के बाद होना चाहिए कितना गूंगा…

वाईफाई.मोड (वाईफाई_एसटीए); // MUST अन्यथा यह एक अवांछित AP भी बनाएगा

हाँ ठीक है अब आप जानते हैं। इसके अलावा आईपी कॉन्फ़िगरेशन का क्रम प्लेटफार्मों के माध्यम से बदल सकता है, मैंने पहले अन्य उदाहरणों की कोशिश की जहां गेटवे और सबनेट मान स्विच किए गए थे। स्थिर आईपी क्यों सेट करें? ठीक है, यह बिल्कुल स्पष्ट है, यदि आपके पास अपने नेटवर्क पर एक समर्पित बॉक्स है जैसे कि एक linux सर्वर चल रहा है isc dhcpd, आप नहीं चाहते हैं कि जब ईएसपी जागता है और डीएचसीपी से आईपी प्राप्त करता है, तो आप सौ मिलियन लॉग प्रविष्टियाँ नहीं चाहते हैं। राउटर आमतौर पर संघों को लॉग नहीं करते हैं जिससे कि अनदेखी हो जाएगी। यह बिजली बचाने की कीमत है।

खराब गुणवत्ता वाली बैटरी के कारण V2 कभी भी खुद को बनाए रखने में सक्षम नहीं था और मैंने इसे केवल एक एडेप्टर पर रखा है, इसलिए यदि आप V1 या V2 बनाना चाहते हैं तो उल्लिखित बैटरी न खरीदें, बैटरी पर अपना शोध करें (कोई भी 18650 Ebay पर 2000mAh से अधिक विज्ञापित क्षमता एक उच्च संभावना वाला घोटाला है)।

सिफारिश की: